Bug 1084367 - Upgrade wptrunner to 1.4 and web-platform-tests to 1b45197f111e5bb65607d89f7d385883849d005d, a=test-only

--HG--
rename : testing/web-platform/meta/websockets/interfaces/WebSocket/events/011.html.ini => testing/web-platform/meta/IndexedDB/idbfactory_open12.htm.ini
rename : testing/web-platform/meta/websockets/interfaces/WebSocket/constants/002.html.ini => testing/web-platform/meta/IndexedDB/idbfactory_open2.htm.ini
rename : testing/web-platform/meta/websockets/interfaces/WebSocket/constants/002.html.ini => testing/web-platform/meta/IndexedDB/idbindex_getKey7.htm.ini
rename : testing/web-platform/meta/websockets/interfaces/WebSocket/constants/002.html.ini => testing/web-platform/meta/IndexedDB/idbobjectstore_get.htm.ini
rename : testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/duplicate-key-labels-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/004-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/multi-character-key-label-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/surrogate-pair-high-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/surrogate-pair-low-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/data/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/data/no-characters-after-hyphen-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/data/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/data/not-xml-serializable-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/lang/004-haswarn.html => testing/web-platform/tests/conformance-checkers/html/attributes/lang/deprecated-tag-haswarn.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/lang/003-isvalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/lang/empty-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/lang/005-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/lang/extlang-bad-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/lang/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-different-value-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/lang/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-only-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/lang/001-isvalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-same-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/role/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/role/unrecognized-role-name-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/050-novalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-bad-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/053-isvalid.html => testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/a/004-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/a/media-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/a/075-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/a/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/a/100-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/a/name-empty-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/abbr/015-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/abbr/015-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/abbr/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/address/029-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/address/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/address/029-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/address/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/area/005-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/area/media-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/area/049-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/area/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/area/049-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/area/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/audio/074-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/audio/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/audio/074-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/audio/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/base/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/bdo/022-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/bdo/022-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/blockquote/028-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/blockquote/028-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/br/023-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/br/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/bdo/023-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/br/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/canvas/070-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/canvas/070-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/cite/021-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/cite/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/cite/021-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/cite/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/code/010-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/code/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/code/010-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/code/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/del/041-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/del/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/del/041-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/del/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/dfn/016-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/dfn/016-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/dialog/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/dialog/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/div/033-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/div/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/div/033-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/div/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/dl/032-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/dl/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/dl/032-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/dl/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/em/006-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/em/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/em/006-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/em/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/embed/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/embed/height-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/embed/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/embed/type-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/embed/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/embed/width-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/footer/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-footer-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/footer/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-header-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h1/034-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h1/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h1/034-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h1/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h2/035-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h2/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h2/035-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h2/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h3/036-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h3/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h3/036-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h3/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h4/037-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h4/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h4/037-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h4/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h5/038-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h5/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h5/038-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h5/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h6/039-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h6/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/h5/039-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/h6/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/header/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/header/nested-footer-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/header/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/header/nested-header-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/hr/026-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/hr/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/hr/026-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/hr/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/i/017-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/i/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/i/017-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/i/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/iframe/042-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/iframe/042-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/img/043-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/img/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/img/043-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/img/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/usemap/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-bad-value-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/img/050-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/img/051-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-negative-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/input/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/input/list-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/input/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/input/pattern-asterisk-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/input/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/input/pattern-paren-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ins/040-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ins/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ins/040-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ins/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/kbd/012-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/kbd/012-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/055-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/058-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-bad-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/059-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-missing-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/060-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-redundant-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/056-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-bad-value-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/057-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-empty-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/056-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/058-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/061-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/054-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/keygen/054-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/keygen/non-void-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/label/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/label/for-descendant-no-id-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/label/001-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/label/for-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/label/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/label/multiple-descendants-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/link/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/link/href-missing-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/map/048-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/map/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/map/048-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/map/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/mark/009-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/mark/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/noscript/005-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/noscript/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/object/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/object/data-type-missing-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/object/044-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/object/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/object/044-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/object/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ol/031-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ol/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ol/031-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ol/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/option/081-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/option/label-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/option/081-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/option/label-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/option/080-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/option/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/option/080-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/option/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/p/025-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/p/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/p/025-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/p/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/param/046-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/param/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/param/046-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/param/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/pre/027-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/pre/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/pre/027-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/pre/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/q/013-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/q/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/q/013-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/q/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ruby/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ruby/empty-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ruby/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ruby/missing-rt-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/s/011-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/s/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/samp/011-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/samp/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/samp/011-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/samp/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/script/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/script/language-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/small/008-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/small/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/small/008-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/small/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/span/014-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/span/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/span/014-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/span/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/strong/007-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/strong/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/strong/007-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/strong/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/104-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/017-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-div-child-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/016-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-p-child-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/015-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-in-head-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/016-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/017-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/style/018-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-multiple-adjacent-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/sub/020-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/sub/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/sub/020-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/sub/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/sup/019-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/sup/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/sup/019-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/sup/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/table/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-hidden-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/table/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/table/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-type-child-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/time/001-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/time/datetime-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/title/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/title/empty-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/attributes/title/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/title/missing-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/u/001-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/u/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ul/030-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ul/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/ul/030-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/ul/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/var/018-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/var/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/var/018-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/var/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/video/073-isvalid.html => testing/web-platform/tests/conformance-checkers/html/elements/video/model-isvalid.html
rename : testing/web-platform/tests/conformance-checkers/html/elements/video/073-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/video/model-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/acronym-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/applet-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/basefont-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/004-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/big-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/005-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/center-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/006-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/dir-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/007-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/font-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/008-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/frameset-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/009-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/noframes-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/010-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/profile-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/012-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/strike-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/obsolete/013-novalid.html => testing/web-platform/tests/conformance-checkers/html/obsolete/tt-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/other/045-novalid.html => testing/web-platform/tests/conformance-checkers/html/other/applet-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/other/044-novalid.html => testing/web-platform/tests/conformance-checkers/html/other/obj-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/003-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/cr-charref-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/008-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/range-charref-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/002-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/u000b-charref-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/001-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/u000b-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/006-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/u007f-charref-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/007-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/u10ffff-charref-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/005-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/ufffe-charref-novalid.html
rename : testing/web-platform/tests/conformance-checkers/html/parser/004-novalid.html => testing/web-platform/tests/conformance-checkers/html/parser/unassigned-charref-novalid.html
rename : testing/web-platform/tests/websockets/interfaces/WebSocket/protocol/001.html => testing/web-platform/tests/websockets/interfaces/WebSocket/protocol/protocol-initial.html
This commit is contained in:
James Graham 2014-10-20 12:18:01 +01:00
parent 134efbf1e5
commit c335523356
708 changed files with 14799 additions and 2971 deletions

View File

@ -1,5 +1,5 @@
fxos_appgen >= 0.5
mozdevice >= 0.37
mozdevice >= 0.41
gaiatest >= 0.26
marionette_client >= 0.7.10
moznetwork >= 0.24

View File

@ -9,15 +9,17 @@ import textwrap
from setuptools import setup, find_packages
here = os.path.split(__file__)[0]
PACKAGE_NAME = 'wptrunner'
PACKAGE_VERSION = '1.1.1'
PACKAGE_VERSION = '1.4'
# Dependencies
with open('requirements.txt') as f:
with open(os.path.join(here, "requirements.txt")) as f:
deps = f.read().splitlines()
# Browser-specific requirements
requirements_files = glob.glob("requirements_*.txt")
requirements_files = glob.glob(os.path.join(here, "requirements_*.txt"))
profile_dest = None
dest_exists = False

View File

@ -12,6 +12,9 @@ import gaiatest
import mozdevice
import moznetwork
import mozrunner
from marionette import expected
from marionette.by import By
from marionette.wait import Wait
from mozprofile import FirefoxProfile, Preferences
from .base import get_free_port, BrowserError, Browser, ExecutorBrowser
@ -175,7 +178,7 @@ class B2GBrowser(Browser):
self.device.reboot(wait=True)
def pid(self):
return "Remote"
return None
def is_alive(self):
return True
@ -191,9 +194,9 @@ class B2GExecutorBrowser(ExecutorBrowser):
import sys, subprocess
self.dm = mozdevice.DeviceManagerADB()
self.dm.forward("tcp:%s" % self.marionette_port,
"tcp:2828")
self.device = mozdevice.ADBDevice()
self.device.forward("tcp:%s" % self.marionette_port,
"tcp:2828")
self.executor = None
self.marionette = None
self.gaia_device = None
@ -231,26 +234,10 @@ class B2GExecutorBrowser(ExecutorBrowser):
self.gaia_apps.launch("CertTest App")
def wait_for_homescreen(self, timeout):
self.executor.logger.info("Waiting for homescreen")
self.marionette.execute_async_script("""
let manager = window.wrappedJSObject.appWindowManager || window.wrappedJSObject.AppWindowManager;
let app = null;
if (manager) {
app = ('getActiveApp' in manager) ? manager.getActiveApp() : manager.getCurrentDisplayedApp();
}
if (app) {
log('Already loaded home screen');
marionetteScriptFinished();
} else {
log('waiting for mozbrowserloadend');
window.addEventListener('mozbrowserloadend', function loaded(aEvent) {
log('received mozbrowserloadend for ' + aEvent.target.src);
if (aEvent.target.src.indexOf('ftu') != -1 || aEvent.target.src.indexOf('homescreen') != -1) {
window.removeEventListener('mozbrowserloadend', loaded);
marionetteScriptFinished();
}
});
}""", script_timeout=1000 * timeout)
self.executor.logger.info("Waiting for home screen to load")
Wait(self.marionette, timeout).until(expected.element_present(
By.CSS_SELECTOR, '#homescreen[loading-state=false]'))
class B2GMarionetteTestharnessExecutor(MarionetteTestharnessExecutor):
def after_connect(self):

View File

