<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [GTK] IndexedDB tests failing with Modern IDB"
   href="https://bugs.webkit.org/show_bug.cgi?id=156438">156438</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[GTK] IndexedDB tests failing with Modern IDB
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>WebKit
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P2
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>WebKit Gtk
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>webkit-unassigned&#64;lists.webkit.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>mcatanzaro&#64;igalia.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>bugs-noreply&#64;webkitgtk.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Since Modern IDB has landed, I unskipped many IndexedDB tests in r199270. Unfortunately four of the tests are failing on the GTK port:

imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big.htm
imported/w3c/web-platform-tests/IndexedDB/keyorder.htm
inspector/indexeddb/requestDatabaseNames.html
storage/indexeddb/cursor-key-order.html

All other IndexedDB tests appear to be passing, which is an awesome improvement.


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/web-platform-tests/IndexedDB/idbindex-multientry-big-actual.txt
&#64;&#64; -1,4 +1,6 &#64;&#64;
+
+Harness Error (TIMEOUT), message = null

 PASS Adding one item with 1000 multiEntry keys 
-PASS Getting the one item by 1000 indeced keys  
+TIMEOUT Getting the one item by 1000 indeced keys  Test timed out


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/web-platform-tests/IndexedDB/keyorder-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/imported/w3c/web-platform-tests/IndexedDB/keyorder-actual.txt
&#64;&#64; -1,3 +1,5 &#64;&#64;
+
+Harness Error (TIMEOUT), message = null

 PASS Database readback sort - String &lt; Array 
 PASS IDBKey.cmp sorted - String &lt; Array 
&#64;&#64; -17,10 +19,10 &#64;&#64;
 PASS IDBKey.cmp sorted - &quot;&quot; &lt; &quot;a&quot; &lt; &quot;ab&quot; &lt; &quot;b&quot; &lt; &quot;ba&quot; 
 PASS Database readback sort - Arrays 
 PASS IDBKey.cmp sorted - Arrays 
-PASS Database readback sort - Array.length: 10,000 &lt; Array.length: 10,001 
+TIMEOUT Database readback sort - Array.length: 10,000 &lt; Array.length: 10,001 Test timed out
 PASS IDBKey.cmp sorted - Array.length: 10,000 &lt; Array.length: 10,001 
-PASS Database readback sort - Infinity inside arrays 
+TIMEOUT Database readback sort - Infinity inside arrays Test timed out
 PASS IDBKey.cmp sorted - Infinity inside arrays 
-PASS Database readback sort - Test different stuff at once 
+TIMEOUT Database readback sort - Test different stuff at once Test timed out
 PASS IDBKey.cmp sorted - Test different stuff at once


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/inspector/indexeddb/requestDatabaseNames-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/inspector/indexeddb/requestDatabaseNames-actual.txt
&#64;&#64; -1,11 +1,4 &#64;&#64;
-CONSOLE MESSAGE: line 10: Created Database 'Database1'
-CONSOLE MESSAGE: line 10: Created Database 'Database2'

-PASS: No IndexedDB databases should exist initially
-Created Database 'Database1'
-PASS: A single IndexedDB database should exist
-[&quot;Database1&quot;]
-Created Database 'Database2'
-PASS: Two IndexedDB databases should exist
-[&quot;Database1&quot;,&quot;Database2&quot;]
+PROTOCOL ERROR: Could not obtain database names.
+ERROR: Uncaught exception in inspector page while dispatching callback for command IndexedDB.requestDatabaseNames PROTOCOL ERROR


--- /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/storage/indexeddb/cursor-key-order-expected.txt
+++ /home/slave/webkitgtk/gtk-linux-64-release-tests/build/layout-test-results/storage/indexeddb/cursor-key-order-actual.txt
&#64;&#64; -119,156 +119,148 &#64;&#64;
 cursor = curreq.result
 PASS compare(cursor.key, '') is true
 getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, '\0') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, 'a') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, 'aa') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, 'b') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, 'ba') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, '¢') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, '水') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, '𝄞') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, '�') is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, []) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [-Infinity]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [-Number.MAX_VALUE]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [-1]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [-Number.MIN_VALUE]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [0]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [Number.MIN_VALUE]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [1]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [Number.MAX_VALUE]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [Infinity]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [new Date(0)]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [new Date(1000)]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [new Date(1317399931023)]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['\0']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['a']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['aa']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['b']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['ba']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['¢']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['水']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['𝄞']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, ['�']) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [[]]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [[], []]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [[], [], []]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [[[]]]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-cursor = curreq.result
