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>
20 lines
381 B
JSON
20 lines
381 B
JSON
{
|
|
"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 }]
|
|
}
|