Upreckon is an automatic program tester. It was originally designed specifically for testing solutions to olympic problems such as those of the International Olympiad in Informatics, but it can be used to automatically test anything. Some parts of it can be easily extended to offer new features.
What Upreckon is and is not
Upreckon is a command-line tool to test a program or a set of programs against a set or multiple sets of test cases, which are normally described by input data that is provided to the program being tested and output data that the program’s output is compared to.
Upreckon is not a server for testing/judging solutions to olympic problems and is not suited to be used by such servers unless the solutions are trusted to be benevolent, as it does not perform any protection or jailing. Upreckon also does not build the programs it tests; they must be built before Upreckon is launched. (Feel free to contribute if you can implement these features.)
If you have a test configuration file written for test.py 1.x, just run
Upreckon with the
-1 command-line option and it should work. If the
test configuration file is simple enough, this will work even if you are
running Python 3.
If your platform is not listed here, it does not mean Upreckon does not run on it; if the Python modules Upreckon uses run on it, Upreckon most likely runs as well. This table is for reference only. If your operating system is a newer version of one that is listed, look at the latest listed version of it.
|Operating system||CPU time supported||CPU time type limited by the OS||Memory limit type supported||Behaviour of malloc after reaching the memory limit|
|Windows NT 3.5||yes||none||none||N/A|
|Windows NT 4.0||yes||none||private virtual memory||works normally|
|Windows 2000||yes||user, with periodic checks||private virtual memory||fails with ENOMEM|
|Mac OS X||yes||total*||resident set||works normally|
|Linux||yes||total*||full address space||fails with ENOMEM|
|FreeBSD||yes||total*||full address space||fails with ENOMEM|
|OpenIndiana||yes||total*||full address space||fails with ENOMEM|
* CPU time is only limited by the OS if the native extension module was built when installing Upreckon, and then with a granularity of one second.