diff --git a/.vscode/launch.json b/.vscode/launch.json index 16b2d79..ccee47d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -82,6 +82,33 @@ } ], "preLaunchTask": "make_build" - } + }, + { + "name": "(gdb) debug tests thperrier", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/build/game_test_thperrier", + "args": [ + "game_undo" + ], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set Disassembly Flavor to Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ], + "preLaunchTask": "make_build" + }, ] } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 047703f..ef1a473 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,6 +53,7 @@ add_test(test_thperrier_game_is_lightbulb ./game_test_thperrier game_is_lightbul add_test(test_thperrier_game_is_black ./game_test_thperrier game_is_black) add_test(test_thperrier_game_get_black_number ./game_test_thperrier game_get_black_number) add_test(test_thperrier_game_undo ./game_test_thperrier game_undo) +add_test(test_thperrier_game_undo ./game_test_thperrier game_redo) #Tests NNUNES add_test(test_nnunes_dummy ./game_test_nnunes dummy) diff --git a/game_test_thperrier.c b/game_test_thperrier.c index cca5ce5..22c65ec 100644 --- a/game_test_thperrier.c +++ b/game_test_thperrier.c @@ -225,26 +225,12 @@ bool test_game_copy() { /* ********** game_undo ********** */ bool test_game_undo(){ game g1 = game_new_empty(); - game_play_move(g1, 2, 3, S_LIGHTBULB); - game_play_move(g1, 0, 0, S_MARK); - game_play_move(g1, 2, 3, S_BLANK); + game_play_move(g1, 0, 0, S_LIGHTBULB); + game_play_move(g1, 1, 1, S_MARK); game g2 = game_copy(g1); - game_play_move(g2, 2, 3, S_LIGHTBULB); + game_play_move(g2, 1, 1, S_BLANK); game_undo(g1); - if (!game_equal(g1, g2)){ - return false; - } - game_play_move(g2, 0, 0, S_BLANK); - game_undo(g1); - if (!game_equal(g1, g2)){ - return false; - } - game_play_move(g2, 2, 3, S_BLANK); - game_undo(g1); - if (!game_equal(g1, g2)){ - return false; - } - return true; + return game_equal(g1, g2); } /* ********** game_redo ********** */