Toster

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++17 -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 sio2. The compiler used in the Polish Olympiad in Informatics is G++ 10.2 (as detailed here). If you want to install G++ 10.2, you can do so by building it from scratch (for example using this script, only changing the version), or you can download a prebuilt version that I made here.
License
Toster is licensed under the MIT Licence
Dependencies
This project uses sio2jail, a project available under the MIT licence