A python module to write, grade and provide feedback for exercices in C using gdb.
Documentation for this project is currently only available by reading the docstrings in the source code.
A guide to porting an INGInious task using CTester to CCorrect is available here.
- Programmable function failures (don't execute function: immediately return)
- change return value
- change return args (pointer args)
- set errno
- Ban usage of some functions
- Segfault crash report
- Show backtrace with stack variables at the moment of the crash
- Heap visualization at the moment of the crash?
- Support execution timeout
- Make an API that makes gdb's API easier and an API for writing tests
- gdb.Value builder from python objects
- build scalars, structs, arrays, enums, unions
- build stucts with flexible array
- call functions
- variadic functions
- Detect if tested code checks the return value of functions.
- tests API
- gdb.Value builder from python objects
- Threads support
- keep track of number of threads
- use libtsan's output
- Memleak detection (libasan)
- Inginious integration
- CI
- unit tests value builder
- unit tests timeout
- unit tests function call, watch and fail
- unit tests for funccall parser
- unit tests catch errors (SIGSEGV, SIGFPE, double free)
- unit tests on different exercises (test on an expected results.yml)