diff options
author | Nan Zhou <nanzhoumails@gmail.com> | 2022-10-18 02:03:21 +0300 |
---|---|---|
committer | Nan Zhou <nanzhoumails@gmail.com> | 2022-10-18 20:47:21 +0300 |
commit | 0ad63df8aa8ab60f74395794d8ffce64c82ee031 (patch) | |
tree | 56cf1d6b7b9c5e99bf783282e30a05f38f2ae3d1 | |
parent | 307386e8e5a18ec24955fc32bee556409a831a83 (diff) | |
download | bmcweb-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.build | 33 |
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 |