aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache/fop/tools
diff options
context:
space:
mode:
authorGlen Mazza <gmazza@apache.org>2005-01-30 21:59:29 +0000
committerGlen Mazza <gmazza@apache.org>2005-01-30 21:59:29 +0000
commitd69f26fbaceaf7aa48bcc8f7ec90772ab68e393a (patch)
tree03dd6500862a7fa244bc73e6ab53b697ec1a9a05 /src/java/org/apache/fop/tools
parent765e233dfba07e79a0763dd3ba7d742b5c42dba1 (diff)
downloadxmlgraphics-fop-d69f26fbaceaf7aa48bcc8f7ec90772ab68e393a.tar.gz
xmlgraphics-fop-d69f26fbaceaf7aa48bcc8f7ec90772ab68e393a.zip
PR:
Obtained from: Submitted by: Reviewed by: Altered TestConverter to use FileCompare's file comparison logic. Renamed Compare to FileCompare. Simplified logger implementation in TestConverter. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198343 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/tools')
-rw-r--r--src/java/org/apache/fop/tools/TestConverter.java58
-rw-r--r--src/java/org/apache/fop/tools/anttasks/FileCompare.java (renamed from src/java/org/apache/fop/tools/anttasks/Compare.java)69
-rw-r--r--src/java/org/apache/fop/tools/anttasks/RunTest.java8
3 files changed, 54 insertions, 81 deletions
diff --git a/src/java/org/apache/fop/tools/TestConverter.java b/src/java/org/apache/fop/tools/TestConverter.java
index a0a6d7406..0fd0831b7 100644
--- a/src/java/org/apache/fop/tools/TestConverter.java
+++ b/src/java/org/apache/fop/tools/TestConverter.java
@@ -29,11 +29,11 @@ import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.fop.apps.Fop;
import org.apache.fop.apps.FOUserAgent;
import org.apache.fop.apps.InputHandler;
+import org.apache.fop.tools.anttasks.FileCompare;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
-import org.apache.commons.logging.Log;
import org.apache.commons.logging.impl.SimpleLog;
@@ -60,24 +60,7 @@ public class TestConverter {
/**
* logging instance
*/
- protected Log logger = null;
-
-
- /**
- * Sets the Commons-Logging instance for this class
- * @param logger The Commons-Logging instance
- */
- public void setLogger(Log logger) {
- this.logger = logger;
- }
-
- /**
- * Returns the Commons-Logging instance for this class
- * @return The Commons-Logging instance
- */
- protected Log getLogger() {
- return logger;
- }
+ protected SimpleLog logger = null;
/**
* This main method can be used to run the test converter from
@@ -128,9 +111,8 @@ public class TestConverter {
* Construct a new TestConverter
*/
public TestConverter() {
- SimpleLog log = new SimpleLog("FOP/Test");
- log.setLevel(SimpleLog.LOG_LEVEL_ERROR);
- setLogger(log);
+ logger = new SimpleLog("FOP/Test");
+ logger.setLevel(SimpleLog.LOG_LEVEL_ERROR);
}
/**
@@ -159,14 +141,14 @@ public class TestConverter {
}
/**
- * Controls whether to generate PDF or XML.
- * @param pdf If True, PDF is generated, Area Tree XML otherwise.
+ * Controls whether to set logging to debug level
+ * @param If true, debug level, if false, error level
*/
public void setDebug(boolean debug) {
if (debug) {
- SimpleLog log = new SimpleLog("FOP/Test");
- log.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
- setLogger(log);
+ logger.setLevel(SimpleLog.LOG_LEVEL_DEBUG);
+ } else {
+ logger.setLevel(SimpleLog.LOG_LEVEL_ERROR);
}
}
@@ -338,7 +320,7 @@ public class TestConverter {
}
}
} catch (Exception e) {
- getLogger().error("Error while running tests", e);
+ logger.error("Error while running tests", e);
}
}
@@ -364,28 +346,12 @@ public class TestConverter {
* @return true if equal
*/
protected boolean compareFiles(File f1, File f2) {
- if (f1.length() != f2.length()) {
- return false;
- }
try {
- InputStream is1 = new java.io.BufferedInputStream(new java.io.FileInputStream(f1));
- InputStream is2 = new java.io.BufferedInputStream(new java.io.FileInputStream(f2));
- while (true) {
- int ch1 = is1.read();
- int ch2 = is2.read();
- if (ch1 == ch2) {
- if (ch1 == -1) {
- return true;
- }
- } else {
- return false;
- }
- }
+ return FileCompare.compareFiles(f1, f2);
} catch (Exception e) {
logger.error("Error while comparing files", e);
+ return false;
}
-
- return false;
}
private Node locateResult(Node testcase, String id) {
diff --git a/src/java/org/apache/fop/tools/anttasks/Compare.java b/src/java/org/apache/fop/tools/anttasks/FileCompare.java
index e3f81d202..175cb6f0a 100644
--- a/src/java/org/apache/fop/tools/anttasks/Compare.java
+++ b/src/java/org/apache/fop/tools/anttasks/FileCompare.java
@@ -35,16 +35,11 @@ import java.text.DateFormat;
* It provides methods to compare two files.
*/
-public class Compare {
+public class FileCompare {
- private static final boolean IDENTICAL_FILES = true;
- private static final boolean NOTIDENTICAL_FILES = false;
-
private String referenceDirectory, testDirectory;
private String[] filenameList;
private String filenames;
- private BufferedInputStream oldfileInput;
- private BufferedInputStream newfileInput;
/**
* Sets directory for test files.
@@ -83,36 +78,48 @@ public class Compare {
filenameList = (String[])filenameListTmp.toArray(new String[0]);
}
- private boolean compareBytes(File oldFile, File newFile) {
- try {
- oldfileInput =
- new BufferedInputStream(new java.io.FileInputStream(oldFile));
- newfileInput =
- new BufferedInputStream(new java.io.FileInputStream(newFile));
- int charactO = 0;
- int charactN = 0;
- boolean identical = true;
-
- while (identical & (charactO != -1)) {
- if (charactO == charactN) {
- charactO = oldfileInput.read();
- charactN = newfileInput.read();
- } else {
- return NOTIDENTICAL_FILES;
- }
+ /**
+ * Compares two files to see if they are equal
+ * @param true if files are same, false otherwise
+ */
+ public static boolean compareFiles(File f1, File f2) throws IOException {
+ return (compareFileSize(f1, f2) && compareBytes(f1, f2));
+ }
+
+ /**
+ * Does a byte compare of two files
+ * @param true if files are same byte-by-byte, false otherwise
+ */
+ private static boolean compareBytes(File file1, File file2) throws IOException {
+ BufferedInputStream file1Input =
+ new BufferedInputStream(new java.io.FileInputStream(file1));
+ BufferedInputStream file2Input =
+ new BufferedInputStream(new java.io.FileInputStream(file2));
+
+ int charact1 = 0;
+ int charact2 = 0;
+
+ while (charact1 != -1) {
+ if (charact1 == charact2) {
+ charact1 = file1Input.read();
+ charact2 = file2Input.read();
+ } else {
+ return false;
}
- return IDENTICAL_FILES;
- } catch (IOException io) {
- System.err.println("Task Compare - Error: \n" + io.toString());
}
- return NOTIDENTICAL_FILES;
+
+ return true;
}
- private boolean compareFileSize(File oldFile, File newFile) {
+ /**
+ * Does a file size compare of two files
+ * @param true if files are same length, false otherwise
+ */
+ private static boolean compareFileSize(File oldFile, File newFile) {
if (oldFile.length() != newFile.length()) {
- return NOTIDENTICAL_FILES;
+ return false;
} else {
- return IDENTICAL_FILES;
+ return true;
}
} // end: compareBytes
@@ -142,8 +149,6 @@ public class Compare {
+ "<th align='center'>reference file</th>"
+ "<th align='center'>test file</th>"
+ "<th align='center'>identical?</th></thead>");
-
-
}
/**
diff --git a/src/java/org/apache/fop/tools/anttasks/RunTest.java b/src/java/org/apache/fop/tools/anttasks/RunTest.java
index 396a2d539..b13619563 100644
--- a/src/java/org/apache/fop/tools/anttasks/RunTest.java
+++ b/src/java/org/apache/fop/tools/anttasks/RunTest.java
@@ -37,8 +37,8 @@ import java.util.Map;
/**
* Testing ant task.
* This task is used to test FOP as a build target.
- * This uses the TestConverter (with weak code dependancy) to run the tests
- * and check the results.
+ * This uses the TestConverter (with weak code dependency)
+ * to run the tests and check the results.
*/
public class RunTest extends Task {
@@ -144,7 +144,7 @@ public class RunTest extends Task {
boolean failed = false;
try {
- Class cla = Class.forName("org.apache.fop.apps.Version", true,
+ Class cla = Class.forName("org.apache.fop.apps.Fop", true,
loader);
Method get = cla.getMethod("getVersion", new Class[]{});
if (!get.invoke(null, new Object[]{}).equals(refVersion)) {
@@ -180,6 +180,8 @@ public class RunTest extends Task {
* This loads the TestConverter using the class loader and
* then runs the test suite for the current test suite
* file in the base directory.
+ * (Note class loader option provided to allow for different
+ * fop.jar and other libraries to be activated.)
* @param loader the class loader to use to run the tests with
* @param dest destination directory
* @param compDir comparison directory