[libcxx-commits] [libcxx] bd8884f - [libc++] Remove additional uses of std::rand() missed by 63aeadb4849d

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Thu Oct 29 08:11:46 PDT 2020


Author: Louis Dionne
Date: 2020-10-29T11:11:29-04:00
New Revision: bd8884f05e7586dd09aaab843c07361414343916

URL: https://github.com/llvm/llvm-project/commit/bd8884f05e7586dd09aaab843c07361414343916
DIFF: https://github.com/llvm/llvm-project/commit/bd8884f05e7586dd09aaab843c07361414343916.diff

LOG: [libc++] Remove additional uses of std::rand() missed by 63aeadb4849d

Added: 
    libcxx/test/std/utilities/template.bitset/bitset_test_cases.h

Modified: 
    libcxx/test/std/utilities/template.bitset/bitset.members/count.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/test.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp
    libcxx/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp

Removed: 
    libcxx/test/std/utilities/template.bitset/bitset.members/bitset_test_cases.h


################################################################################
diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/count.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/count.pass.cpp
index 4d5385612a59..81311bb68a35 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/count.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/count.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp
index 04f61bcd2582..841030ccdf74 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/flip_all.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp
index 9631a4f59427..3e0942a2fd7e 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/flip_one.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp
index dd84a7b93e79..25ba219fd54a 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/index.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
index d8bd2685cedf..19ccb97d8c01 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/index_const.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp
index f8ced1869888..4d5f9a0a8521 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp
index 0dd12be8dbc0..d8802e9dfaf5 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/left_shift_eq.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp
index 99467316eca3..7e9410aa96c5 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/not_all.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp
index c1cb214340bf..f341f1f75207 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/op_and_eq.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp
index cf5c7e3cd448..d0b424aaca4d 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/op_eq_eq.pass.cpp
@@ -16,7 +16,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp
index 641f846d3cac..be8f9d8c9f46 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/op_or_eq.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp
index 00b8864b1706..d54d9d5583c7 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/op_xor_eq.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp
index 62dc30206087..c84e0a1ddc26 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/reset_one.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp
index c60cc908bffc..46eb17d1fa8d 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp
index 42d239659301..a103f3758585 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/right_shift_eq.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp
index b00932087757..7d9562218724 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/set_one.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/test.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/test.pass.cpp
index a11e0def7c39..ea5aa996a490 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/test.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/test.pass.cpp
@@ -13,7 +13,7 @@
 #include <cstddef>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp
index 69f872cb7fd2..0f364ec40def 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.members/to_string.pass.cpp
@@ -27,7 +27,7 @@
 #include <string>
 #include <vector>
 
-#include "bitset_test_cases.h"
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
 template <class CharT, std::size_t N>

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp
index 21d5d08058ca..a0885f91d3b1 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.operators/op_and.pass.cpp
@@ -9,38 +9,27 @@
 // test bitset<N> operator&(const bitset<N>& lhs, const bitset<N>& rhs);
 
 #include <bitset>
-#include <cstdlib>
 #include <cassert>
+#include <cstddef>
+#include <vector>
 
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
-#if defined(TEST_COMPILER_CLANG)
-#pragma clang diagnostic ignored "-Wtautological-compare"
-#elif defined(TEST_COMPILER_C1XX)
-#pragma warning(disable: 6294) // Ill-defined for-loop:  initial condition does not satisfy test.  Loop body not executed.
-#endif
-
-template <std::size_t N>
-std::bitset<N>
-make_bitset()
-{
-    std::bitset<N> v;
-    for (std::size_t i = 0; i < N; ++i)
-        v[i] = static_cast<bool>(std::rand() & 1);
-    return v;
-}
-
 template <std::size_t N>
