summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNan Zhou <nanzhoumails@gmail.com>2022-10-18 02:03:21 +0300
committerNan Zhou <nanzhoumails@gmail.com>2022-10-18 20:47:21 +0300
commit0ad63df8aa8ab60f74395794d8ffce64c82ee031 (patch)
tree56cf1d6b7b9c5e99bf783282e30a05f38f2ae3d1
parent307386e8e5a18ec24955fc32bee556409a831a83 (diff)
downloadbmcweb-0ad63df8aa8ab60f74395794d8ffce64c82ee031.tar.xz
use multiple test targets
https://gerrit.openbmc.org/c/openbmc/bmcweb/+/57648/8 is unfortunately rejected by some CI issues where # lines covered by unit test is not consistent. Thus, this commit is written to bypass subdir, but still addes the ability to run a test for a specific component. This speeds up iteration when developers are working on a subset of the project. For example, we can compile and run the query_param_test separately. The speed up will be more obvious when we have better solution to deal with the current headers and inline functions in the future. ``` meson test query_param_test -C b ninja: Entering directory `/usr/local/google/home/nanzhou/Desktop/bmcweb/b' ninja: no work to do. 1/1 query_param_test OK 0.01s Ok: 1 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0 ``` The compile time increases a little bit. This doesn't matter too much given tests are disabled in Yocto builds. ``` [hi on] nanzhou@nanzhou:~/Desktop/bmcweb$ time ninja test -C b ninja: Entering directory `b' [49/50] Running all tests. 1/1 bmcweb_unit_test OK 0.07s Ok: 1 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0 Full log written to /usr/local/google/home/nanzhou/Desktop/bmcweb/b/meson-logs/testlog.txt real 1m56.361s user 12m11.587s sys 1m15.924s [hi on] nanzhou@nanzhou:~/Desktop/bmcweb$ time ninja test -C b ninja: Entering directory `b' [247/248] Running all tests. 1/23 crow_getroutes_test OK 0.34s 2/23 router_test OK 0.31s 3/23 utility_test OK 0.29s 4/23 dbus_utility_test OK 0.28s 5/23 google_service_root_test OK 0.27s 6/23 http_utility_test OK 0.26s 7/23 human_sort_test OK 0.24s 8/23 multipart_test OK 0.21s 9/23 openbmc_dbus_rest_test OK 0.20s 10/23 privileges_test OK 0.18s 11/23 registries_test OK 0.17s 12/23 hex_utils_test OK 0.16s 13/23 ip_utils_test OK 0.15s 14/23 json_utils_test OK 0.15s 15/23 query_param_test OK 0.13s 16/23 stl_utils_test OK 0.12s 17/23 chassis_test OK 0.10s 18/23 service_root_test OK 0.04s 19/23 thermal_subsystem_test OK 0.03s 20/23 configfile_test OK 0.23s 21/23 lock_test OK 0.22s 22/23 time_utils_test OK 0.11s 23/23 log_services_dump_test OK 0.07s Ok: 23 Expected Fail: 0 Fail: 0 Unexpected Pass: 0 Skipped: 0 Timeout: 0 Full log written to /usr/local/google/home/nanzhou/Desktop/bmcweb/b/meson-logs/testlog.txt real 2m8.792s user 29m15.844s sys 3m10.264s ``` Signed-off-by: Nan Zhou <nanzhoumails@gmail.com> Change-Id: I6f763173c1e7de96ab757673fb5ed0a73e4532f5
-rw-r--r--meson.build33
1 files changed, 18 insertions, 15 deletions
diff --git a/meson.build b/meson.build
index 1024761fbc..3e45e822f4 100644
--- a/meson.build
+++ b/meson.build
@@ -334,8 +334,9 @@ subdir('config')
bmcweb_dependencies += conf_h_dep
# Source files
+fs = import('fs')
-srcfiles_bmcweb = [
+srcfiles_bmcweb = files(
'redfish-core/src/error_messages.cpp',
'redfish-core/src/utils/json_utils.cpp',
'src/boost_asio_ssl.cpp',
@@ -343,7 +344,7 @@ srcfiles_bmcweb = [
'src/boost_beast.cpp',
'src/boost_url.cpp',
'src/dbus_singleton.cpp',
-]
+)
# Generate the bmcweb executable
executable(
@@ -356,7 +357,7 @@ executable(
install_dir:bindir
)
-srcfiles_unittest = [
+srcfiles_unittest = files(
'test/http/crow_getroutes_test.cpp',
'test/http/router_test.cpp',
'test/http/utility_test.cpp',
@@ -380,19 +381,21 @@ srcfiles_unittest = [
'test/redfish-core/lib/log_services_dump_test.cpp',
'test/redfish-core/lib/service_root_test.cpp',
'test/redfish-core/lib/thermal_subsystem_test.cpp',
-]
+)
if(get_option('tests').enabled())
# generate the test executable
- ut_bin = executable(
- 'bmcweb_unit_test',
- srcfiles_unittest + srcfiles_bmcweb,
- include_directories : incdir,
- install_dir: bindir,
- dependencies: bmcweb_dependencies + [
- gtest,
- gmock,
- ]
- )
- test('bmcweb_unit_test', ut_bin)
+ foreach test_src : srcfiles_unittest
+ test_bin = executable(
+ fs.stem(test_src),
+ srcfiles_bmcweb + test_src,
+ include_directories : incdir,
+ install_dir: bindir,
+ dependencies: bmcweb_dependencies + [
+ gtest,
+ gmock,
+ ]
+ )
+ test(fs.stem(test_src), test_bin)
+ endforeach
endif