From 9fef573236ea79c3d119556a0882688a7c2dcbb0 Mon Sep 17 00:00:00 2001 From: weiyu Date: Wed, 16 Dec 2020 00:41:37 -0800 Subject: [PATCH 1/1] update scripts --- cdschecker_modified_benchmarks/test_all.sh | 1 + mabain/examples/Makefile | 5 ++++- .../examples/mb_multi_thread_insert_test.cpp | 18 +++++++++++++----- tsan11-missingbug/test.sh | 2 +- tsan11-missingbug/test_all.sh | 1 + 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/cdschecker_modified_benchmarks/test_all.sh b/cdschecker_modified_benchmarks/test_all.sh index a7200eb..a22d70e 100755 --- a/cdschecker_modified_benchmarks/test_all.sh +++ b/cdschecker_modified_benchmarks/test_all.sh @@ -4,6 +4,7 @@ set -u # Paul: skip `spsc-queue` as it deadlocks. +echo "** Test CDSChecker data structure benchmarks **" for t in barrier chase-lev-deque dekker-fences linuxrwlocks mcs-lock mpmc-queue ms-queue; do cd $t echo -n "$t " diff --git a/mabain/examples/Makefile b/mabain/examples/Makefile index e279ae3..564e42d 100644 --- a/mabain/examples/Makefile +++ b/mabain/examples/Makefile @@ -6,7 +6,7 @@ CPP=../../clang++ all: mb_insert_test mb_lookup_test mb_longest_prefix_test \ mb_remove_test mb_iterator_test mb_multi_proc_test \ - mb_rc_test mb_multi_thread_insert_test mb_memory_only_test + mb_rc_test mb_multi_thread_insert_test mb_multi_thread_insert_test_assert mb_memory_only_test CFLAGS = -I. -I$(MABAIN_INSTALL_DIR)/include -Wall -Werror -g -O0 -c -std=c++11 LDFLAGS = -lpthread -lcrypto -L$(MABAIN_INSTALL_DIR) -lmabain @@ -35,6 +35,9 @@ mb_rc_test: mb_rc_test.cpp mb_multi_thread_insert_test: mb_multi_thread_insert_test.cpp $(CPP) $(CFLAGS) mb_multi_thread_insert_test.cpp $(CPP) mb_multi_thread_insert_test.o -o mb_multi_thread_insert_test $(LDFLAGS) +mb_multi_thread_insert_test_assert: mb_multi_thread_insert_test.cpp + $(CPP) $(CFLAGS) -D ASSERT_TEST mb_multi_thread_insert_test.cpp + $(CPP) mb_multi_thread_insert_test.o -o mb_multi_thread_insert_test_assert $(LDFLAGS) mb_memory_only_test: mb_memory_only_test.cpp $(CPP) $(CFLAGS) mb_memory_only_test.cpp $(CPP) mb_memory_only_test.o -o mb_memory_only_test $(LDFLAGS) diff --git a/mabain/examples/mb_multi_thread_insert_test.cpp b/mabain/examples/mb_multi_thread_insert_test.cpp index 0d790b9..62a1853 100644 --- a/mabain/examples/mb_multi_thread_insert_test.cpp +++ b/mabain/examples/mb_multi_thread_insert_test.cpp @@ -26,6 +26,8 @@ #include "test_key.h" +//#define ASSERT_TEST + using namespace mabain; static int max_key = 100000; @@ -45,8 +47,11 @@ static void* insert_thread(void *arg) curr_key = write_index.fetch_add(1, std::memory_order_release); kv = mkey.get_key(curr_key); if(curr_key < max_key) { - db_r->Add(kv, kv); -// assert(db_r->Add(kv, kv) == MBError::SUCCESS); +#ifdef ASSERT_TEST + assert(db_r->Add(kv, kv) == MBError::SUCCESS); +#else + db_r->Add(kv, kv); +#endif } else { stop_processing = true; break; @@ -80,9 +85,12 @@ static void Lookup() for(int i = 0; i < max_key; i++) { kv = mkey.get_key(i); - db_r->Find(kv, mbd); -// assert(db_r->Find(kv, mbd) == MBError::SUCCESS); -// assert(kv == std::string((const char *)mbd.buff, mbd.data_len)); +#ifdef ASSERT_TEST + assert(db_r->Find(kv, mbd) == MBError::SUCCESS); + assert(kv == std::string((const char *)mbd.buff, mbd.data_len)); +#else + db_r->Find(kv, mbd); +#endif } db_r->Close(); delete db_r; diff --git a/tsan11-missingbug/test.sh b/tsan11-missingbug/test.sh index 2bc4c74..0e50dd5 100755 --- a/tsan11-missingbug/test.sh +++ b/tsan11-missingbug/test.sh @@ -25,4 +25,4 @@ done AVG_ASSERT=$(echo "${COUNT_ASSERT} * 100 / ${TOTAL_RUN}" | bc -l | xargs printf "%.1f") # -3 / log(1 - p) < n -echo "Runs: $TOTAL_RUN | Assertions: $COUNT_ASSERT | Total time: ${COUNT_TIME}ms | Assert rate: ${AVG_ASSERT}%" +echo "Runs: $TOTAL_RUN | Assertions: $COUNT_ASSERT | Total time: ${COUNT_TIME}ms | Assertion rate: ${AVG_ASSERT}%" diff --git a/tsan11-missingbug/test_all.sh b/tsan11-missingbug/test_all.sh index 81633f7..c390d47 100755 --- a/tsan11-missingbug/test_all.sh +++ b/tsan11-missingbug/test_all.sh @@ -2,6 +2,7 @@ set -e set -u +echo "** Assertion test for broken data structures **" for t in seqlock-test rwlock-test; do echo -n "$t " ./test.sh ./$t -- 2.34.1