diff options
author | Benoit Germain <benoit.germain@ubisoft.com> | 2024-12-20 17:21:32 +0100 |
---|---|---|
committer | Benoit Germain <benoit.germain@ubisoft.com> | 2024-12-20 17:21:32 +0100 |
commit | 59ae58fd31d63c261372bd5a36765328583bc1b6 (patch) | |
tree | 44eef790bd9948d864db350746c4017a47d93e53 | |
parent | 30579fc3e7c73bbad5d376c43f226b2c16c7cebb (diff) | |
download | lanes-59ae58fd31d63c261372bd5a36765328583bc1b6.tar.gz lanes-59ae58fd31d63c261372bd5a36765328583bc1b6.tar.bz2 lanes-59ae58fd31d63c261372bd5a36765328583bc1b6.zip |
Make VS Test Explorer happy by absorbing the text output of legacy tests
-rw-r--r-- | tests/error.lua | 18 | ||||
-rw-r--r-- | unit_tests/Catch2.runsettings | 3 | ||||
-rw-r--r-- | unit_tests/shared.cpp | 12 |
3 files changed, 26 insertions, 7 deletions
diff --git a/tests/error.lua b/tests/error.lua index a1ba1ce..243dd57 100644 --- a/tests/error.lua +++ b/tests/error.lua | |||
@@ -1,9 +1,19 @@ | |||
1 | -- | 1 | -- |
2 | -- Error reporting | 2 | -- Error reporting |
3 | -- | 3 | -- |
4 | local function PRINT(...) | ||
5 | local str="" | ||
6 | for i=1,select('#',...) do | ||
7 | str= str..tostring(select(i,...)).."\t" | ||
8 | end | ||
9 | if io then | ||
10 | io.stderr:write(str.."\n") | ||
11 | end | ||
12 | end | ||
13 | |||
4 | local which_tests, remaining_tests = {}, {} | 14 | local which_tests, remaining_tests = {}, {} |
5 | for k,v in ipairs{...} do | 15 | for k,v in ipairs{...} do |
6 | print("got arg:", type(v), tostring(v)) | 16 | PRINT("got arg:", type(v), tostring(v)) |
7 | which_tests[v] = true | 17 | which_tests[v] = true |
8 | remaining_tests[v] = true | 18 | remaining_tests[v] = true |
9 | end | 19 | end |
@@ -27,7 +37,7 @@ local WR = function(...) | |||
27 | if type(v) == "function" then | 37 | if type(v) == "function" then |
28 | local infos = debug.getinfo(v) | 38 | local infos = debug.getinfo(v) |
29 | --[[for k,v in pairs(infos) do | 39 | --[[for k,v in pairs(infos) do |
30 | print(k,v) | 40 | PRINT(k,v) |
31 | end]] | 41 | end]] |
32 | v = infos.source..":"..infos.linedefined | 42 | v = infos.source..":"..infos.linedefined |
33 | end | 43 | end |
@@ -115,7 +125,7 @@ local configure_tests = function() | |||
115 | (lane_error and tostring(lane_error) or "no error") .. " in lane", | 125 | (lane_error and tostring(lane_error) or "no error") .. " in lane", |
116 | (finalizer and "with" or "without").. " finalizer" .. ((finalizer and finalizer_error) and " raising " .. tostring(finalizer_error) or "") | 126 | (finalizer and "with" or "without").. " finalizer" .. ((finalizer and finalizer_error) and " raising " .. tostring(finalizer_error) or "") |
117 | }, ", ") | 127 | }, ", ") |
118 | print(test_header) | 128 | PRINT(test_header) |
119 | test_settings[test_header] = { level, lane_error, finalizer, finalizer_error } | 129 | test_settings[test_header] = { level, lane_error, finalizer, finalizer_error } |
120 | end | 130 | end |
121 | -- can't store nil in tables, use null instead | 131 | -- can't store nil in tables, use null instead |
@@ -240,4 +250,4 @@ end | |||
240 | local unknown_test, val = next(remaining_tests) | 250 | local unknown_test, val = next(remaining_tests) |
241 | assert(not unknown_test, tostring(unknown_test) .. " test is unknown") | 251 | assert(not unknown_test, tostring(unknown_test) .. " test is unknown") |
242 | 252 | ||
243 | print "\nTHE END" | 253 | PRINT "\nTHE END" |
diff --git a/unit_tests/Catch2.runsettings b/unit_tests/Catch2.runsettings index 9360bfb..c8e32ee 100644 --- a/unit_tests/Catch2.runsettings +++ b/unit_tests/Catch2.runsettings | |||
@@ -22,9 +22,6 @@ | |||
22 | <!-- Combine: A single test executable is started to run multiple test cases. (Single: instance per test case) --> | 22 | <!-- Combine: A single test executable is started to run multiple test cases. (Single: instance per test case) --> |
23 | <ExecutionMode>Combine</ExecutionMode> | 23 | <ExecutionMode>Combine</ExecutionMode> |
24 | 24 | ||
25 | <!-- In Milliseconds --> | ||
26 | <TestCaseTimeout>10000</TestCaseTimeout> | ||
27 | |||
28 | <!-- Working directory --> | 25 | <!-- Working directory --> |
29 | <WorkingDirectoryRoot>Solution</WorkingDirectoryRoot> | 26 | <WorkingDirectoryRoot>Solution</WorkingDirectoryRoot> |
30 | <WorkingDirectory>Lanes</WorkingDirectory> | 27 | <WorkingDirectory>Lanes</WorkingDirectory> |
diff --git a/unit_tests/shared.cpp b/unit_tests/shared.cpp index d2b4ef7..c2b8bf0 100644 --- a/unit_tests/shared.cpp +++ b/unit_tests/shared.cpp | |||
@@ -389,6 +389,18 @@ TEST_CASE("LuaState.doString") | |||
389 | FileRunner::FileRunner(std::string_view const& where_) | 389 | FileRunner::FileRunner(std::string_view const& where_) |
390 | : LuaState{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ true } } | 390 | : LuaState{ LuaState::WithBaseLibs{ true }, LuaState::WithFixture{ true } } |
391 | { | 391 | { |
392 | // _G.print = _nullprint | ||
393 | // because the VS Test Explorer doesn't appreciate the text output of some scripts, so absorb them | ||
394 | if constexpr (1) { | ||
395 | auto const _nullprint = +[](lua_State* const L_) { return 0; }; | ||
396 | luaG_pushglobaltable(L); | ||
397 | lua_pushcfunction(L, _nullprint); | ||
398 | luaG_setfield(L, StackIndex{ -2 }, std::string_view{ "print" }); | ||
399 | lua_pop(L, 1); | ||
400 | stackCheck(0); | ||
401 | } | ||
402 | // TODO: do the same with io.stderr:write? | ||
403 | |||
392 | [[maybe_unused]] std::filesystem::path const _current{ std::filesystem::current_path() }; | 404 | [[maybe_unused]] std::filesystem::path const _current{ std::filesystem::current_path() }; |
393 | std::filesystem::path _path{ where_ }; | 405 | std::filesystem::path _path{ where_ }; |
394 | root = std::filesystem::canonical(_path).generic_string(); | 406 | root = std::filesystem::canonical(_path).generic_string(); |