Clone wiki

Upreckon / Home

Upreckon

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.)

Backwards compatibility

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.

Platform compatibility

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 systemCPU time supportedCPU time type limited by the OSMemory limit type supportedBehaviour of malloc after reaching the memory limit
Windows 95nononenoneN/A
Windows NT 3.5yesnonenoneN/A
Windows NT 4.0yesnoneprivate virtual memoryworks normally
Windows 2000yesuser, with periodic checksprivate virtual memoryfails with ENOMEM
Mac OS Xyestotal*resident setworks normally
Linuxyestotal*full address spacefails with ENOMEM
FreeBSDyestotal*full address spacefails with ENOMEM
OpenBSDyestotal*noneN/A
OpenIndianayestotal*full address spacefails 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.

Updated