blob: 100a466fe1551a76bc5393098f6576f4356338ba [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.dumprendertree;
18
Steve Block164bd792010-02-05 10:53:04 +000019import java.util.Vector;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080020import android.util.*;
21
22public class FileFilter {
23
Steve Block164bd792010-02-05 10:53:04 +000024 private static final String LOGTAG = "FileFilter";
25
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080026 public static boolean ignoreTest(String file) {
Steve Block164bd792010-02-05 10:53:04 +000027 // treat files like directories for the time being.
28 for (int i = 0; i < ignoreTestList.length; i ++) {
29 if (file.endsWith(ignoreTestList[i])) {
30 Log.v(LOGTAG, "File path in list of ignored tests: " + file);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080031 return true;
Steve Block164bd792010-02-05 10:53:04 +000032 }
33 }
34 for (int i = 0; i < ignoreTestDirs.length; i++) {
35 if (file.endsWith(ignoreTestDirs[i])) {
36 Log.v(LOGTAG, "File path in list of ignored directories: " + file);
37 return true;
38 }
39 }
40 // We should run tests for which the expected result is wrong, as there is
41 // value in checking that they don't cause crashes.
42 // TODO: Run these tests but ignore the result.
43 return ignoreResults(file);
44 }
45
46 public static boolean ignoreResults(String file) {
47 for (int i = 0; i < ignoreResultList.size(); i++) {
48 if (file.endsWith(ignoreResultList.get(i))) {
49 Log.v(LOGTAG, "File path in list of ignored results: " + file);
50 return true;
51 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080052 }
53 return false;
Steve Block164bd792010-02-05 10:53:04 +000054 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080055
Steve Block164bd792010-02-05 10:53:04 +000056 final static Vector<String> ignoreResultList = new Vector<String>();
Steve Block52f43622010-02-05 10:49:20 +000057
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080058 static {
Steve Block164bd792010-02-05 10:53:04 +000059 fillIgnoreResultList();
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080060 }
61
62 static final String[] ignoreTestDirs = {
63 ".", // ignore hidden directories and files
64 "resources", // ignore resource directories
65 "AppleScript", // AppleScript not supported
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080066 ".svn", // don't run anything under .svn folder
The Android Open Source Projectba87e3e2009-03-13 13:04:22 -070067 "profiler", // profiler is not supported
68 "svg", // svg is not supported
69 "platform", // platform specific
Guang Zhu9e58e642009-10-15 10:45:49 -070070 "http/wml",
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080071 };
Steve Blockcdb4ef42010-02-05 10:31:15 +000072
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080073 static final String [] ignoreTestList = {
Guang Zhu01033ab2009-09-16 15:04:38 -070074 "editing/selection/move-left-right.html",
Steve Blockcdb4ef42010-02-05 10:31:15 +000075 "fast/js/regexp-charclass-crash.html", // RegExp is too large, causing OOM
76 "fast/regex/test1.html", // RegExp is exponential
77 "fast/regex/slow.html", // RegExp is exponential
Steve Blockcdb4ef42010-02-05 10:31:15 +000078 "storage/domstorage/localstorage/private-browsing-affects-storage.html", // No notion of private browsing.
Steve Blockcdb4ef42010-02-05 10:31:15 +000079 "storage/domstorage/sessionstorage/private-browsing-affects-storage.html", // No notion of private browsing.
80 "storage/private-browsing-readonly.html", // No notion of private browsing.
Feng Qian89ac33b2009-05-05 22:53:42 -070081 };
Steve Blockcdb4ef42010-02-05 10:31:15 +000082
Steve Block164bd792010-02-05 10:53:04 +000083 static void fillIgnoreResultList() {
Steve Blockf7483b12010-02-05 15:56:36 +000084 // This first block of tests are for HTML5 features, for which Android
85 // should pass all tests. They are skipped only temporarily.
86 // TODO: Fix these failing tests and remove them from this list.
Steve Blockf7483b12010-02-05 15:56:36 +000087 ignoreResultList.add("http/tests/appcache/auth.html"); // file not found
88 ignoreResultList.add("http/tests/appcache/deferred-events.html"); // file not found
89 ignoreResultList.add("http/tests/appcache/deferred-events-delete-while-raising.html"); // file not found
90 ignoreResultList.add("http/tests/appcache/destroyed-frame.html"); // file not found
91 ignoreResultList.add("http/tests/appcache/detached-iframe.html"); // file not found
92 ignoreResultList.add("http/tests/appcache/different-scheme.html"); // file not found
93 ignoreResultList.add("http/tests/appcache/disabled.html"); // not found
94 ignoreResultList.add("http/tests/appcache/empty-manifest.html"); // flaky
95 ignoreResultList.add("http/tests/appcache/foreign-iframe-main.html"); // flaky - skips states
96 ignoreResultList.add("http/tests/appcache/local-content.html"); // text diff
97 ignoreResultList.add("http/tests/appcache/max-size.html"); // no layoutTestController.setAppCacheMaximumSize
98 ignoreResultList.add("http/tests/appcache/manifest-with-empty-file.html"); // flaky
99 ignoreResultList.add("http/tests/appcache/whitelist-wildcard.html"); // file not found
100 ignoreResultList.add("storage/database-lock-after-reload.html"); // failure
Steve Blockf7483b12010-02-05 15:56:36 +0000101
Steve Blockcdb4ef42010-02-05 10:31:15 +0000102 ignoreResultList.add("fast/css/case-transform.html"); // will not fix #619707
Steve Blockcdb4ef42010-02-05 10:31:15 +0000103 ignoreResultList.add("fast/dom/Element/offsetLeft-offsetTop-body-quirk.html"); // different screen size result in extra spaces in Apple compared to us
104 ignoreResultList.add("fast/dom/Window/Plug-ins.html"); // need test plugin
105 ignoreResultList.add("fast/dom/Window/window-properties.html"); // xslt and xpath elements missing from property list
106 ignoreResultList.add("fast/dom/Window/window-screen-properties.html"); // pixel depth
107 ignoreResultList.add("fast/dom/Window/window-xy-properties.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000108 ignoreResultList.add("fast/dom/attribute-namespaces-get-set.html"); // http://b/733229
Steve Blockcdb4ef42010-02-05 10:31:15 +0000109 ignoreResultList.add("fast/dom/gc-9.html"); // requires xpath support
110 ignoreResultList.add("fast/dom/global-constructors.html"); // requires xslt and xpath support
111 ignoreResultList.add("fast/dom/object-embed-plugin-scripting.html"); // dynamic plugins not supported
112 ignoreResultList.add("fast/dom/tabindex-clamp.html"); // there is extra spacing in the file due to multiple input boxes fitting on one line on Apple, ours are wrapped. Space at line ends are stripped.
113 ignoreResultList.add("fast/events/anchor-image-scrolled-x-y.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000114 ignoreResultList.add("fast/events/arrow-navigation.html"); // http://b/735233
Steve Blockcdb4ef42010-02-05 10:31:15 +0000115 ignoreResultList.add("fast/events/capture-on-target.html"); // requires eventSender.mouseDown(),mouseUp()
116 ignoreResultList.add("fast/events/dblclick-addEventListener.html"); // requires eventSender.mouseDown(),mouseUp()
117 ignoreResultList.add("fast/events/drag-in-frames.html"); // requires eventSender.mouseDown(),mouseUp()
118 ignoreResultList.add("fast/events/drag-outside-window.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Blockcdb4ef42010-02-05 10:31:15 +0000119 ignoreResultList.add("fast/events/event-view-toString.html"); // requires eventSender.mouseDown(),mouseUp()
120 ignoreResultList.add("fast/events/frame-click-focus.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000121 ignoreResultList.add("fast/events/frame-tab-focus.html"); // http://b/734308
Steve Blockcdb4ef42010-02-05 10:31:15 +0000122 ignoreResultList.add("fast/events/iframe-object-onload.html"); // there is extra spacing in the file due to multiple frame boxes fitting on one line on Apple, ours are wrapped. Space at line ends are stripped.
123 ignoreResultList.add("fast/events/input-image-scrolled-x-y.html"); // requires eventSender.mouseDown(),mouseUp()
124 ignoreResultList.add("fast/events/mouseclick-target-and-positioning.html"); // requires eventSender.mouseDown(),mouseUp()
125 ignoreResultList.add("fast/events/mouseover-mouseout.html"); // requires eventSender.mouseDown(),mouseUp()
126 ignoreResultList.add("fast/events/mouseover-mouseout2.html"); // requires eventSender.mouseDown(),mouseUp()
127 ignoreResultList.add("fast/events/mouseup-outside-button.html"); // requires eventSender.mouseDown(),mouseUp()
128 ignoreResultList.add("fast/events/mouseup-outside-document.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Blockcdb4ef42010-02-05 10:31:15 +0000129 ignoreResultList.add("fast/events/onclick-list-marker.html"); // requires eventSender.mouseDown(),mouseUp()
130 ignoreResultList.add("fast/events/ondragenter.html"); // requires eventSender.mouseDown(),mouseUp()
131 ignoreResultList.add("fast/events/onload-webkit-before-webcore.html"); // missing space in textrun, ok as text is wrapped. ignore. #714933
Steve Block52f43622010-02-05 10:49:20 +0000132 ignoreResultList.add("fast/events/option-tab.html"); // http://b/734308
Steve Blockcdb4ef42010-02-05 10:31:15 +0000133 ignoreResultList.add("fast/events/window-events-bubble.html"); // requires eventSender.mouseDown(),mouseUp()
134 ignoreResultList.add("fast/events/window-events-bubble2.html"); // requires eventSender.mouseDown(),mouseUp()
135 ignoreResultList.add("fast/events/window-events-capture.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Blockcdb4ef42010-02-05 10:31:15 +0000136 ignoreResultList.add("fast/forms/drag-into-textarea.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000137 ignoreResultList.add("fast/forms/focus-control-to-page.html"); // http://b/716638
138 ignoreResultList.add("fast/forms/focus2.html"); // http://b/735111
Steve Blockcdb4ef42010-02-05 10:31:15 +0000139 ignoreResultList.add("fast/forms/form-data-encoding-2.html"); // charset convert. #516936 ignore, won't fix
140 ignoreResultList.add("fast/forms/form-data-encoding.html"); // charset convert. #516936 ignore, won't fix
141 ignoreResultList.add("fast/forms/input-appearance-maxlength.html"); // execCommand "insertText" not supported
142 ignoreResultList.add("fast/forms/input-select-on-click.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Blockcdb4ef42010-02-05 10:31:15 +0000143 ignoreResultList.add("fast/forms/listbox-onchange.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000144 ignoreResultList.add("fast/forms/listbox-selection.html"); // http://b/735116
Steve Blockcdb4ef42010-02-05 10:31:15 +0000145 ignoreResultList.add("fast/forms/onselect-textarea.html"); // requires eventSender.mouseMoveTo, mouseDown & mouseUp and abs. position of mouse to select a word. ignore, won't fix #716583
146 ignoreResultList.add("fast/forms/onselect-textfield.html"); // requires eventSender.mouseMoveTo, mouseDown & mouseUp and abs. position of mouse to select a word. ignore, won't fix #716583
147 ignoreResultList.add("fast/forms/plaintext-mode-1.html"); // not implemented queryCommandEnabled:BackColor, Undo & Redo
148 ignoreResultList.add("fast/forms/search-cancel-button-mouseup.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000149 ignoreResultList.add("fast/forms/search-event-delay.html"); // http://b/735120
Steve Blockcdb4ef42010-02-05 10:31:15 +0000150 ignoreResultList.add("fast/forms/select-empty-list.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000151 ignoreResultList.add("fast/forms/select-type-ahead-non-latin.html"); // http://b/735244
Steve Blockcdb4ef42010-02-05 10:31:15 +0000152 ignoreResultList.add("fast/forms/selected-index-assert.html"); // not capturing the console messages
153 ignoreResultList.add("fast/forms/selection-functions.html"); // there is extra spacing as the text areas and input boxes fit next to each other on Apple, but are wrapped on our screen.
154 ignoreResultList.add("fast/forms/textarea-appearance-wrap.html"); // Our text areas are a little thinner than Apples. Also RTL test failes
Steve Blockcdb4ef42010-02-05 10:31:15 +0000155 ignoreResultList.add("fast/forms/textarea-initial-caret-position.html"); // Text selection done differently on our platform. When a inputbox gets focus, the entire block is selected.
156 ignoreResultList.add("fast/forms/textarea-no-scroll-on-blur.html"); // Text selection done differently on our platform. When a inputbox gets focus, the entire block is selected.
157 ignoreResultList.add("fast/forms/textarea-paste-newline.html"); // Copy&Paste commands not supported
158 ignoreResultList.add("fast/forms/textarea-scrolled-endline-caret.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Block52f43622010-02-05 10:49:20 +0000159 ignoreResultList.add("fast/frames/iframe-window-focus.html"); // http://b/735140
Steve Blockcdb4ef42010-02-05 10:31:15 +0000160 ignoreResultList.add("fast/frames/frameElement-widthheight.html"); // screen width&height are different
161 ignoreResultList.add("fast/frames/frame-js-url-clientWidth.html"); // screen width&height are different
Steve Block52f43622010-02-05 10:49:20 +0000162 ignoreResultList.add("fast/html/tab-order.html"); // http://b/719289
Steve Blockcdb4ef42010-02-05 10:31:15 +0000163 ignoreResultList.add("fast/js/navigator-mimeTypes-length.html"); // dynamic plugins not supported
Steve Block52f43622010-02-05 10:49:20 +0000164 ignoreResultList.add("fast/js/string-capitalization.html"); // http://b/516936
Steve Blockcdb4ef42010-02-05 10:31:15 +0000165 ignoreResultList.add("fast/loader/local-JavaScript-from-local.html"); // Requires LayoutTests to exist at /tmp/LayoutTests
166 ignoreResultList.add("fast/loader/local-iFrame-source-from-local.html"); // Requires LayoutTests to exist at /tmp/LayoutTests
167 ignoreResultList.add("fast/loader/opaque-base-url.html"); // extra spacing because iFrames rendered next to each other on Apple
Steve Block52f43622010-02-05 10:49:20 +0000168 ignoreResultList.add("fast/overflow/scroll-vertical-not-horizontal.html"); // http://b/735196
Steve Blockcdb4ef42010-02-05 10:31:15 +0000169 ignoreResultList.add("fast/parser/script-tag-with-trailing-slash.html"); // not capturing the console messages
170 ignoreResultList.add("fast/replaced/image-map.html"); // requires eventSender.mouseDown(),mouseUp()
Steve Blockcdb4ef42010-02-05 10:31:15 +0000171 ignoreResultList.add("fast/text/plain-text-line-breaks.html"); // extra spacing because iFrames rendered next to each other on Apple
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800172 }
Steve Block07a76ca2010-02-05 00:23:32 +0000173
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800174}