From 609d36356f86a193ebce01219357c5728ecb94e0 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Sat, 9 Dec 2017 21:58:47 +0100 Subject: [PATCH 1/4] use different server sockets for tests, eases binding on windows --- .../apache/tools/mail/MailMessageTest.java | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/src/tests/junit/org/apache/tools/mail/MailMessageTest.java b/src/tests/junit/org/apache/tools/mail/MailMessageTest.java index 3d7582640..7f0bd185e 100644 --- a/src/tests/junit/org/apache/tools/mail/MailMessageTest.java +++ b/src/tests/junit/org/apache/tools/mail/MailMessageTest.java @@ -69,12 +69,12 @@ public class MailMessageTest { */ @Test public void testAPIExample() throws InterruptedException { - - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 1; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.to("to@you.com"); @@ -148,11 +148,12 @@ public class MailMessageTest { */ @Test public void testToOnly() throws InterruptedException { - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 2; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.to("to@you.com"); @@ -200,11 +201,12 @@ public class MailMessageTest { */ @Test public void testCcOnly() throws InterruptedException { - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 3; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.cc("cc@you.com"); @@ -252,11 +254,12 @@ public class MailMessageTest { */ @Test public void testBccOnly() throws InterruptedException { - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 4; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.bcc("bcc@you.com"); @@ -304,11 +307,12 @@ public class MailMessageTest { */ @Test public void testNoSubject() throws InterruptedException { - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 5; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.to("to@you.com"); @@ -354,11 +358,12 @@ public class MailMessageTest { */ @Test public void testEmptyBody() throws InterruptedException { - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 6; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.to("to@you.com"); @@ -406,12 +411,12 @@ public class MailMessageTest { */ @Test public void testAsciiCharset() throws InterruptedException { - - ServerThread testMailServer = new ServerThread(); + final int port = TEST_PORT + 7; + ServerThread testMailServer = new ServerThread(port); Thread server = new Thread(testMailServer); server.start(); - ClientThread testMailClient = new ClientThread(); + ClientThread testMailClient = new ClientThread(port); testMailClient.from("Mail Message "); testMailClient.to("Ceki G\u00fclc\u00fc "); @@ -466,6 +471,7 @@ public class MailMessageTest { */ private class ServerThread implements Runnable { + private final int port; private StringBuilder sb = null; private boolean loop = false; ServerSocket ssock = null; @@ -474,10 +480,14 @@ public class MailMessageTest { BufferedReader in = null; private boolean data = false; // state engine: false=envelope, true=message + ServerThread(int port) { + this.port = port; + } + public void run() { try { - ssock = new ServerSocket(TEST_PORT); + ssock = new ServerSocket(port); sock = ssock.accept(); // wait for connection in = new BufferedReader(new InputStreamReader( sock.getInputStream())); @@ -582,6 +592,7 @@ public class MailMessageTest { */ private class ClientThread implements Runnable { + private final int port; private MailMessage msg; private boolean fail = false; private String failMessage = null; @@ -595,11 +606,14 @@ public class MailMessageTest { protected Vector ccList = new Vector(); protected Vector bccList = new Vector(); + ClientThread(int port) { + this.port = port; + } public void run() { for (int i = 9; i > 0; i--) { try { - msg = new MailMessage("localhost", TEST_PORT); + msg = new MailMessage("localhost", port); } catch (java.net.ConnectException ce) { try { Thread.sleep(10 * 1000); From bd676a53d1c3dbcebab3ba60b05e2ca4eb741bc9 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Sat, 9 Dec 2017 21:59:48 +0100 Subject: [PATCH 2/4] remove commented out code --- .../org/apache/tools/mail/MailMessageTest.java | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/tests/junit/org/apache/tools/mail/MailMessageTest.java b/src/tests/junit/org/apache/tools/mail/MailMessageTest.java index 7f0bd185e..fa95b7bc1 100644 --- a/src/tests/junit/org/apache/tools/mail/MailMessageTest.java +++ b/src/tests/junit/org/apache/tools/mail/MailMessageTest.java @@ -120,23 +120,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - /*for (int icounter = 0; icounterresult.length()) { - System.out.println("excedent of expected result " - + expectedResult.substring(result.length())); - } - if (expectedResult.length() Date: Sat, 9 Dec 2017 22:00:36 +0100 Subject: [PATCH 3/4] length tests are redundant with content assertions --- .../junit/org/apache/tools/mail/MailMessageTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/tests/junit/org/apache/tools/mail/MailMessageTest.java b/src/tests/junit/org/apache/tools/mail/MailMessageTest.java index fa95b7bc1..9a1aa8c77 100644 --- a/src/tests/junit/org/apache/tools/mail/MailMessageTest.java +++ b/src/tests/junit/org/apache/tools/mail/MailMessageTest.java @@ -120,7 +120,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - assertEquals(expectedResult.length(), result.length()); assertEquals(expectedResult, result); // order of headers cannot be guaranteed assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); } @@ -172,7 +171,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - assertEquals(expectedResult.length(), result.length()); assertEquals(expectedResult, result); // order of headers cannot be guaranteed assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); } @@ -225,7 +223,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - assertEquals(expectedResult.length(), result.length()); assertEquals(expectedResult, result); assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); } @@ -277,7 +274,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - assertEquals(expectedResult.length(), result.length()); assertEquals(expectedResult, result); assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); } @@ -329,7 +325,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - assertEquals(expectedResult.length(), result.length()); assertEquals(expectedResult, result); assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); } @@ -380,7 +375,6 @@ public class MailMessageTest { "250\r\n" + "QUIT\r\n" + "221\r\n"; - assertEquals(expectedResult.length(), result.length()); assertEquals(expectedResult, result); assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); } @@ -441,8 +435,6 @@ public class MailMessageTest { bos1.print(expectedResult); bos2.print(result); - assertEquals("expected message length != actual message length " - + "in testAsciiCharset()", expectedResult.length(), result.length()); assertEquals("baos1 and baos2 should be the same in testAsciiCharset()", baos1.toString(), baos2.toString()); // order of headers cannot be guaranteed assertFalse(testMailClient.getFailMessage(), testMailClient.isFailed()); From 608b65a3e3663c63c63032d058b1c4a4498ed93c Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Sat, 9 Dec 2017 22:04:30 +0100 Subject: [PATCH 4/4] close streams to make files deletable on windows --- .../taskdefs/optional/i18n/TranslateTest.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/i18n/TranslateTest.java b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/i18n/TranslateTest.java index e58e5ce99..15564a7fb 100644 --- a/src/tests/junit/org/apache/tools/ant/taskdefs/optional/i18n/TranslateTest.java +++ b/src/tests/junit/org/apache/tools/ant/taskdefs/optional/i18n/TranslateTest.java @@ -71,16 +71,24 @@ public class TranslateTest { @SuppressWarnings("resource") FileInputStream fis1 = new FileInputStream(file1); - @SuppressWarnings("resource") - FileInputStream fis2 = new FileInputStream(file2); - int read = 0; - while ((read = fis1.read(buffer1)) != -1) { - fis2.read(buffer2); - for (int i = 0; i < read; ++i) { - if (buffer1[i] != buffer2[i]) { - return false; + try { + @SuppressWarnings("resource") + FileInputStream fis2 = new FileInputStream(file2); + try { + int read = 0; + while ((read = fis1.read(buffer1)) != -1) { + fis2.read(buffer2); + for (int i = 0; i < read; ++i) { + if (buffer1[i] != buffer2[i]) { + return false; + } + } } + } finally { + fis2.close(); } + } finally { + fis1.close(); } return true; }