@ -90,6 +90,11 @@ class Browser(object):
"""Callback function used with ProcessHandler to handle output from the browser process."""
pass
@abstractmethod
def pid(self):
"""pid of the browser process or None if there is no pid"""
pass
@abstractmethod
def is_alive(self):
"""Boolean indicating whether the browser process is still running"""
@ -104,10 +109,10 @@ class Browser(object):
with which it should be instantiated"""
return ExecutorBrowser, {}
def log_crash(self, logger, process, test):
def log_crash(self, process, test):
"""Return a list of dictionaries containing information about crashes that happend
in the browser, or an empty list if no crashes occurred"""
logger.crash(process, test)
self.logger.crash(process, test)
class NullBrowser(Browser):
def start(self):
@ -119,6 +124,9 @@ class NullBrowser(Browser):
def stop(self):
pass
def pid(self):
return None
def is_alive(self):
return True

View File

@ -42,12 +42,12 @@ def browser_kwargs(**kwargs):
def executor_kwargs(http_server_url, **kwargs):
executor_kwargs = base_executor_kwargs(http_server_url, **kwargs)
executor_kwargs["close_after_done"] = True
executor_kwargs["http_server_override"] = "http://web-platform.test:8000"
return executor_kwargs
def env_options():
return {"host": "localhost",
"external_host": "web-platform.test",
"bind_hostname": "true",
"required_files": required_files}
@ -82,7 +82,13 @@ class FirefoxBrowser(Browser):
preferences = self.load_prefs()
self.profile = FirefoxProfile(locations=locations, proxy=True, preferences=preferences)
ports = {"http": "8000",
"https": "8443",
"ws": "8888"}
self.profile = FirefoxProfile(locations=locations,
proxy=ports,
preferences=preferences)
self.profile.set_preferences({"marionette.defaultPrefs.enabled": True,
"marionette.defaultPrefs.port": self.marionette_port,
"dom.disable_open_during_load": False})
@ -133,7 +139,9 @@ class FirefoxBrowser(Browser):
command=" ".join(self.runner.command))
def is_alive(self):
return self.runner.is_running()
if self.runner:
return self.runner.is_running()
return False
def cleanup(self):
self.stop()
@ -142,8 +150,8 @@ class FirefoxBrowser(Browser):
assert self.marionette_port is not None
return ExecutorBrowser, {"marionette_port": self.marionette_port}
def log_crash(self, logger, process, test):
def log_crash(self, process, test):
dump_dir = os.path.join(self.profile.profile, "minidumps")
mozcrash.log_crashes(logger, dump_dir, symbols_path=self.symbols_path,
mozcrash.log_crashes(self.logger, dump_dir, symbols_path=self.symbols_path,
stackwalk_binary=self.stackwalk_binary,
process=process, test=test)

View File

@ -21,9 +21,11 @@ http://www2.web-platform.test:8001
http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8001
http://xn--lve-6lad.web-platform.test:8001
ws://web-platform.test:8888
ws://www.web-platform.test:8888
ws://www1.web-platform.test:8888
ws://www2.web-platform.test:8888
ws://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8888
ws://xn--lve-6lad.web-platform.test:8888
# These are actually ws servers, but until mozprofile is
# fixed we have to pretend that they are http servers
http://web-platform.test:8888
http://www.web-platform.test:8888
http://www1.web-platform.test:8888
http://www2.web-platform.test:8888
http://xn--n8j6ds53lwwkrqhv28a.web-platform.test:8888
http://xn--lve-6lad.web-platform.test:8888

View File

@ -49,8 +49,7 @@ class TestExecutor(object):
convert_result = None
def __init__(self, browser, http_server_url, timeout_multiplier=1,
http_server_override=None):
def __init__(self, browser, http_server_url, timeout_multiplier=1):
"""Abstract Base class for object that actually executes the tests in a
specific browser. Typically there will be a different TestExecutor
subclass for each test type and method of executing tests.
@ -61,15 +60,7 @@ class TestExecutor(object):
are running.
:param timeout_multiplier: Multiplier relative to base timeout to use
when setting test timeout.
:param http_server_override: Server location to use in place of the
server-supplied default. This is primarily
useful when using a proxy to reroute requests
form e.g. web-platform.test to localhost.
"""
if http_server_override is not None:
http_server_url = http_server_override
self.runner = None
self.browser = browser
self.http_server_url = http_server_url

View File

@ -38,12 +38,10 @@ class MarionetteTestExecutor(TestExecutor):
browser,
http_server_url,
timeout_multiplier=1,
close_after_done=True,
http_server_override=None):
close_after_done=True):
do_delayed_imports()
TestExecutor.__init__(self, browser, http_server_url, timeout_multiplier,
http_server_override)
TestExecutor.__init__(self, browser, http_server_url, timeout_multiplier)
self.marionette_port = browser.marionette_port
self.marionette = None

View File

@ -33,10 +33,9 @@ def do_delayed_imports():
class SeleniumTestExecutor(TestExecutor):
def __init__(self, browser, http_server_url, timeout_multiplier=1,
http_server_override=None, **kwargs):
**kwargs):
do_delayed_imports()
TestExecutor.__init__(self, browser, http_server_url, timeout_multiplier,
http_server_override)
TestExecutor.__init__(self, browser, http_server_url, timeout_multiplier)
self.webdriver_port = browser.webdriver_port
self.webdriver = None

View File

@ -25,7 +25,7 @@ class ServoTestharnessExecutor(ProcessTestExecutor):
self.result_data = None
self.result_flag = threading.Event()
self.command = [self.binary, "--hard-fail",
self.command = [self.binary, "--cpu", "--hard-fail",
urlparse.urljoin(self.http_server_url, test.url)]
if self.debug_args:

View File

@ -142,7 +142,7 @@ def update_from_logs(metadata_path, manifest, *log_filenames, **kwargs):
def write_changes(metadata_path, expected_map):
# First write the new manifest files to a temporary directory
temp_path = tempfile.mkdtemp()
temp_path = tempfile.mkdtemp(dir=os.path.split(metadata_path)[0])
write_new_expected(temp_path, expected_map)
shutil.copyfile(os.path.join(metadata_path, "MANIFEST.json"),
os.path.join(temp_path, "MANIFEST.json"))
@ -236,6 +236,9 @@ class ExpectedUpdater(object):
return
test_cls = wpttest.manifest_test_cls[test.test_type]
if data["status"] == "SKIP":
return
result = test_cls.result_cls(
data["status"],
data.get("message"))

View File

@ -55,6 +55,7 @@ class Reducer(object):
test_filter = wptrunner.TestFilter(include=kwargs["include"])
self.test_loader = wptrunner.TestLoader(kwargs["tests_root"],
kwargs["metadata_root"],
[self.test_type],
test_filter,
run_info)
if kwargs["repeat"] == 1:
@ -176,8 +177,7 @@ class Reducer(object):
def get_initial_tests(self):
# Need to pass in arguments
all_tests = self.test_loader.load_tests([self.test_type],
"none", 1, 1)[self.test_type]
all_tests = self.test_loader.tests[self.test_type]
tests = []
for item in all_tests:
tests.append(item)

View File

@ -110,8 +110,11 @@ class TestRunner(object):
# Need to block here just to allow for contention with other processes
test = self.test_queue.get(block=True, timeout=1)
except Empty:
self.logger.info("No more tests")
return Stop
# If we are running tests in groups (e.g. by-dir) then this queue might be
# empty but there could be other test queues. restart_runner won't actually
# start the runner if there aren't any more tests to run
self.send_message("restart_runner")
return
else:
self.send_message("test_start", test)
try:
@ -158,7 +161,7 @@ def next_manager_number():
class TestRunnerManager(threading.Thread):
init_lock = threading.Lock()
def __init__(self, suite_name, tests_queue, browser_cls, browser_kwargs,
def __init__(self, suite_name, test_queue, test_source_cls, browser_cls, browser_kwargs,
executor_cls, executor_kwargs, stop_flag, pause_on_unexpected=False):
"""Thread that owns a single TestRunner process and any processes required
by the TestRunner (e.g. the Firefox binary).
@ -176,7 +179,9 @@ class TestRunnerManager(threading.Thread):
processes
"""
self.suite_name = suite_name
self.tests_queue = tests_queue
self.test_queue = test_queue
self.test_source_cls = test_source_cls
self.browser_cls = browser_cls
self.browser_kwargs = browser_kwargs
@ -184,6 +189,8 @@ class TestRunnerManager(threading.Thread):
self.executor_cls = executor_cls
self.executor_kwargs = executor_kwargs
self.test_source = None
self.browser = None
self.browser_pid = None
@ -228,10 +235,12 @@ class TestRunnerManager(threading.Thread):
that the manager should shut down the next time the event loop
spins."""
self.logger = structuredlog.StructuredLogger(self.suite_name)
with self.browser_cls(self.logger, **self.browser_kwargs) as browser:
with self.browser_cls(self.logger, **self.browser_kwargs) as browser, self.test_source_cls(self.test_queue) as test_source:
self.browser = browser
self.test_source = test_source
try:
self.init()
if self.init() is Stop:
return
while True:
commands = {"init_succeeded": self.init_succeeded,
"init_failed": self.init_failed,
@ -316,11 +325,16 @@ class TestRunnerManager(threading.Thread):
# To guard against cases where we fail to connect with marionette for
# whatever reason
self.init_timer = threading.Timer(self.browser.init_timeout, init_failed)
test_queue = self.test_source.get_queue()
if test_queue is None:
self.logger.info("No more tests")
return Stop
try:
self.init_timer.start()
self.browser.start()
self.browser_pid = self.browser.pid()
self.start_test_runner()
self.start_test_runner(test_queue)
except:
self.logger.warning("Failure during init %s" % traceback.format_exc())
self.init_timer.cancel()
@ -353,14 +367,16 @@ class TestRunnerManager(threading.Thread):
self.logger.critical("Test runner failed to initialise correctly; shutting down")
return Stop
def start_test_runner(self):
def start_test_runner(self, test_queue):
# Note that we need to be careful to start the browser before the
# test runner to ensure that any state set when the browser is started
# can be passed in to the test runner.
assert self.command_queue is not None
assert self.remote_queue is not None
self.logger.info("Starting runner")
executor_browser_cls, executor_browser_kwargs = self.browser.executor_browser()
args = (self.tests_queue,
args = (test_queue,
self.remote_queue,
self.command_queue,
self.executor_cls,
@ -381,6 +397,7 @@ class TestRunnerManager(threading.Thread):
if self.init_timer is not None:
self.init_timer.cancel()
self.logger.debug("TestManager cleanup")
while True:
try:
self.logger.warning(" ".join(map(repr, self.command_queue.get_nowait())))
@ -435,7 +452,7 @@ class TestRunnerManager(threading.Thread):
self.send_message("run_test")
def requeue_test(self):
self.test_queue.put(self.test)
self.test_source.requeue(self.test)
self.test = None
def test_start(self, test):
@ -478,7 +495,7 @@ class TestRunnerManager(threading.Thread):
self.unexpected_count += 1
self.logger.debug("Unexpected count in this thread %i" % self.unexpected_count)
if status == "CRASH":
self.browser.log_crash(self.logger, process=self.browser_pid, test=test.id)
self.browser.log_crash(process=self.browser_pid, test=test.id)
self.logger.test_end(test.id,
status,
@ -488,7 +505,7 @@ class TestRunnerManager(threading.Thread):
self.test = None
if self.pause_on_unexpected and (subtest_unexpected or is_unexpected):
self.logger.info("Got an unexpected result, pausing until the browser exists")
self.logger.info("Got an unexpected result, pausing until the browser exits")
self.browser.runner.process_handler.wait()
# Handle starting the next test, with a runner restart if required
@ -502,9 +519,8 @@ class TestRunnerManager(threading.Thread):
"""Stop and restart the TestRunner"""
if self.restart_count >= self.max_restarts:
return Stop
self.logger.info("Restarting runner")
self.stop_runner()
self.init()
return self.init()
def log(self, action, kwargs):
getattr(self.logger, action)(**kwargs)
@ -514,12 +530,35 @@ class TestRunnerManager(threading.Thread):
self.restart_runner()
class TestQueue(object):
def __init__(self, test_source_cls, test_type, tests, **kwargs):
self.queue = None
self.test_source_cls = test_source_cls
self.test_type = test_type
self.tests = tests
self.kwargs = kwargs
def __enter__(self):
self.queue = Queue()
self.test_source_cls.queue_tests(self.queue,
self.test_type,
self.tests,
**self.kwargs)
return self.queue
def __exit__(self, *args, **kwargs):
self.queue.close()
class ManagerGroup(object):
def __init__(self, suite_name, size, browser_cls, browser_kwargs,
def __init__(self, suite_name, size, test_source_cls, test_source_kwargs,
browser_cls, browser_kwargs,
executor_cls, executor_kwargs, pause_on_unexpected=False):
"""Main thread object that owns all the TestManager threads."""
self.suite_name = suite_name
self.size = size
self.test_source_cls = test_source_cls
self.test_source_kwargs = test_source_kwargs
self.browser_cls = browser_cls
self.browser_kwargs = browser_kwargs
self.executor_cls = executor_cls
@ -530,6 +569,7 @@ class ManagerGroup(object):
self.stop_flag = threading.Event()
self.pause_on_unexpected = pause_on_unexpected
self.logger = structuredlog.StructuredLogger(suite_name)
self.test_queue = None
def __enter__(self):
return self
@ -537,21 +577,28 @@ class ManagerGroup(object):
def __exit__(self, exc_type, exc_val, exc_tb):
self.stop()
def start(self, tests_queue):
def run(self, test_type, tests):
"""Start all managers in the group"""
self.logger.debug("Using %i processes" % self.size)
self.tests_queue = tests_queue
for _ in range(self.size):
manager = TestRunnerManager(self.suite_name,
tests_queue,
self.browser_cls,
self.browser_kwargs,
self.executor_cls,
self.executor_kwargs,
self.stop_flag,
self.pause_on_unexpected)
manager.start()
self.pool.add(manager)
self.test_queue = TestQueue(self.test_source_cls,
test_type,
tests,
**self.test_source_kwargs)
with self.test_queue as test_queue:
for _ in range(self.size):
manager = TestRunnerManager(self.suite_name,
test_queue,
self.test_source_cls,
self.browser_cls,
self.browser_kwargs,
self.executor_cls,
self.executor_kwargs,
self.stop_flag,
self.pause_on_unexpected)
manager.start()
self.pool.add(manager)
self.wait()
def is_alive(self):
"""Boolean indicating whether any manager in the group is still alive"""

View File

@ -44,8 +44,7 @@ def create_parser(product_choices=None):
config_data = config.load()
product_choices = products.products_enabled(config_data)
parser = argparse.ArgumentParser("web-platform-tests",
description="Runner for web-platform-tests tests.")
parser = argparse.ArgumentParser(description="Runner for web-platform-tests tests.")
parser.add_argument("--metadata", action="store", type=abs_path, dest="metadata_root",
help="Path to the folder containing test metadata"),
parser.add_argument("--tests", action="store", type=abs_path, dest="tests_root",
@ -69,6 +68,11 @@ def create_parser(product_choices=None):
parser.add_argument("--include-manifest", type=abs_path,
help="Path to manifest listing tests to include")
parser.add_argument("--run-by-dir", type=int, nargs="?", default=False,
help="Split run into groups by directories. With a parameter,"
"limit the depth of splits e.g. --run-by-dir=1 to split by top-level"
"directory")
parser.add_argument("--total-chunks", action="store", type=int, default=1,
help="Total number of chunks to use")
parser.add_argument("--this-chunk", action="store", type=int, default=1,

View File

@ -12,7 +12,10 @@ import socket
import sys
import threading
import time
import urlparse
from Queue import Empty
from StringIO import StringIO
from abc import ABCMeta, abstractmethod
from collections import defaultdict, OrderedDict
from multiprocessing import Queue
@ -97,6 +100,7 @@ class TestEnvironment(object):
self.test_path = test_path
self.server = None
self.config = None
self.external_config = None
self.test_server_port = options.pop("test_server_port", True)
self.options = options if options is not None else {}
self.required_files = options.pop("required_files", [])
@ -105,11 +109,11 @@ class TestEnvironment(object):
def __enter__(self):
self.copy_required_files()
config = self.load_config()
serve.set_computed_defaults(config)
self.config = self.load_config()
serve.set_computed_defaults(self.config)
serve.logger = serve.default_logger("info")
self.config, self.servers = serve.start(config)
self.external_config, self.servers = serve.start(self.config)
return self
def __exit__(self, exc_type, exc_val, exc_tb):
@ -129,6 +133,8 @@ class TestEnvironment(object):
data = f.read()
local_config = json.loads(data % self.options)
local_config["external_host"] = self.options.get("external_host", None)
return serve.merge_json(default_config, local_config)
def copy_required_files(self):
@ -367,14 +373,38 @@ class TestFilter(object):
class TestLoader(object):
def __init__(self, tests_root, metadata_root, test_filter, run_info):
def __init__(self, tests_root, metadata_root, test_types, test_filter, run_info,
chunk_type="none", total_chunks=1, chunk_number=1):
self.tests_root = tests_root
self.metadata_root = metadata_root
self.test_types = test_types
self.test_filter = test_filter
self.run_info = run_info
self.manifest_path = os.path.join(self.metadata_root, "MANIFEST.json")
self.manifest = self.load_manifest()
self.tests = None
self.disabled_tests = None
self.chunk_type = chunk_type
self.total_chunks = total_chunks
self.chunk_number = chunk_number
self.chunker = {"none": Unchunked,
"hash": HashChunker,
"equal_time": EqualTimeChunker}[chunk_type](total_chunks,
chunk_number)
self._test_ids = None
self._load_tests()
@property
def test_ids(self):
if self._test_ids is None:
self._test_ids = []
for test_dict in [self.disabled_tests, self.tests]:
for test_type in self.test_types:
self._test_ids += [item.id for item in test_dict[test_type]]
return self._test_ids
def create_manifest(self):
logger.info("Creating test manifest")
@ -398,11 +428,11 @@ class TestLoader(object):
def load_expected_manifest(self, test_path):
return manifestexpected.get_manifest(self.metadata_root, test_path, self.run_info)
def iter_tests(self, test_types, chunker=None):
manifest_items = self.test_filter(self.manifest.itertypes(*test_types))
def iter_tests(self):
manifest_items = self.test_filter(self.manifest.itertypes(*self.test_types))
if chunker is not None:
manifest_items = chunker(manifest_items)
if self.chunker is not None:
manifest_items = self.chunker(manifest_items)
for test_path, tests in manifest_items:
expected_file = self.load_expected_manifest(test_path)
@ -411,34 +441,19 @@ class TestLoader(object):
test_type = manifest_test.item_type
yield test_path, test_type, test
def get_disabled(self, test_types):
rv = defaultdict(list)
for test_path, test_type, test in self.iter_tests(test_types):
if test.disabled():
rv[test_type].append(test)
return rv
def load_tests(self, test_types, chunk_type, total_chunks, chunk_number):
def _load_tests(self):
"""Read in the tests from the manifest file and add them to a queue"""
rv = defaultdict(list)
tests = {"enabled":defaultdict(list),
"disabled":defaultdict(list)}
chunker = {"none": Unchunked,
"hash": HashChunker,
"equal_time": EqualTimeChunker}[chunk_type](total_chunks,
chunk_number)
for test_path, test_type, test in self.iter_tests():
key = "enabled" if not test.disabled() else "disabled"
tests[key][test_type].append(test)
for test_path, test_type, test in self.iter_tests(test_types, chunker):
if not test.disabled():
rv[test_type].append(test)
return rv
def get_groups(self, test_types, chunk_type="none", total_chunks=1, chunk_number=1):
if self.tests is None:
self.tests = self.load_tests(test_types, chunk_type, total_chunks, chunk_number)
self.tests = tests["enabled"]
self.disabled_tests = tests["disabled"]
def groups(self, test_types, chunk_type="none", total_chunks=1, chunk_number=1):
groups = set()
for test_type in test_types:
@ -448,20 +463,82 @@ class TestLoader(object):
return groups
def queue_tests(self, test_types, chunk_type, total_chunks, chunk_number):
if self.tests is None:
self.tests = self.load_tests(test_types, chunk_type, total_chunks, chunk_number)
tests_queue = defaultdict(Queue)
test_ids = []
class TestSource(object):
__metaclass__ = ABCMeta
for test_type in test_types:
for test in self.tests[test_type]:
tests_queue[test_type].put(test)
test_ids.append(test.id)
@abstractmethod
def queue_tests(self, test_queue):
pass
return test_ids, tests_queue
@abstractmethod
def requeue_test(self, test):
pass
def __enter__(self):
return self
def __exit__(self, *args, **kwargs):
pass
class SingleTestSource(TestSource):
def __init__(self, test_queue):
self.test_queue = test_queue
@classmethod
def queue_tests(cls, test_queue, test_type, tests):
for test in tests[test_type]:
test_queue.put(test)
def get_queue(self):
if self.test_queue.empty():
return None
return self.test_queue
def requeue_test(self, test):
self.test_queue.put(test)
class PathGroupedSource(TestSource):
def __init__(self, test_queue):
self.test_queue = test_queue
self.current_queue = None
@classmethod
def queue_tests(cls, test_queue, test_type, tests, depth=None):
if depth is True:
depth = None
prev_path = None
group = None
for test in tests[test_type]:
path = urlparse.urlsplit(test.url).path.split("/")[1:-1][:depth]
if path != prev_path:
group = []
test_queue.put(group)
prev_path = path
group.append(test)
def get_queue(self):
if not self.current_queue or self.current_queue.empty():
try:
data = self.test_queue.get(block=True, timeout=1)
self.current_queue = Queue()
for item in data:
self.current_queue.put(item)
except Empty:
return None
return self.current_queue
def requeue_test(self, test):
self.current_queue.put(test)
def __exit__(self, *args, **kwargs):
if self.current_queue:
self.current_queue.close()
class LogThread(threading.Thread):
def __init__(self, queue, logger, level):
@ -514,18 +591,20 @@ def list_test_groups(tests_root, metadata_root, test_types, product, **kwargs):
run_info = wpttest.get_run_info(metadata_root, product, debug=False)
test_filter = TestFilter(include=kwargs["include"], exclude=kwargs["exclude"],
manifest_path=kwargs["include_manifest"])
test_loader = TestLoader(tests_root, metadata_root, test_filter, run_info)
test_loader = TestLoader(tests_root, metadata_root, test_types, test_filter, run_info)
for item in sorted(test_loader.get_groups(test_types)):
for item in sorted(test_loader.groups()):
print item
def list_disabled(tests_root, metadata_root, test_types, product, **kwargs):
do_test_relative_imports(tests_root)
rv = []
run_info = wpttest.get_run_info(metadata_root, product, debug=False)
test_loader = TestLoader(tests_root, metadata_root, TestFilter(), run_info)
test_loader = TestLoader(tests_root, metadata_root, test_types, TestFilter(), run_info)
for test_type, tests in test_loader.get_disabled(test_types).iteritems():
for test_type, tests in test_loader.disabled_tests.iteritems():
for test in tests:
rv.append({"test": test.id, "reason": test.disabled()})
print json.dumps(rv, indent=2)
@ -563,9 +642,25 @@ def run_tests(config, tests_root, metadata_root, product, **kwargs):
if "test_loader" in kwargs:
test_loader = kwargs["test_loader"]
else:
test_filter = TestFilter(include=kwargs["include"], exclude=kwargs["exclude"],
test_filter = TestFilter(include=kwargs["include"],
exclude=kwargs["exclude"],
manifest_path=kwargs["include_manifest"])
test_loader = TestLoader(tests_root, metadata_root, test_filter, run_info)
test_loader = TestLoader(tests_root,
metadata_root,
kwargs["test_types"],
test_filter,
run_info,
kwargs["chunk_type"],
kwargs["total_chunks"],
kwargs["this_chunk"])
if kwargs["run_by_dir"] is False:
test_source_cls = SingleTestSource
test_source_kwargs = {}
else:
# A value of None indicates infinite depth
test_source_cls = PathGroupedSource
test_source_kwargs = {"depth": kwargs["run_by_dir"]}
logger.info("Using %i client processes" % kwargs["processes"])
@ -576,22 +671,22 @@ def run_tests(config, tests_root, metadata_root, product, **kwargs):
logger.critical("Error starting test environment: %s" % e.message)
raise
base_server = "http://%s:%i" % (test_environment.config["host"],
test_environment.config["ports"]["http"][0])
base_server = "http://%s:%i" % (test_environment.external_config["host"],
test_environment.external_config["ports"]["http"][0])
repeat = kwargs["repeat"]
for repeat_count in xrange(repeat):
if repeat > 1:
logger.info("Repetition %i / %i" % (repeat_count + 1, repeat))
test_ids, test_queues = test_loader.queue_tests(kwargs["test_types"],
kwargs["chunk_type"],
kwargs["total_chunks"],
kwargs["this_chunk"])
unexpected_count = 0
logger.suite_start(test_ids, run_info)
logger.suite_start(test_loader.test_ids, run_info)
for test_type in kwargs["test_types"]:
logger.info("Running %s tests" % test_type)
tests_queue = test_queues[test_type]
for test in test_loader.disabled_tests[test_type]:
logger.test_start(test.id)
logger.test_end(test.id, status="SKIP")
executor_cls = executor_classes.get(test_type)
executor_kwargs = get_executor_kwargs(base_server,
@ -602,20 +697,22 @@ def run_tests(config, tests_root, metadata_root, product, **kwargs):
(test_type, product))
continue
with ManagerGroup("web-platform-tests",
kwargs["processes"],
test_source_cls,
test_source_kwargs,
browser_cls,
browser_kwargs,
executor_cls,
executor_kwargs,
kwargs["pause_on_unexpected"]) as manager_group:
try:
manager_group.start(tests_queue)
manager_group.run(test_type, test_loader.tests)
except KeyboardInterrupt:
logger.critical("Main thread got signal")
manager_group.stop()
raise
manager_group.wait()
unexpected_count += manager_group.unexpected_count()
unexpected_total += unexpected_count

View File

@ -3,7 +3,7 @@
[Blob interface object]
expected: FAIL
[no-argument Blob constructor without 'new']
[no-argument Blob constructor without \'new\']
expected: FAIL
[A plain object should be treated as a sequence for the blobParts argument.]
@ -83,12 +83,5 @@
[no-argument Blob constructor]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL

View File

@ -149,13 +149,6 @@
[Stringification of new Blob(["TEST"\])]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL
[Blob interface: new Blob(["TEST"\]) must inherit property "close" with the proper type (3)]
@ -172,12 +165,6 @@
[Stringification of new File(["myFileBits"\], "myFileName")]
expected:
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.9") and (processor == "x86_64") and (bits == 64): FAIL
[Blob interface: new File(["myFileBits"\], "myFileName") must inherit property "isClosed" with the proper type (2)]

View File

@ -0,0 +1,5 @@
[idbcursor_advance_index9.htm]
type: testharness
[IDBCursor.advance() - index - throw InvalidStateError caused by object store been deleted]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbcursor_advance_objectstore5.htm]
type: testharness
[IDBCursor.advance() - object store - throw InvalidStateError caused by object store been deleted]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbcursor_continue_index8.htm]
type: testharness
[IDBCursor.continue() - index - throw InvalidStateError caused by object store been deleted]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbcursor_continue_objectstore6.htm]
type: testharness
[IDBCursor.continue() - object store - throw InvalidStateError caused by object store been deleted]
expected: FAIL

View File

@ -0,0 +1,10 @@
[idbcursor_delete_index4.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBCursor.delete() - index - throw InvalidStateError caused by object store been deleted]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbcursor_delete_index5.htm]
type: testharness
[IDBCursor.delete() - index - throw InvalidStateError when the cursor is being iterated]
expected: FAIL

View File

@ -0,0 +1,10 @@
[idbcursor_delete_objectstore4.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBCursor.delete() - object store - throw InvalidStateError caused by object store been deleted]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbcursor_delete_objectstore5.htm]
type: testharness
[IDBCursor.delete() - object store - throw InvalidStateError when the cursor is being iterated]
expected: FAIL

View File

@ -0,0 +1,10 @@
[idbcursor_update_index4.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBCursor.update() - index - attempt to modify a record when object store been deleted]
expected: FAIL

View File

@ -0,0 +1,10 @@
[idbcursor_update_objectstore5.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBCursor.update() - object store - attempt to modify a record when object store been deleted]
expected: FAIL

View File

@ -0,0 +1,7 @@
[idbfactory_open12.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH

View File

@ -1,6 +1,6 @@
[002.html]
[idbfactory_open2.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -0,0 +1,10 @@
[idbindex_get6.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBIndex.get() - throw InvalidStateError when the index is deleted]
expected: FAIL

View File

@ -1,5 +1,10 @@
[idbindex_getKey6.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBIndex.getKey() - throw InvalidStateError when the index is deleted]
expected: FAIL

View File

@ -0,0 +1,6 @@
[idbindex_getKey7.htm]
type: testharness
expected:
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -0,0 +1,10 @@
[idbindex_openCursor.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBIndex.openCursor() - throw InvalidStateError when the index is deleted]
expected: FAIL

View File

@ -0,0 +1,10 @@
[idbindex_openKeyCursor2.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
[IDBIndex.openKeyCursor() - throw InvalidStateError when the index is deleted]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbobjectstore_add16.htm]
type: testharness
[IDBObjectStore.add() - If the object store has been deleted, the implementation must throw a DOMException of type InvalidStateError ]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbobjectstore_clear4.htm]
type: testharness
[IDBObjectStore.clear() - If the object store has been deleted, the implementation must throw a DOMException of type InvalidStateError ]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbobjectstore_count4.htm]
type: testharness
[IDBObjectStore.count() - If the object store has been deleted, the implementation must throw a DOMException of type InvalidStateError ]
expected: FAIL

View File

@ -0,0 +1,5 @@
[idbobjectstore_delete7.htm]
type: testharness
[IDBObjectStore.delete() - If the object store has been deleted, the implementation must throw a DOMException of type InvalidStateError]
expected: FAIL

View File

@ -1,5 +1,9 @@
[idbobjectstore_deleted.htm]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
[Attempting to use deleted IDBObjectStore]
expected: FAIL

View File

@ -0,0 +1,6 @@
[idbobjectstore_get.htm]
type: testharness
expected:
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH

View File

@ -0,0 +1,5 @@
[idbobjectstore_put16.htm]
type: testharness
[IDBObjectStore.put() - If the object store has been deleted, the implementation must throw a DOMException of type InvalidStateError]
expected: FAIL

View File

@ -1545,6 +1545,62 @@
"path": "custom-elements/testcommon.js",
"url": "/custom-elements/testcommon.js"
},
{
"path": "docs/configuration.md",
"url": "/docs/configuration.md"
},
{
"path": "docs/css-metadata.md",
"url": "/docs/css-metadata.md"
},
{
"path": "docs/css-naming.md",
"url": "/docs/css-naming.md"
},
{
"path": "docs/css-user-styles.md",
"url": "/docs/css-user-styles.md"
},
{
"path": "docs/github-101.md",
"url": "/docs/github-101.md"
},
{
"path": "docs/manual-test.md",
"url": "/docs/manual-test.md"
},
{
"path": "docs/reftests.md",
"url": "/docs/reftests.md"
},
{
"path": "docs/review-checklist.md",
"url": "/docs/review-checklist.md"
},
{
"path": "docs/review-process.md",
"url": "/docs/review-process.md"
},
{
"path": "docs/running_tests.md",
"url": "/docs/running_tests.md"
},
{
"path": "docs/submission-process.md",
"url": "/docs/submission-process.md"
},
{
"path": "docs/test-format-guidelines.md",
"url": "/docs/test-format-guidelines.md"
},
{
"path": "docs/test-style-guidelines.md",
"url": "/docs/test-style-guidelines.md"
},
{
"path": "docs/test-templates.md",
"url": "/docs/test-templates.md"
},
{
"path": "dom/common.js",
"url": "/dom/common.js"
@ -1689,6 +1745,10 @@
"path": "dom/nodes/getElementsByClassName-11.xml",
"url": "/dom/nodes/getElementsByClassName-11.xml"
},
{
"path": "dom/nodes/mutationobservers.js",
"url": "/dom/nodes/mutationobservers.js"
},
{
"path": "dom/nodes/productions.js",
"url": "/dom/nodes/productions.js"
@ -1697,6 +1757,10 @@
"path": "dom/nodes/selectors.js",
"url": "/dom/nodes/selectors.js"
},
{
"path": "dom/traversal/traversal-support.js",
"url": "/dom/traversal/traversal-support.js"
},
{
"path": "dom/traversal/unfinished/001.xml",
"url": "/dom/traversal/unfinished/001.xml"
@ -2745,6 +2809,10 @@
"path": "html/semantics/embedded-content/the-img-element/image-1.jpg",
"url": "/html/semantics/embedded-content/the-img-element/image-1.jpg"
},
{
"path": "html/semantics/embedded-content/the-img-element/srcset/common.js",
"url": "/html/semantics/embedded-content/the-img-element/srcset/common.js"
},
{
"path": "html/semantics/embedded-content/the-video-element/video_content-ref.htm",
"url": "html/semantics/embedded-content/the-video-element/video_content-ref.htm"
@ -3717,6 +3785,10 @@
"path": "resource-timing/resources/webperftestharness.js",
"url": "/resource-timing/resources/webperftestharness.js"
},
{
"path": "resource-timing/test_resource_timing.js",
"url": "/resource-timing/test_resource_timing.js"
},
{
"path": "selectors-api/tests/submissions/Opera/level2-lib.js",
"url": "/selectors-api/tests/submissions/Opera/level2-lib.js"
@ -6363,6 +6435,10 @@
"path": "pointerevents/pointerevent_pointerleave_touch-manual.html",
"url": "/pointerevents/pointerevent_pointerleave_touch-manual.html"
},
{
"path": "pointerevents/pointerevent_pointermove-manual.html",
"url": "/pointerevents/pointerevent_pointermove-manual.html"
},
{
"path": "pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html",
"url": "/pointerevents/pointerevent_pointermove_isprimary_same_as_pointerdown-manual.html"
@ -6439,6 +6515,10 @@
"path": "pointerevents/pointerevent_touch-action-auto-css_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-auto-css_touch-manual.html"
},
{
"path": "pointerevents/pointerevent_touch-action-button-test_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-button-test_touch-manual.html"
},
{
"path": "pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-inherit_child-auto-child-none_touch-manual.html"
@ -6491,6 +6571,18 @@
"path": "pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-pan-y-css_touch-manual.html"
},
{
"path": "pointerevents/pointerevent_touch-action-span-test_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-span-test_touch-manual.html"
},
{
"path": "pointerevents/pointerevent_touch-action-svg-test_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-svg-test_touch-manual.html"
},
{
"path": "pointerevents/pointerevent_touch-action-table-test_touch-manual.html",
"url": "/pointerevents/pointerevent_touch-action-table-test_touch-manual.html"
},
{
"path": "touch-events/multi-touch-interactions-manual.html",
"url": "/touch-events/multi-touch-interactions-manual.html"
@ -12135,6 +12227,10 @@
"path": "IndexedDB/idbcursor_advance_index8.htm",
"url": "/IndexedDB/idbcursor_advance_index8.htm"
},
{
"path": "IndexedDB/idbcursor_advance_index9.htm",
"url": "/IndexedDB/idbcursor_advance_index9.htm"
},
{
"path": "IndexedDB/idbcursor_advance_objectstore.htm",
"url": "/IndexedDB/idbcursor_advance_objectstore.htm"
@ -12151,6 +12247,10 @@
"path": "IndexedDB/idbcursor_advance_objectstore4.htm",
"url": "/IndexedDB/idbcursor_advance_objectstore4.htm"
},
{
"path": "IndexedDB/idbcursor_advance_objectstore5.htm",
"url": "/IndexedDB/idbcursor_advance_objectstore5.htm"
},
{
"path": "IndexedDB/idbcursor_continue_index.htm",
"url": "/IndexedDB/idbcursor_continue_index.htm"
@ -12175,6 +12275,14 @@
"path": "IndexedDB/idbcursor_continue_index6.htm",
"url": "/IndexedDB/idbcursor_continue_index6.htm"
},
{
"path": "IndexedDB/idbcursor_continue_index7.htm",
"url": "/IndexedDB/idbcursor_continue_index7.htm"
},
{
"path": "IndexedDB/idbcursor_continue_index8.htm",
"url": "/IndexedDB/idbcursor_continue_index8.htm"
},
{
"path": "IndexedDB/idbcursor_continue_invalid.htm",
"url": "/IndexedDB/idbcursor_continue_invalid.htm"
@ -12195,6 +12303,14 @@
"path": "IndexedDB/idbcursor_continue_objectstore4.htm",
"url": "/IndexedDB/idbcursor_continue_objectstore4.htm"
},
{
"path": "IndexedDB/idbcursor_continue_objectstore5.htm",
"url": "/IndexedDB/idbcursor_continue_objectstore5.htm"
},
{
"path": "IndexedDB/idbcursor_continue_objectstore6.htm",
"url": "/IndexedDB/idbcursor_continue_objectstore6.htm"
},
{
"path": "IndexedDB/idbcursor_delete_index.htm",
"url": "/IndexedDB/idbcursor_delete_index.htm"
@ -12207,6 +12323,14 @@
"path": "IndexedDB/idbcursor_delete_index3.htm",
"url": "/IndexedDB/idbcursor_delete_index3.htm"
},
{
"path": "IndexedDB/idbcursor_delete_index4.htm",
"url": "/IndexedDB/idbcursor_delete_index4.htm"
},
{
"path": "IndexedDB/idbcursor_delete_index5.htm",
"url": "/IndexedDB/idbcursor_delete_index5.htm"
},
{
"path": "IndexedDB/idbcursor_delete_objectstore.htm",
"url": "/IndexedDB/idbcursor_delete_objectstore.htm"
@ -12219,6 +12343,14 @@
"path": "IndexedDB/idbcursor_delete_objectstore3.htm",
"url": "/IndexedDB/idbcursor_delete_objectstore3.htm"
},
{
"path": "IndexedDB/idbcursor_delete_objectstore4.htm",
"url": "/IndexedDB/idbcursor_delete_objectstore4.htm"
},
{
"path": "IndexedDB/idbcursor_delete_objectstore5.htm",
"url": "/IndexedDB/idbcursor_delete_objectstore5.htm"
},
{
"path": "IndexedDB/idbcursor_iterating.htm",
"url": "/IndexedDB/idbcursor_iterating.htm"
@ -12251,6 +12383,22 @@
"path": "IndexedDB/idbcursor_update_index3.htm",
"url": "/IndexedDB/idbcursor_update_index3.htm"
},
{
"path": "IndexedDB/idbcursor_update_index4.htm",
"url": "/IndexedDB/idbcursor_update_index4.htm"
},
{
"path": "IndexedDB/idbcursor_update_index5.htm",
"url": "/IndexedDB/idbcursor_update_index5.htm"
},
{
"path": "IndexedDB/idbcursor_update_index6.htm",
"url": "/IndexedDB/idbcursor_update_index6.htm"
},
{
"path": "IndexedDB/idbcursor_update_index7.htm",
"url": "/IndexedDB/idbcursor_update_index7.htm"
},
{
"path": "IndexedDB/idbcursor_update_objectstore.htm",
"url": "/IndexedDB/idbcursor_update_objectstore.htm"
@ -12267,6 +12415,22 @@
"path": "IndexedDB/idbcursor_update_objectstore4.htm",
"url": "/IndexedDB/idbcursor_update_objectstore4.htm"
},
{
"path": "IndexedDB/idbcursor_update_objectstore5.htm",
"url": "/IndexedDB/idbcursor_update_objectstore5.htm"
},
{
"path": "IndexedDB/idbcursor_update_objectstore6.htm",
"url": "/IndexedDB/idbcursor_update_objectstore6.htm"
},
{
"path": "IndexedDB/idbcursor_update_objectstore7.htm",
"url": "/IndexedDB/idbcursor_update_objectstore7.htm"
},
{
"path": "IndexedDB/idbcursor_update_objectstore8.htm",
"url": "/IndexedDB/idbcursor_update_objectstore8.htm"
},
{
"path": "IndexedDB/idbdatabase_close.htm",
"url": "/IndexedDB/idbdatabase_close.htm"
@ -12292,6 +12456,10 @@
"path": "IndexedDB/idbdatabase_createObjectStore10-emptyname.htm",
"url": "/IndexedDB/idbdatabase_createObjectStore10-emptyname.htm"
},
{
"path": "IndexedDB/idbdatabase_createObjectStore11.htm",
"url": "/IndexedDB/idbdatabase_createObjectStore11.htm"
},
{
"path": "IndexedDB/idbdatabase_createObjectStore2.htm",
"url": "/IndexedDB/idbdatabase_createObjectStore2.htm"
@ -12356,10 +12524,18 @@
"path": "IndexedDB/idbdatabase_transaction4.htm",
"url": "/IndexedDB/idbdatabase_transaction4.htm"
},
{
"path": "IndexedDB/idbdatabase_transaction5.htm",
"url": "/IndexedDB/idbdatabase_transaction5.htm"
},
{
"path": "IndexedDB/idbfactory_cmp.htm",
"url": "/IndexedDB/idbfactory_cmp.htm"
},
{
"path": "IndexedDB/idbfactory_cmp2.htm",
"url": "/IndexedDB/idbfactory_cmp2.htm"
},
{
"path": "IndexedDB/idbfactory_deleteDatabase.htm",
"url": "/IndexedDB/idbfactory_deleteDatabase.htm"
@ -12468,6 +12644,18 @@
"path": "IndexedDB/idbindex_get4.htm",
"url": "/IndexedDB/idbindex_get4.htm"
},
{
"path": "IndexedDB/idbindex_get5.htm",
"url": "/IndexedDB/idbindex_get5.htm"
},
{
"path": "IndexedDB/idbindex_get6.htm",
"url": "/IndexedDB/idbindex_get6.htm"
},
{
"path": "IndexedDB/idbindex_get7.htm",
"url": "/IndexedDB/idbindex_get7.htm"
},
{
"path": "IndexedDB/idbindex_getKey.htm",
"url": "/IndexedDB/idbindex_getKey.htm"
@ -12500,6 +12688,26 @@
"path": "IndexedDB/idbindex_indexNames.htm",
"url": "/IndexedDB/idbindex_indexNames.htm"
},
{
"path": "IndexedDB/idbindex_openCursor.htm",
"url": "/IndexedDB/idbindex_openCursor.htm"
},
{
"path": "IndexedDB/idbindex_openCursor2.htm",
"url": "/IndexedDB/idbindex_openCursor2.htm"
},
{
"path": "IndexedDB/idbindex_openKeyCursor.htm",
"url": "/IndexedDB/idbindex_openKeyCursor.htm"
},
{
"path": "IndexedDB/idbindex_openKeyCursor2.htm",
"url": "/IndexedDB/idbindex_openKeyCursor2.htm"
},
{
"path": "IndexedDB/idbindex_openKeyCursor3.htm",
"url": "/IndexedDB/idbindex_openKeyCursor3.htm"
},
{
"path": "IndexedDB/idbkeyrange.htm",
"url": "/IndexedDB/idbkeyrange.htm"
@ -12532,6 +12740,14 @@
"path": "IndexedDB/idbobjectstore_add14.htm",
"url": "/IndexedDB/idbobjectstore_add14.htm"
},
{
"path": "IndexedDB/idbobjectstore_add15.htm",
"url": "/IndexedDB/idbobjectstore_add15.htm"
},
{
"path": "IndexedDB/idbobjectstore_add16.htm",
"url": "/IndexedDB/idbobjectstore_add16.htm"
},
{
"path": "IndexedDB/idbobjectstore_add2.htm",
"url": "/IndexedDB/idbobjectstore_add2.htm"
@ -12572,6 +12788,14 @@
"path": "IndexedDB/idbobjectstore_clear2.htm",
"url": "/IndexedDB/idbobjectstore_clear2.htm"
},
{
"path": "IndexedDB/idbobjectstore_clear3.htm",
"url": "/IndexedDB/idbobjectstore_clear3.htm"
},
{
"path": "IndexedDB/idbobjectstore_clear4.htm",
"url": "/IndexedDB/idbobjectstore_clear4.htm"
},
{
"path": "IndexedDB/idbobjectstore_count.htm",
"url": "/IndexedDB/idbobjectstore_count.htm"
@ -12584,10 +12808,30 @@
"path": "IndexedDB/idbobjectstore_count3.htm",
"url": "/IndexedDB/idbobjectstore_count3.htm"
},
{
"path": "IndexedDB/idbobjectstore_count4.htm",
"url": "/IndexedDB/idbobjectstore_count4.htm"
},
{
"path": "IndexedDB/idbobjectstore_createIndex.htm",
"url": "/IndexedDB/idbobjectstore_createIndex.htm"
},
{
"path": "IndexedDB/idbobjectstore_createIndex10.htm",
"url": "/IndexedDB/idbobjectstore_createIndex10.htm"
},
{
"path": "IndexedDB/idbobjectstore_createIndex11.htm",
"url": "/IndexedDB/idbobjectstore_createIndex11.htm"
},
{
"path": "IndexedDB/idbobjectstore_createIndex12.htm",
"url": "/IndexedDB/idbobjectstore_createIndex12.htm"
},
{
"path": "IndexedDB/idbobjectstore_createIndex13.htm",
"url": "/IndexedDB/idbobjectstore_createIndex13.htm"
},
{
"path": "IndexedDB/idbobjectstore_createIndex2.htm",
"url": "/IndexedDB/idbobjectstore_createIndex2.htm"
@ -12642,6 +12886,14 @@
"path": "IndexedDB/idbobjectstore_delete5.htm",
"url": "/IndexedDB/idbobjectstore_delete5.htm"
},
{
"path": "IndexedDB/idbobjectstore_delete6.htm",
"url": "/IndexedDB/idbobjectstore_delete6.htm"
},
{
"path": "IndexedDB/idbobjectstore_delete7.htm",
"url": "/IndexedDB/idbobjectstore_delete7.htm"
},
{
"path": "IndexedDB/idbobjectstore_deleteIndex.htm",
"url": "/IndexedDB/idbobjectstore_deleteIndex.htm"
@ -12706,6 +12958,14 @@
"path": "IndexedDB/idbobjectstore_put14.htm",
"url": "/IndexedDB/idbobjectstore_put14.htm"
},
{
"path": "IndexedDB/idbobjectstore_put15.htm",
"url": "/IndexedDB/idbobjectstore_put15.htm"
},
{
"path": "IndexedDB/idbobjectstore_put16.htm",
"url": "/IndexedDB/idbobjectstore_put16.htm"
},
{
"path": "IndexedDB/idbobjectstore_put2.htm",
"url": "/IndexedDB/idbobjectstore_put2.htm"
@ -14265,6 +14525,10 @@
"path": "dom/nodes/Element-classlist.html",
"url": "/dom/nodes/Element-classlist.html"
},
{
"path": "dom/nodes/Element-closest.html",
"url": "/dom/nodes/Element-closest.html"
},
{
"path": "dom/nodes/Element-firstElementChild-entity.svg",
"url": "/dom/nodes/Element-firstElementChild-entity.svg"
@ -14361,6 +14625,34 @@
"path": "dom/nodes/Element-tagName.html",
"url": "/dom/nodes/Element-tagName.html"
},
{
"path": "dom/nodes/MutationObserver-attributes.html",
"url": "/dom/nodes/MutationObserver-attributes.html"
},
{
"path": "dom/nodes/MutationObserver-characterData.html",
"url": "/dom/nodes/MutationObserver-characterData.html"
},
{
"path": "dom/nodes/MutationObserver-childList.html",
"url": "/dom/nodes/MutationObserver-childList.html"
},
{
"path": "dom/nodes/MutationObserver-disconnect.html",
"url": "/dom/nodes/MutationObserver-disconnect.html"
},
{
"path": "dom/nodes/MutationObserver-document.html",
"url": "/dom/nodes/MutationObserver-document.html"
},
{
"path": "dom/nodes/MutationObserver-inner-outer.html",
"url": "/dom/nodes/MutationObserver-inner-outer.html"
},
{
"path": "dom/nodes/MutationObserver-takeRecords.html",
"url": "/dom/nodes/MutationObserver-takeRecords.html"
},
{
"path": "dom/nodes/Node-appendChild.html",
"url": "/dom/nodes/Node-appendChild.html"
@ -14672,6 +14964,42 @@
"path": "dom/traversal/NodeFilter-constants.html",
"url": "/dom/traversal/NodeFilter-constants.html"
},
{
"path": "dom/traversal/TreeWalker-acceptNode-filter.html",
"url": "/dom/traversal/TreeWalker-acceptNode-filter.html"
},
{
"path": "dom/traversal/TreeWalker-basic.html",
"url": "/dom/traversal/TreeWalker-basic.html"
},
{
"path": "dom/traversal/TreeWalker-currentNode.html",
"url": "/dom/traversal/TreeWalker-currentNode.html"
},
{
"path": "dom/traversal/TreeWalker-previousNodeLastChildReject.html",
"url": "/dom/traversal/TreeWalker-previousNodeLastChildReject.html"
},
{
"path": "dom/traversal/TreeWalker-previousSiblingLastChildSkip.html",
"url": "/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html"
},
{
"path": "dom/traversal/TreeWalker-traversal-reject.html",
"url": "/dom/traversal/TreeWalker-traversal-reject.html"
},
{
"path": "dom/traversal/TreeWalker-traversal-skip-most.html",
"url": "/dom/traversal/TreeWalker-traversal-skip-most.html"
},
{
"path": "dom/traversal/TreeWalker-traversal-skip.html",
"url": "/dom/traversal/TreeWalker-traversal-skip.html"
},
{
"path": "dom/traversal/TreeWalker-walking-outside-a-tree.html",
"url": "/dom/traversal/TreeWalker-walking-outside-a-tree.html"
},
{
"path": "domparsing/insert-adjacent.html",
"url": "/domparsing/insert-adjacent.html"
@ -14774,6 +15102,10 @@
"path": "eventsource/eventsource-reconnect.htm",
"url": "/eventsource/eventsource-reconnect.htm"
},
{
"path": "eventsource/eventsource-request-cancellation.htm",
"url": "/eventsource/eventsource-request-cancellation.htm"
},
{
"path": "eventsource/eventsource-url.htm",
"url": "/eventsource/eventsource-url.htm"
@ -15911,6 +16243,7 @@
},
{
"path": "html/dom/interfaces.html",
"timeout": "long",
"url": "/html/dom/interfaces.html"
},
{
@ -17422,10 +17755,38 @@
"path": "html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html",
"url": "/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_script.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html",
"url": "/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/current-pixel-density/error.html",
"url": "/html/semantics/embedded-content/the-img-element/current-pixel-density/error.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/img.complete.html",
"url": "/html/semantics/embedded-content/the-img-element/img.complete.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/relevant-mutations.html",
"url": "/html/semantics/embedded-content/the-img-element/relevant-mutations.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html",
"url": "/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html",
"url": "/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/srcset/select-an-image-source.html",
"url": "/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source.html"
},
{
"path": "html/semantics/embedded-content/the-img-element/update-the-source-set.html",
"url": "/html/semantics/embedded-content/the-img-element/update-the-source-set.html"
},
{
"path": "html/semantics/embedded-content/the-object-element/object-attributes.html",
"url": "/html/semantics/embedded-content/the-object-element/object-attributes.html"
@ -19841,6 +20202,10 @@
"path": "pointerevents/pointerevent_constructor.html",
"url": "/pointerevents/pointerevent_constructor.html"
},
{
"path": "pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html",
"url": "/pointerevents/pointerevent_lostpointercapture_for_disconnected_node.html"
},
{
"path": "pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html",
"url": "/pointerevents/pointerevent_pointerleave_after_pointercancel_touch.html"
@ -19861,10 +20226,18 @@
"path": "pointerevents/pointerevent_pointerout_pen.html",
"url": "/pointerevents/pointerevent_pointerout_pen.html"
},
{
"path": "pointerevents/pointerevent_setpointercapture_disconnected.html",
"url": "/pointerevents/pointerevent_setpointercapture_disconnected.html"
},
{
"path": "pointerevents/pointerevent_touch-action-illegal.html",
"url": "/pointerevents/pointerevent_touch-action-illegal.html"
},
{
"path": "pointerevents/pointerevent_touch-action-verification.html",
"url": "/pointerevents/pointerevent_touch-action-verification.html"
},
{
"path": "pointerlock/constructor.html",
"url": "/pointerlock/constructor.html"
@ -21653,8 +22026,8 @@
"url": "/websockets/interfaces/WebSocket/extensions/001.html"
},
{
"path": "websockets/interfaces/WebSocket/protocol/001.html",
"url": "/websockets/interfaces/WebSocket/protocol/001.html"
"path": "websockets/interfaces/WebSocket/protocol/protocol-initial.html",
"url": "/websockets/interfaces/WebSocket/protocol/protocol-initial.html"
},
{
"path": "websockets/interfaces/WebSocket/readyState/001.html",
@ -22761,5 +23134,5 @@
]
},
"local_changes": [],
"rev": "9b98ac4c3a7fba5f5437e2e29b5ae38abd6d5eb0"
"rev": "1b45197f111e5bb65607d89f7d385883849d005d"
}

View File

@ -15,3 +15,6 @@
[XMLHttpRequest: send() - non same-origin (folder.txt)]
expected: FAIL
[XMLHttpRequest: send() - non same-origin (http://www2.web-platform.test:8000/)]
expected: FAIL

View File

@ -0,0 +1,7 @@
[xmlhttprequest-timeout-overridesexpires.html]
type: testharness
[Timeout test: timeout set to expired value before load fires, original timeout at 1000, reset at 400 to 300]
expected:
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL

View File

@ -2,5 +2,5 @@
type: testharness
[Timeout test: timeout fires normally with same timeout set twice, original timeout at 400, reset at 200 to 400]
expected:
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): FAIL

View File

@ -1,5 +0,0 @@
[generic-0_10.html]
type: testharness
[Violation report status OK.]
expected: FAIL

View File

@ -1,8 +0,0 @@
[generic-0_8.html]
type: testharness
[Violation report status OK.]
expected: FAIL
[Wildcard host matching works.]
expected: FAIL

View File

@ -1,8 +0,0 @@
[generic-0_9.sub.html]
type: testharness
[Violation report status OK.]
expected: FAIL
[Wildcard port matching works.]
expected: FAIL

View File

@ -1,5 +1,8 @@
[custom-elements-type-allowed-chars-first-char.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): TIMEOUT
[Registering valid custom element name starting with single base chars]
expected: FAIL
@ -12,9 +15,3 @@
[Registering valid custom element name starting with ideographic chars ranges]
expected: FAIL
[Registering valid custom element name starting with base char]
expected: FAIL
[Registering valid custom element name starting with ideographic char]
expected: FAIL

View File

@ -1,5 +1,8 @@
[custom-elements-type-allowed-chars.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): TIMEOUT
[Registering valid custom element types with single base chars]
expected: FAIL
@ -12,12 +15,3 @@
[Registering valid custom element types with ideographic chars ranges]
expected: FAIL
[Registering valid custom element types with digit chars]
expected: FAIL
[Registering valid custom element types with base char]
expected: FAIL
[Registering valid custom element types with ideographic char]
expected: FAIL

View File

@ -0,0 +1,5 @@
[Element-closest.html]
type: testharness
[Element.closest with context node \'test4\' and selector \':has(> :scope)\']
expected: FAIL

View File

@ -0,0 +1,8 @@
[MutationObserver-attributes.html]
type: testharness
[attributeOldValue alone Element.id: update mutation]
expected: FAIL
[attributeFilter alone Element.id/Element.className: multiple filter update mutation]
expected: FAIL

View File

@ -0,0 +1,5 @@
[MutationObserver-characterData.html]
type: testharness
[characterData/characterDataOldValue alone Text.data: simple mutation]
expected: FAIL

View File

@ -0,0 +1,11 @@
[MutationObserver-childList.html]
type: testharness
[childList Range.deleteContents: child and data removal mutation]
expected: FAIL
[childList Range.extractContents: child and data removal mutation]
expected: FAIL
[childList Range.surroundContents: children removal and addition mutation]
expected: FAIL

View File

@ -0,0 +1,11 @@
[MutationObserver-document.html]
type: testharness
[parser insertion mutations]
expected: FAIL
[parser script insertion mutation]
expected: FAIL
[removal of parent during parsing]
expected: FAIL

View File

@ -1,5 +1,13 @@
[001.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
[pushState must not be allowed to create cross-origin URLs (about:blank)]
expected: FAIL

View File

@ -1,5 +1,13 @@
[002.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "mac") and (version == "OS X 10.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): CRASH
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): CRASH
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): CRASH
[replaceState must not be allowed to create cross-origin URLs (about:blank)]
expected: FAIL

View File

@ -1,6 +0,0 @@
[security_location_0.sub.htm]
type: testharness
expected: TIMEOUT
[Accessing location object from different origins doesn\'t raise SECURITY_ERR exception]
expected: NOTRUN

View File

@ -1,6 +1,5 @@
[window-security.sub.html]
type: testharness
expected: TIMEOUT
[A SecurityError exception must be thrown when window.applicationCache is accessed from a different origin.]
expected: FAIL
@ -340,6 +339,3 @@
[A SecurityError exception must be thrown when window.stop is accessed from a different origin.]
expected: FAIL
[Window Security testing]
expected: NOTRUN

View File

@ -1,8 +1,5 @@
[interfaces.html]
type: testharness
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86") and (bits == 32): TIMEOUT
[Document interface: attribute domain]
expected: FAIL

View File

@ -28,14 +28,10 @@
expected: FAIL
[importScripts() in a shared worker]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
FAIL
expected: FAIL
[SharedWorker() in a shared worker]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
FAIL
expected: FAIL
[WebSocket#url]
expected: FAIL
@ -123,11 +119,3 @@
if debug and (os == "win") and (version == "6.2.9200") and (processor == "x86") and (bits == 32): TIMEOUT
if debug and (os == "win") and (version == "6.1.7601") and (processor == "x86") and (bits == 32): TIMEOUT
[SharedWorker constructor]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT
[Worker() in a shared worker]
expected:
if debug and (os == "linux") and (version == "Ubuntu 12.04") and (processor == "x86_64") and (bits == 64): TIMEOUT

View File

@ -1,3 +0,0 @@
[multiple-base.sub.html]
type: testharness
expected: TIMEOUT

View File

@ -0,0 +1,10 @@
[event_timeupdate.html]
type: testharness
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): TIMEOUT
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): TIMEOUT
[setting src attribute on a sufficiently long autoplay audio should trigger timeupdate event]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): NOTRUN
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): NOTRUN

View File

@ -2,17 +2,13 @@
type: testharness
[audio/mp4 (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[audio/mp4; codecs="mp4a.40.2" (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/3gpp (optional)]
expected: FAIL
@ -25,45 +21,33 @@
[video/mp4 (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/mp4; codecs="mp4a.40.2" (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/mp4; codecs="avc1.42E01E" (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/mp4; codecs="avc1.4D401E" (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/mp4; codecs="avc1.58A01E" (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/mp4; codecs="avc1.64001E" (optional)]
expected:
if not debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): FAIL
if debug and (os == "mac") and (version == "OS X 10.6.8") and (processor == "x86_64") and (bits == 64): FAIL
[video/mp4; codecs="mp4v.20.8" (optional)]
expected: FAIL

View File

@ -1,5 +0,0 @@
[003.html]
type: testharness
[track CORS: No CORS, same-origin, no headers]
expected: FAIL

View File

@ -1,5 +0,0 @@
[004.html]
type: testharness
[track CORS: No CORS, same-origin, with headers]
expected: FAIL

View File

@ -1,5 +0,0 @@
[005.html]
type: testharness
[track CORS: Anonymous, same-origin, no headers]
expected: FAIL

View File

@ -1,5 +0,0 @@
[006.html]
type: testharness
[track CORS: Anonymous, same-origin, with headers]
expected: FAIL

View File

@ -1,5 +0,0 @@
[007.html]
type: testharness
[track CORS: Use Credentials, same-origin, no headers]
expected: FAIL

View File

@ -1,5 +0,0 @@
[008.html]
type: testharness
[track CORS: Use Credentials, same-origin, with headers]
expected: FAIL

View File

@ -1,6 +1,5 @@
[009.html]
type: testharness
expected: TIMEOUT
[track CORS: No CORS, not same-origin, no headers]
expected: TIMEOUT
expected: FAIL

View File

@ -1,6 +1,5 @@
[010.html]
type: testharness
expected: TIMEOUT
[track CORS: Anonymous, not same-origin, no headers]
expected: TIMEOUT
expected: FAIL

View File

@ -1,6 +1,5 @@
[011.html]
type: testharness
expected: TIMEOUT
[track CORS: Anonymous, not same-origin, with headers]
expected: TIMEOUT
expected: FAIL

View File

@ -1,6 +1,5 @@
[012.html]
type: testharness
expected: TIMEOUT
[track CORS: Use Credentials, not same-origin, no headers]
expected: TIMEOUT
expected: FAIL

View File

@ -1,6 +1,5 @@
[013.html]
type: testharness
expected: TIMEOUT
[track CORS: Use Credentials, not same-origin, with headers]
expected: TIMEOUT
expected: FAIL

View File

@ -1,5 +1,6 @@
[014.html]
type: testharness
expected: TIMEOUT
[track CORS: No CORS, same-origin, no headers, redirects to same-origin, no headers]
expected: FAIL
expected: TIMEOUT

View File

@ -1,5 +1,6 @@
[015.html]
type: testharness
expected: TIMEOUT
[track CORS: No CORS, same-origin, with headers, redirects to same-origin, with headers]
expected: FAIL
expected: TIMEOUT

View File

@ -1,5 +1,6 @@
[016.html]
type: testharness
expected: TIMEOUT
[track CORS: Anonymous, same-origin, no headers, redirects to same-origin, no headers]
expected: FAIL
expected: TIMEOUT

View File

@ -1,5 +1,6 @@
[017.html]
type: testharness
expected: TIMEOUT
[track CORS: Anonymous, same-origin, no headers, redirects to same-origin, with headers]
expected: FAIL
expected: TIMEOUT

View File

@ -1,5 +1,6 @@
[018.html]
type: testharness
expected: TIMEOUT
[track CORS: Use Credentials, same-origin, no headers, redirects to same-origin, no headers]
expected: FAIL
expected: TIMEOUT

View File

@ -1,5 +1,6 @@
[019.html]
type: testharness
expected: TIMEOUT
[track CORS: Use Credentials, same-origin, with headers, redirects to same-origin, no headers]
expected: FAIL
expected: TIMEOUT

View File

@ -0,0 +1,10 @@
[video_loop_base.html]
type: testharness
expected:
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): TIMEOUT
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): TIMEOUT
[Check if video.loop is set to true that expecting the seeking event is fired more than once]
expected:
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): NOTRUN
if debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): NOTRUN

View File

@ -1,5 +0,0 @@
[security.drawImage.canvas.sub.html]
type: testharness
[drawImage of unclean canvas makes the canvas origin-unclean]
expected: FAIL

View File

@ -1,5 +0,0 @@
[security.drawImage.image.sub.html]
type: testharness
[drawImage of different-origin image makes the canvas origin-unclean]
expected: FAIL

View File

@ -1,5 +0,0 @@
[security.pattern.canvas.timing.sub.html]
type: testharness
[Pattern safety depends on whether the source was origin-clean, not on whether it still is clean]
expected: FAIL

View File

@ -1,5 +0,0 @@
[security.pattern.create.sub.html]
type: testharness
[Creating an unclean pattern does not make the canvas origin-unclean]
expected: FAIL

View File

@ -1,5 +0,0 @@
[security.pattern.cross.sub.html]
type: testharness
[Using an unclean pattern makes the target canvas origin-unclean, not the pattern canvas]
expected: FAIL

View File

@ -1,5 +0,0 @@
[security.reset.sub.html]
type: testharness
[Resetting the canvas state does not reset the origin-clean flag]
expected: FAIL

View File

@ -0,0 +1,32 @@
[basic.html]
type: testharness
[<img srcset="/images/green-256x256.png 1x" data-expect="256">]
expected: FAIL
[<img srcset="/images/green-256x256.png 1.6x" data-expect="160">]
expected: FAIL
[<img srcset="/images/green-256x256.png 2x" data-expect="128">]
expected: FAIL
[<img srcset="/images/green-256x256.png 10000x" data-expect="0">]
expected: FAIL
[<img srcset="/images/green-256x256.png 9e99999999999999999999999x" data-expect="0">]
expected: FAIL
[<img srcset="/images/green-256x256.png 256w" sizes="256px" data-expect="256">]
expected: FAIL
[<img srcset="/images/green-256x256.png 512w" sizes="256px" data-expect="128">]
expected: FAIL
[<img srcset="/images/green-256x256.png 256w" sizes="512px" data-expect="512">]
expected: FAIL
[<img srcset="/images/green-256x256.png 256w" sizes="1px" data-expect="1">]
expected: FAIL
[<img srcset="/images/green-256x256.png 256w" sizes="0px" data-expect="0">]
expected: FAIL

View File

@ -0,0 +1,110 @@
[relevant-mutations.html]
type: testharness
[src removed]
expected: FAIL
[srcset set]
expected: FAIL
[srcset changed]
expected: FAIL
[srcset removed]
expected: FAIL
[sizes set]
expected: FAIL
[sizes changed]
expected: FAIL
[sizes removed]
expected: FAIL
[crossorigin absent to empty]
expected: FAIL
[crossorigin absent to anonymous]
expected: FAIL
[crossorigin absent to use-credentials]
expected: FAIL
[crossorigin empty to absent]
expected: FAIL
[crossorigin empty to use-credentials]
expected: FAIL
[crossorigin anonymous to absent]
expected: FAIL
[crossorigin anonymous to use-credentials]
expected: FAIL
[crossorigin use-credentials to absent]
expected: FAIL
[crossorigin use-credentials to empty]
expected: FAIL
[crossorigin use-credentials to anonymous]
expected: FAIL
[inserted into picture]
expected: FAIL
[removed from picture]
expected: FAIL
[parent is picture, previous source inserted]
expected: FAIL
[parent is picture, previous source removed]
expected: FAIL
[parent is picture, previous source has srcset set]
expected: FAIL
[parent is picture, previous source has srcset changed]
expected: FAIL
[parent is picture, previous source has srcset removed]
expected: FAIL
[parent is picture, previous source has sizes set]
expected: FAIL
[parent is picture, previous source has sizes changed]
expected: FAIL
[parent is picture, previous source has sizes removed]
expected: FAIL
[parent is picture, previous source has media set]
expected: FAIL
[parent is picture, previous source has media changed]
expected: FAIL
[parent is picture, previous source has media removed]
expected: FAIL
[parent is picture, previous source has type set]
expected: FAIL
[parent is picture, previous source has type changed]
expected: FAIL
[parent is picture, previous source has type removed]
expected: FAIL
[crossorigin state not changed: empty to anonymous]
expected: FAIL
[crossorigin state not changed: anonymous to foobar]
expected: FAIL
[crossorigin state not changed: use-credentials to USE-CREDENTIALS]
expected: FAIL

View File

@ -0,0 +1,707 @@
[parse-a-srcset-attribute.html]
type: testharness
[""]
expected: FAIL
[","]
expected: FAIL
[",,,"]
expected: FAIL
[" data:,a 1x "]
expected: FAIL
["\\t\\tdata:,a\\t\\t1x\\t\\t"]
expected: FAIL
["\\n\\ndata:,a\\n\\n1x\\n\\n"]
expected: FAIL
["\\v\\vdata:,a\\v\\v1x\\v\\v"]
expected: FAIL
["\\f\\fdata:,a\\f\\f1x\\f\\f"]
expected: FAIL
["\\r\\rdata:,a\\r\\r1x\\r\\r"]
expected: FAIL
["\\x0e\\x0edata:,a\\x0e\\x0e1x\\x0e\\x0e"]
expected: FAIL
["\\x0f\\x0fdata:,a\\x0f\\x0f1x\\x0f\\x0f"]
expected: FAIL
["\\x10\\x10data:,a\\x10\\x101x\\x10\\x10"]
expected: FAIL
["data:,a"]
expected: FAIL
["data:,a "]
expected: FAIL
["data:,a ,"]
expected: FAIL
["data:,a,"]
expected: FAIL
["data:,a, "]
expected: FAIL
["data:,a,,,"]
expected: FAIL
["data:,a,, , "]
expected: FAIL
[" data:,a"]
expected: FAIL
[",,,data:,a"]
expected: FAIL
[" , ,,data:,a"]
expected: FAIL
["\xc2\xa0data:,a"]
expected: FAIL
["data:,a\xc2\xa0"]
expected: FAIL
["data:,a 1x"]
expected: FAIL
["data:,a 1x "]
expected: FAIL
["data:,a 1x,"]
expected: FAIL
["data:,a ( , data:,b 1x, ), data:,c"]
expected: FAIL
["data:,a ((( , data:,b 1x, ), data:,c"]
expected: FAIL
["data:,a [ , data:,b 1x, \], data:,c"]
expected: FAIL
["data:,a { , data:,b 1x, }, data:,c"]
expected: FAIL
["data:,a \\" , data:,b 1x, \\", data:,c"]
expected: FAIL
["data:,a \\\\,data:;\\,b, data:,c"]
expected: FAIL
["data:,a, data:,b ("]
expected: FAIL
["data:,a, data:,b ( "]
expected: FAIL
["data:,a, data:,b (,"]
expected: FAIL
["data:,a, data:,b (x"]
expected: FAIL
["data:,a, data:,b ()"]
expected: FAIL
["data:,a (, data:,b"]
expected: FAIL
["data:,a /*, data:,b, data:,c */"]
expected: FAIL
["data:,a //, data:,b"]
expected: FAIL
["data:,a foo"]
expected: FAIL
["data:,a foo foo"]
expected: FAIL
["data:,a foo 1x"]
expected: FAIL
["data:,a foo 1x foo"]
expected: FAIL
["data:,a foo 1w"]
expected: FAIL
["data:,a foo 1w foo"]
expected: FAIL
["data:,a 1x 1x"]
expected: FAIL
["data:,a 1w 1w"]
expected: FAIL
["data:,a 1w 1x"]
expected: FAIL
["data:,a 1x 1w"]
expected: FAIL
["data:,a 1w 1h"]
expected: FAIL
["data:,a 1h 1w"]
expected: FAIL
["data:,a 1h 1h"]
expected: FAIL
["data:,a 1h 1x"]
expected: FAIL
["data:,a 1h 1w 1x"]
expected: FAIL
["data:,a 1x 1w 1h"]
expected: FAIL
["data:,a 1h"]
expected: FAIL
["data:,a 1h foo"]
expected: FAIL
["data:,a foo 1h"]
expected: FAIL
["data:,a 0w"]
expected: FAIL
["data:,a -1w"]
expected: FAIL
["data:,a 1w -1w"]
expected: FAIL
["data:,a 1.0w"]
expected: FAIL
["data:,a 1w 1.0w"]
expected: FAIL
["data:,a 1e0w"]
expected: FAIL
["data:,a 1w 1e0w"]
expected: FAIL
["data:,a 1www"]
expected: FAIL
["data:,a 1w 1www"]
expected: FAIL
["data:,a +1w"]
expected: FAIL
["data:,a 1w +1w"]
expected: FAIL
["data:,a 1W"]
expected: FAIL
["data:,a 1w 1W"]
expected: FAIL
["data:,a Infinityw"]
expected: FAIL
["data:,a 1w Infinityw"]
expected: FAIL
["data:,a NaNw"]
expected: FAIL
["data:,a 1w NaNw"]
expected: FAIL
["data:,a 0x1w"]
expected: FAIL
["data:,a 0X1w"]
expected: FAIL
["data:,a 1\\x01w" (trailing U+0001)]
expected: FAIL
["data:,a 1\xc2\xa0w" (trailing U+00A0)]
expected: FAIL
["data:,a 1\xe1\x9a\x80w" (trailing U+1680)]
expected: FAIL
["data:,a 1\xe2\x80\x80w" (trailing U+2000)]
expected: FAIL
["data:,a 1\xe2\x80\x81w" (trailing U+2001)]
expected: FAIL
["data:,a 1\xe2\x80\x82w" (trailing U+2002)]
expected: FAIL
["data:,a 1\xe2\x80\x83w" (trailing U+2003)]
expected: FAIL
["data:,a 1\xe2\x80\x84w" (trailing U+2004)]
expected: FAIL
["data:,a 1\xe2\x80\x85w" (trailing U+2005)]
expected: FAIL
["data:,a 1\xe2\x80\x86w" (trailing U+2006)]
expected: FAIL
["data:,a 1\xe2\x80\x87w" (trailing U+2007)]
expected: FAIL
["data:,a 1\xe2\x80\x88w" (trailing U+2008)]
expected: FAIL
["data:,a 1\xe2\x80\x89w" (trailing U+2009)]
expected: FAIL
["data:,a 1\xe2\x80\x8aw" (trailing U+200A)]
expected: FAIL
["data:,a 1\xe2\x80\x8cw" (trailing U+200C)]
expected: FAIL
["data:,a 1\xe2\x80\x8dw" (trailing U+200D)]
expected: FAIL
["data:,a 1\xe2\x80\xafw" (trailing U+202F)]
expected: FAIL
["data:,a 1\xe2\x81\x9fw" (trailing U+205F)]
expected: FAIL
["data:,a 1\xe3\x80\x80w" (trailing U+3000)]
expected: FAIL
["data:,a 1\xef\xbb\xbfw" (trailing U+FEFF)]
expected: FAIL
["data:,a \\x011w" (leading U+0001)]
expected: FAIL
["data:,a \xc2\xa01w" (leading U+00A0)]
expected: FAIL
["data:,a \xe1\x9a\x801w" (leading U+1680)]
expected: FAIL
["data:,a \xe2\x80\x801w" (leading U+2000)]
expected: FAIL
["data:,a \xe2\x80\x811w" (leading U+2001)]
expected: FAIL
["data:,a \xe2\x80\x821w" (leading U+2002)]
expected: FAIL
["data:,a \xe2\x80\x831w" (leading U+2003)]
expected: FAIL
["data:,a \xe2\x80\x841w" (leading U+2004)]
expected: FAIL
["data:,a \xe2\x80\x851w" (leading U+2005)]
expected: FAIL
["data:,a \xe2\x80\x861w" (leading U+2006)]
expected: FAIL
["data:,a \xe2\x80\x871w" (leading U+2007)]
expected: FAIL
["data:,a \xe2\x80\x881w" (leading U+2008)]
expected: FAIL
["data:,a \xe2\x80\x891w" (leading U+2009)]
expected: FAIL
["data:,a \xe2\x80\x8a1w" (leading U+200A)]
expected: FAIL
["data:,a \xe2\x80\x8c1w" (leading U+200C)]
expected: FAIL
["data:,a \xe2\x80\x8d1w" (leading U+200D)]
expected: FAIL
["data:,a \xe2\x80\xaf1w" (leading U+202F)]
expected: FAIL
["data:,a \xe2\x81\x9f1w" (leading U+205F)]
expected: FAIL
["data:,a \xe3\x80\x801w" (leading U+3000)]
expected: FAIL
["data:,a \xef\xbb\xbf1w" (leading U+FEFF)]
expected: FAIL
["data:,a 0x"]
expected: FAIL
["data:,a -0x"]
expected: FAIL
["data:,a 1x -0x"]
expected: FAIL
["data:,a -1x"]
expected: FAIL
["data:,a 1x -1x"]
expected: FAIL
["data:,a 1e0x"]
expected: FAIL
["data:,a 1E0x"]
expected: FAIL
["data:,a 1e-1x"]
expected: FAIL
["data:,a 1.5e1x"]
expected: FAIL
["data:,a -x"]
expected: FAIL
["data:,a .x"]
expected: FAIL
["data:,a -.x"]
expected: FAIL
["data:,a 1.x"]
expected: FAIL
["data:,a .5x"]
expected: FAIL
["data:,a .5e1x"]
expected: FAIL
["data:,a 1x 1.5e1x"]
expected: FAIL
["data:,a 1x 1e1.5x"]
expected: FAIL
["data:,a 1.0x"]
expected: FAIL
["data:,a 1x 1.0x"]
expected: FAIL
["data:,a +1x"]
expected: FAIL
["data:,a 1X"]
expected: FAIL
["data:,a Infinityx"]
expected: FAIL
["data:,a NaNx"]
expected: FAIL
["data:,a 0x1x"]
expected: FAIL
["data:,a 0X1x"]
expected: FAIL
["data:,a 1\\x01x" (trailing U+0001)]
expected: FAIL
["data:,a 1\xc2\xa0x" (trailing U+00A0)]
expected: FAIL
["data:,a 1\xe1\x9a\x80x" (trailing U+1680)]
expected: FAIL
["data:,a 1\xe2\x80\x80x" (trailing U+2000)]
expected: FAIL
["data:,a 1\xe2\x80\x81x" (trailing U+2001)]
expected: FAIL
["data:,a 1\xe2\x80\x82x" (trailing U+2002)]
expected: FAIL
["data:,a 1\xe2\x80\x83x" (trailing U+2003)]
expected: FAIL
["data:,a 1\xe2\x80\x84x" (trailing U+2004)]
expected: FAIL
["data:,a 1\xe2\x80\x85x" (trailing U+2005)]
expected: FAIL
["data:,a 1\xe2\x80\x86x" (trailing U+2006)]
expected: FAIL
["data:,a 1\xe2\x80\x87x" (trailing U+2007)]
expected: FAIL
["data:,a 1\xe2\x80\x88x" (trailing U+2008)]
expected: FAIL
["data:,a 1\xe2\x80\x89x" (trailing U+2009)]
expected: FAIL
["data:,a 1\xe2\x80\x8ax" (trailing U+200A)]
expected: FAIL
["data:,a 1\xe2\x80\x8cx" (trailing U+200C)]
expected: FAIL
["data:,a 1\xe2\x80\x8dx" (trailing U+200D)]
expected: FAIL
["data:,a 1\xe2\x80\xafx" (trailing U+202F)]
expected: FAIL
["data:,a 1\xe2\x81\x9fx" (trailing U+205F)]
expected: FAIL
["data:,a 1\xe3\x80\x80x" (trailing U+3000)]
expected: FAIL
["data:,a 1\xef\xbb\xbfx" (trailing U+FEFF)]
expected: FAIL
["data:,a \\x011x" (leading U+0001)]
expected: FAIL
["data:,a \xc2\xa01x" (leading U+00A0)]
expected: FAIL
["data:,a \xe1\x9a\x801x" (leading U+1680)]
expected: FAIL
["data:,a \xe2\x80\x801x" (leading U+2000)]
expected: FAIL
["data:,a \xe2\x80\x811x" (leading U+2001)]
expected: FAIL
["data:,a \xe2\x80\x821x" (leading U+2002)]
expected: FAIL
["data:,a \xe2\x80\x831x" (leading U+2003)]
expected: FAIL
["data:,a \xe2\x80\x841x" (leading U+2004)]
expected: FAIL
["data:,a \xe2\x80\x851x" (leading U+2005)]
expected: FAIL
["data:,a \xe2\x80\x861x" (leading U+2006)]
expected: FAIL
["data:,a \xe2\x80\x871x" (leading U+2007)]
expected: FAIL
["data:,a \xe2\x80\x881x" (leading U+2008)]
expected: FAIL
["data:,a \xe2\x80\x891x" (leading U+2009)]
expected: FAIL
["data:,a \xe2\x80\x8a1x" (leading U+200A)]
expected: FAIL
["data:,a \xe2\x80\x8c1x" (leading U+200C)]
expected: FAIL
["data:,a \xe2\x80\x8d1x" (leading U+200D)]
expected: FAIL
["data:,a \xe2\x80\xaf1x" (leading U+202F)]
expected: FAIL
["data:,a \xe2\x81\x9f1x" (leading U+205F)]
expected: FAIL
["data:,a \xe3\x80\x801x" (leading U+3000)]
expected: FAIL
["data:,a \xef\xbb\xbf1x" (leading U+FEFF)]
expected: FAIL
["data:,a 1w 0h"]
expected: FAIL
["data:,a 1w -1h"]
expected: FAIL
["data:,a 1w 1.0h"]
expected: FAIL
["data:,a 1w 1e0h"]
expected: FAIL
["data:,a 1w 1hhh"]
expected: FAIL
["data:,a 1w +1h"]
expected: FAIL
["data:,a 1w 1H"]
expected: FAIL
["data:,a 1w Infinityh"]
expected: FAIL
["data:,a 1w NaNh"]
expected: FAIL
["data:,a 0x1h"]
expected: FAIL
["data:,a 0X1h"]
expected: FAIL
["data:,a 1w 1\\x01h" (trailing U+0001)]
expected: FAIL
["data:,a 1w 1\xc2\xa0h" (trailing U+00A0)]
expected: FAIL
["data:,a 1w 1\xe1\x9a\x80h" (trailing U+1680)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x80h" (trailing U+2000)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x81h" (trailing U+2001)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x82h" (trailing U+2002)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x83h" (trailing U+2003)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x84h" (trailing U+2004)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x85h" (trailing U+2005)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x86h" (trailing U+2006)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x87h" (trailing U+2007)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x88h" (trailing U+2008)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x89h" (trailing U+2009)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x8ah" (trailing U+200A)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x8ch" (trailing U+200C)]
expected: FAIL
["data:,a 1w 1\xe2\x80\x8dh" (trailing U+200D)]
expected: FAIL
["data:,a 1w 1\xe2\x80\xafh" (trailing U+202F)]
expected: FAIL
["data:,a 1w 1\xe2\x81\x9fh" (trailing U+205F)]
expected: FAIL
["data:,a 1w 1\xe3\x80\x80h" (trailing U+3000)]
expected: FAIL
["data:,a 1w 1\xef\xbb\xbfh" (trailing U+FEFF)]
expected: FAIL
["data:,a 1w \\x011h" (leading U+0001)]
expected: FAIL
["data:,a 1w \xc2\xa01h" (leading U+00A0)]
expected: FAIL
["data:,a 1w \xe1\x9a\x801h" (leading U+1680)]
expected: FAIL
["data:,a 1w \xe2\x80\x801h" (leading U+2000)]
expected: FAIL
["data:,a 1w \xe2\x80\x811h" (leading U+2001)]
expected: FAIL
["data:,a 1w \xe2\x80\x821h" (leading U+2002)]
expected: FAIL
["data:,a 1w \xe2\x80\x831h" (leading U+2003)]
expected: FAIL
["data:,a 1w \xe2\x80\x841h" (leading U+2004)]
expected: FAIL
["data:,a 1w \xe2\x80\x851h" (leading U+2005)]
expected: FAIL
["data:,a 1w \xe2\x80\x861h" (leading U+2006)]
expected: FAIL
["data:,a 1w \xe2\x80\x871h" (leading U+2007)]
expected: FAIL
["data:,a 1w \xe2\x80\x881h" (leading U+2008)]
expected: FAIL
["data:,a 1w \xe2\x80\x891h" (leading U+2009)]
expected: FAIL
["data:,a 1w \xe2\x80\x8a1h" (leading U+200A)]
expected: FAIL
["data:,a 1w \xe2\x80\x8c1h" (leading U+200C)]
expected: FAIL
["data:,a 1w \xe2\x80\x8d1h" (leading U+200D)]
expected: FAIL
["data:,a 1w \xe2\x80\xaf1h" (leading U+202F)]
expected: FAIL
["data:,a 1w \xe2\x81\x9f1h" (leading U+205F)]
expected: FAIL
["data:,a 1w \xe3\x80\x801h" (leading U+3000)]
expected: FAIL
["data:,a 1w \xef\xbb\xbf1h" (leading U+FEFF)]
expected: FAIL

View File

@ -0,0 +1,44 @@
[select-an-image-source.html]
type: testharness
["data:,a 1x, data:,b 1x"]
expected: FAIL
["data:,a , data:,b 1x"]
expected: FAIL
["data:,a 1x, data:,b"]
expected: FAIL
["data:,a 1w, data:,b 1w"]
expected: FAIL
["data:,a 1w 1h, data:,b 1w"]
expected: FAIL
["data:,a 1w, data:,b 1w 1h"]
expected: FAIL
["data:,a 1w 1h, data:,b 1w 2h"]
expected: FAIL
["data:,a 1w 2h, data:,b 1w 1h"]
expected: FAIL
["data:,a , data:,b"]
expected: FAIL
["data:,a foo, data:,b bar"]
expected: FAIL
["data:,a 1w, data:,b 1x" sizes="1px"]
expected: FAIL
["data:,a 1x, data:,b 1w" sizes="1px"]
expected: FAIL
["data:,a 1w, data:,b 2x" sizes="0.5px"]
expected: FAIL
["data:,a 2x, data:,b 1w" sizes="0.5px"]
expected: FAIL

View File

@ -0,0 +1,269 @@
[update-the-source-set.html]
type: testharness
[<img data-expect="">]
expected: FAIL
[<img src="" data-expect="">]
expected: FAIL
[<img src="data:,a" data-expect="data:,a">]
expected: FAIL
[<img srcset="" src="data:,a" data-expect="data:,a">]
expected: FAIL
[<img srcset="data:,b" src="data:,a" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b" data-expect="data:,b"><!-- srcset after src -->]
expected: FAIL
[<img src="data:,a" srcset="data:,b 1x" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 1.0x" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 1e0x" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 10000w" sizes="1px" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 10000w, data:,c 10000x" sizes="1px" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 10000x, data:,c 10000w" sizes="1px" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 1w" sizes="10000px" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 1w, data:,c 0.0001x" sizes="10000px" data-expect="data:,b">]
expected: FAIL
[<img src="data:,a" srcset="data:,b 0.0001x, data:,c 1w" sizes="10000px" data-expect="data:,b">]
expected: FAIL
[<img srcset="data:,a" data-expect="data:,a">]
expected: FAIL
[<picture>foo<img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><!--foo--><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><br><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><p></p><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><video><source srcset="data:,b"></video><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><span><source srcset="data:,b"></span><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><svg><source srcset="data:,b"></source></svg><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><svg></svg><source srcset="data:,b"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><svg><font></font><source srcset="data:,b"></source></svg><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><svg><!--<font face> tag breaks out of svg--></svg><font face=""></font><source srcset="data:,b"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><img src="data:,a"><img src="data:,b" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source src="data:,b"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset=""><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset=", ,"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b 1x 1x"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media=""><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="all"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="all and (min-width:0)"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="all and !"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="all and (!)"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="not all"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="not all and (min-width:0)"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="not all and (max-width:0)"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="not all and !"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="not all and (!)"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media="all, !"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media=","><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" media=", all"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type=""><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type=" "><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type=" image/gif"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif "><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif;"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif;encodings"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif;encodings="><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif;encodings=foobar"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/png"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/jpeg"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/svg+xml"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/x-icon"><img src="data:,a" data-expect="data:,b"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="text/xml"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="text/html"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="text/plain"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="text/css"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="video/mp4"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="video/ogg"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="video/webm"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="unknown/unknown"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="application/octet-stream"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="application/x-shockwave-flash"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image\\gif"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="gif"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type=".gif"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="*"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="*/*"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/*"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type=","><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif, image/png"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/gif image/png"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><source srcset="data:,b" type="image/foobarbaz"><img src="data:,a" data-expect="data:,a"></picture>]
expected: FAIL
[<picture><img src="data:,a" data-expect="data:,a">foo</picture>]
expected: FAIL
[<picture><img src="data:,a" data-expect="data:,a"><br></picture>]
expected: FAIL
[<picture><img src="data:,a" data-expect="data:,a"><!--foo--></picture>]
expected: FAIL
[<picture><img src="data:,a" data-expect="data:,a"><img src="data:,b"></picture>]
expected: FAIL
[<picture><img data-expect=""><img src="data:,b"></picture>]
expected: FAIL
[<picture><img src="data:,a" data-expect="data:,a"><source srcset="data:,b"></picture>]
expected: FAIL
[<picture><img data-expect=""><source srcset="data:,b"></picture>]
expected: FAIL
[<picture><span><source srcset="data:,b"><img data-expect=""></span></picture>]
expected: FAIL
[<picture><span><source srcset="data:,b"><img src="data:,a" data-expect="data:,a"></span></picture>]
expected: FAIL
[<picture><source srcset="data:,b"><span><img src="data:,a" data-expect="data:,a"></span></picture>]
expected: FAIL
[<picture><source srcset="data:,b"><img data-expect="data:,b"></picture>]
expected: FAIL

View File

@ -3,3 +3,6 @@
[\':enabled\' should <a>s/<area>s/<link>s that have an href attribute and elements that are not disabled]
expected: FAIL
[\':enabled\' elements that are not disabled]
expected: FAIL

View File

@ -10,3 +10,6 @@
[Test appending an empty ArrayBuffer.]
expected: FAIL
[Test SourceBuffer.appendBuffer() triggering an 'ended' to 'open' transition.]
disabled:
if not debug and (os == "win") and (version == "5.1.2600") and (processor == "x86") and (bits == 32): Unstable

View File

@ -1,15 +1,3 @@
[mediasource-buffered.html]
type: testharness
expected: TIMEOUT
[Demuxed content with different lengths]
expected: FAIL
[Muxed tracks with different lengths]
expected: FAIL
[Demuxed content with an empty buffered range on one SourceBuffer]
expected: FAIL
[Muxed content empty buffered ranges.]
expected: FAIL
disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1066467

View File

@ -0,0 +1,3 @@
[mediasource-config-change-webm-a-bitrate.html]
type: testharness
disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1066467

View File

@ -0,0 +1,3 @@
[mediasource-config-change-webm-av-audio-bitrate.html]
type: testharness
disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1066467

View File

@ -0,0 +1,3 @@
[mediasource-config-change-webm-av-video-bitrate.html]
type: testharness
disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1066467

Some files were not shown because too many files have changed in this diff Show More