Title: [265768] trunk/Tools
Revision
265768
Author
[email protected]
Date
2020-08-17 12:54:18 -0700 (Mon, 17 Aug 2020)

Log Message

[TestWebKitAPI] Some WTF_HashMap tests are failing if TestWTF is executed directly
https://bugs.webkit.org/show_bug.cgi?id=215556

Reviewed by Darin Adler.

Some tests using RefLogger were failing if TestWTF is executed
directly without run-api-tests test driver script. Subsequent
tests were failing due to extra "deref(a) " which is a leftover of
the previous tests. Because run-api-tests is spawning a TestWTF
process for each test, it hides this issue.

* TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
Added blocks or calling clear() method to destroy local variables and added more
EXPECT_STREQ("deref(a) ", takeLogStr().c_str()).

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (265767 => 265768)


--- trunk/Tools/ChangeLog	2020-08-17 19:29:18 UTC (rev 265767)
+++ trunk/Tools/ChangeLog	2020-08-17 19:54:18 UTC (rev 265768)
@@ -1,3 +1,23 @@
+2020-08-17  Fujii Hironori  <[email protected]>
+
+        [TestWebKitAPI] Some WTF_HashMap tests are failing if TestWTF is executed directly
+        https://bugs.webkit.org/show_bug.cgi?id=215556
+
+        Reviewed by Darin Adler.
+
+        Some tests using RefLogger were failing if TestWTF is executed
+        directly without run-api-tests test driver script. Subsequent
+        tests were failing due to extra "deref(a) " which is a leftover of
+        the previous tests. Because run-api-tests is spawning a TestWTF
+        process for each test, it hides this issue.
+
+        * TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
+        (TestWebKitAPI::TEST):
+        * TestWebKitAPI/Tests/WTF/HashMap.cpp:
+        (TestWebKitAPI::TEST):
+        Added blocks or calling clear() method to destroy local variables and added more
+        EXPECT_STREQ("deref(a) ", takeLogStr().c_str()).
+
 2020-08-17  Lauro Moura  <[email protected]>
 
         [WPE] Fix file url in WPEQt api test

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/HashCountedSet.cpp (265767 => 265768)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/HashCountedSet.cpp	2020-08-17 19:29:18 UTC (rev 265767)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/HashCountedSet.cpp	2020-08-17 19:54:18 UTC (rev 265768)
@@ -353,120 +353,144 @@
 
 TEST(WTF_HashCountedSet, RefPtrKey_Add)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    RefPtr<RefLogger> ptr(&a);
-    hashCountedSet.add(ptr);
+        RefPtr<RefLogger> ptr(&a);
+        hashCountedSet.add(ptr);
 
-    ASSERT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
-    EXPECT_EQ(1U, hashCountedSet.count(ptr));
-    EXPECT_EQ(1U, hashCountedSet.count(ptr.get()));
+        ASSERT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+        EXPECT_EQ(1U, hashCountedSet.count(ptr));
+        EXPECT_EQ(1U, hashCountedSet.count(ptr.get()));
+    }
+
+    EXPECT_STREQ("deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, RefPtrKey_AddUsingRelease)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    RefPtr<RefLogger> ptr(&a);
-    hashCountedSet.add(WTFMove(ptr));
+        RefPtr<RefLogger> ptr(&a);
+        hashCountedSet.add(WTFMove(ptr));
+    }
 
-    EXPECT_STREQ("ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, RefPtrKey_AddUsingMove)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    RefPtr<RefLogger> ptr(&a);
-    hashCountedSet.add(WTFMove(ptr));
+        RefPtr<RefLogger> ptr(&a);
+        hashCountedSet.add(WTFMove(ptr));
+    }
 
-    EXPECT_STREQ("ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, RefPtrKey_AddUsingRaw)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    RefPtr<RefLogger> ptr(&a);
-    hashCountedSet.add(ptr.get());
+        RefPtr<RefLogger> ptr(&a);
+        hashCountedSet.add(ptr.get());
 
-    EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
-    EXPECT_EQ(1U, hashCountedSet.count(ptr));
-    EXPECT_EQ(1U, hashCountedSet.count(ptr.get()));
+        EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+        EXPECT_EQ(1U, hashCountedSet.count(ptr));
+        EXPECT_EQ(1U, hashCountedSet.count(ptr.get()));
+    }
+
+    EXPECT_STREQ("deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, RefPtrKey_AddKeyAlreadyPresent)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    {
-        RefPtr<RefLogger> ptr(&a);
-        hashCountedSet.add(ptr);
-    }
+        {
+            RefPtr<RefLogger> ptr(&a);
+            hashCountedSet.add(ptr);
+        }
 
