GoogleTest#
The $dir_pw_third_party/googletest/
module provides various helpers to
optionally use full upstream GoogleTest/GoogleMock with
pw_unit_test.
Using upstream GoogleTest and GoogleMock#
If you want to use the full upstream GoogleTest/GoogleMock, you must do the following:
Add GoogleTest to your workspace with the following command.
git submodule add https://github.com/google/googletest third_party/googletest
Configure pw_unit_test
to use upstream GoogleTest/GoogleMock.
Set the GN var
dir_pw_third_party_googletest
to the location of the GoogleTest source. If you are using a different version of the upstream GoogleTest, or a different target than//third_party/googletest
, setpw_unit_test_GOOGLETEST_BACKEND
to point to your GoogleTest target instead.Set the GN var
pw_unit_test_MAIN
todir_pigweed + "/third_party/googletest:gmock_main"
.Set the GN var
pw_unit_test_BACKEND
to"//pw_unit_test:googletest"
.
Pigweed unit tests that do not work with upstream GoogleTest can be
disabled by setting enable_if
to
pw_unit_test_BACKEND == "$dir_pw_unit_test:light"
.
Set the
dir_pw_third_party_googletest
to the location of the GoogleTest source.Set the var
pw_unit_test_MAIN
topw_third_party.googletest.gmock_main
.Set the var
pw_unit_test_BACKEND
topw_unit_test.googletest
.
Set the following label flags, either in your target config or on the command line:
//pw_unit_test:backend
to@pigweed//pw_unit_test:googletest
.//pw_unit_test:main
to@com_google_googletest//:gtest_main
.
For example:
bazel test //... \
--@pigweed//pw_unit_test:backend=@pigweed//pw_unit_test:googletest \
--@pigweed//pw_unit_test:main=@com_google_googletest//:gtest_main
Note
Not all unit tests build properly with upstream GoogleTest yet. This is a work in progress.