-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrun_test.sh
executable file
·126 lines (119 loc) · 2.37 KB
/
run_test.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/env bash
# Copyright (c) 2023-2024 Li Shuangquan. All Rights Reserved.
#
# Licensed under the MIT License (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of the License
# at
#
# http://opensource.org/licenses/MIT
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
cd $(dirname "$0") || exit
TEST=ON
MYOSTREAM=OFF
SEPARATE=OFF
NEED_VOLATILE=OFF
UTONLY=""
CPP_VERSION=14
RUN_UNIT_TEST=0
RUN_PERFORMANCE_TEST=0
REBUILD=0
CLEAR=0
while [ "$#" -gt 0 ]; do
case $1 in
-t)
TEST=$2
shift
shift
;;
-ru)
RUN_UNIT_TEST=1
shift
;;
-rp)
RUN_PERFORMANCE_TEST=1
shift
;;
-r)
RUN_UNIT_TEST=1
RUN_PERFORMANCE_TEST=1
shift
;;
-o)
MYOSTREAM=ON
shift
;;
--rebuild)
REBUILD=1
shift
;;
--clear)
CLEAR=1
shift
;;
--separate|-s)
SEPARATE=ON
shift
;;
--volatile|-v)
NEED_VOLATILE=ON
shift
;;
-utonly)
UTONLY=$2
shift
shift
;;
-cpp)
CPP_VERSION=$2
shift
shift
;;
-h)
echo "run_test.sh [-t UNIT/PERF] [-o] [-r|-ru|-rp] [--rebuild] [--clear]"\
"[--separate|-s] [--volatile|-v] [-utonly <file>] [-cpp 14/17/20]"
exit 0
;;
*)
echo "Invalid option '$1'"
echo
exit 1
;;
esac
done
if [ ${REBUILD} -eq 1 ]; then
rm -rf build
fi
mkdir -p build
cd build
cmake .. -DBUILD_TEST=${TEST} \
-DENABLE_MYOSTREAM_WATCH=${MYOSTREAM} \
-DUNIT_TEST_SEPARATE=${SEPARATE} \
-DNEED_VOLATILE=${NEED_VOLATILE} \
-DUTONLY=${UTONLY} \
-DCMAKE_CXX_STANDARD=${CPP_VERSION}
make
if [ $? -eq 0 ]; then
ctest --output-on-failure
if [ ${RUN_UNIT_TEST} -eq 1 ]; then
if [ -n "${UTONLY}" ]; then
./test/unit_test/${UTONLY}
else
./test/unit_test/unit_test
fi
fi
if [ ${RUN_PERFORMANCE_TEST} -eq 1 ]; then
./test/perf_test/perf_test
fi
else
echo
echo "Building Failed!"
fi
if [ ${CLEAR} -eq 1 ]; then
cd ..
rm -rf build
fi