-void test_op_and()
-{
-    std::bitset<N> v1 = make_bitset<N>();
-    std::bitset<N> v2 = make_bitset<N>();
-    std::bitset<N> v3 = v1;
-    assert((v1 & v2) == (v3 &= v2));
+void test_op_and() {
+    std::vector<std::bitset<N> > const cases = get_test_cases<N>();
+    for (std::size_t c1 = 0; c1 != cases.size(); ++c1) {
+        for (std::size_t c2 = 0; c2 != cases.size(); ++c2) {
+            std::bitset<N> v1 = cases[c1];
+            std::bitset<N> v2 = cases[c2];
+            std::bitset<N> v3 = v1;
+            assert((v1 & v2) == (v3 &= v2));
+        }
+    }
 }
 
-int main(int, char**)
-{
+int main(int, char**) {
     test_op_and<0>();
     test_op_and<1>();
     test_op_and<31>();
@@ -51,5 +40,5 @@ int main(int, char**)
     test_op_and<65>();
     test_op_and<1000>();
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp
index 4a71385a941f..78e68bf1b51a 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.operators/op_not.pass.cpp
@@ -9,38 +9,27 @@
 // test bitset<N> operator^(const bitset<N>& lhs, const bitset<N>& rhs);
 
 #include <bitset>
-#include <cstdlib>
 #include <cassert>
+#include <cstddef>
+#include <vector>
 
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
-#if defined(TEST_COMPILER_CLANG)
-#pragma clang diagnostic ignored "-Wtautological-compare"
-#elif defined(TEST_COMPILER_C1XX)
-#pragma warning(disable: 6294) // Ill-defined for-loop:  initial condition does not satisfy test.  Loop body not executed.
-#endif
-
-template <std::size_t N>
-std::bitset<N>
-make_bitset()
-{
-    std::bitset<N> v;
-    for (std::size_t i = 0; i < N; ++i)
-        v[i] = static_cast<bool>(std::rand() & 1);
-    return v;
-}
-
 template <std::size_t N>
-void test_op_not()
-{
-    std::bitset<N> v1 = make_bitset<N>();
-    std::bitset<N> v2 = make_bitset<N>();
-    std::bitset<N> v3 = v1;
-    assert((v1 ^ v2) == (v3 ^= v2));
+void test_op_not() {
+    std::vector<std::bitset<N> > const cases = get_test_cases<N>();
+    for (std::size_t c1 = 0; c1 != cases.size(); ++c1) {
+        for (std::size_t c2 = 0; c2 != cases.size(); ++c2) {
+            std::bitset<N> v1 = cases[c1];
+            std::bitset<N> v2 = cases[c2];
+            std::bitset<N> v3 = v1;
+            assert((v1 ^ v2) == (v3 ^= v2));
+        }
+    }
 }
 
-int main(int, char**)
-{
+int main(int, char**) {
     test_op_not<0>();
     test_op_not<1>();
     test_op_not<31>();
@@ -51,5 +40,5 @@ int main(int, char**)
     test_op_not<65>();
     test_op_not<1000>();
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp
index bc4847c19e40..febaa7f01dcd 100644
--- a/libcxx/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp
+++ b/libcxx/test/std/utilities/template.bitset/bitset.operators/op_or.pass.cpp
@@ -9,38 +9,27 @@
 // test bitset<N> operator|(const bitset<N>& lhs, const bitset<N>& rhs);
 
 #include <bitset>
-#include <cstdlib>
 #include <cassert>
+#include <cstddef>
+#include <vector>
 
+#include "../bitset_test_cases.h"
 #include "test_macros.h"
 
-#if defined(TEST_COMPILER_CLANG)
-#pragma clang diagnostic ignored "-Wtautological-compare"
-#elif defined(TEST_COMPILER_C1XX)
-#pragma warning(disable: 6294) // Ill-defined for-loop:  initial condition does not satisfy test.  Loop body not executed.
-#endif
-
-template <std::size_t N>
-std::bitset<N>
-make_bitset()
-{
-    std::bitset<N> v;
-    for (std::size_t i = 0; i < N; ++i)
-        v[i] = static_cast<bool>(std::rand() & 1);
-    return v;
-}
-
 template <std::size_t N>
-void test_op_or()
-{
-    std::bitset<N> v1 = make_bitset<N>();
-    std::bitset<N> v2 = make_bitset<N>();
-    std::bitset<N> v3 = v1;
-    assert((v1 | v2) == (v3 |= v2));
+void test_op_or() {
+    std::vector<std::bitset<N> > const cases = get_test_cases<N>();
+    for (std::size_t c1 = 0; c1 != cases.size(); ++c1) {
+        for (std::size_t c2 = 0; c2 != cases.size(); ++c2) {
+            std::bitset<N> v1 = cases[c1];
+            std::bitset<N> v2 = cases[c2];
+            std::bitset<N> v3 = v1;
+            assert((v1 | v2) == (v3 |= v2));
+        }
+    }
 }
 
-int main(int, char**)
-{
+int main(int, char**) {
     test_op_or<0>();
     test_op_or<1>();
     test_op_or<31>();
@@ -51,5 +40,5 @@ int main(int, char**)
     test_op_or<65>();
     test_op_or<1000>();
 
-  return 0;
+    return 0;
 }

diff  --git a/libcxx/test/std/utilities/template.bitset/bitset.members/bitset_test_cases.h b/libcxx/test/std/utilities/template.bitset/bitset_test_cases.h
similarity index 100%
rename from libcxx/test/std/utilities/template.bitset/bitset.members/bitset_test_cases.h
rename to libcxx/test/std/utilities/template.bitset/bitset_test_cases.h


        


More information about the libcxx-commits mailing list