Log Message
[EFL][WK2] Replace ecore_main_loop_iterate with waitUntilTrue in ewk tests https://bugs.webkit.org/show_bug.cgi?id=125919
Reviewed by Gyuyoung Kim. Using ecore_main_loop_iterate in while loop may result in tests hang-up when condition is not met. Replacing it with waitUntilTrue introduces a timer after which internal loop is canceled. This will cause test to fail instead of running infinitely. * UIProcess/API/efl/tests/test_ewk2_auth_request.cpp: (TEST_F): * UIProcess/API/efl/tests/test_ewk2_color_picker.cpp: (TEST_F): * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: (TEST_F): * UIProcess/API/efl/tests/test_ewk2_view.cpp: (EWK2ViewTest::onVibrate): (EWK2ViewTest::onCancelVibration): (EWK2ViewTest::loadVibrationHTMLString): (TEST_F):
Modified Paths
- trunk/Source/WebKit2/ChangeLog
- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_auth_request.cpp
- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_color_picker.cpp
- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp
- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp
Diff
Modified: trunk/Source/WebKit2/ChangeLog (161138 => 161139)
--- trunk/Source/WebKit2/ChangeLog 2013-12-30 09:58:14 UTC (rev 161138)
+++ trunk/Source/WebKit2/ChangeLog 2013-12-30 10:26:00 UTC (rev 161139)
@@ -1,3 +1,27 @@
+2013-12-30 Michał Pakuła vel Rutka <m.pak...@samsung.com>
+
+ [EFL][WK2] Replace ecore_main_loop_iterate with waitUntilTrue in ewk tests
+ https://bugs.webkit.org/show_bug.cgi?id=125919
+
+ Reviewed by Gyuyoung Kim.
+
+ Using ecore_main_loop_iterate in while loop may result in tests hang-up when
+ condition is not met. Replacing it with waitUntilTrue introduces a timer
+ after which internal loop is canceled. This will cause test to fail instead
+ of running infinitely.
+
+ * UIProcess/API/efl/tests/test_ewk2_auth_request.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_color_picker.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp:
+ (TEST_F):
+ * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+ (EWK2ViewTest::onVibrate):
+ (EWK2ViewTest::onCancelVibration):
+ (EWK2ViewTest::loadVibrationHTMLString):
+ (TEST_F):
+
2013-12-30 Carlos Garcia Campos <cgar...@igalia.com>
[GTK] Split WebKit2APITests/TestWebKitWebView
Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_auth_request.cpp (161138 => 161139)
--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_auth_request.cpp 2013-12-30 09:58:14 UTC (rev 161138)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_auth_request.cpp 2013-12-30 10:26:00 UTC (rev 161139)
@@ -182,8 +182,7 @@
// Will attempt to continue without authentication by default.
ewk_object_unref(authenticationRequest);
- while (!isFinished)
- ecore_main_loop_iterate();
+ waitUntilTrue(isFinished);
ASSERT_STRNE(expectedSuccessTitle, ewk_view_title_get(webView()));
Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_color_picker.cpp (161138 => 161139)
--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_color_picker.cpp 2013-12-30 09:58:14 UTC (rev 161138)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_color_picker.cpp 2013-12-30 10:26:00 UTC (rev 161139)
@@ -155,21 +155,18 @@
bool handled = false;
evas_object_smart_callback_add(webView(), "input,type,color,request", onColorPickerDone, &handled);
- while (!handled)
- ecore_main_loop_iterate();
+ waitUntilTrue(handled);
clickButton(ShowColorPickerButton);
handled = false;
- while (!handled)
- ecore_main_loop_iterate();
+ waitUntilTrue(handled);
api->input_picker_color_dismiss = hideColorPickerByRemovingElement;
clickButton(HideColorPickerButton);
handled = false;
- while (!handled)
- ecore_main_loop_iterate();
+ waitUntilTrue(handled);
evas_object_smart_callback_del(webView(), "input,type,color,request", onColorPickerDone);
}
#endif // ENABLE(INPUT_TYPE_COLOR)
Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp (161138 => 161139)
--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp 2013-12-30 09:58:14 UTC (rev 161138)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp 2013-12-30 10:26:00 UTC (rev 161139)
@@ -182,15 +182,11 @@
// Check for cookie changes notifications
ASSERT_TRUE(loadUrlSync(httpServer->getURLForPath("/index.html").data()));
- while (!cookiesChanged)
- ecore_main_loop_iterate();
- ASSERT_TRUE(cookiesChanged);
+ ASSERT_TRUE(waitUntilTrue(cookiesChanged));
cookiesChanged = false;
ewk_cookie_manager_cookies_clear(cookieManager);
- while (!cookiesChanged)
- ecore_main_loop_iterate();
- ASSERT_TRUE(cookiesChanged);
+ ASSERT_TRUE(waitUntilTrue(cookiesChanged));
// Stop watching for notifications
ewk_cookie_manager_changes_watch(cookieManager, 0, 0);
Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp (161138 => 161139)
--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp 2013-12-30 09:58:14 UTC (rev 161138)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp 2013-12-30 10:26:00 UTC (rev 161139)
@@ -54,6 +54,7 @@
struct VibrationCbData {
bool didReceiveVibrate; // Whether the vibration event received.
bool didReceiveCancelVibration; // Whether the cancel vibration event received.
+ bool testFinished;
unsigned vibrateCalledCount; // Vibrate callbacks count.
unsigned expectedVibrationTime; // Expected vibration time.
};
@@ -158,8 +159,10 @@
{
VibrationCbData* data = ""
unsigned* vibrationTime = static_cast<unsigned*>(eventInfo);
- if (*vibrationTime == data->expectedVibrationTime)
+ if (*vibrationTime == data->expectedVibrationTime) {
data->didReceiveVibrate = true;
+ data->testFinished = true;
+ }
data->vibrateCalledCount++;
}
@@ -167,6 +170,7 @@
{
VibrationCbData* data = ""
data->didReceiveCancelVibration = true;
+ data->testFinished = true;
}
static void loadVibrationHTMLString(Evas_Object* webView, const char* vibrationPattern, bool waitForVibrationEvent, VibrationCbData* data)
@@ -178,6 +182,7 @@
data->didReceiveVibrate = false;
data->didReceiveCancelVibration = false;
data->vibrateCalledCount = 0;
+ data->testFinished = false;
Eina_Strbuf* buffer = eina_strbuf_new();
eina_strbuf_append_printf(buffer, content, vibrationPattern);
ewk_view_html_string_load(webView, eina_strbuf_string_get(buffer), 0, 0);
@@ -185,9 +190,6 @@
if (!waitForVibrationEvent)
return;
-
- while (!data->didReceiveVibrate && !data->didReceiveCancelVibration)
- ecore_main_loop_iterate();
}
static void onContentsSizeChangedPortrait(void* userData, Evas_Object*, void* eventInfo)
@@ -361,9 +363,7 @@
ewk_view_html_string_load(webView(), formHTML, "file:///", 0);
bool handled = false;
evas_object_smart_callback_add(webView(), "form,submission,request", onFormAboutToBeSubmitted, &handled);
- while (!handled)
- ecore_main_loop_iterate();
- ASSERT_TRUE(handled);
+ ASSERT_TRUE(waitUntilTrue(handled));
evas_object_smart_callback_del(webView(), "form,submission,request", onFormAboutToBeSubmitted);
}
@@ -924,19 +924,23 @@
// Vibrate for 5 seconds.
loadVibrationHTMLString(webView(), "5000", true, &data);
+ waitUntilTrue(data.testFinished);
ASSERT_TRUE(data.didReceiveVibrate);
// Cancel any existing vibrations.
loadVibrationHTMLString(webView(), "0", true, &data);
+ waitUntilTrue(data.testFinished);
ASSERT_TRUE(data.didReceiveCancelVibration);
// This case the pattern will cause the device to vibrate for 200 ms, be still for 100 ms, and then vibrate for 5000 ms.
loadVibrationHTMLString(webView(), "[200, 100, 5000]", true, &data);
+ waitUntilTrue(data.testFinished);
ASSERT_EQ(2, data.vibrateCalledCount);
ASSERT_TRUE(data.didReceiveVibrate);
// Cancel outstanding vibration pattern.
loadVibrationHTMLString(webView(), "[0]", true, &data);
+ waitUntilTrue(data.testFinished);
ASSERT_TRUE(data.didReceiveCancelVibration);
// Stop listening for vibration events, by calling the function with null for the callbacks.
@@ -945,12 +949,14 @@
// Make sure we don't receive vibration event.
loadVibrationHTMLString(webView(), "[5000]", false, &data);
+ waitUntilTrue(data.testFinished);
ASSERT_TRUE(waitUntilTitleChangedTo("Loaded"));
ASSERT_STREQ("Loaded", ewk_view_title_get(webView()));
ASSERT_FALSE(data.didReceiveVibrate);
// Make sure we don't receive cancel vibration event.
loadVibrationHTMLString(webView(), "0", false, &data);
+ waitUntilTrue(data.testFinished);
ASSERT_TRUE(waitUntilTitleChangedTo("Loaded"));
ASSERT_STREQ("Loaded", ewk_view_title_get(webView()));
ASSERT_FALSE(data.didReceiveCancelVibration);
@@ -968,30 +974,26 @@
bool sizeChanged = false;
evas_object_smart_callback_add(webView(), "contents,size,changed", onContentsSizeChangedPortrait, &sizeChanged);
ewk_view_html_string_load(webView(), contentsSizeHTMLPortrait, 0, 0);
- while (!sizeChanged)
- ecore_main_loop_iterate();
+ waitUntilTrue(sizeChanged);
evas_object_smart_callback_del(webView(), "contents,size,changed", onContentsSizeChangedPortrait);
evas_object_smart_callback_add(webView(), "contents,size,changed", onContentsSizeChangedLandscape, &sizeChanged);
ewk_view_device_pixel_ratio_set(webView(), 2);
ewk_view_html_string_load(webView(), contentsSizeHTMLLandscape, 0, 0);
sizeChanged = false;
- while (!sizeChanged)
- ecore_main_loop_iterate();
+ waitUntilTrue(sizeChanged);
evas_object_smart_callback_del(webView(), "contents,size,changed", onContentsSizeChangedLandscape);
evas_object_smart_callback_add(webView(), "contents,size,changed", onContentsSizeChangedPortrait, &sizeChanged);
ewk_view_scale_set(webView(), 3, 0, 0);
ewk_view_html_string_load(webView(), contentsSizeHTMLPortrait, 0, 0);
sizeChanged = false;
- while (!sizeChanged)
- ecore_main_loop_iterate();
+ waitUntilTrue(sizeChanged);
// Make sure we get signal after loaded the contents having same size with previous one.
sizeChanged = false;
ewk_view_html_string_load(webView(), contentsSizeHTMLPortrait, 0, 0);
- while (!sizeChanged)
- ecore_main_loop_iterate();
+ waitUntilTrue(sizeChanged);
evas_object_smart_callback_del(webView(), "contents,size,changed", onContentsSizeChangedPortrait);
}
@@ -1003,13 +1005,11 @@
waitUntilLoadFinished();
ASSERT_TRUE(ewk_view_page_contents_get(webView(), EWK_PAGE_CONTENTS_TYPE_MHTML, PageContentsAsMHTMLCallback, 0));
- while (!obtainedPageContents)
- ecore_main_loop_iterate();
+ waitUntilTrue(obtainedPageContents);
obtainedPageContents = false;
ASSERT_TRUE(ewk_view_page_contents_get(webView(), EWK_PAGE_CONTENTS_TYPE_STRING, PageContentsAsStringCallback, 0));
- while (!obtainedPageContents)
- ecore_main_loop_iterate();
+ waitUntilTrue(obtainedPageContents);
}
TEST_F(EWK2ViewTest, ewk_view_source_mode)
_______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes