carnold 2005/05/09 13:32:22 Modified: tests build.xml Added: tests/src/java/org/apache/log4j EncodingTest.java tests/src/java/org/apache/log4j/util BinaryCompare.java tests/witness/encoding UTF-16.log UTF-16BE.log UTF-16LE.log UTF-8.log ascii.log latin1.log Log: Bug 34825: Added tests of Writer.setEncoding Revision Changes Path 1.102 +11 -1 logging-log4j/tests/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/logging-log4j/tests/build.xml,v retrieving revision 1.101 retrieving revision 1.102 diff -u -r1.101 -r1.102 --- build.xml 25 Feb 2005 13:46:02 -0000 1.101 +++ build.xml 9 May 2005 20:32:22 -0000 1.102 @@ -151,6 +151,7 @@ </target> <target name="cleanOutputDir"> + <mkdir dir="output"/> <delete> <fileset dir="./output/" includes="**"/> </delete> @@ -192,7 +193,8 @@ NDC, Plugins, CachedDateFormat, - Schema + Schema, + Encoding "/> @@ -714,6 +716,14 @@ </junit> </target> + <target name="Encoding" depends="check, build, cleanOutputDir"> + <junit printsummary="yes" fork="yes" haltonfailure="yes"> + <classpath refid="tests.classpath"/> + <formatter type="plain" usefile="false"/> + <test name="org.apache.log4j.EncodingTest" /> + </junit> + </target> + <!-- ================================================================= --> <!-- ========================= long Tests ========================= --> 1.1 logging-log4j/tests/src/java/org/apache/log4j/EncodingTest.java Index: EncodingTest.java =================================================================== /* * Copyright 1999,2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.log4j; import junit.framework.TestCase; import org.apache.log4j.util.BinaryCompare; /** * Tests support for encoding specification. * @author Curt Arnold * @since 1.3 */ public class EncodingTest extends TestCase { /** * Construct an instance of EncodingTest. * @param name test name */ public EncodingTest(final String name) { super(name); } /** * Resets configuration after each test. */ public void tearDown() { Logger.getRootLogger().getLoggerRepository().resetConfiguration(); } /** * Test us-ascii encoding. * @throws Exception if test failure */ public void testASCII() throws Exception { Logger root = Logger.getRootLogger(); configure(root, "output/ascii.log", "US-ASCII"); common(root); assertTrue(BinaryCompare.compare("output/ascii.log", "witness/encoding/ascii.log")); } /** * Test iso-8859-1 encoding. * @throws Exception if test failure */ public void testLatin1() throws Exception { Logger root = Logger.getRootLogger(); configure(root, "output/latin1.log", "iso-8859-1"); common(root); assertTrue(BinaryCompare.compare("output/latin1.log", "witness/encoding/latin1.log")); } /** * Test utf-8 encoding. * @throws Exception if test failure. */ public void testUtf8() throws Exception { Logger root = Logger.getRootLogger(); configure(root, "output/UTF-8.log", "UTF-8"); common(root); assertTrue(BinaryCompare.compare("output/UTF-8.log", "witness/encoding/UTF-8.log")); } /** * Test utf-16 encoding. * @throws Exception if test failure. */ public void testUtf16() throws Exception { Logger root = Logger.getRootLogger(); configure(root, "output/UTF-16.log", "UTF-16"); common(root); assertTrue(BinaryCompare.compare("output/UTF-16.log", "witness/encoding/UTF-16.log")); } /** * Test utf-16be encoding. * @throws Exception if test failure. */ public void testUtf16BE() throws Exception { Logger root = Logger.getRootLogger(); configure(root, "output/UTF-16BE.log", "UTF-16BE"); common(root); assertTrue(BinaryCompare.compare("output/UTF-16BE.log", "witness/encoding/UTF-16BE.log")); } /** * Test utf16-le encoding. * @throws Exception if test failure. */ public void testUtf16LE() throws Exception { Logger root = Logger.getRootLogger(); configure(root, "output/UTF-16LE.log", "UTF-16LE"); common(root); assertTrue(BinaryCompare.compare("output/UTF-16LE.log", "witness/encoding/UTF-16LE.log")); } /** * Configure logging. * @param logger logger * @param filename logging file name * @param encoding encoding */ private void configure(final Logger logger, final String filename, final String encoding) { PatternLayout layout = new PatternLayout(); layout.setConversionPattern("%p - %m\\n"); layout.activateOptions(); FileAppender appender = new FileAppender(); appender.setFile(filename); appender.setEncoding(encoding); appender.setAppend(false); appender.setLayout(layout); appender.activateOptions(); logger.addAppender(appender); logger.setLevel(Level.INFO); } /** * Common logging requests. * @param logger logger */ private void common(final Logger logger) { logger.info("Hello, World"); // pi can be encoded in iso-8859-1 logger.info("\u00b9"); // one each from Latin, Arabic, Armenian, Bengali, CJK and Cyrillic logger.info("A\u0605\u0530\u0986\u4E03\u0400"); } } 1.1 logging-log4j/tests/src/java/org/apache/log4j/util/BinaryCompare.java Index: BinaryCompare.java =================================================================== /* * Copyright 1999,2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.log4j.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public final class BinaryCompare { /** * Class can not be constructed. */ private BinaryCompare() { } public static boolean compare(final String file1, final String file2) throws FileNotFoundException, IOException { BufferedInputStream in1 = new BufferedInputStream(new FileInputStream( file1)); BufferedInputStream in2 = new BufferedInputStream(new FileInputStream( file2)); int byte1 = 0; int byte2 = 0; for (int pos = 0; byte1 != -1; pos++) { byte1 = in1.read(); byte2 = in2.read(); if (byte1 != byte2) { if (byte2 == -1) { System.out.println("File [" + file2 + "] longer than file [" + file1 + "]."); } else if (byte1 == -1) { System.out.println("File [" + file1 + "] longer than file [" + file2 + "]."); } else { System.out.println("Files differ at offset " + pos + ": [" + file1 + "] has " + Integer.toHexString(byte1) + ", [" + file2 + "] has " + Integer.toHexString(byte2) + "."); } return false; } } return true; } } 1.1 logging-log4j/tests/witness/encoding/UTF-16.log <<Binary file>> 1.1 logging-log4j/tests/witness/encoding/UTF-16BE.log <<Binary file>> 1.1 logging-log4j/tests/witness/encoding/UTF-16LE.log <<Binary file>> 1.1 logging-log4j/tests/witness/encoding/UTF-8.log Index: UTF-8.log =================================================================== INFO - Hello, World INFO - ¹ INFO - A؅԰আ七Ѐ 1.1 logging-log4j/tests/witness/encoding/ascii.log Index: ascii.log =================================================================== INFO - Hello, World INFO - ? INFO - A????? 1.1 logging-log4j/tests/witness/encoding/latin1.log Index: latin1.log =================================================================== INFO - Hello, World INFO - ¹ INFO - A?????
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]