Conventions
Here are a few conventions used through the tasks and the taskgrader.
Task structure
By default, a task structure is as follows:
- task-root/
- tests/
- files/
- lib/
- [compiled language]/
- library.h
- [another compiled language]/
- library.hpp
- [compiled language]/
- run/
- [interpreted language]/
- library.py
- [interpreted language]/
- test01.in
- test01.out
- [other librairies]
- [other test files]
- lib/
- gen/
- gen.sh
- sanitizer.cpp
- checker.cpp
- sol-ok-lang.ext
- sol-bad-lang.ext
- files/
- taskSettings.json
- defaultParams.json (auto-generated, should not be commited to a repository)
- tests/
If using this structure, most files will be auto-detected by genJson.
Build directory structure
When performing an evaluation, the taskgrader will store all files from the evaluation (source files, compiled programs, inputs, outputs) in a build folder (default: taskgrader/files/builds/
). These build folders follow the following structure:
- _buildXXXX/
- generators/
- [generatorId]/: generator compilation folder
- generations/
- [generationId]/: generator execution folder
- checker/: checker compilation folder
- sanitizer/: sanitizer compilation folder
- libs/: folder with all libraries (generated or given directly by the task)
- lib1.ext
- [other libraries]
- tests/: folder with all test cases (generated or given directly by the task)
- test01.in
- test01.out
- [other test files]
- solutions/
- [solutionId]/: solution compilation folder
- executions/
- [solutionId].[executionId]/: solution execution folder
- solution.exe: compiled solution
- sanitizer.exe: compiled sanitizer
- checker.exe: compiled checker
- test1.in: test case (input)
- test1.out: test case (expected output)
- test1.solout: solution answer to the test case
- test1.solerr: stderr from the solution on that test case
- test1.cout: checker output (if multicheck is active)
- test1.cerr: checker stderr (if multicheck is active)
- test1.time: checker execution information (if multicheck is active)
- [other test cases]
- [other files]
- [solutionId].[executionId]/: solution execution folder
- generators/
A compilation folder is as follows:
- folder/
- program.exe: compiled program
- stdout: output of the compilation
- stderr: stderr of the compilation