1 | #!/usr/bin/env bash
|
2 | #
|
3 | # Run C++ unit tests.
|
4 | #
|
5 | # Usage:
|
6 | # test/cpp-unit.sh <function name>
|
7 |
|
8 | set -o nounset
|
9 | set -o pipefail
|
10 | set -o errexit
|
11 |
|
12 | source soil/common.sh # find-dir-html
|
13 |
|
14 | all-tests() {
|
15 | asdl/TEST.sh unit
|
16 |
|
17 | core/TEST.sh unit
|
18 |
|
19 | cpp/TEST.sh unit
|
20 |
|
21 | data_lang/TEST.sh unit
|
22 |
|
23 | frontend/TEST.sh unit
|
24 |
|
25 | # uses Ninja to run (cxx, gcalways) variant. Could also run (clang, ubsan),
|
26 | # which finds more bugs.
|
27 | mycpp/TEST.sh test-runtime
|
28 |
|
29 | yaks/TEST.sh unit
|
30 | }
|
31 |
|
32 | soil-run() {
|
33 | ### Hook for soil/worker.sh
|
34 |
|
35 | # Soil only does build/dev.sh minimal, while most devs should do build/dev.sh
|
36 | # all, and can run all-tests by itself
|
37 | cpp/TEST.sh pre-build
|
38 |
|
39 | set +o errexit
|
40 | $0 all-tests
|
41 | local status=$?
|
42 | set -o errexit
|
43 |
|
44 | # Logs in _test/cxx-asan, etc.
|
45 | find-dir-html _test cpp-unit
|
46 |
|
47 | return $status
|
48 | }
|
49 |
|
50 | "$@"
|