-    EXPECT_STREQ("ref(a) ref(a) deref(a) ", takeLogStr().c_str());
+        EXPECT_STREQ("ref(a) ref(a) deref(a) ", takeLogStr().c_str());
 
-    {
-        RefPtr<RefLogger> ptr2(&a);
-        auto addResult = hashCountedSet.add(ptr2);
-        EXPECT_FALSE(addResult.isNewEntry);
+        {
+            RefPtr<RefLogger> ptr2(&a);
+            auto addResult = hashCountedSet.add(ptr2);
+            EXPECT_FALSE(addResult.isNewEntry);
+        }
+
+        EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
     }
 
-    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, RefPtrKey_AddUsingReleaseKeyAlreadyPresent)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    {
-        RefPtr<RefLogger> ptr(&a);
-        hashCountedSet.add(ptr);
-    }
+        {
+            RefPtr<RefLogger> ptr(&a);
+            hashCountedSet.add(ptr);
+        }
 
-    EXPECT_STREQ("ref(a) ref(a) deref(a) ", takeLogStr().c_str());
+        EXPECT_STREQ("ref(a) ref(a) deref(a) ", takeLogStr().c_str());
 
-    {
-        RefPtr<RefLogger> ptr2(&a);
-        auto addResult = hashCountedSet.add(WTFMove(ptr2));
-        EXPECT_FALSE(addResult.isNewEntry);
+        {
+            RefPtr<RefLogger> ptr2(&a);
+            auto addResult = hashCountedSet.add(WTFMove(ptr2));
+            EXPECT_FALSE(addResult.isNewEntry);
+        }
+
+        EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
     }
 
-    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, RefPtrKey_AddUsingMoveKeyAlreadyPresent)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
+        HashCountedSet<RefPtr<RefLogger>> hashCountedSet;
 
-    {
-        RefPtr<RefLogger> ptr(&a);
-        hashCountedSet.add(ptr);
-    }
+        {
+            RefPtr<RefLogger> ptr(&a);
+            hashCountedSet.add(ptr);
+        }
 
-    EXPECT_STREQ("ref(a) ref(a) deref(a) ", takeLogStr().c_str());
+        EXPECT_STREQ("ref(a) ref(a) deref(a) ", takeLogStr().c_str());
 
-    {
-        RefPtr<RefLogger> ptr2(&a);
-        auto addResult = hashCountedSet.add(WTFMove(ptr2));
-        EXPECT_FALSE(addResult.isNewEntry);
+        {
+            RefPtr<RefLogger> ptr2(&a);
+            auto addResult = hashCountedSet.add(WTFMove(ptr2));
+            EXPECT_FALSE(addResult.isNewEntry);
+        }
+
+        EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
     }
 
-    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashCountedSet, Values)

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp (265767 => 265768)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp	2020-08-17 19:29:18 UTC (rev 265767)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/HashMap.cpp	2020-08-17 19:54:18 UTC (rev 265768)
@@ -308,50 +308,58 @@
 
 TEST(WTF_HashMap, RefPtrKey_Add)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.add(ptr, 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.add(ptr, 0);
+    }
 
-    ASSERT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+    ASSERT_STREQ("ref(a) ref(a) deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_AddUsingRelease)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.add(WTFMove(ptr), 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.add(WTFMove(ptr), 0);
+    }
 
-    EXPECT_STREQ("ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_AddUsingMove)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.add(WTFMove(ptr), 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.add(WTFMove(ptr), 0);
+    }
 
-    EXPECT_STREQ("ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_AddUsingRaw)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.add(ptr.get(), 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.add(ptr.get(), 0);
+    }
 
-    EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) ref(a) deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_AddKeyAlreadyPresent)
@@ -374,6 +382,10 @@
     }
 
     EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+
