<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[193412] trunk/Tools</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/193412">193412</a></dd>
<dt>Author</dt> <dd>carlosgc@webkit.org</dd>
<dt>Date</dt> <dd>2015-12-03 23:45:05 -0800 (Thu, 03 Dec 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>[GTK] Test /webkit2/WebKitWebResource/get-data is flaky
https://bugs.webkit.org/show_bug.cgi?id=151797

Reviewed by Martin Robinson.

Since we switched to use the network process to run the unit tests
the test /webkit2/WebKitWebResource/get-data sometimes fails and
sometimes passes. We are now also getting the notification for the
css image. Since we wait for 3 resources, sometimes the css image
is loaded before and then checkResourceData is called for it, but
not handled. When the css image is the last one loaded the test
passes. So, we just need to wait for the 4 resources.

* TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:
(testWebResourceGetData):</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsTestWebKitAPITestsWebKit2GtkTestResourcescpp">trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (193411 => 193412)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2015-12-04 06:40:16 UTC (rev 193411)
+++ trunk/Tools/ChangeLog        2015-12-04 07:45:05 UTC (rev 193412)
</span><span class="lines">@@ -1,3 +1,21 @@
</span><ins>+2015-12-03  Carlos Garcia Campos  &lt;cgarcia@igalia.com&gt;
+
+        [GTK] Test /webkit2/WebKitWebResource/get-data is flaky
+        https://bugs.webkit.org/show_bug.cgi?id=151797
+
+        Reviewed by Martin Robinson.
+
+        Since we switched to use the network process to run the unit tests
+        the test /webkit2/WebKitWebResource/get-data sometimes fails and
+        sometimes passes. We are now also getting the notification for the
+        css image. Since we wait for 3 resources, sometimes the css image
+        is loaded before and then checkResourceData is called for it, but
+        not handled. When the css image is the last one loaded the test
+        passes. So, we just need to wait for the 4 resources.
+
+        * TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp:
+        (testWebResourceGetData):
+
</ins><span class="cx"> 2015-12-03  David Kilzer  &lt;ddkilzer@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         DumpRenderTree: Use-after-free in createBitmapContext() in PixelDumpSupportMac.mm
</span></span></pre></div>
<a id="trunkToolsTestWebKitAPITestsWebKit2GtkTestResourcescpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp (193411 => 193412)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp        2015-12-04 06:40:16 UTC (rev 193411)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestResources.cpp        2015-12-04 07:45:05 UTC (rev 193412)
</span><span class="lines">@@ -190,6 +190,13 @@
</span><span class="cx">         } else if (uri == kServer-&gt;getURIForPath(&quot;/javascript.js&quot;)) {
</span><span class="cx">             g_assert_cmpint(m_resourceDataSize, ==, strlen(kJavascript));
</span><span class="cx">             g_assert(!strncmp(m_resourceData.get(), kJavascript, m_resourceDataSize));
</span><ins>+        } else if (uri == kServer-&gt;getURIForPath(&quot;/blank.ico&quot;)) {
+            GUniquePtr&lt;char&gt; filePath(g_build_filename(Test::getResourcesDir().data(), &quot;blank.ico&quot;, nullptr));
+            GUniqueOutPtr&lt;char&gt; contents;
+            gsize contentsLength;
+            g_file_get_contents(filePath.get(), &amp;contents.outPtr(), &amp;contentsLength, nullptr);
+            g_assert_cmpint(m_resourceDataSize, ==, contentsLength);
+            g_assert(!memcmp(m_resourceData.get(), contents.get(), contentsLength));
</ins><span class="cx">         } else
</span><span class="cx">             g_assert_not_reached();
</span><span class="cx">         m_resourceData.reset();
</span><span class="lines">@@ -518,9 +525,7 @@
</span><span class="cx"> static void testWebResourceGetData(ResourcesTest* test, gconstpointer)
</span><span class="cx"> {
</span><span class="cx">     test-&gt;loadURI(kServer-&gt;getURIForPath(&quot;/&quot;).data());
</span><del>-    // FIXME: this should be 4 instead of 3, but we don't get the css image resource
-    // due to bug https://bugs.webkit.org/show_bug.cgi?id=78510.
-    test-&gt;waitUntilResourcesLoaded(3);
</del><ins>+    test-&gt;waitUntilResourcesLoaded(4);
</ins><span class="cx"> 
</span><span class="cx">     WebKitWebResource* resource = webkit_web_view_get_main_resource(test-&gt;m_webView);
</span><span class="cx">     g_assert(resource);
</span></span></pre>
</div>
</div>

</body>
</html>