New target: `run_unit_tests`. `run_tests` behaves like before. `run_unit_test` skips the SSL tests but runs all else. Before: - run_tests after clean: 479.89s user 216.00s system 465% cpu 2:29.55 total - run_tests only: 263.80s user 155.95s system 416% cpu 1:40.75 total After: - run_tests after clean: 475.84s user 212.90s system 481% cpu 2:23.13 total - run_tests only: 262.45s user 147.73s system 392% cpu 1:44.60 total - run_unit_tests after clean: 384.36s user 65.90s system 578% cpu 1:17.87 total - run_unit_tests only: 172.90s user 5.95s system 556% cpu 32.151 total Marginal improvements even for run_tests because now the SSL test-exclusive parts are compiled in parallel with running the pregenerate check. For comparison, `bazel test --nocache_test_results :crypto_test :ssl_test :decrepit_test :pki_test`: - tests after clean: 1:35.73 total (slower than `run_unit_tests`) - tests only: 31.040 total (comparable to `run_unit_tests`, but lacks pregenerate and Go tests) Change-Id: I8764f318f8373b5d108b4e1cced4627c6a6a6964 Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/99407 Reviewed-by: Xiangfei Ding <xfding@google.com> Commit-Queue: Rudolf Polzer <rpolzer@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt index bab3d89..60d575c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -821,7 +821,8 @@ if(PROJECT_IS_TOP_LEVEL AND NOT CMAKE_GENERATOR MATCHES "^Visual Studio ") if(GO_EXECUTABLE) add_custom_target( - run_tests + run_unit_tests + COMMAND ${CMAKE_COMMAND} -E echo COMMAND ${CMAKE_COMMAND} -E echo "Checking pregenerated files" COMMAND ${GO_EXECUTABLE} run ./util/pregenerate -check COMMAND ${CMAKE_COMMAND} -E echo @@ -831,16 +832,25 @@ COMMAND ${CMAKE_COMMAND} -E echo "Running unit tests" COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir ${CMAKE_CURRENT_BINARY_DIR} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS boringssl_all_tests fips_specific_tests_if_any + USES_TERMINAL) + add_custom_target( + run_tests COMMAND ${CMAKE_COMMAND} -E echo COMMAND ${CMAKE_COMMAND} -E echo "Running SSL tests" COMMAND cd ssl/test/runner && ${GO_EXECUTABLE} test -shim-path $<TARGET_FILE:bssl_shim> ${HANDSHAKER_ARGS} ${RUNNER_ARGS} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS boringssl_all_tests bssl_shim handshaker fips_specific_tests_if_any + DEPENDS run_unit_tests bssl_shim handshaker USES_TERMINAL) else() add_custom_target( + run_unit_tests + COMMAND ${CMAKE_COMMAND} -E echo "Running tests requires Go" + COMMAND ${CMAKE_COMMAND} -E false) + add_custom_target( run_tests COMMAND ${CMAKE_COMMAND} -E echo "Running tests requires Go" COMMAND ${CMAKE_COMMAND} -E false)