summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-11-04 00:41:30 +0800
committerruki <[email protected]>2023-11-04 00:41:30 +0800
commit63654a215803b9fa198d4abeaec9e9acbac7b855 (patch)
treeb6b765e39b0945e888530515acbe3f7cb7ac8a40
parentfac89c711d7678ec6d61f63fa66c5e342dada07c (diff)
improve doctest
-rw-r--r--tests/projects/c++/doctest/tests/test_1.cpp2
-rw-r--r--tests/projects/c++/doctest/tests/test_2.cpp2
-rw-r--r--tests/projects/c++/doctest/xmake.lua18
-rw-r--r--xmake/actions/test/main.lua15
-rw-r--r--xmake/core/project/target.lua1
5 files changed, 26 insertions, 12 deletions
diff --git a/tests/projects/c++/doctest/tests/test_1.cpp b/tests/projects/c++/doctest/tests/test_1.cpp
index 84b726cf2..394238d2b 100644
--- a/tests/projects/c++/doctest/tests/test_1.cpp
+++ b/tests/projects/c++/doctest/tests/test_1.cpp
@@ -1,6 +1,6 @@
#include "doctest/doctest.h"
-int factorial(int number) {
+static int factorial(int number) {
return number <= 1 ? number : factorial(number - 1) * number;
}
diff --git a/tests/projects/c++/doctest/tests/test_2.cpp b/tests/projects/c++/doctest/tests/test_2.cpp
index 8ab727d06..1edd56e49 100644
--- a/tests/projects/c++/doctest/tests/test_2.cpp
+++ b/tests/projects/c++/doctest/tests/test_2.cpp
@@ -1,6 +1,6 @@
#include "doctest/doctest.h"
-int factorial(int number) {
+static int factorial(int number) {
return number <= 1 ? number : factorial(number - 1) * number;
}
diff --git a/tests/projects/c++/doctest/xmake.lua b/tests/projects/c++/doctest/xmake.lua
index b241c784d..17be8d163 100644
--- a/tests/projects/c++/doctest/xmake.lua
+++ b/tests/projects/c++/doctest/xmake.lua
@@ -5,14 +5,12 @@ add_requires("doctest")
target("doctest")
set_kind("binary")
add_files("src/*.cpp")
- add_packages("doctest")
- add_tests("test1", {files = "tests/test_1.cpp",
- remove_files = "src/main.cpp",
- languages = "c++11",
- defines = "DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN"})
- add_tests("test2", {files = "tests/test_2.cpp",
- remove_files = "src/main.cpp",
- languages = "c++11",
- defines = "DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN"})
-
+ for _, testfile in ipairs(os.files("tests/*.cpp")) do
+ add_tests(path.basename(testfile), {
+ files = testfile,
+ remove_files = "src/main.cpp",
+ languages = "c++11",
+ packages = "doctest",
+ defines = "DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN"})
+ end
diff --git a/xmake/actions/test/main.lua b/xmake/actions/test/main.lua
index 3b4b9540c..510c87719 100644
--- a/xmake/actions/test/main.lua
+++ b/xmake/actions/test/main.lua
@@ -359,6 +359,9 @@ function main()
file = path.absolute(file, scriptdir)
file = path.relative(file, os.projectdir())
target_new:add("files", file, {defines = extra.defines,
+ cflags = extra.cflags,
+ cxflags = extra.cxflags,
+ cxxflags = extra.cxxflags,
undefines = extra.undefines,
languages = extra.languages})
project.target_add(target_new)
@@ -368,6 +371,18 @@ function main()
file = path.relative(file, os.projectdir())
target_new:remove("files", file)
end
+ if extra.frameworks then
+ target_new:add("frameworks", extra.frameworks)
+ end
+ if extra.links then
+ target_new:add("links", extra.links)
+ end
+ if extra.syslinks then
+ target_new:add("syslinks", extra.syslinks)
+ end
+ if extra.packages then
+ target_new:add("packages", extra.packages)
+ end
testinfo.target = target_new
end
end
diff --git a/xmake/core/project/target.lua b/xmake/core/project/target.lua
index 32fc41596..3f4a4efc0 100644
--- a/xmake/core/project/target.lua
+++ b/xmake/core/project/target.lua
@@ -276,6 +276,7 @@ function _instance:_invalidate(name)
-- we need to flush the source files cache if target/files are modified, e.g. `target:add("files", "xxx.c")`
if name == "files" then
self._SOURCEFILES = nil
+ self._FILESCONFIG = nil
elseif name == "deps" then
self._DEPS = nil
self._ORDERDEPS = nil