Changeset 220562 in webkit


Ignore:
Timestamp:
Aug 10, 2017 4:42:14 PM (7 years ago)
Author:
Yusuke Suzuki
Message:

Run more WTF tests
https://bugs.webkit.org/show_bug.cgi?id=174970

Reviewed by Michael Catanzaro.

Source/WTF:

CHAR_BIT is not defined.

  • wtf/LEBDecoder.h:

Tools:

Some of WTF tests are not executed in non Apple ports while they are generic ones.
This patch adds these tests to non-Apple port TestWebKitAPI.
Currently, we do not add Signals.cpp since it depends on signal functionality.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/PriorityQueue.cpp:

(isHigherPriority):
(TEST):

  • TestWebKitAPI/Tests/WTF/Signals.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp.

(TEST):

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:

(TEST):

Location:
trunk
Files:
7 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r220548 r220562  
     12017-08-10  Yusuke Suzuki  <utatane.tea@gmail.com>
     2
     3        Run more WTF tests
     4        https://bugs.webkit.org/show_bug.cgi?id=174970
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        CHAR_BIT is not defined.
     9
     10        * wtf/LEBDecoder.h:
     11
    1122017-08-09  Yusuke Suzuki  <utatane.tea@gmail.com>
    213
  • trunk/Source/WTF/wtf/LEBDecoder.h

    r210769 r220562  
    2828#include "Compiler.h"
    2929#include <algorithm>
     30#include <limits.h>
    3031
    3132// This file contains a bunch of helper functions for decoding LEB numbers.
  • trunk/Tools/ChangeLog

    r220544 r220562  
     12017-08-10  Yusuke Suzuki  <utatane.tea@gmail.com>
     2
     3        Run more WTF tests
     4        https://bugs.webkit.org/show_bug.cgi?id=174970
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        Some of WTF tests are not executed in non Apple ports while they are generic ones.
     9        This patch adds these tests to non-Apple port TestWebKitAPI.
     10        Currently, we do not add Signals.cpp since it depends on signal functionality.
     11
     12        * TestWebKitAPI/CMakeLists.txt:
     13        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
     14        * TestWebKitAPI/Tests/WTF/PriorityQueue.cpp:
     15        (isHigherPriority):
     16        (TEST):
     17        * TestWebKitAPI/Tests/WTF/Signals.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp.
     18        (TEST):
     19        * TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:
     20        (TEST):
     21
    1222017-08-10  obinna obike  <oobike@apple.com>
    223
  • trunk/Tools/TestWebKitAPI/CMakeLists.txt

    r220403 r220562  
    4343    ${TESTWEBKITAPI_DIR}/Tests/WTF/AtomicString.cpp
    4444    ${TESTWEBKITAPI_DIR}/Tests/WTF/BloomFilter.cpp
    45     ${TESTWEBKITAPI_DIR}/Tests/WTF/CrossThreadTask.cpp
    4645    ${TESTWEBKITAPI_DIR}/Tests/WTF/CString.cpp
    4746    ${TESTWEBKITAPI_DIR}/Tests/WTF/CheckedArithmeticOperations.cpp
    4847    ${TESTWEBKITAPI_DIR}/Tests/WTF/Condition.cpp
     48    ${TESTWEBKITAPI_DIR}/Tests/WTF/CrossThreadTask.cpp
    4949    ${TESTWEBKITAPI_DIR}/Tests/WTF/DateMath.cpp
    5050    ${TESTWEBKITAPI_DIR}/Tests/WTF/Deque.cpp
     
    5656    ${TESTWEBKITAPI_DIR}/Tests/WTF/HashSet.cpp
    5757    ${TESTWEBKITAPI_DIR}/Tests/WTF/IntegerToStringConversion.cpp
     58    ${TESTWEBKITAPI_DIR}/Tests/WTF/LEBDecoder.cpp
    5859    ${TESTWEBKITAPI_DIR}/Tests/WTF/LifecycleLogger.cpp
    5960    ${TESTWEBKITAPI_DIR}/Tests/WTF/ListHashSet.cpp
     
    6970    ${TESTWEBKITAPI_DIR}/Tests/WTF/OptionSet.cpp
    7071    ${TESTWEBKITAPI_DIR}/Tests/WTF/ParkingLot.cpp
     72    ${TESTWEBKITAPI_DIR}/Tests/WTF/PriorityQueue.cpp
    7173    ${TESTWEBKITAPI_DIR}/Tests/WTF/RedBlackTree.cpp
    7274    ${TESTWEBKITAPI_DIR}/Tests/WTF/Ref.cpp
     
    8082    ${TESTWEBKITAPI_DIR}/Tests/WTF/SetForScope.cpp
    8183    ${TESTWEBKITAPI_DIR}/Tests/WTF/StringBuilder.cpp
     84    ${TESTWEBKITAPI_DIR}/Tests/WTF/StringConcatenate.cpp
    8285    ${TESTWEBKITAPI_DIR}/Tests/WTF/StringHasher.cpp
    8386    ${TESTWEBKITAPI_DIR}/Tests/WTF/StringImpl.cpp
    8487    ${TESTWEBKITAPI_DIR}/Tests/WTF/StringOperators.cpp
    8588    ${TESTWEBKITAPI_DIR}/Tests/WTF/StringView.cpp
     89    ${TESTWEBKITAPI_DIR}/Tests/WTF/SynchronizedFixedQueue.cpp
    8690    ${TESTWEBKITAPI_DIR}/Tests/WTF/TextBreakIterator.cpp
    8791    ${TESTWEBKITAPI_DIR}/Tests/WTF/ThreadGroup.cpp
     92    ${TESTWEBKITAPI_DIR}/Tests/WTF/ThreadMessages.cpp
    8893    ${TESTWEBKITAPI_DIR}/Tests/WTF/Time.cpp
    8994    ${TESTWEBKITAPI_DIR}/Tests/WTF/UniqueRef.cpp
  • trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj

    r220542 r220562  
    646646                E1220DCA155B28AA0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E1220DC9155B287D0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html */; };
    647647                E194E1BD177E53C7009C4D4E /* StopLoadingFromDidReceiveResponse.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E194E1BC177E534A009C4D4E /* StopLoadingFromDidReceiveResponse.html */; };
     648                E373D7911F2CF35200C6FAAF /* Signals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3953F951F2CF32100A76A2E /* Signals.cpp */; };
    648649                E3DEA8111F0A589000CBC2E8 /* ThreadGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3DEA8101F0A588000CBC2E8 /* ThreadGroup.cpp */; };
    649650                ECA680CE1E68CC0900731D20 /* StringUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = ECA680CD1E68CC0900731D20 /* StringUtilities.mm */; };
     
    16531654                E194E1BC177E534A009C4D4E /* StopLoadingFromDidReceiveResponse.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = StopLoadingFromDidReceiveResponse.html; sourceTree = "<group>"; };
    16541655                E19DB9781B32137C00DB38D4 /* NavigatorLanguage.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = NavigatorLanguage.mm; sourceTree = "<group>"; };
     1656                E3953F951F2CF32100A76A2E /* Signals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Signals.cpp; sourceTree = "<group>"; };
    16551657                E3DEA8101F0A588000CBC2E8 /* ThreadGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadGroup.cpp; sourceTree = "<group>"; };
    16561658                E40019301ACE9B5C001B0A2A /* BloomFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BloomFilter.cpp; sourceTree = "<group>"; };
     
    24492451                                0BCD85691485C98B00EA2003 /* SetForScope.cpp */,
    24502452                                CD5393C91757BAC400C07123 /* SHA1.cpp */,
     2453                                E3953F951F2CF32100A76A2E /* Signals.cpp */,
    24512454                                81B50192140F232300D9EB58 /* StringBuilder.cpp */,
    24522455                                7CD4C26C1E2C0E6E00929470 /* StringConcatenate.cpp */,
     
    30013004                                7C83DF3D1D0A590C00FEBCF3 /* SetForScope.cpp in Sources */,
    30023005                                7C83DF2A1D0A590C00FEBCF3 /* SHA1.cpp in Sources */,
     3006                                E373D7911F2CF35200C6FAAF /* Signals.cpp in Sources */,
    30033007                                7C83DF321D0A590C00FEBCF3 /* StringBuilder.cpp in Sources */,
    30043008                                7CD4C26E1E2C0E6E00929470 /* StringConcatenate.cpp in Sources */,
     
    30703074                                5C2936931D5BF70D00DEAB1E /* CookieAcceptPolicy.mm in Sources */,
    30713075                                51D1249B1E785425002B2820 /* CookieManager.cpp in Sources */,
     3076                                9999108B1F393C96008AD455 /* Copying.mm in Sources */,
    30723077                                7CCE7EAC1A411A3400447C4C /* Counters.cpp in Sources */,
    30733078                                7AEAD47F1E20116C00416EFE /* CrossPartitionFileSchemeAccess.mm in Sources */,
     
    33193324                                7CCE7F1B1A411AE600447C4C /* WillLoad.cpp in Sources */,
    33203325                                7CCE7ED71A411A7E00447C4C /* WillPerformClientRedirectToURLCrash.mm in Sources */,
    3321                                 9999108B1F393C96008AD455 /* Copying.mm in Sources */,
    33223326                                7CCE7F1C1A411AE600447C4C /* WillSendSubmitEvent.cpp in Sources */,
    33233327                                7CCE7ED81A411A7E00447C4C /* WillSendSubmitEvent.mm in Sources */,
  • trunk/Tools/TestWebKitAPI/Tests/WTF/PriorityQueue.cpp

    r215135 r220562  
    9898
    9999template<bool (*isHigherPriority)(const unsigned&, const unsigned&)>
    100 static bool compareMove(const MoveOnly& m1, const MoveOnly& m2)
    101 {
    102     return isHigherPriority(m1.value(), m2.value());
    103 }
    104 
     100struct CompareMove {
     101    static bool compare(const MoveOnly& m1, const MoveOnly& m2)
     102    {
     103        return isHigherPriority(m1.value(), m2.value());
     104    }
     105};
    105106
    106107TEST(WTF_PriorityQueue, MoveOnly)
    107108{
    108     PriorityQueue<MoveOnly, compareMove<isLessThan<unsigned>>> queue;
     109    PriorityQueue<MoveOnly, CompareMove<isLessThan<unsigned>>::compare> queue;
    109110
    110111    Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 };
     
    123124TEST(WTF_PriorityQueue, DecreaseKey)
    124125{
    125     PriorityQueue<MoveOnly, compareMove<isLessThan<unsigned>>> queue;
     126    PriorityQueue<MoveOnly, CompareMove<isLessThan<unsigned>>::compare> queue;
    126127
    127128    Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 };
     
    149150TEST(WTF_PriorityQueue, IncreaseKey)
    150151{
    151     PriorityQueue<MoveOnly, compareMove<isGreaterThan<unsigned>>> queue;
     152    PriorityQueue<MoveOnly, CompareMove<isGreaterThan<unsigned>>::compare> queue;
    152153
    153154    Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 };
     
    175176TEST(WTF_PriorityQueue, Iteration)
    176177{
    177     PriorityQueue<MoveOnly, compareMove<isGreaterThan<unsigned>>> queue;
     178    PriorityQueue<MoveOnly, CompareMove<isGreaterThan<unsigned>>::compare> queue;
    178179
    179180    Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 };
  • trunk/Tools/TestWebKitAPI/Tests/WTF/Signals.cpp

    r220556 r220562  
    2828#include <type_traits>
    2929#include <wtf/DataLog.h>
    30 #include <wtf/HashSet.h>
    31 #include <wtf/Ref.h>
    32 #include <wtf/ThreadMessage.h>
    33 #include <wtf/Vector.h>
     30#include <wtf/Threading.h>
    3431#include <wtf/threads/Signals.h>
    35 
    36 static void runThreadMessageTest(unsigned numSenders, unsigned numMessages)
    37 {
    38     Atomic<bool> receiverShouldKeepRunning(true);
    39     RefPtr<Thread> receiverThread = Thread::create("ThreadMessage receiver", [&receiverShouldKeepRunning] () {
    40         while (receiverShouldKeepRunning.load()) { }
    41     });
    42     ASSERT_TRUE(receiverThread);
    43 
    44     Vector<RefPtr<Thread>> senderThreads(numSenders);
    45     Vector<unsigned> messagesRun(numSenders);
    46     Vector<unsigned> handlersRun(numSenders);
    47     messagesRun.fill(0);
    48     handlersRun.fill(0);
    49 
    50     for (unsigned senderID = 0; senderID < numSenders; ++senderID) {
    51         senderThreads[senderID] = Thread::create("ThreadMessage sender", [senderID, numMessages, receiverThread, &messagesRun, &handlersRun] () {
    52             for (unsigned i = 0; i < numMessages; ++i) {
    53                 auto result = sendMessage(*receiverThread.get(), [senderID, &handlersRun] (PlatformRegisters&) {
    54                     handlersRun[senderID]++;
    55                 });
    56                 EXPECT_TRUE(result == WTF::MessageStatus::MessageRan);
    57                 messagesRun[senderID]++;
    58             }
    59         });
    60         ASSERT_TRUE(senderThreads[senderID]);
    61     }
    62 
    63     for (unsigned i = 0; i < numSenders; ++i)
    64         senderThreads[i]->waitForCompletion();
    65 
    66     receiverShouldKeepRunning.store(false);
    67     receiverThread->waitForCompletion();
    68 
    69     for (unsigned i = 0; i < numSenders; ++i) {
    70         EXPECT_EQ(numMessages, messagesRun[i]);
    71         EXPECT_EQ(numMessages, handlersRun[i]);
    72     }
    73 }
    74 
    75 TEST(ThreadMessage, Basic)
    76 {
    77     runThreadMessageTest(1, 1);
    78     runThreadMessageTest(1, 100);
    79 }
    80 
    81 TEST(ThreadMessage, MultipleSenders)
    82 {
    83     runThreadMessageTest(10, 1);
    84     runThreadMessageTest(10, 100);
    85     runThreadMessageTest(10, 10000);
    86 }
    8732
    8833class ReflectedThread : public Thread {
     
    9338};
    9439
    95 TEST(ThreadMessage, SignalsWorkOnExit)
     40TEST(Signals, SignalsWorkOnExit)
    9641{
    9742    static bool handlerRan = false;
     
    12166    EXPECT_TRUE(handlerRan || !signalFired);
    12267}
    123 
  • trunk/Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp

    r218782 r220562  
    2626#include "config.h"
    2727
    28 #include <type_traits>
    29 #include <wtf/DataLog.h>
    3028#include <wtf/HashSet.h>
    3129#include <wtf/Ref.h>
    3230#include <wtf/ThreadMessage.h>
    3331#include <wtf/Vector.h>
    34 #include <wtf/threads/Signals.h>
    3532
    3633static void runThreadMessageTest(unsigned numSenders, unsigned numMessages)
     
    8582    runThreadMessageTest(10, 10000);
    8683}
    87 
    88 class ReflectedThread : public Thread {
    89 public:
    90     using Thread::m_mutex;
    91     using Thread::m_handle;
    92     using Thread::hasExited;
    93 };
    94 
    95 TEST(ThreadMessage, SignalsWorkOnExit)
    96 {
    97     static bool handlerRan = false;
    98     installSignalHandler(Signal::Usr, [] (Signal, SigInfo&, PlatformRegisters&) -> SignalAction {
    99         dataLogLn("here");
    100         handlerRan = true;
    101         return SignalAction::Handled;
    102     });
    103 
    104     Atomic<bool> receiverShouldKeepRunning(true);
    105     RefPtr<Thread> receiverThread = (Thread::create("ThreadMessage receiver",
    106         [&receiverShouldKeepRunning] () {
    107             while (receiverShouldKeepRunning.load()) { }
    108     }));
    109     ASSERT_TRUE(receiverThread);
    110 
    111     bool signalFired;
    112     {
    113         std::unique_lock<std::mutex> locker(static_cast<ReflectedThread*>(receiverThread.get())->m_mutex);
    114         receiverShouldKeepRunning.store(false);
    115         EXPECT_FALSE(static_cast<ReflectedThread*>(receiverThread.get())->hasExited());
    116         sleep(1);
    117         signalFired = !pthread_kill(static_cast<ReflectedThread*>(receiverThread.get())->m_handle, std::get<0>(toSystemSignal(Signal::Usr)));
    118     }
    119 
    120     receiverThread->waitForCompletion();
    121     EXPECT_TRUE(handlerRan || !signalFired);
    122 }
    123 
Note: See TracChangeset for help on using the changeset viewer.