-PASS compare(cursor.key, [[[[]]]]) is true
-getreq = store.get(cursor.key)
-PASS getreq.result is count++
-PASS count is keys.length
+FAIL getreq.result should be 12. Was 13.
+cursor = curreq.result
+FAIL compare(cursor.key, '\0') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 13. Was 14.
+cursor = curreq.result
+FAIL compare(cursor.key, 'a') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 14. Was 15.
+cursor = curreq.result
+FAIL compare(cursor.key, 'aa') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 15. Was 16.
+cursor = curreq.result
+FAIL compare(cursor.key, 'b') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 16. Was 17.
+cursor = curreq.result
+FAIL compare(cursor.key, 'ba') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 17. Was 18.
+cursor = curreq.result
+FAIL compare(cursor.key, '¢') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 18. Was 19.
+cursor = curreq.result
+FAIL compare(cursor.key, '水') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 19. Was 20.
+cursor = curreq.result
+FAIL compare(cursor.key, '𝄞') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 20. Was 21.
+cursor = curreq.result
+FAIL compare(cursor.key, '�') should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 21. Was 22.
+cursor = curreq.result
+FAIL compare(cursor.key, []) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 22. Was 23.
+cursor = curreq.result
+FAIL compare(cursor.key, [-Infinity]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 23. Was 24.
+cursor = curreq.result
+FAIL compare(cursor.key, [-Number.MAX_VALUE]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 24. Was 25.
+cursor = curreq.result
+FAIL compare(cursor.key, [-1]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 25. Was 26.
+cursor = curreq.result
+FAIL compare(cursor.key, [-Number.MIN_VALUE]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 26. Was 27.
+cursor = curreq.result
+FAIL compare(cursor.key, [0]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 27. Was 28.
+cursor = curreq.result
+FAIL compare(cursor.key, [Number.MIN_VALUE]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 28. Was 29.
+cursor = curreq.result
+FAIL compare(cursor.key, [1]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 29. Was 30.
+cursor = curreq.result
+FAIL compare(cursor.key, [Number.MAX_VALUE]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 30. Was 31.
+cursor = curreq.result
+FAIL compare(cursor.key, [Infinity]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 31. Was 32.
+cursor = curreq.result
+FAIL compare(cursor.key, [new Date(0)]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 32. Was 33.
+cursor = curreq.result
+FAIL compare(cursor.key, [new Date(1000)]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 33. Was 34.
+cursor = curreq.result
+FAIL compare(cursor.key, [new Date(1317399931023)]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 34. Was 36.
+cursor = curreq.result
+FAIL compare(cursor.key, ['']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 35. Was 37.
+cursor = curreq.result
+FAIL compare(cursor.key, ['\0']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 36. Was 38.
+cursor = curreq.result
+FAIL compare(cursor.key, ['a']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 37. Was 39.
+cursor = curreq.result
+FAIL compare(cursor.key, ['aa']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 38. Was 40.
+cursor = curreq.result
+FAIL compare(cursor.key, ['b']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 39. Was 41.
+cursor = curreq.result
+FAIL compare(cursor.key, ['ba']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 40. Was 42.
+cursor = curreq.result
+FAIL compare(cursor.key, ['¢']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 41. Was 43.
+cursor = curreq.result
+FAIL compare(cursor.key, ['水']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 42. Was 44.
+cursor = curreq.result
+FAIL compare(cursor.key, ['𝄞']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 43. Was 45.
+cursor = curreq.result
+FAIL compare(cursor.key, ['�']) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 44. Was 46.
+cursor = curreq.result
+FAIL compare(cursor.key, [[]]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 45. Was 47.
+cursor = curreq.result
+FAIL compare(cursor.key, [[], []]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 46. Was 48.
+cursor = curreq.result
+FAIL compare(cursor.key, [[], [], []]) should be true. Was false.
+getreq = store.get(cursor.key)
+FAIL getreq.result should be 47. Was 49.
+FAIL count should be 50. Was 48.

 validate compare function
 PASS compare(undefined, undefined) is true</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>