8
8
9
9
BASH_EXISTS := $(shell which bash)
10
10
SHELL := $(shell which bash)
11
- include python .mk
11
+ include common .mk
12
12
13
13
CLEAN_FILES = # deliberately empty, so we can append below.
14
14
CFLAGS += ${EXTRA_CFLAGS}
@@ -842,18 +842,6 @@ coverage: clean
842
842
# Delete intermediate files
843
843
$(FIND ) . -type f \( -name " *.gcda" -o -name " *.gcno" \) -exec rm -f {} \;
844
844
845
- ifneq (,$(filter check parallel_check,$(MAKECMDGOALS ) ) ,)
846
- # Use /dev/shm if it has the sticky bit set (otherwise, /tmp),
847
- # and create a randomly-named rocksdb.XXXX directory therein.
848
- # We'll use that directory in the "make check" rules.
849
- ifeq ($(TMPD ) ,)
850
- TMPDIR := $(shell echo $${TMPDIR:-/tmp})
851
- TMPD := $(shell f=/dev/shm; test -k $$f || f=$(TMPDIR ) ; \
852
- perl -le 'use File::Temp "tempdir";' \
853
- -e 'print tempdir("'$$f'/rocksdb.XXXX", CLEANUP => 0) ')
854
- endif
855
- endif
856
-
857
845
# Run all tests in parallel, accumulating per-test logs in t/log-*.
858
846
#
859
847
# Each t/run-* file is a tiny generated bourne shell script that invokes one of
@@ -893,7 +881,7 @@ $(parallel_tests):
893
881
TEST_SCRIPT=t/run-$$TEST_BINARY-$${TEST_NAME//\//-}; \
894
882
printf '%s\n' \
895
883
'# !/bin/sh' \
896
- "d=\$(TMPD )$$TEST_SCRIPT" \
884
+ "d=\$(TEST_TMPDIR )$$TEST_SCRIPT" \
897
885
'mkdir -p $$d' \
898
886
"TEST_TMPDIR=\$$d $(DRIVER) ./$$TEST_BINARY --gtest_filter=$$TEST_NAME" \
899
887
> $$TEST_SCRIPT; \
@@ -953,7 +941,6 @@ endif
953
941
954
942
.PHONY : check_0
955
943
check_0 :
956
- $(AM_V_GEN ) export TEST_TMPDIR=$(TMPD ) ; \
957
944
printf ' %s\n' ' ' \
958
945
' To monitor subtest <duration,pass/fail,name>,' \
959
946
' run "make watch-log" in a separate window' ' ' ; \
@@ -964,7 +951,8 @@ check_0:
964
951
| $(prioritize_long_running_tests ) \
965
952
| grep -E ' $(tests-regexp)' \
966
953
| grep -E -v ' $(EXCLUDE_TESTS_REGEX)' \
967
- | build_tools/gnu_parallel -j$(J ) --plain --joblog=LOG --eta --gnu ' {} $(parallel_redir)' ; \
954
+ | build_tools/gnu_parallel -j$(J ) --plain --joblog=LOG --eta --gnu \
955
+ --tmpdir=$(TEST_TMPDIR ) ' {} $(parallel_redir)' ; \
968
956
parallel_retcode=$$? ; \
969
957
awk ' { if ($$7 != 0 || $$8 != 0) { if ($$7 == "Exitval") { h = $$0; } else { if (!f) print h; print; f = 1 } } } END { if(f) exit 1; }' < LOG ; \
970
958
awk_retcode=$$? ; \
@@ -975,7 +963,6 @@ valgrind-exclude-regexp = InlineSkipTest.ConcurrentInsert|TransactionStressTest.
975
963
.PHONY : valgrind_check_0
976
964
valgrind_check_0 : test_log_prefix := valgrind_
977
965
valgrind_check_0 :
978
- $(AM_V_GEN ) export TEST_TMPDIR=$(TMPD ) ; \
979
966
printf ' %s\n' ' ' \
980
967
' To monitor subtest <duration,pass/fail,name>,' \
981
968
' run "make watch-log" in a separate window' ' ' ; \
@@ -987,10 +974,11 @@ valgrind_check_0:
987
974
| grep -E ' $(tests-regexp)' \
988
975
| grep -E -v ' $(valgrind-exclude-regexp)' \
989
976
| build_tools/gnu_parallel -j$(J ) --plain --joblog=LOG --eta --gnu \
990
- ' (if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
977
+ --tmpdir=$(TEST_TMPDIR ) \
978
+ ' (if [[ "{}" == "./"* ]] ; then $(DRIVER) {}; else {}; fi) \
991
979
$(parallel_redir ) ' \
992
980
993
- CLEAN_FILES += t LOG $(TMPD )
981
+ CLEAN_FILES += t LOG $(TEST_TMPDIR )
994
982
995
983
# When running parallel "make check", you can monitor its progress
996
984
# from another window.
@@ -1013,12 +1001,12 @@ check: all
1013
1001
&& (build_tools/gnu_parallel --gnu --help 2> /dev/null) | \
1014
1002
grep -q ' GNU Parallel' ; \
1015
1003
then \
1016
- $(MAKE ) T=" $$ t" TMPD= $( TMPD ) check_0; \
1004
+ $(MAKE ) T=" $$ t" check_0; \
1017
1005
else \
1018
1006
for t in $( TESTS) ; do \
1019
1007
echo " ===== Running $$ t (` date` )" ; ./$$ t || exit 1; done ; \
1020
1008
fi
1021
- rm -rf $(TMPD )
1009
+ rm -rf $(TEST_TMPDIR )
1022
1010
ifneq ($(PLATFORM ) , OS_AIX)
1023
1011
$(PYTHON) tools/check_all_python.py
1024
1012
ifeq ($(filter -DROCKSDB_LITE,$(OPT ) ) ,)
@@ -1115,11 +1103,11 @@ valgrind_test_some:
1115
1103
valgrind_check : $(TESTS )
1116
1104
$(MAKE ) DRIVER=" $( VALGRIND_VER) $( VALGRIND_OPTS) " gen_parallel_tests
1117
1105
$(AM_V_GEN ) if test " $( J) " ! = 1 \
1118
- && (build_tools/gnu_parallel --gnu --help 2> /dev/null) | \
1106
+ && (build_tools/gnu_parallel --gnu --help 2> /dev/null) | \
1119
1107
grep -q ' GNU Parallel' ; \
1120
1108
then \
1121
- $(MAKE) TMPD=$(TMPD) \
1122
- DRIVER ="$(VALGRIND_VER ) $(VALGRIND_OPTS ) " valgrind_check_0; \
1109
+ $(MAKE ) \
1110
+ DRIVER=" $( VALGRIND_VER) $( VALGRIND_OPTS) " valgrind_check_0; \
1123
1111
else \
1124
1112
for t in $( filter-out %skiplist_test options_settable_test,$( TESTS) ) ; do \
1125
1113
$(VALGRIND_VER ) $(VALGRIND_OPTS ) ./$$ t; \
@@ -1139,52 +1127,13 @@ valgrind_check_some: $(ROCKSDBTESTS_SUBSET)
1139
1127
fi ; \
1140
1128
done
1141
1129
1142
- ifneq ($(PAR_TEST ) ,)
1143
- parloop :
1144
- ret_bad=0; \
1145
- for t in $( PAR_TEST) ; do \
1146
- echo " ===== Running $$ t in parallel $( NUM_PAR) (` date` )" ; \
1147
- if [ $( db_test) -eq 1 ]; then \
1148
- seq $(J ) | v=" $$ t" build_tools/gnu_parallel --gnu --plain ' s=$(TMPD)/rdb-{}; export TEST_TMPDIR=$$s;' \
1149
- ' timeout 2m ./db_test --gtest_filter=$$v >> $$s/log-{} 2>1' ; \
1150
- else\
1151
- seq $(J ) | v=" ./$$ t" build_tools/gnu_parallel --gnu --plain ' s=$(TMPD)/rdb-{};' \
1152
- ' export TEST_TMPDIR=$$s; timeout 10m $$v >> $$s/log-{} 2>1' ; \
1153
- fi ; \
1154
- ret_code=$$? ; \
1155
- if [ $$ ret_code -ne 0 ]; then \
1156
- ret_bad=$$ ret_code; \
1157
- echo $$ t exited with $$ ret_code; \
1158
- fi ; \
1159
- done ; \
1160
- exit $$ ret_bad;
1161
- endif
1162
-
1163
1130
test_names = \
1164
1131
./db_test --gtest_list_tests \
1165
1132
| perl -n \
1166
1133
-e 's/ *\# .*//;' \
1167
1134
-e '/^(\s*)(\S+)/; !$$1 and do {$$p=$$2; break};' \
1168
1135
-e 'print qq! $$p$$2!'
1169
1136
1170
- parallel_check : $(TESTS )
1171
- $(AM_V_GEN ) if test " $( J) " > 1 \
1172
- && (build_tools/gnu_parallel --gnu --help 2> /dev/null) | \
1173
- grep -q ' GNU Parallel' ; \
1174
- then \
1175
- echo Running in parallel $(J ) ; \
1176
- else \
1177
- echo " Need to have GNU Parallel and J > 1" ; exit 1; \
1178
- fi ; \
1179
- ret_bad=0; \
1180
- echo $(J ) ; \
1181
- echo Test Dir: $(TMPD ) ; \
1182
- seq $(J) | build_tools/gnu_parallel --gnu --plain 's=$(TMPD)/rdb-{}; rm -rf $$s; mkdir $$s'; \
1183
- $(MAKE) PAR_TEST="$(shell $(test_names))" TMPD=$(TMPD) \
1184
- J=$(J) db_test=1 parloop; \
1185
- $(MAKE) PAR_TEST="$(filter-out db_test, $(TESTS))" \
1186
- TMPD=$(TMPD) J=$(J) db_test=0 parloop;
1187
-
1188
1137
analyze : clean
1189
1138
USE_CLANG=1 $(MAKE ) analyze_incremental
1190
1139
0 commit comments