From 060626edbf26101044d6ab74f7f1af2fd755dc13 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 28 Dec 2023 22:34:59 +0800 Subject: test process timeout #4544 --- tests/actions/test/src/run_timeout.cpp | 14 ++++++++++++++ tests/actions/test/xmake.lua | 7 +++++++ 2 files changed, 21 insertions(+) create mode 100644 tests/actions/test/src/run_timeout.cpp (limited to 'tests') diff --git a/tests/actions/test/src/run_timeout.cpp b/tests/actions/test/src/run_timeout.cpp new file mode 100644 index 000000000..b4746403f --- /dev/null +++ b/tests/actions/test/src/run_timeout.cpp @@ -0,0 +1,14 @@ +#ifdef _MSC_VER +# include +#else +# include +#endif + +int main(int argc, char** argv) { +#ifdef _MSC_VER + Sleep(10 * 1000); +#else + usleep(10 * 100 * 1000); +#endif + return 0; +} diff --git a/tests/actions/test/xmake.lua b/tests/actions/test/xmake.lua index a4f75036d..67223bc79 100644 --- a/tests/actions/test/xmake.lua +++ b/tests/actions/test/xmake.lua @@ -42,3 +42,10 @@ target("test_15") set_default(false) add_files("src/test_1.cpp") add_tests("stub_n", {files = "tests/stub_n*.cpp", defines = "STUB_N"}) + +target("test_timeout") + set_kind("binary") + set_default(false) + add_files("src/run_timeout.cpp") + add_tests("run_timeout", {run_timeout = 1000}) + -- cgit v1.3.1 From 22770be939cf1165cb41ca9119d55b07369b7405 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 28 Dec 2023 22:49:49 +0800 Subject: update changelog --- CHANGELOG.md | 8 ++++++++ tests/actions/test/test.lua | 2 +- xmake/actions/test/main.lua | 3 +++ xmake/core/base/os.lua | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/CHANGELOG.md b/CHANGELOG.md index 165301c87..2fd0ed353 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## master (unreleased) +### New features + +* [#4544](https://github.com/xmake-io/xmake/issues/4544): Support to wait process timeout for `xmake test` + ## v2.8.6 ### New features @@ -1702,6 +1706,10 @@ ## master (开发中) +### 新特性 + +* [#4544](https://github.com/xmake-io/xmake/issues/4544): 改进 `xmake test`,支持等待进程超时 + ## v2.8.6 ### 新特性 diff --git a/tests/actions/test/test.lua b/tests/actions/test/test.lua index 45ce0b914..3913c3d95 100644 --- a/tests/actions/test/test.lua +++ b/tests/actions/test/test.lua @@ -1,4 +1,4 @@ function main(t) - os.exec("xmake test") + os.exec("xmake test -vD") end diff --git a/xmake/actions/test/main.lua b/xmake/actions/test/main.lua index a61e40966..9313b381c 100644 --- a/xmake/actions/test/main.lua +++ b/xmake/actions/test/main.lua @@ -309,9 +309,12 @@ function _run_tests(tests) cprint("${color.success}%d%%${clear} tests passed, ${color.failure}%d${clear} tests failed out of ${bright}%d${clear}, spent ${bright}%0.3fs", passed_rate, report.total - report.passed, report.total, spent / 1000) local return_zero = project.policy("test.return_zero_on_failure") + print("return_zero", return_zero) if not return_zero and report.passed < report.total then + print("raise") raise() end + print("end") end -- try to build the given target diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua index 47cfb98b3..aca76db61 100644 --- a/xmake/core/base/os.lua +++ b/xmake/core/base/os.lua @@ -876,7 +876,11 @@ function os.execv(program, argv, opt) if waitok > 0 then ok = status elseif waitok == 0 and opt.timeout then + print("kill .. ") proc:kill() + print("kill end") + waitok, status = proc:wait(-1) + print("waitok", waitok, status) errors = "wait process timeout" end else -- cgit v1.3.1 From ceb4a08f1638492957db7ffdc97a43b7ec55ce64 Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 28 Dec 2023 14:22:16 +0800 Subject: Update test.lua --- tests/actions/test/test.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/actions/test/test.lua b/tests/actions/test/test.lua index 3913c3d95..45ce0b914 100644 --- a/tests/actions/test/test.lua +++ b/tests/actions/test/test.lua @@ -1,4 +1,4 @@ function main(t) - os.exec("xmake test -vD") + os.exec("xmake test") end -- cgit v1.3.1