Module Name: src
Committed By: kamil
Date: Mon Sep 14 15:17:53 UTC 2020
Modified Files:
src/tests/usr.bin/c++: t_tsan_data_race.sh
t_tsan_heap_use_after_free.sh t_tsan_lock_order_inversion.sh
t_tsan_locked_mutex_destroy.sh t_tsan_signal_errno.sh
t_tsan_thread_leak.sh t_tsan_vptr_race.sh
src/tests/usr.bin/cc: t_tsan_data_race.sh t_tsan_heap_use_after_free.sh
t_tsan_lock_order_inversion.sh t_tsan_locked_mutex_destroy.sh
t_tsan_signal_errno.sh t_tsan_thread_leak.sh
Log Message:
Enable TSan tests for GCC and >32bit address space environments
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/c++/t_tsan_data_race.sh \
src/tests/usr.bin/c++/t_tsan_heap_use_after_free.sh \
src/tests/usr.bin/c++/t_tsan_lock_order_inversion.sh \
src/tests/usr.bin/c++/t_tsan_locked_mutex_destroy.sh \
src/tests/usr.bin/c++/t_tsan_signal_errno.sh \
src/tests/usr.bin/c++/t_tsan_thread_leak.sh \
src/tests/usr.bin/c++/t_tsan_vptr_race.sh
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/cc/t_tsan_data_race.sh \
src/tests/usr.bin/cc/t_tsan_heap_use_after_free.sh \
src/tests/usr.bin/cc/t_tsan_lock_order_inversion.sh \
src/tests/usr.bin/cc/t_tsan_locked_mutex_destroy.sh \
src/tests/usr.bin/cc/t_tsan_signal_errno.sh \
src/tests/usr.bin/cc/t_tsan_thread_leak.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/usr.bin/c++/t_tsan_data_race.sh
diff -u src/tests/usr.bin/c++/t_tsan_data_race.sh:1.2 src/tests/usr.bin/c++/t_tsan_data_race.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_data_race.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_data_race.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/c++/t_tsan_heap_use_after_free.sh
diff -u src/tests/usr.bin/c++/t_tsan_heap_use_after_free.sh:1.2 src/tests/usr.bin/c++/t_tsan_heap_use_after_free.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_heap_use_after_free.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_heap_use_after_free.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/c++/t_tsan_lock_order_inversion.sh
diff -u src/tests/usr.bin/c++/t_tsan_lock_order_inversion.sh:1.2 src/tests/usr.bin/c++/t_tsan_lock_order_inversion.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_lock_order_inversion.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_lock_order_inversion.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/c++/t_tsan_locked_mutex_destroy.sh
diff -u src/tests/usr.bin/c++/t_tsan_locked_mutex_destroy.sh:1.2 src/tests/usr.bin/c++/t_tsan_locked_mutex_destroy.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_locked_mutex_destroy.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_locked_mutex_destroy.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/c++/t_tsan_signal_errno.sh
diff -u src/tests/usr.bin/c++/t_tsan_signal_errno.sh:1.2 src/tests/usr.bin/c++/t_tsan_signal_errno.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_signal_errno.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_signal_errno.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/c++/t_tsan_thread_leak.sh
diff -u src/tests/usr.bin/c++/t_tsan_thread_leak.sh:1.2 src/tests/usr.bin/c++/t_tsan_thread_leak.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_thread_leak.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_thread_leak.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/c++/t_tsan_vptr_race.sh
diff -u src/tests/usr.bin/c++/t_tsan_vptr_race.sh:1.2 src/tests/usr.bin/c++/t_tsan_vptr_race.sh:1.3
--- src/tests/usr.bin/c++/t_tsan_vptr_race.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/c++/t_tsan_vptr_race.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v c++ >/dev/null 2>&1 && \
- ! echo __clang__ | c++ -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | c++ -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/cc/t_tsan_data_race.sh
diff -u src/tests/usr.bin/cc/t_tsan_data_race.sh:1.2 src/tests/usr.bin/cc/t_tsan_data_race.sh:1.3
--- src/tests/usr.bin/cc/t_tsan_data_race.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/cc/t_tsan_data_race.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v cc >/dev/null 2>&1 && \
- ! echo __clang__ | cc -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | cc -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/cc/t_tsan_heap_use_after_free.sh
diff -u src/tests/usr.bin/cc/t_tsan_heap_use_after_free.sh:1.2 src/tests/usr.bin/cc/t_tsan_heap_use_after_free.sh:1.3
--- src/tests/usr.bin/cc/t_tsan_heap_use_after_free.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/cc/t_tsan_heap_use_after_free.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v cc >/dev/null 2>&1 && \
- ! echo __clang__ | cc -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | cc -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/cc/t_tsan_lock_order_inversion.sh
diff -u src/tests/usr.bin/cc/t_tsan_lock_order_inversion.sh:1.2 src/tests/usr.bin/cc/t_tsan_lock_order_inversion.sh:1.3
--- src/tests/usr.bin/cc/t_tsan_lock_order_inversion.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/cc/t_tsan_lock_order_inversion.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v cc >/dev/null 2>&1 && \
- ! echo __clang__ | cc -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | cc -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/cc/t_tsan_locked_mutex_destroy.sh
diff -u src/tests/usr.bin/cc/t_tsan_locked_mutex_destroy.sh:1.2 src/tests/usr.bin/cc/t_tsan_locked_mutex_destroy.sh:1.3
--- src/tests/usr.bin/cc/t_tsan_locked_mutex_destroy.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/cc/t_tsan_locked_mutex_destroy.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v cc >/dev/null 2>&1 && \
- ! echo __clang__ | cc -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | cc -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/cc/t_tsan_signal_errno.sh
diff -u src/tests/usr.bin/cc/t_tsan_signal_errno.sh:1.2 src/tests/usr.bin/cc/t_tsan_signal_errno.sh:1.3
--- src/tests/usr.bin/cc/t_tsan_signal_errno.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/cc/t_tsan_signal_errno.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v cc >/dev/null 2>&1 && \
- ! echo __clang__ | cc -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | cc -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}
Index: src/tests/usr.bin/cc/t_tsan_thread_leak.sh
diff -u src/tests/usr.bin/cc/t_tsan_thread_leak.sh:1.2 src/tests/usr.bin/cc/t_tsan_thread_leak.sh:1.3
--- src/tests/usr.bin/cc/t_tsan_thread_leak.sh:1.2 Fri Aug 23 06:39:54 2019
+++ src/tests/usr.bin/cc/t_tsan_thread_leak.sh Mon Sep 14 15:17:53 2020
@@ -29,12 +29,16 @@
test_target()
{
SUPPORT='n'
- if uname -m | grep -q "amd64" && command -v cc >/dev/null 2>&1 && \
- ! echo __clang__ | cc -E - | grep -q __clang__; then
- # only clang with major version newer than 7 is supported
- CLANG_MAJOR=`echo __clang_major__ | cc -E - | grep -o '^[[:digit:]]'`
- if [ "$CLANG_MAJOR" -ge "7" ]; then
- SUPPORT='y'
+ # Detect address space larger than 32 bits
+ maxaddress=`sysctl vm.maxaddress|awk '{print $3}'`
+ if [ $maxaddress -gt 4294967295 ]; then
+ if command -v cc >/dev/null 2>&1; then
+ if ! echo __clang__ | cc -E - | grep -q __clang__; then
+ SUPPORT='y'
+ elif ! cc -v 2>&1 | awk '/gcc version/{print $3}' | \
+ awk -F '.' '($0+0) > 9 {exit 1}'; then
+ SUPPORT='y'
+ fi
fi
fi
}