ASSIGNED - bug 298688: [context] support ant filters for resource monitoring exclusions https://bugs.eclipse.org/bugs/show_bug.cgi?id=298688
diff --git a/org.eclipse.mylyn.tests.performance/META-INF/MANIFEST.MF b/org.eclipse.mylyn.tests.performance/META-INF/MANIFEST.MF index 95532bb..f7b59e6 100644 --- a/org.eclipse.mylyn.tests.performance/META-INF/MANIFEST.MF +++ b/org.eclipse.mylyn.tests.performance/META-INF/MANIFEST.MF
@@ -14,6 +14,7 @@ org.eclipse.mylyn.commons.ui, org.eclipse.mylyn.tasks.core, org.eclipse.mylyn.tasks.ui, + org.eclipse.mylyn.resources.ui, org.eclipse.mylyn.tasks.tests Bundle-ClassPath: . Export-Package: org.eclipse.mylyn.tasks.tests.performance;x-internal:=true,
diff --git a/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/resources/tests/performance/ResourceChangeMonitorPerformanceTest.java b/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/resources/tests/performance/ResourceChangeMonitorPerformanceTest.java new file mode 100644 index 0000000..d9377fc --- /dev/null +++ b/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/resources/tests/performance/ResourceChangeMonitorPerformanceTest.java
@@ -0,0 +1,84 @@ +/******************************************************************************* + * Copyright (c) 2010 Tasktop Technologies and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Tasktop Technologies - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.resources.tests.performance; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.util.HashSet; +import java.util.Set; + +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.Path; +import org.eclipse.mylyn.internal.resources.ui.ResourceChangeMonitor; +import org.eclipse.mylyn.tests.performance.PerformanceConstants; +import org.eclipse.mylyn.tests.performance.support.CommonTestUtil; +import org.eclipse.test.performance.PerformanceTestCase; + +/** + * @author Shawn Minto + */ +public class ResourceChangeMonitorPerformanceTest extends PerformanceTestCase { + + private Set<IPath> paths; + + private Set<String> excludedPatterns; + + @Override + protected void setUp() throws Exception { + super.setUp(); + excludedPatterns = new HashSet<String>(); + excludedPatterns.add(ResourceChangeMonitor.createRegexFromPattern("*.class")); + excludedPatterns.add(ResourceChangeMonitor.createRegexFromPattern("*.tmp")); + excludedPatterns.add(ResourceChangeMonitor.createRegexFromPattern("~*")); + excludedPatterns.add(ResourceChangeMonitor.createRegexFromPattern(".*")); + excludedPatterns.add(ResourceChangeMonitor.createRegexFromPattern("generated")); + + paths = new HashSet<IPath>(); + File pathFile = CommonTestUtil.getFile(ResourceChangeMonitorPerformanceTest.class, + "resourceExclusionTestPaths.txt"); + assertNotNull(pathFile); + + BufferedReader br = null; + try { + br = new BufferedReader(new FileReader(pathFile)); + String line; + while ((line = br.readLine()) != null) { + paths.add(new Path(line)); + } + } finally { + if (br != null) { + br.close(); + } + } + assertFalse(paths.isEmpty()); + + } + + public void testIsExcluded() { + + for (int i = 0; i < PerformanceConstants.REPEAT; i++) { + startMeasuring(); + boolean excluded = false; + for (IPath path : paths) { + excluded |= ResourceChangeMonitor.isExcluded(path, null, excludedPatterns); + } + assertTrue(excluded); + + stopMeasuring(); + } + + commitMeasurements(); + assertPerformance(); + } + +}
diff --git a/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllPerformanceTests.java b/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllPerformanceTests.java index 1da9cf7..a275224 100644 --- a/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllPerformanceTests.java +++ b/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllPerformanceTests.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2008 Tasktop Technologies and others. + * Copyright (c) 2004, 2009 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -22,6 +22,7 @@ public static Test suite() { TestSuite suite = new TestSuite("Performance tests for org.eclipse.mylyn.tests.performance"); suite.addTest(AllTasksPerformanceTests.suite()); + suite.addTest(AllResourcesPerformanceTests.suite()); return suite; }
diff --git a/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllResourcesPerformanceTests.java b/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllResourcesPerformanceTests.java new file mode 100644 index 0000000..a1e7811 --- /dev/null +++ b/org.eclipse.mylyn.tests.performance/src/org/eclipse/mylyn/tests/performance/AllResourcesPerformanceTests.java
@@ -0,0 +1,28 @@ +/******************************************************************************* + * Copyright (c) 2010 Tasktop Technologies and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Tasktop Technologies - initial API and implementation + *******************************************************************************/ + +package org.eclipse.mylyn.tests.performance; + +import junit.framework.Test; +import junit.framework.TestSuite; + +import org.eclipse.mylyn.resources.tests.performance.ResourceChangeMonitorPerformanceTest; + +/** + * @author Shawn Minto + */ +public class AllResourcesPerformanceTests { + public static Test suite() { + TestSuite suite = new TestSuite("Test for org.eclipse.mylyn.resources.tests.performance"); + suite.addTestSuite(ResourceChangeMonitorPerformanceTest.class); + return suite; + } +}