FileFilter.java revision 9902279abb999eb7b5c75f70ec1f714cf567793b
1/* 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 19import java.util.Vector; 20import android.util.*; 21 22public class FileFilter { 23 24 private static final String LOGTAG = "FileFilter"; 25 26 public static boolean ignoreTest(String file) { 27 // 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); 31 return true; 32 } 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 } 52 } 53 return false; 54 } 55 56 final static Vector<String> ignoreResultList = new Vector<String>(); 57 58 static { 59 fillIgnoreResultList(); 60 } 61 62 static final String[] ignoreTestDirs = { 63 ".", // ignore hidden directories and files 64 "resources", // ignore resource directories 65 ".svn", // don't run anything under .svn folder 66 "profiler", // profiler is not supported 67 "svg", // svg is not supported 68 "platform", // platform specific 69 "http/wml", 70 }; 71 72 static final String [] ignoreTestList = { 73 "editing/selection/move-left-right.html", 74 "fast/js/regexp-charclass-crash.html", // RegExp is too large, causing OOM 75 "storage/domstorage/localstorage/private-browsing-affects-storage.html", // No notion of private browsing. 76 "storage/domstorage/sessionstorage/private-browsing-affects-storage.html", // No notion of private browsing. 77 "storage/private-browsing-readonly.html", // No notion of private browsing. 78 }; 79 80 static void fillIgnoreResultList() { 81 // This first block of tests are for HTML5 features, for which Android 82 // should pass all tests. They are skipped only temporarily. 83 // TODO: Fix these failing tests and remove them from this list. 84 ignoreResultList.add("http/tests/appcache/auth.html"); // file not found 85 ignoreResultList.add("http/tests/appcache/deferred-events.html"); // file not found 86 ignoreResultList.add("http/tests/appcache/deferred-events-delete-while-raising.html"); // file not found 87 ignoreResultList.add("http/tests/appcache/destroyed-frame.html"); // file not found 88 ignoreResultList.add("http/tests/appcache/detached-iframe.html"); // file not found 89 ignoreResultList.add("http/tests/appcache/different-scheme.html"); // file not found 90 ignoreResultList.add("http/tests/appcache/disabled.html"); // not found 91 ignoreResultList.add("http/tests/appcache/empty-manifest.html"); // flaky 92 ignoreResultList.add("http/tests/appcache/foreign-iframe-main.html"); // flaky - skips states 93 ignoreResultList.add("http/tests/appcache/local-content.html"); // text diff 94 ignoreResultList.add("http/tests/appcache/max-size.html"); // no layoutTestController.setAppCacheMaximumSize 95 ignoreResultList.add("http/tests/appcache/manifest-with-empty-file.html"); // flaky 96 ignoreResultList.add("http/tests/appcache/whitelist-wildcard.html"); // file not found 97 ignoreResultList.add("storage/database-lock-after-reload.html"); // failure 98 99 // Will always fail 100 ignoreResultList.add("fast/workers/shared-worker-constructor.html"); // shared workers not supported 101 ignoreResultList.add("fast/workers/shared-worker-context-gc.html"); // shared workers not supported 102 ignoreResultList.add("fast/workers/shared-worker-event-listener.html"); // shared workers not supported 103 ignoreResultList.add("fast/workers/shared-worker-exception.html"); // shared workers not supported 104 ignoreResultList.add("fast/workers/shared-worker-frame-lifecycle.html"); // shared workers not supported 105 ignoreResultList.add("fast/workers/shared-worker-gc.html"); // shared workers not supported 106 ignoreResultList.add("fast/workers/shared-worker-lifecycle.html"); // shared workers not supported 107 ignoreResultList.add("fast/workers/shared-worker-load-error.html"); // shared workers not supported 108 ignoreResultList.add("fast/workers/shared-worker-location.html"); // shared workers not supported 109 ignoreResultList.add("fast/workers/shared-worker-name.html"); // shared workers not supported 110 ignoreResultList.add("fast/workers/shared-worker-navigator.html"); // shared workers not supported 111 ignoreResultList.add("fast/workers/shared-worker-replace-global-constructor.html"); // shared workers not supported 112 ignoreResultList.add("fast/workers/shared-worker-replace-self.html"); // shared workers not supported 113 ignoreResultList.add("fast/workers/shared-worker-script-error.html"); // shared workers not supported 114 ignoreResultList.add("fast/workers/shared-worker-shared.html"); // shared workers not supported 115 ignoreResultList.add("fast/workers/shared-worker-simple.html"); // shared workers not supported 116 117 ignoreResultList.add("fast/css/case-transform.html"); // will not fix #619707 118 ignoreResultList.add("fast/dom/Element/offsetLeft-offsetTop-body-quirk.html"); // different screen size result in extra spaces in Apple compared to us 119 ignoreResultList.add("fast/dom/Window/Plug-ins.html"); // need test plugin 120 ignoreResultList.add("fast/dom/Window/window-properties.html"); // xslt and xpath elements missing from property list 121 ignoreResultList.add("fast/dom/Window/window-screen-properties.html"); // pixel depth 122 ignoreResultList.add("fast/dom/Window/window-xy-properties.html"); // requires eventSender.mouseDown(),mouseUp() 123 ignoreResultList.add("fast/dom/attribute-namespaces-get-set.html"); // http://b/733229 124 ignoreResultList.add("fast/dom/gc-9.html"); // requires xpath support 125 ignoreResultList.add("fast/dom/global-constructors.html"); // requires xslt and xpath support 126 ignoreResultList.add("fast/dom/object-embed-plugin-scripting.html"); // dynamic plugins not supported 127 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. 128 ignoreResultList.add("fast/events/anchor-image-scrolled-x-y.html"); // requires eventSender.mouseDown(),mouseUp() 129 ignoreResultList.add("fast/events/arrow-navigation.html"); // http://b/735233 130 ignoreResultList.add("fast/events/capture-on-target.html"); // requires eventSender.mouseDown(),mouseUp() 131 ignoreResultList.add("fast/events/dblclick-addEventListener.html"); // requires eventSender.mouseDown(),mouseUp() 132 ignoreResultList.add("fast/events/drag-in-frames.html"); // requires eventSender.mouseDown(),mouseUp() 133 ignoreResultList.add("fast/events/drag-outside-window.html"); // requires eventSender.mouseDown(),mouseUp() 134 ignoreResultList.add("fast/events/event-view-toString.html"); // requires eventSender.mouseDown(),mouseUp() 135 ignoreResultList.add("fast/events/frame-click-focus.html"); // requires eventSender.mouseDown(),mouseUp() 136 ignoreResultList.add("fast/events/frame-tab-focus.html"); // http://b/734308 137 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. 138 ignoreResultList.add("fast/events/input-image-scrolled-x-y.html"); // requires eventSender.mouseDown(),mouseUp() 139 ignoreResultList.add("fast/events/mouseclick-target-and-positioning.html"); // requires eventSender.mouseDown(),mouseUp() 140 ignoreResultList.add("fast/events/mouseover-mouseout.html"); // requires eventSender.mouseDown(),mouseUp() 141 ignoreResultList.add("fast/events/mouseover-mouseout2.html"); // requires eventSender.mouseDown(),mouseUp() 142 ignoreResultList.add("fast/events/mouseup-outside-button.html"); // requires eventSender.mouseDown(),mouseUp() 143 ignoreResultList.add("fast/events/mouseup-outside-document.html"); // requires eventSender.mouseDown(),mouseUp() 144 ignoreResultList.add("fast/events/onclick-list-marker.html"); // requires eventSender.mouseDown(),mouseUp() 145 ignoreResultList.add("fast/events/ondragenter.html"); // requires eventSender.mouseDown(),mouseUp() 146 ignoreResultList.add("fast/events/onload-webkit-before-webcore.html"); // missing space in textrun, ok as text is wrapped. ignore. #714933 147 ignoreResultList.add("fast/events/option-tab.html"); // http://b/734308 148 ignoreResultList.add("fast/events/window-events-bubble.html"); // requires eventSender.mouseDown(),mouseUp() 149 ignoreResultList.add("fast/events/window-events-bubble2.html"); // requires eventSender.mouseDown(),mouseUp() 150 ignoreResultList.add("fast/events/window-events-capture.html"); // requires eventSender.mouseDown(),mouseUp() 151 ignoreResultList.add("fast/forms/drag-into-textarea.html"); // requires eventSender.mouseDown(),mouseUp() 152 ignoreResultList.add("fast/forms/focus-control-to-page.html"); // http://b/716638 153 ignoreResultList.add("fast/forms/focus2.html"); // http://b/735111 154 ignoreResultList.add("fast/forms/form-data-encoding-2.html"); // charset convert. #516936 ignore, won't fix 155 ignoreResultList.add("fast/forms/form-data-encoding.html"); // charset convert. #516936 ignore, won't fix 156 ignoreResultList.add("fast/forms/input-appearance-maxlength.html"); // execCommand "insertText" not supported 157 ignoreResultList.add("fast/forms/input-select-on-click.html"); // requires eventSender.mouseDown(),mouseUp() 158 ignoreResultList.add("fast/forms/listbox-onchange.html"); // requires eventSender.mouseDown(),mouseUp() 159 ignoreResultList.add("fast/forms/listbox-selection.html"); // http://b/735116 160 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 161 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 162 ignoreResultList.add("fast/forms/plaintext-mode-1.html"); // not implemented queryCommandEnabled:BackColor, Undo & Redo 163 ignoreResultList.add("fast/forms/search-cancel-button-mouseup.html"); // requires eventSender.mouseDown(),mouseUp() 164 ignoreResultList.add("fast/forms/search-event-delay.html"); // http://b/735120 165 ignoreResultList.add("fast/forms/select-empty-list.html"); // requires eventSender.mouseDown(),mouseUp() 166 ignoreResultList.add("fast/forms/select-type-ahead-non-latin.html"); // http://b/735244 167 ignoreResultList.add("fast/forms/selected-index-assert.html"); // not capturing the console messages 168 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. 169 ignoreResultList.add("fast/forms/textarea-appearance-wrap.html"); // Our text areas are a little thinner than Apples. Also RTL test failes 170 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. 171 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. 172 ignoreResultList.add("fast/forms/textarea-paste-newline.html"); // Copy&Paste commands not supported 173 ignoreResultList.add("fast/forms/textarea-scrolled-endline-caret.html"); // requires eventSender.mouseDown(),mouseUp() 174 ignoreResultList.add("fast/frames/iframe-window-focus.html"); // http://b/735140 175 ignoreResultList.add("fast/frames/frameElement-widthheight.html"); // screen width&height are different 176 ignoreResultList.add("fast/frames/frame-js-url-clientWidth.html"); // screen width&height are different 177 ignoreResultList.add("fast/html/tab-order.html"); // http://b/719289 178 ignoreResultList.add("fast/js/navigator-mimeTypes-length.html"); // dynamic plugins not supported 179 ignoreResultList.add("fast/js/string-capitalization.html"); // http://b/516936 180 ignoreResultList.add("fast/loader/local-JavaScript-from-local.html"); // Requires LayoutTests to exist at /tmp/LayoutTests 181 ignoreResultList.add("fast/loader/local-iFrame-source-from-local.html"); // Requires LayoutTests to exist at /tmp/LayoutTests 182 ignoreResultList.add("fast/loader/opaque-base-url.html"); // extra spacing because iFrames rendered next to each other on Apple 183 ignoreResultList.add("fast/overflow/scroll-vertical-not-horizontal.html"); // http://b/735196 184 ignoreResultList.add("fast/parser/script-tag-with-trailing-slash.html"); // not capturing the console messages 185 ignoreResultList.add("fast/replaced/image-map.html"); // requires eventSender.mouseDown(),mouseUp() 186 ignoreResultList.add("fast/text/plain-text-line-breaks.html"); // extra spacing because iFrames rendered next to each other on Apple 187 } 188 189} 190