Bug 1424341 Add tests for Atomic*ReleaseAcquire r?bkelly draft
authorTom Ritter <tom@mozilla.com>
Wed, 20 Dec 2017 14:49:16 -0600
changeset 718838 288c31e88fcab605619a8d6e9220b9168c8a2507
parent 718837 144429b6a7f5573d8b0e0ddaad1b22da3afe707f
child 718839 6e1dce9a86d459cfd98ed782bc50e069d79fb0b4
child 718843 204d6801021c99476449b6362ddb0d9ed053457a
push id95052
push userbmo:tom@mozilla.com
push dateWed, 10 Jan 2018 21:56:43 +0000
reviewersbkelly
bugs1424341
milestone59.0a1
Bug 1424341 Add tests for Atomic*ReleaseAcquire r?bkelly MozReview-Commit-ID: HvA2QK4KcHf
modules/libpref/test/gtest/CallbackAndVarCacheOrder.cpp
--- a/modules/libpref/test/gtest/CallbackAndVarCacheOrder.cpp
+++ b/modules/libpref/test/gtest/CallbackAndVarCacheOrder.cpp
@@ -67,16 +67,23 @@ AddVarCacheFunc(bool* aVar, const char* 
 void
 AddVarCacheFunc(Atomic<bool, Relaxed>* aVar, const char* aPrefName)
 {
   nsresult rv = Preferences::AddAtomicBoolVarCache(aVar, aPrefName);
   ASSERT_TRUE(NS_SUCCEEDED(rv));
 }
 
 void
+AddVarCacheFunc(Atomic<bool, ReleaseAcquire>* aVar, const char* aPrefName)
+{
+  nsresult rv = Preferences::AddAtomicBoolVarCache(aVar, aPrefName);
+  ASSERT_TRUE(NS_SUCCEEDED(rv));
+}
+
+void
 AddVarCacheFunc(int32_t* aVar, const char* aPrefName)
 {
   nsresult rv = Preferences::AddIntVarCache(aVar, aPrefName);
   ASSERT_TRUE(NS_SUCCEEDED(rv));
 }
 
 void
 AddVarCacheFunc(Atomic<int32_t, Relaxed>* aVar, const char* aPrefName)
@@ -95,16 +102,23 @@ AddVarCacheFunc(uint32_t* aVar, const ch
 void
 AddVarCacheFunc(Atomic<uint32_t, Relaxed>* aVar, const char* aPrefName)
 {
   nsresult rv = Preferences::AddAtomicUintVarCache(aVar, aPrefName);
   ASSERT_TRUE(NS_SUCCEEDED(rv));
 }
 
 void
+AddVarCacheFunc(Atomic<uint32_t, ReleaseAcquire>* aVar, const char* aPrefName)
+{
+  nsresult rv = Preferences::AddAtomicUintVarCache(aVar, aPrefName);
+  ASSERT_TRUE(NS_SUCCEEDED(rv));
+}
+
+void
 AddVarCacheFunc(float* aVar, const char* aPrefName)
 {
   nsresult rv = Preferences::AddFloatVarCache(aVar, aPrefName);
   ASSERT_TRUE(NS_SUCCEEDED(rv));
 }
 
 template<typename T, typename U = T>
 void
@@ -150,20 +164,26 @@ RunTest(const char* aPrefName1, const ch
   ASSERT_TRUE(closure2.mCalled);
 }
 
 TEST(CallbackAndVarCacheOrder, Bool)
 {
   RunTest<bool>("test_pref.bool.1", "test_pref.bool.2", false, true);
 }
 
-TEST(CallbackAndVarCacheOrder, AtomicBool)
+TEST(CallbackAndVarCacheOrder, AtomicBoolRelaxed)
 {
   RunTest<bool, Atomic<bool, Relaxed>>(
     "test_pref.atomic_bool.1", "test_pref.atomic_bool.2", false, true);
+ }
+
+TEST(CallbackAndVarCacheOrder, AtomicBoolReleaseAcquire)
+{
+  RunTest<bool, Atomic<bool, ReleaseAcquire>>(
+    "test_pref.atomic_bool.3", "test_pref.atomic_bool.4", false, true);
 }
 
 TEST(CallbackAndVarCacheOrder, Int)
 {
   RunTest<int32_t>("test_pref.int.1", "test_pref.int.2", -2, 3);
 }
 
 TEST(CallbackAndVarCacheOrder, AtomicInt)
@@ -172,20 +192,26 @@ TEST(CallbackAndVarCacheOrder, AtomicInt
     "test_pref.atomic_int.1", "test_pref.atomic_int.2", -3, 4);
 }
 
 TEST(CallbackAndVarCacheOrder, Uint)
 {
   RunTest<uint32_t>("test_pref.uint.1", "test_pref.uint.2", 4u, 5u);
 }
 
-TEST(CallbackAndVarCacheOrder, AtomicUint)
+TEST(CallbackAndVarCacheOrder, AtomicUintRelaxed)
 {
   RunTest<uint32_t, Atomic<uint32_t, Relaxed>>(
     "test_pref.atomic_uint.1", "test_pref.atomic_uint.2", 6u, 7u);
 }
 
+TEST(CallbackAndVarCacheOrder, AtomicUintReleaseAcquire)
+{
+  RunTest<uint32_t, Atomic<uint32_t, ReleaseAcquire>>(
+    "test_pref.atomic_uint.3", "test_pref.atomic_uint.4", 8u, 9u);
+}
+
 TEST(CallbackAndVarCacheOrder, Float)
 {
-  RunTest<float>("test_pref.float.1", "test_pref.float.2", -8.0f, 9.0f);
+  RunTest<float>("test_pref.float.1", "test_pref.float.2", -10.0f, 11.0f);
 }
 
 } // namespace mozilla