Add physics, heap, json_helpers, game, and actor test suites
Raise line coverage from 39.6 to 61.8 percent with four new suites and an extension to the actor suite, and register every suite through a single CMake list so a new test file cannot be left out of the coverage fixture. Give the test targets a build-tree RPATH and prepend the build tree to LD_LIBRARY_PATH for CTest, so a developer with a previously installed libakgl.so exercises the library that was just compiled. Fix six defects the new tests exposed: - akgl_physics_simulate read self->gravity_time before its NULL check, so a NULL backend crashed instead of reporting AKERR_NULLPOINTER. - akgl_game_save transposed CLEANUP and PROCESS, which placed the fclose inside the PROCESS switch. An ordinary save never flushed or closed its stream and produced an empty file. - akgl_game_save_actors wrote each name table terminator from the address of a single char, emitting stack contents into the save file and a sentinel the loader could not recognize. - akgl_game_load_objectnamemap used CATCH directly inside while(1), where the break leaves the loop rather than propagating, so a truncated name table loaded as a successful game. - akgl_Actor_cmhf_up_on and _down_on dereferenced actor->basechar with no NULL check, unlike their left and right counterparts. - akgl_actor_logic_movement checked actor twice instead of checking actor->basechar before dereferencing it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
19
tests/assets/snippets/test_json_helpers.json
Normal file
19
tests/assets/snippets/test_json_helpers.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "json helper fixture",
|
||||
"count": 42,
|
||||
"ratio": 2.5,
|
||||
"negative": -17,
|
||||
"enabled": true,
|
||||
"disabled": false,
|
||||
"nested": {
|
||||
"inner": "value",
|
||||
"innercount": 7
|
||||
},
|
||||
"integers": [10, 20, 30],
|
||||
"strings": ["alpha", "beta"],
|
||||
"objects": [
|
||||
{ "id": 1 },
|
||||
{ "id": 2 }
|
||||
],
|
||||
"mixed": [1, "two", { "three": 3 }]
|
||||
}
|
||||
Reference in New Issue
Block a user