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 }