Toster

Crates.io Crates.io Crates.io

A simple-as-toast tester for C++ solutions to competitive programming exercises

Usage

``` Usage: toster [OPTIONS]

Arguments: The name of the file containing the source code or the executable you want to test

Options: -i, --in Input directory [default: in] --in-ext Input file extension [default: .in] -o, --out Output directory [default: out] --out-ext Output file extension [default: .out] --io The input and output directory (sets both -i and -o at once) -t, --timeout The number of seconds after which a test or generation times out if the program does not return. WARNING: if you're using the sio2jail flag, this timeout will still work based on time measured directly by toster, not time measured by sio2jail [default: 5] --compile-timeout The number of seconds after which compilation times out if it doesn't finish [default: 10] -c, --compile-command The command used to compile the file. gets replaced with the path to the source code file, is the executable output location [default: "g++ -std=c++20 -O3 -static -o "] -s, --sio2jail Makes toster use sio2jail for measuring program runtime and memory use more accurately. By default limits memory use to 1 GiB. WARNING: enabling this flag can significantly slow down testing -m, --memory-limit Sets a memory limit (in KiB) for the executed program and enables the sio2jail flag. WARNING: enabling this flag can significantly slow down testing -g, --generate Makes toster generate output files in the output directory instead of comparing the program's output with the files in the output directory -h, --help Print help -V, --version Print version ```

Compiler

If you're using the sio2jail feature and want to make sure that your toster measurements are exactly identical to those of sio2 on a contest, you need to make sure that you're using the same compiler version as the one used in sio. The compiler used in the Polish Olympiad in Informatics as of XXXI OI is G++ 12.2 (as detailed here). If you want to install G++ 12.2, you can do so by building it from scratch (for example using this script, only changing the version). You can also download prebuilt G++ versions made by me from here: - G++ 10.2 - G++ 12.2

License

Toster is licensed under the MIT Licence

Dependencies

This project uses sio2jail, a project available under the MIT licence