Changeset 220562 in webkit
- Timestamp:
- Aug 10, 2017 4:42:14 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r220548 r220562 1 2017-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 1 12 2017-08-09 Yusuke Suzuki <utatane.tea@gmail.com> 2 13 -
trunk/Source/WTF/wtf/LEBDecoder.h
r210769 r220562 28 28 #include "Compiler.h" 29 29 #include <algorithm> 30 #include <limits.h> 30 31 31 32 // This file contains a bunch of helper functions for decoding LEB numbers. -
trunk/Tools/ChangeLog
r220544 r220562 1 2017-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 1 22 2017-08-10 obinna obike <oobike@apple.com> 2 23 -
trunk/Tools/TestWebKitAPI/CMakeLists.txt
r220403 r220562 43 43 ${TESTWEBKITAPI_DIR}/Tests/WTF/AtomicString.cpp 44 44 ${TESTWEBKITAPI_DIR}/Tests/WTF/BloomFilter.cpp 45 ${TESTWEBKITAPI_DIR}/Tests/WTF/CrossThreadTask.cpp46 45 ${TESTWEBKITAPI_DIR}/Tests/WTF/CString.cpp 47 46 ${TESTWEBKITAPI_DIR}/Tests/WTF/CheckedArithmeticOperations.cpp 48 47 ${TESTWEBKITAPI_DIR}/Tests/WTF/Condition.cpp 48 ${TESTWEBKITAPI_DIR}/Tests/WTF/CrossThreadTask.cpp 49 49 ${TESTWEBKITAPI_DIR}/Tests/WTF/DateMath.cpp 50 50 ${TESTWEBKITAPI_DIR}/Tests/WTF/Deque.cpp … … 56 56 ${TESTWEBKITAPI_DIR}/Tests/WTF/HashSet.cpp 57 57 ${TESTWEBKITAPI_DIR}/Tests/WTF/IntegerToStringConversion.cpp 58 ${TESTWEBKITAPI_DIR}/Tests/WTF/LEBDecoder.cpp 58 59 ${TESTWEBKITAPI_DIR}/Tests/WTF/LifecycleLogger.cpp 59 60 ${TESTWEBKITAPI_DIR}/Tests/WTF/ListHashSet.cpp … … 69 70 ${TESTWEBKITAPI_DIR}/Tests/WTF/OptionSet.cpp 70 71 ${TESTWEBKITAPI_DIR}/Tests/WTF/ParkingLot.cpp 72 ${TESTWEBKITAPI_DIR}/Tests/WTF/PriorityQueue.cpp 71 73 ${TESTWEBKITAPI_DIR}/Tests/WTF/RedBlackTree.cpp 72 74 ${TESTWEBKITAPI_DIR}/Tests/WTF/Ref.cpp … … 80 82 ${TESTWEBKITAPI_DIR}/Tests/WTF/SetForScope.cpp 81 83 ${TESTWEBKITAPI_DIR}/Tests/WTF/StringBuilder.cpp 84 ${TESTWEBKITAPI_DIR}/Tests/WTF/StringConcatenate.cpp 82 85 ${TESTWEBKITAPI_DIR}/Tests/WTF/StringHasher.cpp 83 86 ${TESTWEBKITAPI_DIR}/Tests/WTF/StringImpl.cpp 84 87 ${TESTWEBKITAPI_DIR}/Tests/WTF/StringOperators.cpp 85 88 ${TESTWEBKITAPI_DIR}/Tests/WTF/StringView.cpp 89 ${TESTWEBKITAPI_DIR}/Tests/WTF/SynchronizedFixedQueue.cpp 86 90 ${TESTWEBKITAPI_DIR}/Tests/WTF/TextBreakIterator.cpp 87 91 ${TESTWEBKITAPI_DIR}/Tests/WTF/ThreadGroup.cpp 92 ${TESTWEBKITAPI_DIR}/Tests/WTF/ThreadMessages.cpp 88 93 ${TESTWEBKITAPI_DIR}/Tests/WTF/Time.cpp 89 94 ${TESTWEBKITAPI_DIR}/Tests/WTF/UniqueRef.cpp -
trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
r220542 r220562 646 646 E1220DCA155B28AA0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E1220DC9155B287D0013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.html */; }; 647 647 E194E1BD177E53C7009C4D4E /* StopLoadingFromDidReceiveResponse.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = E194E1BC177E534A009C4D4E /* StopLoadingFromDidReceiveResponse.html */; }; 648 E373D7911F2CF35200C6FAAF /* Signals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3953F951F2CF32100A76A2E /* Signals.cpp */; }; 648 649 E3DEA8111F0A589000CBC2E8 /* ThreadGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3DEA8101F0A588000CBC2E8 /* ThreadGroup.cpp */; }; 649 650 ECA680CE1E68CC0900731D20 /* StringUtilities.mm in Sources */ = {isa = PBXBuildFile; fileRef = ECA680CD1E68CC0900731D20 /* StringUtilities.mm */; }; … … 1653 1654 E194E1BC177E534A009C4D4E /* StopLoadingFromDidReceiveResponse.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = StopLoadingFromDidReceiveResponse.html; sourceTree = "<group>"; }; 1654 1655 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>"; }; 1655 1657 E3DEA8101F0A588000CBC2E8 /* ThreadGroup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThreadGroup.cpp; sourceTree = "<group>"; }; 1656 1658 E40019301ACE9B5C001B0A2A /* BloomFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BloomFilter.cpp; sourceTree = "<group>"; }; … … 2449 2451 0BCD85691485C98B00EA2003 /* SetForScope.cpp */, 2450 2452 CD5393C91757BAC400C07123 /* SHA1.cpp */, 2453 E3953F951F2CF32100A76A2E /* Signals.cpp */, 2451 2454 81B50192140F232300D9EB58 /* StringBuilder.cpp */, 2452 2455 7CD4C26C1E2C0E6E00929470 /* StringConcatenate.cpp */, … … 3001 3004 7C83DF3D1D0A590C00FEBCF3 /* SetForScope.cpp in Sources */, 3002 3005 7C83DF2A1D0A590C00FEBCF3 /* SHA1.cpp in Sources */, 3006 E373D7911F2CF35200C6FAAF /* Signals.cpp in Sources */, 3003 3007 7C83DF321D0A590C00FEBCF3 /* StringBuilder.cpp in Sources */, 3004 3008 7CD4C26E1E2C0E6E00929470 /* StringConcatenate.cpp in Sources */, … … 3070 3074 5C2936931D5BF70D00DEAB1E /* CookieAcceptPolicy.mm in Sources */, 3071 3075 51D1249B1E785425002B2820 /* CookieManager.cpp in Sources */, 3076 9999108B1F393C96008AD455 /* Copying.mm in Sources */, 3072 3077 7CCE7EAC1A411A3400447C4C /* Counters.cpp in Sources */, 3073 3078 7AEAD47F1E20116C00416EFE /* CrossPartitionFileSchemeAccess.mm in Sources */, … … 3319 3324 7CCE7F1B1A411AE600447C4C /* WillLoad.cpp in Sources */, 3320 3325 7CCE7ED71A411A7E00447C4C /* WillPerformClientRedirectToURLCrash.mm in Sources */, 3321 9999108B1F393C96008AD455 /* Copying.mm in Sources */,3322 3326 7CCE7F1C1A411AE600447C4C /* WillSendSubmitEvent.cpp in Sources */, 3323 3327 7CCE7ED81A411A7E00447C4C /* WillSendSubmitEvent.mm in Sources */, -
trunk/Tools/TestWebKitAPI/Tests/WTF/PriorityQueue.cpp
r215135 r220562 98 98 99 99 template<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 100 struct CompareMove { 101 static bool compare(const MoveOnly& m1, const MoveOnly& m2) 102 { 103 return isHigherPriority(m1.value(), m2.value()); 104 } 105 }; 105 106 106 107 TEST(WTF_PriorityQueue, MoveOnly) 107 108 { 108 PriorityQueue<MoveOnly, compareMove<isLessThan<unsigned>>> queue;109 PriorityQueue<MoveOnly, CompareMove<isLessThan<unsigned>>::compare> queue; 109 110 110 111 Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 }; … … 123 124 TEST(WTF_PriorityQueue, DecreaseKey) 124 125 { 125 PriorityQueue<MoveOnly, compareMove<isLessThan<unsigned>>> queue;126 PriorityQueue<MoveOnly, CompareMove<isLessThan<unsigned>>::compare> queue; 126 127 127 128 Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 }; … … 149 150 TEST(WTF_PriorityQueue, IncreaseKey) 150 151 { 151 PriorityQueue<MoveOnly, compareMove<isGreaterThan<unsigned>>> queue;152 PriorityQueue<MoveOnly, CompareMove<isGreaterThan<unsigned>>::compare> queue; 152 153 153 154 Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 }; … … 175 176 TEST(WTF_PriorityQueue, Iteration) 176 177 { 177 PriorityQueue<MoveOnly, compareMove<isGreaterThan<unsigned>>> queue;178 PriorityQueue<MoveOnly, CompareMove<isGreaterThan<unsigned>>::compare> queue; 178 179 179 180 Vector<unsigned> values = { 23, 54, 4, 8, 1, 2, 4, 0 }; -
trunk/Tools/TestWebKitAPI/Tests/WTF/Signals.cpp
r220556 r220562 28 28 #include <type_traits> 29 29 #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> 34 31 #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 }87 32 88 33 class ReflectedThread : public Thread { … … 93 38 }; 94 39 95 TEST( ThreadMessage, SignalsWorkOnExit)40 TEST(Signals, SignalsWorkOnExit) 96 41 { 97 42 static bool handlerRan = false; … … 121 66 EXPECT_TRUE(handlerRan || !signalFired); 122 67 } 123 -
trunk/Tools/TestWebKitAPI/Tests/WTF/ThreadMessages.cpp
r218782 r220562 26 26 #include "config.h" 27 27 28 #include <type_traits>29 #include <wtf/DataLog.h>30 28 #include <wtf/HashSet.h> 31 29 #include <wtf/Ref.h> 32 30 #include <wtf/ThreadMessage.h> 33 31 #include <wtf/Vector.h> 34 #include <wtf/threads/Signals.h>35 32 36 33 static void runThreadMessageTest(unsigned numSenders, unsigned numMessages) … … 85 82 runThreadMessageTest(10, 10000); 86 83 } 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.