[releng] Don't fail N-builds comparator tests (since no logs generated).
diff --git a/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java b/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java
index b48f0c8..e0824f7 100644
--- a/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java
+++ b/bundles/org.eclipse.releng.tests/src/org/eclipse/releng/tests/BuildTests.java
@@ -1,13 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 IBM Corporation 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
+ * Copyright (c) 2000, 2013 IBM Corporation 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:
- * IBM Corporation - initial API and implementation
+ * Contributors: IBM Corporation - initial API and implementation
*******************************************************************************/
+
package org.eclipse.releng.tests;
import java.io.BufferedInputStream;
@@ -49,1059 +47,1087 @@
public class BuildTests extends TestCase {
- private String logFileName;
- private static final int HTML = 0;
- private static final int PROPERTIES = 1;
- private static final int XML = 2;
+ private String logFileName;
+ private static final int HTML = 0;
+ private static final int PROPERTIES = 1;
+ private static final int XML = 2;
- private static FileTool.IZipFilter getTrueFilter() {
- return new FileTool.IZipFilter() {
- public boolean shouldExtract(String fullEntryName, String entryName, int depth) {
- return true;
- }
+ private static FileTool.IZipFilter getTrueFilter() {
+ return new FileTool.IZipFilter() {
- public boolean shouldUnzip(String fullEntryName, String entryName, int depth) {
- return true;
- }
- };
- }
+ public boolean shouldExtract(String fullEntryName, String entryName, int depth) {
+ return true;
+ }
- /**
- * Method hasErrors.
- *
- * @param string
- * @return boolean
- */
- private boolean hasErrors(String string) {
+ public boolean shouldUnzip(String fullEntryName, String entryName, int depth) {
+ return true;
+ }
+ };
+ }
- boolean result = false;
- BufferedReader aReader = null;
+ /**
+ * Method hasErrors.
+ *
+ * @param string
+ * @return boolean
+ */
+ private boolean hasErrors(String string) {
- try {
- aReader = new BufferedReader(new InputStreamReader(new FileInputStream(string)));
- String aLine = aReader.readLine();
- while (aLine != null) {
- int aNumber = parseLine(aLine);
- if (aNumber > 0) {
- result = true;
- }
- aLine = aReader.readLine();
- }
- } catch (FileNotFoundException e) {
- System.out.println("Could not open log file: " + string);
- result = true;
- } catch (IOException e) {
- System.out.println("Error reading log file: " + string);
- result = true;
- } finally {
- if (aReader != null) {
- try {
- aReader.close();
- } catch (IOException e) {
- result = true;
- }
- }
- }
+ boolean result = false;
+ BufferedReader aReader = null;
- return result;
- }
+ try {
+ aReader = new BufferedReader(new InputStreamReader(new FileInputStream(string)));
+ String aLine = aReader.readLine();
+ while (aLine != null) {
+ int aNumber = parseLine(aLine);
+ if (aNumber > 0) {
+ result = true;
+ }
+ aLine = aReader.readLine();
+ }
+ }
+ catch (FileNotFoundException e) {
+ System.out.println("Could not open log file: " + string);
+ result = true;
+ }
+ catch (IOException e) {
+ System.out.println("Error reading log file: " + string);
+ result = true;
+ }
+ finally {
+ if (aReader != null) {
+ try {
+ aReader.close();
+ }
+ catch (IOException e) {
+ result = true;
+ }
+ }
+ }
- public void testChkpii() {
+ return result;
+ }
- try {
- // test that chkpii is on path by printing chkpii help information
- Runtime aRuntime = Runtime.getRuntime();
- Process aProcess = aRuntime.exec(getExec() + " /?");
- BufferedReader aBufferedReader = new BufferedReader(new InputStreamReader(aProcess.getInputStream()));
- while (aBufferedReader.readLine() != null) {
- }
- aProcess.waitFor();
- } catch (IOException e) {
- // skip chkpii test if chkpii cannot be run.
- setName("testChkpii-NotInstalled");
- System.out.println(e.getMessage());
- System.out.println("Skipping chkpii test.");
- assertTrue(true);
- return;
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
+ public void testChkpii() {
- String zipFile = locateEclipseZip();
+ try {
+ // test that chkpii is on path by printing chkpii help information
+ Runtime aRuntime = Runtime.getRuntime();
+ Process aProcess = aRuntime.exec(getExec() + " /?");
+ BufferedReader aBufferedReader = new BufferedReader(new InputStreamReader(aProcess.getInputStream()));
+ while (aBufferedReader.readLine() != null) {
+ }
+ aProcess.waitFor();
+ }
+ catch (IOException e) {
+ // skip chkpii test if chkpii cannot be run.
+ setName("testChkpii-NotInstalled");
+ System.out.println(e.getMessage());
+ System.out.println("Skipping chkpii test.");
+ assertTrue(true);
+ return;
+ }
+ catch (InterruptedException e) {
+ e.printStackTrace();
+ }
- // String sniffFolder = BootLoader.getInstallURL().getPath() +
- // "releng_sniff_folder";
- // String sniffFolder = "d:\\builds\\t";
- String sniffFolder = Platform.getLocation().toOSString();
+ String zipFile = locateEclipseZip();
- try {
- if (zipFile.equals("")) {
- FileTool.unzip(getTrueFilter(), new File(sniffFolder));
- } else {
- FileTool.unzip(getTrueFilter(), new ZipFile(zipFile), new File(sniffFolder));
- }
- } catch (IOException e) {
- fail(zipFile + ": " + sniffFolder + ": " + "IOException unzipping Eclipse for chkpii");
- }
+ // String sniffFolder = BootLoader.getInstallURL().getPath() +
+ // "releng_sniff_folder";
+ // String sniffFolder = "d:\\builds\\t";
+ String sniffFolder = Platform.getLocation().toOSString();
- boolean result1 = testChkpii(HTML);
- boolean result2 = testChkpii(XML);
- boolean result3 = testChkpii(PROPERTIES);
- assertTrue("Translation errors in files. See the chkpii logs linked from the test results page for details.", (result1
- && result2 && result3));
- }
+ try {
+ if (zipFile.equals("")) {
+ FileTool.unzip(getTrueFilter(), new File(sniffFolder));
+ } else {
+ FileTool.unzip(getTrueFilter(), new ZipFile(zipFile), new File(sniffFolder));
+ }
+ }
+ catch (IOException e) {
+ fail(zipFile + ": " + sniffFolder + ": " + "IOException unzipping Eclipse for chkpii");
+ }
- private boolean testChkpii(int type) {
- Runtime aRuntime = Runtime.getRuntime();
- String chkpiiString = getChkpiiString(type);
- try {
- Process aProcess = aRuntime.exec(chkpiiString);
- BufferedReader aBufferedReader = new BufferedReader(new InputStreamReader(aProcess.getInputStream()));
- while (aBufferedReader.readLine() != null) {
- }
- aProcess.waitFor();
- } catch (IOException e) {
- e.printStackTrace();
- return false;
- } catch (InterruptedException e) {
- return false;
- }
- return !hasErrors(getOutputFile(type));
- }
+ boolean result1 = testChkpii(HTML);
+ boolean result2 = testChkpii(XML);
+ boolean result3 = testChkpii(PROPERTIES);
+ assertTrue("Translation errors in files. See the chkpii logs linked from the test results page for details.",
+ (result1 && result2 && result3));
+ }
- /**
- * Method getChkpiiString.
- *
- * @param HTML
- * @return String
- */
- private String getChkpiiString(int type) {
- return getExec() + " " + getFilesToTest(type) + " -E -O " + getOutputFile(type) + " -XM @" + getExcludeErrors() + " -X "
- + getExcludeFile() + " -S /jsq /tex";
- }
+ private boolean testChkpii(int type) {
+ Runtime aRuntime = Runtime.getRuntime();
+ String chkpiiString = getChkpiiString(type);
+ try {
+ Process aProcess = aRuntime.exec(chkpiiString);
+ BufferedReader aBufferedReader = new BufferedReader(new InputStreamReader(aProcess.getInputStream()));
+ while (aBufferedReader.readLine() != null) {
+ }
+ aProcess.waitFor();
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+ catch (InterruptedException e) {
+ return false;
+ }
+ return !hasErrors(getOutputFile(type));
+ }
- /**
- * Method locateEclipseZip.
- *
- * @return String
- */
- private String locateEclipseZip() {
+ /**
+ * Method getChkpiiString.
+ *
+ * @param HTML
+ * @return String
+ */
+ private String getChkpiiString(int type) {
+ return getExec() + " " + getFilesToTest(type) + " -E -O " + getOutputFile(type) + " -XM @" + getExcludeErrors() + " -X "
+ + getExcludeFile() + " -S /jsq /tex";
+ }
- // String to use when running as an automated test.
- String installDir = Platform.getInstallLocation().getURL().getPath() + ".." + File.separator + "..";
+ /**
+ * Method locateEclipseZip.
+ *
+ * @return String
+ */
+ private String locateEclipseZip() {
- // String to use when running in Eclipse
- // String installDir = BootLoader.getInstallURL().getPath() + "..";
- File aFile = new File(installDir);
+ // String to use when running as an automated test.
+ String installDir = Platform.getInstallLocation().getURL().getPath() + ".." + File.separator + "..";
- File[] files = aFile.listFiles();
- for (int i = 0; i < files.length; i++) {
- File file = files[i];
- String fileName = file.getName();
- if (fileName.startsWith("eclipse-SDK-") && fileName.endsWith(".zip")) {
- return file.getPath();
- }
- }
+ // String to use when running in Eclipse
+ // String installDir = BootLoader.getInstallURL().getPath() + "..";
+ File aFile = new File(installDir);
- return "";
- }
+ File[] files = aFile.listFiles();
+ for (int i = 0; i < files.length; i++) {
+ File file = files[i];
+ String fileName = file.getName();
+ if (fileName.startsWith("eclipse-SDK-") && fileName.endsWith(".zip")) {
+ return file.getPath();
+ }
+ }
- /**
- * Method getExcludeFiles.
- *
- * @return String
- */
- private String getExcludeFile() {
- String aString = System.getProperty("PLUGIN_PATH");
- return aString + File.separator + "ignoreFiles.txt";
- }
+ return "";
+ }
- /**
- * Method getOutputFile.
- *
- * @param HTML
- * @return String
- */
+ /**
+ * Method getExcludeFiles.
+ *
+ * @return String
+ */
+ private String getExcludeFile() {
+ String aString = System.getProperty("PLUGIN_PATH");
+ return aString + File.separator + "ignoreFiles.txt";
+ }
- private String getOutputFile(int type) {
+ /**
+ * Method getOutputFile.
+ *
+ * @param HTML
+ * @return String
+ */
- new File(logFileName).mkdirs();
+ private String getOutputFile(int type) {
- String aString = logFileName + File.separator + "org.eclipse.nls.";
- aString = new File(aString).getPath();
+ new File(logFileName).mkdirs();
- switch (type) {
- case HTML:
- return aString + "html.txt";
- case PROPERTIES:
- return aString + "properties.txt";
+ String aString = logFileName + File.separator + "org.eclipse.nls.";
+ aString = new File(aString).getPath();
- case XML:
- return aString + "xml.txt";
+ switch (type) {
+ case HTML:
+ return aString + "html.txt";
+ case PROPERTIES:
+ return aString + "properties.txt";
- default:
- return aString + "other.txt";
- }
- }
+ case XML:
+ return aString + "xml.txt";
- /**
- * Method getFilesToTest.
- *
- * @param HTML
- * @return String
- */
+ default:
+ return aString + "other.txt";
+ }
+ }
- private String getFilesToTest(int type) {
+ /**
+ * Method getFilesToTest.
+ *
+ * @param HTML
+ * @return String
+ */
- String sniffFolder = Platform.getLocation().toOSString();
+ private String getFilesToTest(int type) {
- String aString = new File(sniffFolder).getPath() + File.separator;
+ String sniffFolder = Platform.getLocation().toOSString();
- switch (type) {
- case HTML:
- return aString + "*.htm*";
- case PROPERTIES:
- return aString + "*.properties";
+ String aString = new File(sniffFolder).getPath() + File.separator;
- case XML:
- return aString + "*.xml";
+ switch (type) {
+ case HTML:
+ return aString + "*.htm*";
+ case PROPERTIES:
+ return aString + "*.properties";
- default:
- return aString + "*.*";
- }
- }
+ case XML:
+ return aString + "*.xml";
- /**
- * Method getExec.
- *
- * @return String
- */
+ default:
+ return aString + "*.*";
+ }
+ }
- private String getExec() {
+ /**
+ * Method getExec.
+ *
+ * @return String
+ */
- return new File("chkpw1402.exe").getPath();
- }
+ private String getExec() {
- /**
- * Method getExcludeErrors.
- */
- private String getExcludeErrors() {
+ return new File("chkpw1402.exe").getPath();
+ }
- String os = Platform.getOS();
- String fileName;
+ /**
+ * Method getExcludeErrors.
+ */
+ private String getExcludeErrors() {
- if (os.equals("win32")) {
- fileName = "ignoreErrorsWindows.txt";
- } else {
- fileName = "ignoreErrorsUnix.txt";
- }
+ String os = Platform.getOS();
+ String fileName;
- String aString = System.getProperty("PLUGIN_PATH");
- return aString + File.separator + fileName;
- }
+ if (os.equals("win32")) {
+ fileName = "ignoreErrorsWindows.txt";
+ } else {
+ fileName = "ignoreErrorsUnix.txt";
+ }
- /**
- * Method parseLine.
- *
- * @param aLine
- * @return -1 if not an error or warning line or the number of errors or
- * warnings.
- */
- private int parseLine(String aLine) {
- int index = aLine.indexOf("Files Could Not Be Processed: ");
+ String aString = System.getProperty("PLUGIN_PATH");
+ return aString + File.separator + fileName;
+ }
- if (index == -1) {
- index = aLine.indexOf("Files Contain Error");
- }
+ /**
+ * Method parseLine.
+ *
+ * @param aLine
+ * @return -1 if not an error or warning line or the number of errors or warnings.
+ */
+ private int parseLine(String aLine) {
+ int index = aLine.indexOf("Files Could Not Be Processed: ");
- if (index == -1) {
- return -1;
- } else {
- String aString = aLine.substring(0, index).trim();
- return Integer.parseInt(aString);
- }
- }
+ if (index == -1) {
+ index = aLine.indexOf("Files Contain Error");
+ }
- public class FileSuffixFilter implements FilenameFilter {
+ if (index == -1) {
+ return -1;
+ } else {
+ String aString = aLine.substring(0, index).trim();
+ return Integer.parseInt(aString);
+ }
+ }
- private String suffix;
+ public class FileSuffixFilter implements FilenameFilter {
- public FileSuffixFilter(String suffix) {
- this.suffix = suffix;
- }
+ private String suffix;
- /**
- * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
- */
- public boolean accept(File dir, String name) {
- int lastDot = name.lastIndexOf('.');
- if (lastDot == -1) {
- return false;
- }
- return name.substring(lastDot).equals(suffix);
- }
+ public FileSuffixFilter(String suffix) {
+ this.suffix = suffix;
+ }
- }
+ /**
+ * @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
+ */
+ public boolean accept(File dir, String name) {
+ int lastDot = name.lastIndexOf('.');
+ if (lastDot == -1) {
+ return false;
+ }
+ return name.substring(lastDot).equals(suffix);
+ }
- public static final String[] REQUIRED_FEATURE_FILES = { "epl-v10.html", "feature.properties", "feature.xml", "license.html" };
- public static final String REQUIRED_FEATURE_SUFFIX = "";
+ }
- public static final String[] REQUIRED_PLUGIN_FILES = { "about.html", "plugin.properties", "plugin.xml" };
- public static final String REQUIRED_PLUGIN_SUFFIX = ".jar";
+ public static final String[] REQUIRED_FEATURE_FILES = { "epl-v10.html", "feature.properties", "feature.xml", "license.html" };
+ public static final String REQUIRED_FEATURE_SUFFIX = "";
- public static final String[] REQUIRED_FEATURE_PLUGIN_FILES = { "about.html", "about.ini", "about.mappings", "about.properties",
- "plugin.properties", "plugin.xml" };
- public static final String REQUIRED_FEATURE_PLUGIN_SUFFIX = ".gif";
+ public static final String[] REQUIRED_PLUGIN_FILES = { "about.html", "plugin.properties", "plugin.xml" };
+ public static final String REQUIRED_PLUGIN_SUFFIX = ".jar";
- public static final String[] REQUIRED_FRAGMENT_FILES = { "fragment.xml" };
- public static final String REQUIRED_FRAGMENT_SUFFIX = "";
+ public static final String[] REQUIRED_FEATURE_PLUGIN_FILES = { "about.html", "about.ini", "about.mappings", "about.properties",
+ "plugin.properties", "plugin.xml" };
+ public static final String REQUIRED_FEATURE_PLUGIN_SUFFIX = ".gif";
- public static final String[] REQUIRED_SWT_FRAGMENT_FILES = { "fragment.properties" };
- public static final String REQUIRED_SWT_FRAGMENT_SUFFIX = "";
+ public static final String[] REQUIRED_FRAGMENT_FILES = { "fragment.xml" };
+ public static final String REQUIRED_FRAGMENT_SUFFIX = "";
- public static final String[] REQUIRED_SOURCE_FILES = { "about.html" };
- public static final String REQUIRED_SOURCE_SUFFIX = ".zip";
+ public static final String[] REQUIRED_SWT_FRAGMENT_FILES = { "fragment.properties" };
+ public static final String REQUIRED_SWT_FRAGMENT_SUFFIX = "";
- public static final String[] REQUIRED_BUNDLE_FILES = { "about.html" };
- public static final String REQUIRED_BUNDLE_MANIFEST = "MANIFEST.MF";
- public static final String REQUIRED_BUNDLE_SUFFIX = ".jar";
+ public static final String[] REQUIRED_SOURCE_FILES = { "about.html" };
+ public static final String REQUIRED_SOURCE_SUFFIX = ".zip";
- public static final String[] SUFFIX_EXEMPT_LIST = { "org.eclipse.swt", "org.apache.ant" };
+ public static final String[] REQUIRED_BUNDLE_FILES = { "about.html" };
+ public static final String REQUIRED_BUNDLE_MANIFEST = "MANIFEST.MF";
+ public static final String REQUIRED_BUNDLE_SUFFIX = ".jar";
- public static final int PLUGIN_COUNT = 84; // - 20; // Note this number
- // must include non-shipping
- // test plugins
- public static final int FEATURE_COUNT = 9; // - 1; // Note this number must
+ public static final String[] SUFFIX_EXEMPT_LIST = { "org.eclipse.swt", "org.apache.ant" };
- // include non-shipping test
- // feature
+ public static final int PLUGIN_COUNT = 84; // - 20; // Note this number
+ // must include non-shipping
+ // test plugins
+ public static final int FEATURE_COUNT = 9; // - 1; // Note this number must
- /**
- * Constructor for EmptyDirectoriesTest.
- *
- * @param arg0
- */
- public BuildTests(String arg0) {
- super(arg0);
- }
+ // include non-shipping test
+ // feature
- /**
- * @see TestCase#setUp()
- */
- protected void setUp() throws Exception {
- // Automated Test
- logFileName = Platform.getInstallLocation().getURL().getPath() + ".." + File.separator + ".." + File.separator + "results"
- + File.separator + "chkpii"; // A tad bogus but this is where
- // the build wants to copy the
- // results from!
+ /**
+ * Constructor for EmptyDirectoriesTest.
+ *
+ * @param arg0
+ */
+ public BuildTests(String arg0) {
+ super(arg0);
+ }
- // Runtime Workbench - TODO Put me back to Automated status
- // logFileName = "d:\\results";
- // sourceDirectoryName = "d:\\sourceFetch";
- }
+ /**
+ * @see TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ // Automated Test
+ logFileName = Platform.getInstallLocation().getURL().getPath() + ".." + File.separator + ".." + File.separator + "results"
+ + File.separator + "chkpii"; // A tad bogus but this is where
+ // the build wants to copy the
+ // results from!
- /**
- * @see TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- }
+ // Runtime Workbench - TODO Put me back to Automated status
+ // logFileName = "d:\\results";
+ // sourceDirectoryName = "d:\\sourceFetch";
+ }
- public void testFeatureFiles() {
- List result = new ArrayList();
- String installDir = Platform.getInstallLocation().getURL().getPath();
+ /**
+ * @see TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
- File featureDir = new File(installDir, "features");
- File[] features = featureDir.listFiles();
- for (int i = 0; i < features.length; i++) {
- File aFeature = features[i];
- if (!testDirectory(aFeature, REQUIRED_FEATURE_FILES, REQUIRED_FEATURE_SUFFIX)) {
- result.add(aFeature.getPath());
- }
+ public void testFeatureFiles() {
+ List result = new ArrayList();
+ String installDir = Platform.getInstallLocation().getURL().getPath();
- }
+ File featureDir = new File(installDir, "features");
+ File[] features = featureDir.listFiles();
+ for (int i = 0; i < features.length; i++) {
+ File aFeature = features[i];
+ if (!testDirectory(aFeature, REQUIRED_FEATURE_FILES, REQUIRED_FEATURE_SUFFIX)) {
+ result.add(aFeature.getPath());
+ }
- String aString = "";
- if (result.size() > 0) {
+ }
- Iterator iter = result.iterator();
- while (iter.hasNext()) {
- String element = (String) iter.next();
- aString = aString + element + "; ";
- }
- }
- assertTrue("Feature directory missing required files: " + aString, result.size() == 0);
- }
+ String aString = "";
+ if (result.size() > 0) {
- public void testPluginFiles() {
- List result = new ArrayList();
- String installDir = Platform.getInstallLocation().getURL().getPath();
- File pluginDir = new File(installDir, "plugins");
- File[] plugins = pluginDir.listFiles();
- for (int i = 0; i < plugins.length; i++) {
- File aPlugin = plugins[i];
- if (aPlugin.getName().indexOf("test") == -1) {
- if (!testPluginFile(aPlugin)) {
- result.add(aPlugin.getPath());
- }
- }
- }
+ Iterator iter = result.iterator();
+ while (iter.hasNext()) {
+ String element = (String) iter.next();
+ aString = aString + element + "; ";
+ }
+ }
+ assertTrue("Feature directory missing required files: " + aString, result.size() == 0);
+ }
- String aString = "";
- if (result.size() > 0) {
+ public void testPluginFiles() {
+ List result = new ArrayList();
+ String installDir = Platform.getInstallLocation().getURL().getPath();
+ File pluginDir = new File(installDir, "plugins");
+ File[] plugins = pluginDir.listFiles();
+ for (int i = 0; i < plugins.length; i++) {
+ File aPlugin = plugins[i];
+ if (aPlugin.getName().indexOf("test") == -1) {
+ if (!testPluginFile(aPlugin)) {
+ result.add(aPlugin.getPath());
+ }
+ }
+ }
- Iterator iter = result.iterator();
- while (iter.hasNext()) {
- String element = (String) iter.next();
- aString = aString + element + "; ";
- }
- }
- assertTrue("Plugin directory missing required files: " + aString, result.size() == 0);
- }
+ String aString = "";
+ if (result.size() > 0) {
- private boolean testPluginFile(File aPlugin) {
+ Iterator iter = result.iterator();
+ while (iter.hasNext()) {
+ String element = (String) iter.next();
+ aString = aString + element + "; ";
+ }
+ }
+ assertTrue("Plugin directory missing required files: " + aString, result.size() == 0);
+ }
- // Are we a doc plugin?
- if (testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, ".zip")) {
- return true;
- }
+ private boolean testPluginFile(File aPlugin) {
- // Are we a feature plugin?
- if (testDirectory(aPlugin, REQUIRED_FEATURE_PLUGIN_FILES, REQUIRED_FEATURE_PLUGIN_SUFFIX)) {
- return true;
- }
+ // Are we a doc plugin?
+ if (testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, ".zip")) {
+ return true;
+ }
- // Are we a regular plugin
- if (testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, REQUIRED_PLUGIN_SUFFIX)) {
- return true;
- }
+ // Are we a feature plugin?
+ if (testDirectory(aPlugin, REQUIRED_FEATURE_PLUGIN_FILES, REQUIRED_FEATURE_PLUGIN_SUFFIX)) {
+ return true;
+ }
- // Are we a source plugin
- if (testSourcePlugin(aPlugin)) {
- return true;
- }
+ // Are we a regular plugin
+ if (testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, REQUIRED_PLUGIN_SUFFIX)) {
+ return true;
+ }
- // Are we a fragment
- if ((testDirectory(aPlugin, REQUIRED_FRAGMENT_FILES, REQUIRED_FRAGMENT_SUFFIX))
- || (testBundleDirectory(aPlugin, REQUIRED_BUNDLE_FILES, REQUIRED_BUNDLE_MANIFEST, REQUIRED_FRAGMENT_SUFFIX))) {
- return true;
- }
+ // Are we a source plugin
+ if (testSourcePlugin(aPlugin)) {
+ return true;
+ }
- // Are we an swt fragment
- if (testDirectory(aPlugin, REQUIRED_SWT_FRAGMENT_FILES, REQUIRED_SWT_FRAGMENT_SUFFIX)) {
- return true;
- }
+ // Are we a fragment
+ if ((testDirectory(aPlugin, REQUIRED_FRAGMENT_FILES, REQUIRED_FRAGMENT_SUFFIX))
+ || (testBundleDirectory(aPlugin, REQUIRED_BUNDLE_FILES, REQUIRED_BUNDLE_MANIFEST, REQUIRED_FRAGMENT_SUFFIX))) {
+ return true;
+ }
- // Are we a bundle?
- if (testBundleDirectory(aPlugin, REQUIRED_BUNDLE_FILES, REQUIRED_BUNDLE_MANIFEST, REQUIRED_BUNDLE_SUFFIX)) {
- return true;
- }
+ // Are we an swt fragment
+ if (testDirectory(aPlugin, REQUIRED_SWT_FRAGMENT_FILES, REQUIRED_SWT_FRAGMENT_SUFFIX)) {
+ return true;
+ }
- // No then we are bad
- return false;
- }
+ // Are we a bundle?
+ if (testBundleDirectory(aPlugin, REQUIRED_BUNDLE_FILES, REQUIRED_BUNDLE_MANIFEST, REQUIRED_BUNDLE_SUFFIX)) {
+ return true;
+ }
- private boolean testPluginJar(File aDirectory, String[] requiredFiles) {
- ArrayList list = new ArrayList();
- try {
- ZipFile jarredPlugin = new ZipFile(aDirectory);
- Enumeration _enum = jarredPlugin.entries();
- while (_enum.hasMoreElements()) {
- list.add(_enum.nextElement().toString());
- }
- } catch (ZipException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (!list.containsAll(Arrays.asList(requiredFiles))) {
- return false;
- }
- return true;
- }
+ // No then we are bad
+ return false;
+ }
- private boolean testDirectory(File aDirectory, String[] requiredFiles, String requiredSuffix) {
- if (aDirectory.getName().endsWith(".jar")) {
- return testPluginJar(aDirectory, requiredFiles);
- } else {
- if (!Arrays.asList(aDirectory.list()).containsAll(Arrays.asList(requiredFiles))) {
- return false;
- }
+ private boolean testPluginJar(File aDirectory, String[] requiredFiles) {
+ ArrayList list = new ArrayList();
+ try {
+ ZipFile jarredPlugin = new ZipFile(aDirectory);
+ Enumeration _enum = jarredPlugin.entries();
+ while (_enum.hasMoreElements()) {
+ list.add(_enum.nextElement().toString());
+ }
+ }
+ catch (ZipException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if (!list.containsAll(Arrays.asList(requiredFiles))) {
+ return false;
+ }
+ return true;
+ }
- int index = aDirectory.getName().indexOf('_');
- if (index == -1) {
- index = aDirectory.getName().length();
- }
+ private boolean testDirectory(File aDirectory, String[] requiredFiles, String requiredSuffix) {
+ if (aDirectory.getName().endsWith(".jar")) {
+ return testPluginJar(aDirectory, requiredFiles);
+ } else {
+ if (!Arrays.asList(aDirectory.list()).containsAll(Arrays.asList(requiredFiles))) {
+ return false;
+ }
- String plainName = aDirectory.getName().substring(0, index);
+ int index = aDirectory.getName().indexOf('_');
+ if (index == -1) {
+ index = aDirectory.getName().length();
+ }
- if (requiredSuffix.equals("") || Arrays.asList(SUFFIX_EXEMPT_LIST).contains(plainName)) {
- return true;
- } else if (aDirectory.listFiles(new FileSuffixFilter(requiredSuffix)).length == 0) {
- return false;
- }
- }
- return true;
- }
+ String plainName = aDirectory.getName().substring(0, index);
- private boolean testBundleDirectory(File aDirectory, String[] requiredFiles, String manifestFile, String requiredSuffix) {
- if (aDirectory.getName().endsWith(".jar")) {
- return testPluginJar(aDirectory, requiredFiles);
- } else {
- if (!Arrays.asList(aDirectory.list()).containsAll(Arrays.asList(requiredFiles))) {
- return false;
- }
+ if (requiredSuffix.equals("") || Arrays.asList(SUFFIX_EXEMPT_LIST).contains(plainName)) {
+ return true;
+ } else if (aDirectory.listFiles(new FileSuffixFilter(requiredSuffix)).length == 0) {
+ return false;
+ }
+ }
+ return true;
+ }
- int index = aDirectory.getName().indexOf('_');
- if (index == -1) {
- index = aDirectory.getName().length();
- }
+ private boolean testBundleDirectory(File aDirectory, String[] requiredFiles, String manifestFile, String requiredSuffix) {
+ if (aDirectory.getName().endsWith(".jar")) {
+ return testPluginJar(aDirectory, requiredFiles);
+ } else {
+ if (!Arrays.asList(aDirectory.list()).containsAll(Arrays.asList(requiredFiles))) {
+ return false;
+ }
- String plainName = aDirectory.getName().substring(0, index);
+ int index = aDirectory.getName().indexOf('_');
+ if (index == -1) {
+ index = aDirectory.getName().length();
+ }
- File metaDir = new File(aDirectory, "META-INF");
+ String plainName = aDirectory.getName().substring(0, index);
- String[] metaFiles = metaDir.list();
- if (metaFiles == null) {
- return (false);
- } else {
- for (int i = 0; i < metaFiles.length; i++) {
- String filename = metaFiles[i];
- if (filename == manifestFile) {
- return true;
- }
- }
- }
+ File metaDir = new File(aDirectory, "META-INF");
- if (!metaDir.exists()) {
- return false;
- }
+ String[] metaFiles = metaDir.list();
+ if (metaFiles == null) {
+ return (false);
+ } else {
+ for (int i = 0; i < metaFiles.length; i++) {
+ String filename = metaFiles[i];
+ if (filename == manifestFile) {
+ return true;
+ }
+ }
+ }
- if (requiredSuffix.equals("") || Arrays.asList(SUFFIX_EXEMPT_LIST).contains(plainName)) {
- return true;
- } else if (aDirectory.listFiles(new FileSuffixFilter(requiredSuffix)).length == 0) {
- return false;
- }
- }
- return true;
- }
+ if (!metaDir.exists()) {
+ return false;
+ }
+
+ if (requiredSuffix.equals("") || Arrays.asList(SUFFIX_EXEMPT_LIST).contains(plainName)) {
+ return true;
+ } else if (aDirectory.listFiles(new FileSuffixFilter(requiredSuffix)).length == 0) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Return true if the receiver is a source plugin, false otherwise A separate method because this is a little tricky.
+ *
+ * @param aPlugin
+ * @return boolean
+ */
+ private boolean testSourcePlugin(File aPlugin) {
+ if (!testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, "")) {
+ return false;
+ }
+
+ File sourceDir = new File(aPlugin, "src");
+ File[] sourceDirs = sourceDir.listFiles();
+ if (sourceDirs == null) {
+ return false;
+ }
+
+ for (int i = 0; i < sourceDirs.length; i++) {
+ File aSourceDir = sourceDirs[i];
+ if (!testDirectory(aSourceDir, REQUIRED_SOURCE_FILES, REQUIRED_SOURCE_SUFFIX)) {
+ return false;
+ }
+ }
+ return true;
+ }
- /**
- * Return true if the receiver is a source plugin, false otherwise A
- * separate method because this is a little tricky.
- *
- * @param aPlugin
- * @return boolean
- */
- private boolean testSourcePlugin(File aPlugin) {
- if (!testDirectory(aPlugin, REQUIRED_PLUGIN_FILES, "")) {
- return false;
- }
+ public void testJavadocLogs() throws Exception {
+ String javadocUrls = System.getProperty("RELENGTEST.JAVADOC.URLS");
+ // Skip this test if there are no logs to check
+ if (javadocUrls == null) {
+ System.err.println("WARNING: no javadoc logs to test, since RELENGTEST.JAVADOC.URLS property was not set");
+ return;
+ } else {
+ System.err.println("RELENGTEST.JAVADOC.URLS: " + javadocUrls);
+ }
- File sourceDir = new File(aPlugin, "src");
- File[] sourceDirs = sourceDir.listFiles();
- if (sourceDirs == null) {
- return false;
- }
+ String[] urls = javadocUrls.split(",");
+ URL[] javadocLogs = new URL[urls.length];
+ for (int i = 0; i < urls.length; i++) {
+ javadocLogs[i] = new URL(urls[i]);
+ System.err.println("javadocLogs[" + i + "]: " + javadocLogs[i]);
+ }
- for (int i = 0; i < sourceDirs.length; i++) {
- File aSourceDir = sourceDirs[i];
- if (!testDirectory(aSourceDir, REQUIRED_SOURCE_FILES, REQUIRED_SOURCE_SUFFIX)) {
- return false;
- }
- }
- return true;
- }
+ JavadocLog javadocLog = new JavadocLog(javadocLogs);
+ String message = "javadoc errors and/or warnings in: \n";
+ boolean problemLogsExist = javadocLog.logs.size() > 0;
+ if (problemLogsExist) {
+ for (int i = 0; i < javadocLog.logs.size(); i++)
+ message = message.concat(javadocLog.logs.get(i).toString() + "\n");
+ }
+ message = message.concat("See the javadoc logs linked from the test results page for details");
+ assertTrue(message, !problemLogsExist);
+ }
- public void testJavadocLogs() throws Exception {
- String javadocUrls = System.getProperty("RELENGTEST.JAVADOC.URLS");
- // Skip this test if there are no logs to check
- if (javadocUrls == null) {
- System.err.println("WARNING: no javadoc logs to test, since RELENGTEST.JAVADOC.URLS property was not set");
- return;
- } else {
- System.err.println("RELENGTEST.JAVADOC.URLS: " + javadocUrls);
- }
+ public void testDirtyLogSize() throws Exception {
+ final boolean DEBUG_DIRTY_TEST = true;
+ // MAX_ALLOWED_BYTES will never be 'zero', even if "no dirt" because the
+ // "dirReport" always contains some information
+ // in response to the "git status" command. The goal, here, is to
+ // "hard code" previously observed values, to make sure
+ // there is no regressions, which would be implied by a report larger
+ // than those that had been produced before.
+ // The "size" should be expressed in exact bytes as "increases" in
+ // size might be small ... if just a file or two.
+ URL standardReportURL = this.getClass().getResource("standardDirtReport.txt");
+ URLConnection standardReportURLConnection = standardReportURL.openConnection();
+ // No need to get contents (yet, most of the time) unless getContentLenth doesn't work for plugin resources?
+ long MAX_ALLOWED_BYTES = standardReportURLConnection.getContentLength();
+ // long MAX_ALLOWED_BYTES = 37179;
+ System.out.println("DEBUG: MAX_ALLOWED_BYTES: " + MAX_ALLOWED_BYTES);
+ String buildId = System.getProperty("buildId");
+ assertNotNull("buildId property must be specified for testDirtyLogSize test", buildId);
+ String downloadHost = getDownloadHost();
+ String urlOfFile = "http://" + downloadHost + "/eclipse/downloads/drops4/" + buildId + "/buildlogs/dirtReport.txt";
+ URL logURL = new URL(urlOfFile);
- String[] urls = javadocUrls.split(",");
- URL[] javadocLogs = new URL[urls.length];
- for (int i = 0; i < urls.length; i++) {
- javadocLogs[i] = new URL(urls[i]);
- System.err.println("javadocLogs[" + i + "]: " + javadocLogs[i]);
- }
+ URLConnection urlConnection = logURL.openConnection();
+ // getContentLength calls "connect" if needed.
+ // urlConnection.connect();
+ // Note, if expect more than "2 Gig", use getContentLengthLong (in Java 7).
+ long nBytes = urlConnection.getContentLength();
+ if (DEBUG_DIRTY_TEST) {
+ System.out.println("Debug info for testDirtyLogSize");
+ System.out.println("Debug: nBytes: " + nBytes);
+ printHeaders(urlConnection);
+ }
+ // if find "response does not contain length, on a regular basis, for
+ // some servers, will have to read contents.
+ assertTrue(
+ "Either file (url) does not exist (build may have been removed?), or HTTP response does not contain content length. urlOfFile: "
+ + urlOfFile,
+ (!(-1 == nBytes)));
+ assertFalse("dirtReport file has increased in size, indicating a regression. See " + urlOfFile, nBytes > MAX_ALLOWED_BYTES);
+ assertFalse(
+ "Good news! dirtReport file has decreased in size, compared to standard, so the standardDirtReport.txt file should be replaced with the one at "
+ + urlOfFile
+ + ". But NOTE: results may not be accurate, if there are other errors in build, so diff is recommended.",
+ nBytes < MAX_ALLOWED_BYTES);
- JavadocLog javadocLog = new JavadocLog(javadocLogs);
- String message = "javadoc errors and/or warnings in: \n";
- boolean problemLogsExist = javadocLog.logs.size() > 0;
- if (problemLogsExist) {
- for (int i = 0; i < javadocLog.logs.size(); i++)
- message = message.concat(javadocLog.logs.get(i).toString() + "\n");
- }
- message = message.concat("See the javadoc logs linked from the test results page for details");
- assertTrue(message, !problemLogsExist);
- }
+ }
- public void testDirtyLogSize() throws Exception {
- final boolean DEBUG_DIRTY_TEST = true;
- // MAX_ALLOWED_BYTES will never be 'zero', even if "no dirt" because the
- // "dirReport" always contains some information
- // in response to the "git status" command. The goal, here, is to
- // "hard code" previously observed values, to make sure
- // there is no regressions, which would be implied by a report larger
- // than those that had been produced before.
- // The "size" should be expressed in exact bytes as "increases" in
- // size might be small ... if just a file or two.
- URL standardReportURL = this.getClass().getResource("standardDirtReport.txt");
- URLConnection standardReportURLConnection = standardReportURL.openConnection();
- // No need to get contents (yet, most of the time) unless getContentLenth doesn't work for plugin resources?
- long MAX_ALLOWED_BYTES = standardReportURLConnection.getContentLength();
- //long MAX_ALLOWED_BYTES = 37179;
- System.out.println("DEBUG: MAX_ALLOWED_BYTES: " + MAX_ALLOWED_BYTES);
- String buildId = System.getProperty("buildId");
- assertNotNull("buildId property must be specified for testDirtyLogSize test", buildId);
- String downloadHost = getDownloadHost();
- String urlOfFile = "http://"+ downloadHost + "/eclipse/downloads/drops4/" + buildId + "/buildlogs/dirtReport.txt";
- URL logURL = new URL(urlOfFile);
+ private String getDownloadHost() {
+ String downloadHost = System.getProperty("downloadHost");
+ if (downloadHost == null) {
+ downloadHost = "download.eclipse.org";
+ }
+ return downloadHost;
+ }
- URLConnection urlConnection = logURL.openConnection();
- // getContentLength calls "connect" if needed.
- // urlConnection.connect();
- // Note, if expect more than "2 Gig", use getContentLengthLong (in Java 7).
- long nBytes = urlConnection.getContentLength();
- if (DEBUG_DIRTY_TEST) {
- System.out.println("Debug info for testDirtyLogSize");
- System.out.println("Debug: nBytes: " + nBytes);
- printHeaders(urlConnection);
- }
- // if find "response does not contain length, on a regular basis, for
- // some servers, will have to read contents.
- assertTrue("Either file (url) does not exist (build may have been removed?), or HTTP response does not contain content length. urlOfFile: " + urlOfFile,
- (!(-1 == nBytes)));
- assertFalse("dirtReport file has increased in size, indicating a regression. See " + urlOfFile, nBytes > MAX_ALLOWED_BYTES);
- assertFalse("Good news! dirtReport file has decreased in size, compared to standard, so the standardDirtReport.txt file should be replaced with the one at " + urlOfFile + ". But NOTE: results may not be accurate, if there are other errors in build, so diff is recommended.", nBytes < MAX_ALLOWED_BYTES);
+ private void printHeaders(URLConnection urlConnection) {
+ System.out.println("Debug: Headers for urlConnection to " + urlConnection.getURL());
+ Map<String, List<String>> allFields = urlConnection.getHeaderFields();
+ Set<String> keys = allFields.keySet();
+ for (String key : keys) {
+ List<String> values = allFields.get(key);
+ for (String value : values) {
+ System.out.printf("Debug: %-20s %-30s %n", "key: " + key, "value: " + value);
+ }
+ }
+ }
- }
+ public void testComparatorLogSize() throws Exception {
+ final boolean DEBUG_TEST = true;
+ // MAX_ALLOWED_BYTES will never be 'zero', even if no unexpected comparator warnings, because the
+ // report always contains some information, such as identifying which build it was for.
+ // The goal, here, is to
+ // "hard code" nominal values, to make sure
+ // there is no regressions, which would be implied by a report larger
+ // than that nominal value.
+ long MAX_ALLOWED_BYTES = 210;
+ String buildId = System.getProperty("buildId");
+ assertNotNull("buildId property must be specified for testComparatorLogSize test", buildId);
+ String buildType = buildId.substring(0, 1);
+ // Comparator logs are not generated for N builds
+ if (!buildType.equals("N")) {
+ String downloadHost = getDownloadHost();
+ String urlOfFile = "http://" + downloadHost + "/eclipse/downloads/drops4/" + buildId
+ + "/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt";
+ URL logURL = new URL(urlOfFile);
- private String getDownloadHost() {
- String downloadHost = System.getProperty("downloadHost");
- if (downloadHost == null) {
- downloadHost = "download.eclipse.org";
- }
- return downloadHost;
- }
+ URLConnection urlConnection = logURL.openConnection();
+ // urlConnection.connect();
+ long nBytes = urlConnection.getContentLength();
+ if (DEBUG_TEST) {
+ System.out.println("Debug info for testComparatorLogSize");
+ System.out.println("Debug: nBytes: " + nBytes);
+ printHeaders(urlConnection);
+ }
+ // if find "response does not contain length, on a regular basis, for
+ // some servers, will have to read contents.
+ assertTrue(
+ "Either file (url) does not exist, or HTTP response does not contain content length. urlOfFile: " + urlOfFile,
+ (!(-1 == nBytes)));
+ assertTrue("Unanticipated comparator log file has increased in size, indicating a regression. See " + urlOfFile,
+ nBytes <= MAX_ALLOWED_BYTES);
+ if (MAX_ALLOWED_BYTES > (nBytes + 20)) {
+ System.out.println("WARNING: MAX_ALLOWED_BYTES was larger than bytes found, by " + (MAX_ALLOWED_BYTES - nBytes)
+ + ", which may indicate MAX_ALLOWED_BYTES needs to be lowered, to catch regressions.");
+ }
+ } else {
+ setName("noComparatorTestsForNBuilds");
+ }
+ }
- private void printHeaders(URLConnection urlConnection) {
- System.out.println("Debug: Headers for urlConnection to " + urlConnection.getURL());
- Map<String, List<String>> allFields = urlConnection.getHeaderFields();
- Set<String> keys = allFields.keySet();
- for (String key : keys) {
- List<String> values = allFields.get(key);
- for (String value : values) {
- System.out.printf("Debug: %-20s %-30s %n", "key: " + key, "value: " + value);
- }
- }
- }
- public void testComparatorLogSize() throws Exception {
- final boolean DEBUG_TEST = true;
- // MAX_ALLOWED_BYTES will never be 'zero', even if no unexpected comparator warnings, because the
- // report always contains some information, such as identifying which build it was for.
- // The goal, here, is to
- // "hard code" nominal values, to make sure
- // there is no regressions, which would be implied by a report larger
- // than that nominal value.
- long MAX_ALLOWED_BYTES = 210;
- String buildId = System.getProperty("buildId");
- assertNotNull("buildId property must be specified for testDirtyLogSize test", buildId);
- String downloadHost = getDownloadHost();
- String urlOfFile = "http://" + downloadHost + "/eclipse/downloads/drops4/" + buildId + "/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt";
- URL logURL = new URL(urlOfFile);
+ private class JavadocLog {
- URLConnection urlConnection = logURL.openConnection();
- // urlConnection.connect();
- long nBytes = urlConnection.getContentLength();
- if (DEBUG_TEST) {
- System.out.println("Debug info for testComparatorLogSize");
- System.out.println("Debug: nBytes: " + nBytes);
- printHeaders(urlConnection);
- }
- // if find "response does not contain length, on a regular basis, for
- // some servers, will have to read contents.
- assertTrue("Either file (url) does not exist, or HTTP response does not contain content length. urlOfFile: " + urlOfFile,
- (!(-1 == nBytes)));
- assertTrue("Unanticipated comparator log file has increased in size, indicating a regression. See " + urlOfFile, nBytes <= MAX_ALLOWED_BYTES);
- if (MAX_ALLOWED_BYTES > (nBytes + 20)) {
- System.out.println("WARNING: MAX_ALLOWED_BYTES was larger than bytes found, by " + (MAX_ALLOWED_BYTES - nBytes)
- + ", which may indicate MAX_ALLOWED_BYTES needs to be lowered, to catch regressions.");
- }
- }
+ private ArrayList logs = new ArrayList();
- private class JavadocLog {
- private ArrayList logs = new ArrayList();
+ private JavadocLog(URL[] logs) {
+ findProblems(logs);
+ }
- private JavadocLog(URL[] logs) {
- findProblems(logs);
- }
+ private void findProblems(URL[] javadocLogs) {
+ String JAVADOC_WARNING = ": warning";
+ String JAVADOC_ERROR = ": error";
+ String JAVADOC_JAVA = ".java:";
- private void findProblems(URL[] javadocLogs) {
- String JAVADOC_WARNING = ": warning";
- String JAVADOC_ERROR = ": error";
- String JAVADOC_JAVA = ".java:";
+ BufferedReader in = null;
+ for (int i = 0; i < javadocLogs.length; i++) {
+ try {
+ in = new BufferedReader(new InputStreamReader(javadocLogs[i].openStream()));
+ String tmp;
+ while ((tmp = in.readLine()) != null) {
+ tmp = tmp.toLowerCase();
+ if (tmp.indexOf(JAVADOC_ERROR) != -1 || tmp.indexOf(JAVADOC_WARNING) != -1
+ || tmp.indexOf(JAVADOC_JAVA) != -1) {
+ String fileName = new File(javadocLogs[i].getFile()).getName();
+ if (!logs.contains(fileName))
+ logs.add(fileName);
+ }
+ }
+ in.close();
- BufferedReader in = null;
- for (int i = 0; i < javadocLogs.length; i++) {
- try {
- in = new BufferedReader(new InputStreamReader(javadocLogs[i].openStream()));
- String tmp;
- while ((tmp = in.readLine()) != null) {
- tmp = tmp.toLowerCase();
- if (tmp.indexOf(JAVADOC_ERROR) != -1 || tmp.indexOf(JAVADOC_WARNING) != -1
- || tmp.indexOf(JAVADOC_JAVA) != -1) {
- String fileName = new File(javadocLogs[i].getFile()).getName();
- if (!logs.contains(fileName))
- logs.add(fileName);
- }
- }
- in.close();
+ }
+ catch (FileNotFoundException e) {
+ logs.add("Unable to find " + new File(javadocLogs[i].getFile()).getName() + " to read.");
+ e.printStackTrace();
+ }
+ catch (IOException e) {
+ logs.add("Unable to read " + new File(javadocLogs[i].getFile()).getName());
+ e.printStackTrace();
+ }
+ }
+ }
+ }
- } catch (FileNotFoundException e) {
- logs.add("Unable to find " + new File(javadocLogs[i].getFile()).getName() + " to read.");
- e.printStackTrace();
- } catch (IOException e) {
- logs.add("Unable to read " + new File(javadocLogs[i].getFile()).getName());
- e.printStackTrace();
- }
- }
- }
- }
+ public void _testComparatorLogs() throws Exception {
+ String os = System.getProperty("os.name");
+ // Only run compare tool on Linux to save time during tests
+ if (os == null || !os.equalsIgnoreCase("Linux")) {
+ return;
+ }
- public void _testComparatorLogs() throws Exception {
- String os = System.getProperty("os.name");
- // Only run compare tool on Linux to save time during tests
- if (os == null || !os.equalsIgnoreCase("Linux")) {
- return;
- }
+ // Load the configuration and ensure the mandatory parameters were
+ // specified
+ Properties properties = loadCompareConfiguration();
+ assertNotNull("could not load configuration", properties);
- // Load the configuration and ensure the mandatory parameters were
- // specified
- Properties properties = loadCompareConfiguration();
- assertNotNull("could not load configuration", properties);
+ String compareOldPath = properties.getProperty("compare.old");
+ if (compareOldPath == null || compareOldPath.indexOf("N2") > 0) {
+ return; // Nightly build, skip test
+ }
- String compareOldPath = properties.getProperty("compare.old");
- if (compareOldPath == null || compareOldPath.indexOf("N2") > 0) {
- return; // Nightly build, skip test
- }
+ String comparatorUrl = System.getProperty("RELENGTEST.COMPARATOR.URL");
+ if (comparatorUrl == null) {
+ return; // No logs to check, skip test
+ }
+ URL comparatorLogs = new URL(comparatorUrl);
+ ComparatorLog comparatorLog = new ComparatorLog(comparatorLogs);
+ String message = "comparator warnings in: \n";
+ boolean problemLogsExist = comparatorLog.logs.size() > 0;
+ message = message.concat("See the 'comparatorlog.txt' in 'Release engineering build logs' for details.");
+ assertTrue(message, !problemLogsExist);
+ }
- String comparatorUrl = System.getProperty("RELENGTEST.COMPARATOR.URL");
- if (comparatorUrl == null) {
- return; // No logs to check, skip test
- }
- URL comparatorLogs = new URL(comparatorUrl);
- ComparatorLog comparatorLog = new ComparatorLog(comparatorLogs);
- String message = "comparator warnings in: \n";
- boolean problemLogsExist = comparatorLog.logs.size() > 0;
- message = message.concat("See the 'comparatorlog.txt' in 'Release engineering build logs' for details.");
- assertTrue(message, !problemLogsExist);
- }
+ private class ComparatorLog {
- private class ComparatorLog {
- private ArrayList logs = new ArrayList();
+ private ArrayList logs = new ArrayList();
- private ComparatorLog(URL comparatorLogs) {
- findProblems(comparatorLogs);
- }
+ private ComparatorLog(URL comparatorLogs) {
+ findProblems(comparatorLogs);
+ }
- private void findProblems(URL comparatorLogs) {
+ private void findProblems(URL comparatorLogs) {
- String COMPARATOR_ERROR = "difference found";
+ String COMPARATOR_ERROR = "difference found";
- BufferedReader in = null;
+ BufferedReader in = null;
- try {
- in = new BufferedReader(new InputStreamReader(comparatorLogs.openStream()));
- String tmp;
- while ((tmp = in.readLine()) != null) {
- tmp = tmp.toLowerCase();
- if (tmp.indexOf(COMPARATOR_ERROR) != -1) {
- String fileName = new File(comparatorLogs.getFile()).getName();
- if (!logs.contains(fileName))
- logs.add(fileName);
- }
- }
- in.close();
+ try {
+ in = new BufferedReader(new InputStreamReader(comparatorLogs.openStream()));
+ String tmp;
+ while ((tmp = in.readLine()) != null) {
+ tmp = tmp.toLowerCase();
+ if (tmp.indexOf(COMPARATOR_ERROR) != -1) {
+ String fileName = new File(comparatorLogs.getFile()).getName();
+ if (!logs.contains(fileName))
+ logs.add(fileName);
+ }
+ }
+ in.close();
- } catch (FileNotFoundException e) {
- logs.add("Unable to find " + new File(comparatorLogs.getFile()).getName() + " to read.");
- e.printStackTrace();
- } catch (IOException e) {
- logs.add("Unable to read " + new File(comparatorLogs.getFile()).getName());
- e.printStackTrace();
- }
- }
- }
+ }
+ catch (FileNotFoundException e) {
+ logs.add("Unable to find " + new File(comparatorLogs.getFile()).getName() + " to read.");
+ e.printStackTrace();
+ }
+ catch (IOException e) {
+ logs.add("Unable to read " + new File(comparatorLogs.getFile()).getName());
+ e.printStackTrace();
+ }
+ }
+ }
- /*
- * Load the configuration file which should be included in this bundle
- */
- private Properties loadCompareConfiguration() {
- String aString = System.getProperty("PLUGIN_PATH");
- if (aString == null)
- return null;
+ /*
+ * Load the configuration file which should be included in this bundle
+ */
+ private Properties loadCompareConfiguration() {
+ String aString = System.getProperty("PLUGIN_PATH");
+ if (aString == null)
+ return null;
- final String CONFIG_FILENAME = aString + File.separator + "compare.properties";
- Properties properties = new Properties();
- try {
- properties.load(new BufferedInputStream(new FileInputStream(CONFIG_FILENAME)));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- return null;
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
+ final String CONFIG_FILENAME = aString + File.separator + "compare.properties";
+ Properties properties = new Properties();
+ try {
+ properties.load(new BufferedInputStream(new FileInputStream(CONFIG_FILENAME)));
+ }
+ catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return null;
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
- return properties;
- }
+ return properties;
+ }
- private String getVersionCompareCommand() {
- String javadir = System.getProperty("java.home");
- return javadir + File.separator + "bin" + File.separator + "java";
- }
+ private String getVersionCompareCommand() {
+ String javadir = System.getProperty("java.home");
+ return javadir + File.separator + "bin" + File.separator + "java";
+ }
- // private String buildCommandLine(String source, String destination, String
- // options, String output) {
- private String getVersionCompareArguments(String source, String destination, String output, String option) {
+ // private String buildCommandLine(String source, String destination, String
+ // options, String output) {
+ private String getVersionCompareArguments(String source, String destination, String output, String option) {
- Bundle bundle = Platform.getBundle("org.eclipse.equinox.launcher");
- URL u = null;
- String temp, t = null;
- try {
- u = FileLocator.resolve(bundle.getEntry("/"));
- temp = u.toString();
- // remove extraneous characters from string that specifies equinox
- // launcher filesystem location!
- t = temp.substring(temp.indexOf("/"), temp.lastIndexOf("/") - 1);
- } catch (IOException e) {
- e.printStackTrace();
- return null;
- }
+ Bundle bundle = Platform.getBundle("org.eclipse.equinox.launcher");
+ URL u = null;
+ String temp, t = null;
+ try {
+ u = FileLocator.resolve(bundle.getEntry("/"));
+ temp = u.toString();
+ // remove extraneous characters from string that specifies equinox
+ // launcher filesystem location!
+ t = temp.substring(temp.indexOf("/"), temp.lastIndexOf("/") - 1);
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
- String command = "-cp " + t
- + " org.eclipse.core.launcher.Main -application org.eclipse.pde.tools.versioning.application -clean";
+ String command = "-cp " + t
+ + " org.eclipse.core.launcher.Main -application org.eclipse.pde.tools.versioning.application -clean";
- command += " -new " + source;
- command += " -old " + destination;
- command += " -output " + output;
- if (option != null) {
- command += " -option " + option;
- }
+ command += " -new " + source;
+ command += " -old " + destination;
+ command += " -output " + output;
+ if (option != null) {
+ command += " -option " + option;
+ }
- System.out.println("arguments " + command);
- System.out.println("option " + option);
+ System.out.println("arguments " + command);
+ System.out.println("option " + option);
- return command;
- }
+ return command;
+ }
- private void verifyCompareResults(String source, String destination, String output) {
- Document doc = parseResultXML(new File(output));
- if (doc == null) {
- String msg = "output file is null";
- assertTrue(msg, msg == null);
- return;
- }
- NodeList list = doc.getElementsByTagName("Category");
- int errorNumber = getSubElementNumber("Error", list);
- int warningNumber = getSubElementNumber("Warning", list);
- if (errorNumber != 0 || warningNumber != 0) {
- String msg = "Features included in \"" + source + "\" has been compared to those included in \"" + destination
- + "\".\n";
- msg += "There are " + errorNumber + " error messages and " + warningNumber + " warning messages.\n";
- msg += "See the version compare logs linked from the test results page for details";
- assertTrue(msg, msg == null);
- }
- }
+ private void verifyCompareResults(String source, String destination, String output) {
+ Document doc = parseResultXML(new File(output));
+ if (doc == null) {
+ String msg = "output file is null";
+ assertTrue(msg, msg == null);
+ return;
+ }
+ NodeList list = doc.getElementsByTagName("Category");
+ int errorNumber = getSubElementNumber("Error", list);
+ int warningNumber = getSubElementNumber("Warning", list);
+ if (errorNumber != 0 || warningNumber != 0) {
+ String msg = "Features included in \"" + source + "\" has been compared to those included in \"" + destination
+ + "\".\n";
+ msg += "There are " + errorNumber + " error messages and " + warningNumber + " warning messages.\n";
+ msg += "See the version compare logs linked from the test results page for details";
+ assertTrue(msg, msg == null);
+ }
+ }
- /*
- * Helper method to perform some action when we are unable to run the
- * version compare mechanism.
- *
- * For now just print out a message to the console and return.
- */
- private void unableToRunCompare(String message) {
- System.out.println(message);
- }
+ /*
+ * Helper method to perform some action when we are unable to run the version compare mechanism.
+ *
+ * For now just print out a message to the console and return.
+ */
+ private void unableToRunCompare(String message) {
+ System.out.println(message);
+ }
- /**
- * Compares the feature and plug-in versions contained in this Eclipse
- * configuration, against a known previous Eclipse configuration.
- */
- public void _testVersionCompare() {
+ /**
+ * Compares the feature and plug-in versions contained in this Eclipse configuration, against a known previous Eclipse
+ * configuration.
+ */
+ public void _testVersionCompare() {
- String os = System.getProperty("os.name");
+ String os = System.getProperty("os.name");
- /* Only run compare tool on Linux to save time during tests */
- if (!os.equalsIgnoreCase("Linux")) {
- return;
- }
- String msg = null;
+ /* Only run compare tool on Linux to save time during tests */
+ if (!os.equalsIgnoreCase("Linux")) {
+ return;
+ }
+ String msg = null;
- Bundle bundle = Platform.getBundle("org.eclipse.pde.tools.versioning");
- if (bundle == null) {
- msg = "Version comparison bundle (org.eclipse.pde.tools.versioning) not installed.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
- // load the configuration and ensure the mandatory parameters were
- // specified
- Properties properties = loadCompareConfiguration();
- // assume that #load printed out error message and just return
- if (properties == null) {
- msg = "Properties file is null";
- assertTrue(msg, msg == null);
- return;
- }
+ Bundle bundle = Platform.getBundle("org.eclipse.pde.tools.versioning");
+ if (bundle == null) {
+ msg = "Version comparison bundle (org.eclipse.pde.tools.versioning) not installed.";
+ unableToRunCompare(msg);
+ assertTrue(msg, msg == null);
+ return;
+ }
+ // load the configuration and ensure the mandatory parameters were
+ // specified
+ Properties properties = loadCompareConfiguration();
+ // assume that #load printed out error message and just return
+ if (properties == null) {
+ msg = "Properties file is null";
+ assertTrue(msg, msg == null);
+ return;
+ }
- String compareOldPath = properties.getProperty("compare.old");
- File compareOldFile = compareOldPath == null ? null : new File(compareOldPath);
- if (compareOldFile == null) {
- msg = "Old directory not specified.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
+ String compareOldPath = properties.getProperty("compare.old");
+ File compareOldFile = compareOldPath == null ? null : new File(compareOldPath);
+ if (compareOldFile == null) {
+ msg = "Old directory not specified.";
+ unableToRunCompare(msg);
+ assertTrue(msg, msg == null);
+ return;
+ }
- /*
- * Determine if the build is a nightly Nightly builds have qualifiers
- * identical the buildId - for instance N200612080010 which means that
- * they are lower than v20060921-1945 from an promoted integration build
- * and thus cannot be compared
- */
+ /*
+ * Determine if the build is a nightly Nightly builds have qualifiers identical the buildId - for instance N200612080010
+ * which means that they are lower than v20060921-1945 from an promoted integration build and thus cannot be compared
+ */
- // disable temporarily
- if (compareOldPath == null || compareOldPath.indexOf("N2") > 0) {
- // if nightly build, skip test
- return;
- }
+ // disable temporarily
+ if (compareOldPath == null || compareOldPath.indexOf("N2") > 0) {
+ // if nightly build, skip test
+ return;
+ }
- String compareNewPath = properties.getProperty("compare.new");
- File compareNewFile = compareNewPath == null ? null : new File(compareNewPath);
- if (compareNewFile == null) {
- msg = "New directory not specified.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
+ String compareNewPath = properties.getProperty("compare.new");
+ File compareNewFile = compareNewPath == null ? null : new File(compareNewPath);
+ if (compareNewFile == null) {
+ msg = "New directory not specified.";
+ unableToRunCompare(msg);
+ assertTrue(msg, msg == null);
+ return;
+ }
- String outputFileName = properties.getProperty("compare.output");
- File compareOutputFile = outputFileName == null ? null : new File(outputFileName);
- if (compareOutputFile == null) {
- msg = "Output directory not specified.";
- unableToRunCompare(msg);
- assertTrue(msg, msg == null);
- return;
- }
+ String outputFileName = properties.getProperty("compare.output");
+ File compareOutputFile = outputFileName == null ? null : new File(outputFileName);
+ if (compareOutputFile == null) {
+ msg = "Output directory not specified.";
+ unableToRunCompare(msg);
+ assertTrue(msg, msg == null);
+ return;
+ }
- String compareOptions = properties.getProperty("compare.options");
+ String compareOptions = properties.getProperty("compare.options");
- /*
- * String outputFileName =
- * Platform.getInstallLocation().getURL().getPath() + ".." +
- * File.separator + ".." + File.separator + "results" + File.separator +
- * "results.xml"; // A tad bogus but this is where the build wants to
- * copy the results from!
- *
- * //create the output file try { File outputfile = new
- * File(outputFileName); boolean created = outputfile.createNewFile();
- * if (created) { } else { msg = "Output dir could not be created.";
- * assertTrue(msg, msg == null); } } catch (IOException e) {
- * e.printStackTrace(); }
- */
+ /*
+ * String outputFileName = Platform.getInstallLocation().getURL().getPath() + ".." + File.separator + ".." + File.separator
+ * + "results" + File.separator + "results.xml"; // A tad bogus but this is where the build wants to copy the results from!
+ *
+ * //create the output file try { File outputfile = new File(outputFileName); boolean created = outputfile.createNewFile();
+ * if (created) { } else { msg = "Output dir could not be created."; assertTrue(msg, msg == null); } } catch (IOException e)
+ * { e.printStackTrace(); }
+ */
- String command = getVersionCompareCommand();
- String arguments = getVersionCompareArguments(compareNewPath, compareOldPath, outputFileName, compareOptions);
+ String command = getVersionCompareCommand();
+ String arguments = getVersionCompareArguments(compareNewPath, compareOldPath, outputFileName, compareOptions);
- StringTokenizer tokenizer = new StringTokenizer(arguments);
- String[] commandArray = new String[tokenizer.countTokens() + 1];
- commandArray[0] = command;
- for (int i = 1; tokenizer.hasMoreTokens(); i++)
- commandArray[i] = tokenizer.nextToken();
+ StringTokenizer tokenizer = new StringTokenizer(arguments);
+ String[] commandArray = new String[tokenizer.countTokens() + 1];
+ commandArray[0] = command;
+ for (int i = 1; tokenizer.hasMoreTokens(); i++)
+ commandArray[i] = tokenizer.nextToken();
- try {
- Process aProcess = Runtime.getRuntime().exec(commandArray);
- try {
- // wait until the comparison finishes
- aProcess.waitFor();
- } catch (InterruptedException e) {
- // ignore
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
+ try {
+ Process aProcess = Runtime.getRuntime().exec(commandArray);
+ try {
+ // wait until the comparison finishes
+ aProcess.waitFor();
+ }
+ catch (InterruptedException e) {
+ // ignore
+ }
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ }
- // analyze compare result
- verifyCompareResults(compareNewPath, compareOldPath, outputFileName);
+ // analyze compare result
+ verifyCompareResults(compareNewPath, compareOldPath, outputFileName);
- }
+ }
- /**
- * parses the given XML file denoted by <code>file</code> and return
- * Document instance of it
- *
- * @param file
- * File instance which denoted an XML file
- * @return Document instance
- */
- private Document parseResultXML(File file) {
- try {
- DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- return docBuilder.parse(file);
- } catch (ParserConfigurationException e) {
- System.out.println("Unable to parse comparison result file.");
- e.printStackTrace();
- } catch (FactoryConfigurationError e) {
- System.out.println("Unable to create XML parser.");
- e.printStackTrace();
- } catch (SAXException e) {
- System.out.println("Unable to parse comparison result file.");
- e.printStackTrace();
- } catch (IOException e) {
- System.out.println("Exception trying to parse comparison result file.");
- e.printStackTrace();
- }
- return null;
- }
+ /**
+ * parses the given XML file denoted by <code>file</code> and return Document instance of it
+ *
+ * @param file
+ * File instance which denoted an XML file
+ * @return Document instance
+ */
+ private Document parseResultXML(File file) {
+ try {
+ DocumentBuilder docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ return docBuilder.parse(file);
+ }
+ catch (ParserConfigurationException e) {
+ System.out.println("Unable to parse comparison result file.");
+ e.printStackTrace();
+ }
+ catch (FactoryConfigurationError e) {
+ System.out.println("Unable to create XML parser.");
+ e.printStackTrace();
+ }
+ catch (SAXException e) {
+ System.out.println("Unable to parse comparison result file.");
+ e.printStackTrace();
+ }
+ catch (IOException e) {
+ System.out.println("Exception trying to parse comparison result file.");
+ e.printStackTrace();
+ }
+ return null;
+ }
- /**
- * searches for element whose name attribute equals <code>elementName</code>
- * , and return the number of its child nodes if it has been found
- *
- * @param elementName
- * value of <code>name</code> attribute
- * @param nodeList
- * NodeList instance
- * @return number of child nodes of the element whose <code>name</code>
- * attribute equals <code>elementName</code>
- */
- private int getSubElementNumber(String elementName, NodeList nodeList) {
- for (int i = 0; i < nodeList.getLength(); i++) {
- Element element = ((Element) nodeList.item(i));
- if (element.getAttribute("Name").equals(elementName))
- return element.getChildNodes().getLength();
- }
- return 0;
- }
+ /**
+ * searches for element whose name attribute equals <code>elementName</code> , and return the number of its child nodes if it
+ * has been found
+ *
+ * @param elementName
+ * value of <code>name</code> attribute
+ * @param nodeList
+ * NodeList instance
+ * @return number of child nodes of the element whose <code>name</code> attribute equals <code>elementName</code>
+ */
+ private int getSubElementNumber(String elementName, NodeList nodeList) {
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Element element = ((Element) nodeList.item(i));
+ if (element.getAttribute("Name").equals(elementName))
+ return element.getChildNodes().getLength();
+ }
+ return 0;
+ }
- /**
- * check whether or not the given file potentially represents a platform
- * configuration file on the file-system.
- *
- * @return <code>true</code> if <code>file</code> is a configuration file
- * <code>false</code> otherwise
- *
- * private boolean isConfiguration(File file) { IPath path = new
- * Path(file.getAbsolutePath()); return file.isFile() &&
- * "platform.xml".equalsIgnoreCase(path.lastSegment()); }
- */
+ /**
+ * check whether or not the given file potentially represents a platform configuration file on the file-system.
+ *
+ * @return <code>true</code> if <code>file</code> is a configuration file <code>false</code> otherwise
+ *
+ * private boolean isConfiguration(File file) { IPath path = new Path(file.getAbsolutePath()); return file.isFile() &&
+ * "platform.xml".equalsIgnoreCase(path.lastSegment()); }
+ */
}