Author: marshall
Date: Tue Mar 26 10:28:33 2013
New Revision: 178029

URL: http://llvm.org/viewvc/llvm-project?rev=178029&view=rev
Log:
Fixed race conditions in thread tests; exposed by UBSan

Modified:
    libcxx/trunk/test/testit
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.algorithm/swap.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/copy.fail.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/move.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/copy.fail.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/move.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.destr/dtor.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/get_id.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/joinable.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp
    
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/swap.pass.cpp

Modified: libcxx/trunk/test/testit
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/testit?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- libcxx/trunk/test/testit (original)
+++ libcxx/trunk/test/testit Tue Mar 26 10:28:33 2013
@@ -88,6 +88,10 @@ function afunc
        if (ls *.pass.cpp &> /dev/null)
        then
                for FILE in $(ls *.pass.cpp); do
+            if [ "$VERBOSE" ]
+            then
+               echo "Running test: " $FILE
+            fi
                        if $CC $OPTIONS $HEADER_INCLUDE $SOURCE_LIB $FILE $LIBS 
-o ./$TEST_EXE
                        then
                                if ./$TEST_EXE

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.algorithm/swap.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.algorithm/swap.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.algorithm/swap.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.algorithm/swap.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/copy.fail.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/copy.fail.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/copy.fail.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/copy.fail.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/move.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/move.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/move.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.assign/move.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,14 +32,14 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 
     void operator()(int i, double j)
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         assert(i == 5);
         assert(j == 5.5);
         op_run = true;

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/copy.fail.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/copy.fail.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/copy.fail.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/copy.fail.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,14 +32,14 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 
     void operator()(int i, double j)
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         assert(i == 5);
         assert(j == 5.5);
         op_run = true;

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/move.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/move.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/move.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.constr/move.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,14 +32,14 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 
     void operator()(int i, double j)
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         assert(i == 5);
         assert(j == 5.5);
         op_run = true;

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.destr/dtor.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.destr/dtor.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.destr/dtor.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.destr/dtor.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/detach.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/get_id.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/get_id.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/get_id.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/get_id.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/joinable.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/joinable.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/joinable.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/joinable.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/native_handle.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };

Modified: 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/swap.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/swap.pass.cpp?rev=178029&r1=178028&r2=178029&view=diff
==============================================================================
--- 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/swap.pass.cpp
 (original)
+++ 
libcxx/trunk/test/thread/thread.threads/thread.thread.class/thread.thread.member/swap.pass.cpp
 Tue Mar 26 10:28:33 2013
@@ -32,7 +32,7 @@ public:
     void operator()()
     {
         assert(alive_ == 1);
-        assert(n_alive == 1);
+        assert(n_alive >= 1);
         op_run = true;
     }
 };


_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to