+    map.clear();
+
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_AddUsingReleaseKeyAlreadyPresent)
@@ -396,6 +408,10 @@
     }
 
     EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+
+    map.clear();
+
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_AddUsingMoveKeyAlreadyPresent)
@@ -418,118 +434,142 @@
     }
 
     EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+
+    map.clear();
+
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_Set)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(ptr, 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(ptr, 0);
+    }
 
-    ASSERT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+    ASSERT_STREQ("ref(a) ref(a) deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_SetUsingRelease)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(WTFMove(ptr), 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(WTFMove(ptr), 0);
+    }
 
-    EXPECT_STREQ("ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
 }
 
 
 TEST(WTF_HashMap, RefPtrKey_SetUsingMove)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(WTFMove(ptr), 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(WTFMove(ptr), 0);
+    }
 
-    EXPECT_STREQ("ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_SetUsingRaw)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(ptr.get(), 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(ptr.get(), 0);
+    }
 
-    EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("ref(a) ref(a) deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_SetKeyAlreadyPresent)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(ptr, 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(ptr, 0);
 
-    EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+        EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
 
-    {
-        RefPtr<RefLogger> ptr2(&a);
-        auto addResult = map.set(ptr2, 1);
-        EXPECT_FALSE(addResult.isNewEntry);
-        EXPECT_EQ(1, map.get(ptr.get()));
+        {
+            RefPtr<RefLogger> ptr2(&a);
+            auto addResult = map.set(ptr2, 1);
+            EXPECT_FALSE(addResult.isNewEntry);
+            EXPECT_EQ(1, map.get(ptr.get()));
+        }
+
+        EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
     }
 
-    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_SetUsingReleaseKeyAlreadyPresent)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(ptr, 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(ptr, 0);
 
-    EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+        EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
 
-    {
-        RefPtr<RefLogger> ptr2(&a);
-        auto addResult = map.set(WTFMove(ptr2), 1);
-        EXPECT_FALSE(addResult.isNewEntry);
-        EXPECT_EQ(1, map.get(ptr.get()));
+        {
+            RefPtr<RefLogger> ptr2(&a);
+            auto addResult = map.set(WTFMove(ptr2), 1);
+            EXPECT_FALSE(addResult.isNewEntry);
+            EXPECT_EQ(1, map.get(ptr.get()));
+        }
+
+        EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
     }
 
-    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, RefPtrKey_SetUsingMoveKeyAlreadyPresent)
 {
-    DerivedRefLogger a("a");
+    {
+        DerivedRefLogger a("a");
 
-    HashMap<RefPtr<RefLogger>, int> map;
+        HashMap<RefPtr<RefLogger>, int> map;
 
-    RefPtr<RefLogger> ptr(&a);
-    map.set(ptr, 0);
+        RefPtr<RefLogger> ptr(&a);
+        map.set(ptr, 0);
 
-    EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
+        EXPECT_STREQ("ref(a) ref(a) ", takeLogStr().c_str());
 
-    {
-        RefPtr<RefLogger> ptr2(&a);
-        auto addResult = map.set(WTFMove(ptr2), 1);
-        EXPECT_FALSE(addResult.isNewEntry);
-        EXPECT_EQ(1, map.get(ptr.get()));
+        {
+            RefPtr<RefLogger> ptr2(&a);
+            auto addResult = map.set(WTFMove(ptr2), 1);
+            EXPECT_FALSE(addResult.isNewEntry);
+            EXPECT_EQ(1, map.get(ptr.get()));
+        }
+
+        EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
     }
 
-    EXPECT_STREQ("ref(a) deref(a) ", takeLogStr().c_str());
+    EXPECT_STREQ("deref(a) deref(a) ", takeLogStr().c_str());
 }
 
 TEST(WTF_HashMap, Ensure)
@@ -590,6 +630,10 @@
 
     map.ensure(1, [&] { return RefPtr<RefLogger>(&a); });
     EXPECT_STREQ("", takeLogStr().c_str());
+
+    map.clear();
+
+    EXPECT_STREQ("deref(a) ", takeLogStr().c_str());
 }
 
 class ObjectWithRefLogger {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to