Merge pull request #40720 from Xrayez/modules-tests
Enable support for C++ modules tests
This commit is contained in:
commit
b35be146da
|
@ -1,10 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
Import("env")
|
|
||||||
|
|
||||||
import modules_builders
|
import modules_builders
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
Import("env")
|
||||||
|
|
||||||
env_modules = env.Clone()
|
env_modules = env.Clone()
|
||||||
|
|
||||||
Export("env_modules")
|
Export("env_modules")
|
||||||
|
@ -12,6 +12,15 @@ Export("env_modules")
|
||||||
# Header with MODULE_*_ENABLED defines.
|
# Header with MODULE_*_ENABLED defines.
|
||||||
env.CommandNoCache("modules_enabled.gen.h", Value(env.module_list), modules_builders.generate_modules_enabled)
|
env.CommandNoCache("modules_enabled.gen.h", Value(env.module_list), modules_builders.generate_modules_enabled)
|
||||||
|
|
||||||
|
# Header to be included in `tests/test_main.cpp` to run module-specific tests.
|
||||||
|
if env["tests"]:
|
||||||
|
env.CommandNoCache(
|
||||||
|
"modules_tests.gen.h",
|
||||||
|
Value(env.module_list),
|
||||||
|
Action(modules_builders.generate_modules_tests, "Generating modules tests header."),
|
||||||
|
)
|
||||||
|
env.AlwaysBuild("modules_tests.gen.h")
|
||||||
|
|
||||||
vs_sources = []
|
vs_sources = []
|
||||||
# libmodule_<name>.a for each active module.
|
# libmodule_<name>.a for each active module.
|
||||||
for name, path in env.module_list.items():
|
for name, path in env.module_list.items():
|
||||||
|
|
|
@ -12,5 +12,16 @@ def generate_modules_enabled(target, source, env):
|
||||||
f.write("#define %s\n" % ("MODULE_" + module.upper() + "_ENABLED"))
|
f.write("#define %s\n" % ("MODULE_" + module.upper() + "_ENABLED"))
|
||||||
|
|
||||||
|
|
||||||
|
def generate_modules_tests(target, source, env):
|
||||||
|
import os
|
||||||
|
import glob
|
||||||
|
|
||||||
|
with open(target[0].path, "w") as f:
|
||||||
|
for name, path in env.module_list.items():
|
||||||
|
headers = glob.glob(os.path.join(path, "tests", "*.h"))
|
||||||
|
for h in headers:
|
||||||
|
f.write('#include "%s"\n' % (os.path.normpath(h)))
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
subprocess_main(globals())
|
subprocess_main(globals())
|
||||||
|
|
|
@ -49,6 +49,8 @@
|
||||||
#include "test_string.h"
|
#include "test_string.h"
|
||||||
#include "test_validate_testing.h"
|
#include "test_validate_testing.h"
|
||||||
|
|
||||||
|
#include "modules/modules_tests.gen.h"
|
||||||
|
|
||||||
#include "thirdparty/doctest/doctest.h"
|
#include "thirdparty/doctest/doctest.h"
|
||||||
|
|
||||||
const char **tests_get_names() {
|
const char **tests_get_names() {
|
||||||
|
|
Loading…
Reference in New Issue