]> granicus.if.org Git - pdns/commitdiff
Fix AtomicCounter unit tests on 32-bit
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 13 Jan 2017 13:02:19 +0000 (14:02 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 24 Jan 2017 13:11:05 +0000 (14:11 +0100)
(cherry picked from commit 00c6f2b9f5173c98cc883332f5ecf8b941715abc)

pdns/misc.hh
pdns/test-statbag_cc.cc

index a4b2f41086f4e36ecdd14a058159b8ef9fd8cf8a..0d7310657e11eab386d1f6c95d0118aad1b70139 100644 (file)
@@ -370,7 +370,8 @@ inline bool pdns_iequals_ch(const char a, const char b)
 }
 
 
-typedef std::atomic<unsigned long> AtomicCounter ;
+typedef unsigned long AtomicCounterInner;
+typedef std::atomic<AtomicCounterInner> AtomicCounter ;
 
 // FIXME400 this should probably go? 
 struct CIStringCompare: public std::binary_function<string, string, bool>
index 33304514581885679ee78518bc09f19597af7c4f..4abbcd0286a55312a5bd674cab6dc7e566ebe293 100644 (file)
@@ -83,7 +83,7 @@ BOOST_AUTO_TEST_CASE(test_StatBagBasic) {
 
 #ifdef UINTPTR_MAX  
 #if UINTPTR_MAX > 0xffffffffULL
-    BOOST_CHECK_EQUAL(sizeof(unsigned long), 8);
+    BOOST_CHECK_EQUAL(sizeof(AtomicCounterInner), 8);
     s.set("c", 1ULL<<33);
     BOOST_CHECK_EQUAL(s.read("c"), (1ULL<<33) );
     s.inc("c");
@@ -94,7 +94,7 @@ BOOST_AUTO_TEST_CASE(test_StatBagBasic) {
     s.inc("c");
     BOOST_CHECK_EQUAL(s.read("c"), 0 );
 #else
-    BOOST_CHECK_EQUAL(sizeof(AtomicCounter::native_t), 4);
+    BOOST_CHECK_EQUAL(sizeof(AtomicCounterInner), 4);
     BOOST_CHECK_EQUAL(~0UL, 0xffffffffUL);
     s.set("c", ~0UL);
     BOOST_CHECK_EQUAL(s.read("c"), 0xffffffffUL );