From 22d46b0b3586b535f183a256fee5b198ebb96237 Mon Sep 17 00:00:00 2001 From: Arthur LAURENT Date: Fri, 2 Feb 2024 18:27:52 +0100 Subject: add a test for circular dependency detection --- tests/projects/c++/modules/circular_dependency/test.lua | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/projects/c++/modules/circular_dependency/test.lua (limited to 'tests/projects/c++/modules/circular_dependency/test.lua') diff --git a/tests/projects/c++/modules/circular_dependency/test.lua b/tests/projects/c++/modules/circular_dependency/test.lua new file mode 100644 index 000000000..c741a2b7c --- /dev/null +++ b/tests/projects/c++/modules/circular_dependency/test.lua @@ -0,0 +1 @@ +inherit(".test_base_failed") -- cgit v1.3.1 From 9ccf1552cbae1759d63e9d8e45f1b8cd72104ab9 Mon Sep 17 00:00:00 2001 From: Arthur LAURENT Date: Fri, 2 Feb 2024 21:12:11 +0100 Subject: improve circular_dependency test --- .../c++/modules/circular_dependency/test.lua | 55 +++++++++++++++++++++- tests/projects/c++/modules/test_base_failed.lua | 46 ------------------ 2 files changed, 54 insertions(+), 47 deletions(-) delete mode 100644 tests/projects/c++/modules/test_base_failed.lua (limited to 'tests/projects/c++/modules/circular_dependency/test.lua') diff --git a/tests/projects/c++/modules/circular_dependency/test.lua b/tests/projects/c++/modules/circular_dependency/test.lua index c741a2b7c..02b11dbff 100644 --- a/tests/projects/c++/modules/circular_dependency/test.lua +++ b/tests/projects/c++/modules/circular_dependency/test.lua @@ -1 +1,54 @@ -inherit(".test_base_failed") +import("lib.detect.find_tool") +import("core.base.semver") + +function _build() + local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() + local passed = false + try {function() + if ci == "true" then + os.run("xmake -rvD") + else + os.run("xmake -r") + end + end, catch{function(errors) + print(errors) + passed = errors:match("circular modules dependency detected!") + end}} + + assert(passed) +end + +function main(t) + if is_subhost("windows") then + local clang = find_tool("clang", {version = true}) + if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then + os.exec("xmake f --toolchain=clang -c --yes") + _build() + os.exec("xmake clean -a") + os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") + _build() + end + + os.exec("xmake clean -a") + os.exec("xmake f -c --yes") + _build() + elseif is_subhost("msys") then + os.exec("xmake f -c -p mingw --yes") + _build() + elseif is_host("linux") then + local gcc = find_tool("gcc", {version = true}) + if gcc and gcc.version and semver.compare(gcc.version, "11.0") >= 0 then + os.exec("xmake f -c --yes") + _build() + end + local clang = find_tool("clang", {version = true}) + if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then + os.exec("xmake clean -a") + os.exec("xmake f --toolchain=clang -c --yes") + _build() + os.exec("xmake clean -a") + os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") + _build() + end + end +end diff --git a/tests/projects/c++/modules/test_base_failed.lua b/tests/projects/c++/modules/test_base_failed.lua deleted file mode 100644 index 8f33d1fbf..000000000 --- a/tests/projects/c++/modules/test_base_failed.lua +++ /dev/null @@ -1,46 +0,0 @@ -import("lib.detect.find_tool") -import("core.base.semver") - -function _build() - local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() - if ci == "true" then - assert(os.execv("xmake", {"-rvD"}, {try = true})) - else - assert(os.execv("xmake", {"-r"}, {try = true})) - end -end - -function main(t) - if is_subhost("windows") then - local clang = find_tool("clang", {version = true}) - if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then - os.exec("xmake f --toolchain=clang -c --yes") - _build() - os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") - _build() - end - - os.exec("xmake clean -a") - os.exec("xmake f -c --yes") - _build() - elseif is_subhost("msys") then - os.exec("xmake f -c -p mingw --yes") - _build() - elseif is_host("linux") then - local gcc = find_tool("gcc", {version = true}) - if gcc and gcc.version and semver.compare(gcc.version, "11.0") >= 0 then - os.exec("xmake f -c --yes") - _build() - end - local clang = find_tool("clang", {version = true}) - if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then - os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang -c --yes") - _build() - os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") - _build() - end - end -end -- cgit v1.3.1 From b40cc4227ce6d4c491d592b361843a42232cd33d Mon Sep 17 00:00:00 2001 From: Arthur LAURENT Date: Sat, 3 Feb 2024 16:39:33 +0100 Subject: improve tests --- .../c++/modules/circular_dependency/test.lua | 53 +--------------------- tests/projects/c++/modules/test_base.lua | 4 +- tests/projects/c++/modules/test_headerunits.lua | 4 +- tests/projects/c++/modules/test_stdmodules.lua | 4 +- 4 files changed, 8 insertions(+), 57 deletions(-) (limited to 'tests/projects/c++/modules/circular_dependency/test.lua') diff --git a/tests/projects/c++/modules/circular_dependency/test.lua b/tests/projects/c++/modules/circular_dependency/test.lua index 02b11dbff..14f82051a 100644 --- a/tests/projects/c++/modules/circular_dependency/test.lua +++ b/tests/projects/c++/modules/circular_dependency/test.lua @@ -1,54 +1,5 @@ -import("lib.detect.find_tool") -import("core.base.semver") - -function _build() - local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() - local passed = false - try {function() - if ci == "true" then - os.run("xmake -rvD") - else - os.run("xmake -r") - end - end, catch{function(errors) - print(errors) - passed = errors:match("circular modules dependency detected!") - end}} - - assert(passed) -end +import(".test_base", {alias = "test_build"}) function main(t) - if is_subhost("windows") then - local clang = find_tool("clang", {version = true}) - if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then - os.exec("xmake f --toolchain=clang -c --yes") - _build() - os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") - _build() - end - - os.exec("xmake clean -a") - os.exec("xmake f -c --yes") - _build() - elseif is_subhost("msys") then - os.exec("xmake f -c -p mingw --yes") - _build() - elseif is_host("linux") then - local gcc = find_tool("gcc", {version = true}) - if gcc and gcc.version and semver.compare(gcc.version, "11.0") >= 0 then - os.exec("xmake f -c --yes") - _build() - end - local clang = find_tool("clang", {version = true}) - if clang and clang.version and semver.compare(clang.version, "14.0") >= 0 then - os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang -c --yes") - _build() - os.exec("xmake clean -a") - os.exec("xmake f --toolchain=clang --runtimes=c++_shared -c --yes") - _build() - end - end + t:will_raise(test_build, "error: circular modules dependency detected!") end diff --git a/tests/projects/c++/modules/test_base.lua b/tests/projects/c++/modules/test_base.lua index c4252d41c..e6f46764a 100644 --- a/tests/projects/c++/modules/test_base.lua +++ b/tests/projects/c++/modules/test_base.lua @@ -1,9 +1,9 @@ import("lib.detect.find_tool") import("core.base.semver") +import("utils.ci.is_running", {alias = "ci_is_running"}) function _build() - local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() - if ci == "true" then + if ci_is_running() then os.exec("xmake -rvD") else os.exec("xmake -r") diff --git a/tests/projects/c++/modules/test_headerunits.lua b/tests/projects/c++/modules/test_headerunits.lua index ba7fde015..05d7463ea 100644 --- a/tests/projects/c++/modules/test_headerunits.lua +++ b/tests/projects/c++/modules/test_headerunits.lua @@ -1,10 +1,10 @@ import("lib.detect.find_tool") import("core.base.semver") import("detect.sdks.find_vstudio") +import("utils.ci.is_running", {alias = "ci_is_running"}) function _build() - local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() - if ci == "true" then + if ci_is_running() then os.exec("xmake -rvD") else os.exec("xmake -r") diff --git a/tests/projects/c++/modules/test_stdmodules.lua b/tests/projects/c++/modules/test_stdmodules.lua index c408c1d08..b70ff6bbb 100644 --- a/tests/projects/c++/modules/test_stdmodules.lua +++ b/tests/projects/c++/modules/test_stdmodules.lua @@ -1,10 +1,10 @@ import("lib.detect.find_tool") import("core.base.semver") import("core.tool.toolchain") +import("utils.ci.is_running", {alias = "ci_is_running"}) function _build() - local ci = (os.getenv("CI") or os.getenv("GITHUB_ACTIONS") or ""):lower() - if ci == "true" then + if ci_is_running() then os.exec("xmake -rvD") else os.exec("xmake -r") -- cgit v1.3.1 From 2d59e22d8cbf7ec4405f80ad38d6b836cc125875 Mon Sep 17 00:00:00 2001 From: Arthur LAURENT Date: Sat, 3 Feb 2024 17:39:56 +0100 Subject: fix tests --- tests/projects/c++/modules/circular_dependency/test.lua | 2 +- tests/projects/c++/modules/test_base.lua | 4 ++-- tests/projects/c++/modules/test_headerunits.lua | 4 ++-- tests/projects/c++/modules/test_stdmodules.lua | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'tests/projects/c++/modules/circular_dependency/test.lua') diff --git a/tests/projects/c++/modules/circular_dependency/test.lua b/tests/projects/c++/modules/circular_dependency/test.lua index 14f82051a..fc20e469c 100644 --- a/tests/projects/c++/modules/circular_dependency/test.lua +++ b/tests/projects/c++/modules/circular_dependency/test.lua @@ -1,5 +1,5 @@ import(".test_base", {alias = "test_build"}) function main(t) - t:will_raise(test_build, "error: circular modules dependency detected!") + t:will_raise(test_build, "circular modules dependency detected") end diff --git a/tests/projects/c++/modules/test_base.lua b/tests/projects/c++/modules/test_base.lua index e6f46764a..4c972c7b6 100644 --- a/tests/projects/c++/modules/test_base.lua +++ b/tests/projects/c++/modules/test_base.lua @@ -4,9 +4,9 @@ import("utils.ci.is_running", {alias = "ci_is_running"}) function _build() if ci_is_running() then - os.exec("xmake -rvD") + os.run("xmake -rvD") else - os.exec("xmake -r") + os.run("xmake -r") end end diff --git a/tests/projects/c++/modules/test_headerunits.lua b/tests/projects/c++/modules/test_headerunits.lua index 05d7463ea..bb32070cf 100644 --- a/tests/projects/c++/modules/test_headerunits.lua +++ b/tests/projects/c++/modules/test_headerunits.lua @@ -5,9 +5,9 @@ import("utils.ci.is_running", {alias = "ci_is_running"}) function _build() if ci_is_running() then - os.exec("xmake -rvD") + os.run("xmake -rvD") else - os.exec("xmake -r") + os.run("xmake -r") end end diff --git a/tests/projects/c++/modules/test_stdmodules.lua b/tests/projects/c++/modules/test_stdmodules.lua index b70ff6bbb..68a5922ef 100644 --- a/tests/projects/c++/modules/test_stdmodules.lua +++ b/tests/projects/c++/modules/test_stdmodules.lua @@ -5,9 +5,9 @@ import("utils.ci.is_running", {alias = "ci_is_running"}) function _build() if ci_is_running() then - os.exec("xmake -rvD") + os.run("xmake -rvD") else - os.exec("xmake -r") + os.run("xmake -r") end end -- cgit v1.3.1 From 0d72b2ef9a60ee5a56cfc4f2d5d0eb7fc8176084 Mon Sep 17 00:00:00 2001 From: ruki Date: Sun, 4 Feb 2024 09:27:30 +0800 Subject: Update test.lua --- tests/projects/c++/modules/circular_dependency/test.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'tests/projects/c++/modules/circular_dependency/test.lua') diff --git a/tests/projects/c++/modules/circular_dependency/test.lua b/tests/projects/c++/modules/circular_dependency/test.lua index fc20e469c..727e9187e 100644 --- a/tests/projects/c++/modules/circular_dependency/test.lua +++ b/tests/projects/c++/modules/circular_dependency/test.lua @@ -1,5 +1,7 @@ import(".test_base", {alias = "test_build"}) function main(t) - t:will_raise(test_build, "circular modules dependency detected") + if test_build.can_build() then + t:will_raise(test_build, "circular modules dependency detected") + end end -- cgit v1.3.1