|
| 1 | +Tasks in this directory were instrumented and added by Martin Spiessl. |
| 2 | + |
| 3 | +These tasks are test cases for the uthash hashing library, |
| 4 | +which is implemented as a preprocessor macro. |
| 5 | + |
| 6 | +As such they are currently purely deterministic, but I think they will still pose a challenge |
| 7 | +to verifiers because of their complexity and extensive heap memory handling. |
| 8 | + |
| 9 | +Currently I only took the first 10 test cases with 6 of the 7 possible hash function. |
| 10 | +The last hash function murmur hash exploits no-strict-aliasing, |
| 11 | +which is undefined behavior and was therefore excluded. |
| 12 | +The tests as they were did not cleanup memory properly. |
| 13 | +I also added a fixed version of the tasks. For some however, |
| 14 | +this fix is insufficient and leads to memory leaks, |
| 15 | +in which case a third version of the task is also added. |
| 16 | +For test10-3 this is still not enough, so there valid-memtrack |
| 17 | +is still violated, I adapted the verdict accordingly. |
| 18 | + |
| 19 | +This makes a total of currently 138 verification tasks. |
| 20 | + |
| 21 | +The .c files were preprocessed with gcc -E -P -m32 $filename |
| 22 | + |
| 23 | +I refrained from formatting the preprocessed files e.g. via clang-formatter because |
| 24 | +verifiers should be able to cope with file that have multiple statements in one line. |
| 25 | + |
| 26 | +Have fun with solving these tasks! |
| 27 | + |
| 28 | +The license of uthash is essentially the 1-clause BSD license, |
| 29 | +I just copied the LICENSE file from the uthash repository over. |
| 30 | +I put the instrumentation code I added to create these tasks |
| 31 | +under the same license for convenience. |
| 32 | +The version of uthash in these benchmarks is (the tag) 2.0.2 |
0 commit comments