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)