duke@1: /* duke@1: * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. duke@1: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. duke@1: * duke@1: * This code is free software; you can redistribute it and/or modify it duke@1: * under the terms of the GNU General Public License version 2 only, as duke@1: * published by the Free Software Foundation. duke@1: * duke@1: * This code is distributed in the hope that it will be useful, but WITHOUT duke@1: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or duke@1: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License duke@1: * version 2 for more details (a copy is included in the LICENSE file that duke@1: * accompanied this code). duke@1: * duke@1: * You should have received a copy of the GNU General Public License version duke@1: * 2 along with this work; if not, write to the Free Software Foundation, duke@1: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. duke@1: * duke@1: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, duke@1: * CA 95054 USA or visit www.sun.com if you need additional information or duke@1: * have any questions. duke@1: */ duke@1: duke@1: /* duke@1: * @test duke@1: * @bug 4979486 duke@1: * @summary Make sure tool parses CR line separators properly. duke@1: * @author jamieh duke@1: * @library ../lib/ duke@1: * @build JavadocTester duke@1: * @build TestCRLineSeparator duke@1: * @run main TestCRLineSeparator duke@1: */ duke@1: jjg@401: import java.io.*; jjg@401: import java.util.*; jjg@401: duke@1: public class TestCRLineSeparator extends JavadocTester { duke@1: duke@1: //Test information. duke@1: private static final String BUG_ID = "4979486"; duke@1: duke@1: //Javadoc arguments. duke@1: private static final String[] ARGS = new String[] { jjg@401: "-d", BUG_ID, "-sourcepath", ".", "pkg" duke@1: }; duke@1: duke@1: //Input for string search tests. duke@1: private static final String[][] TEST = { duke@1: {BUG_ID + FS + "pkg" + FS + "MyClass.html", "Line 1\n Line 2"} duke@1: }; duke@1: duke@1: private static final String[][] NEGATED_TEST = NO_TEST; duke@1: duke@1: /** duke@1: * The entry point of the test. duke@1: * @param args the array of command line arguments. duke@1: */ jjg@401: public static void main(String[] args) throws Exception { jjg@401: initFiles(new File(SRC_DIR), new File("."), "pkg"); duke@1: TestCRLineSeparator tester = new TestCRLineSeparator(); duke@1: run(tester, ARGS, TEST, NEGATED_TEST); duke@1: tester.printSummary(); duke@1: } duke@1: duke@1: /** duke@1: * {@inheritDoc} duke@1: */ duke@1: public String getBugId() { duke@1: return BUG_ID; duke@1: } duke@1: duke@1: /** duke@1: * {@inheritDoc} duke@1: */ duke@1: public String getBugName() { duke@1: return getClass().getName(); duke@1: } jjg@401: jjg@401: // recursively copy files from fromDir to toDir, replacing newlines jjg@401: // with \r jjg@401: static void initFiles(File fromDir, File toDir, String f) throws IOException { jjg@401: File from_f = new File(fromDir, f); jjg@401: File to_f = new File(toDir, f); jjg@401: if (from_f.isDirectory()) { jjg@401: to_f.mkdirs(); jjg@401: for (String child: from_f.list()) { jjg@401: initFiles(from_f, to_f, child); jjg@401: } jjg@401: } else { jjg@401: List lines = new ArrayList(); jjg@401: BufferedReader in = new BufferedReader(new FileReader(from_f)); jjg@401: try { jjg@401: String line; jjg@401: while ((line = in.readLine()) != null) jjg@401: lines.add(line); jjg@401: } finally { jjg@401: in.close(); jjg@401: } jjg@401: BufferedWriter out = new BufferedWriter(new FileWriter(to_f)); jjg@401: try { jjg@401: for (String line: lines) { jjg@401: out.write(line); jjg@401: out.write("\r"); jjg@401: } jjg@401: } finally { jjg@401: out.close(); jjg@401: } jjg@401: } jjg@401: } duke@1: }