From: kruland2607 Date: Tue, 10 Jul 2012 17:08:39 +0000 (+0000) Subject: Extract Base64.main() as a unit test. X-Git-Tag: upstream/12.09^2~120 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=b1e34ba0ef84d124e513c4d8b8757033197aeb77;p=debian%2Fopenrocket Extract Base64.main() as a unit test. git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@879 180e2498-e6e9-4542-8430-84ac67f01cd8 --- diff --git a/core/src/net/sf/openrocket/util/Base64.java b/core/src/net/sf/openrocket/util/Base64.java index 042d3671..21fc949d 100644 --- a/core/src/net/sf/openrocket/util/Base64.java +++ b/core/src/net/sf/openrocket/util/Base64.java @@ -81,7 +81,7 @@ public class Base64 { if (p==0) break; if (p!=4) { - throw new IllegalArgumentException("Data ended when decoding Base64, p="+p); + throw new IllegalArgumentException("Data ended when decoding Base64, data=" + data + ", p="+p); } int l = decodeGroup(block, array, length); @@ -166,67 +166,4 @@ public class Base64 { return 3; } - - - public static void main(String[] arg) { - Random rnd = new Random(); - - for (int round=0; round < 1000; round++) { - int n = rnd.nextInt(1000); - n = 100000; - - byte[] array = new byte[n]; - rnd.nextBytes(array); - - String encoded = encode(array); - - System.out.println(encoded); - System.exit(0); -// for (int i=0; i<1000; i++) { -// int pos = rnd.nextInt(encoded.length()); -// String s1 = encoded.substring(0, pos); -// String s2 = encoded.substring(pos); -// switch (rnd.nextInt(15)) { -// case 0: -// encoded = s1 + " " + s2; -// break; -// case 1: -// encoded = s1 + "\u0009" + s2; -// break; -// case 2: -// encoded = s1 + "\n" + s2; -// break; -// case 3: -// encoded = s1 + "\u000B" + s2; -// break; -// case 4: -// encoded = s1 + "\r" + s2; -// break; -// case 5: -// encoded = s1 + "\u000C" + s2; -// break; -// case 6: -// encoded = s1 + "\u001C" + s2; -// break; -// } -// } - - byte[] decoded = null; - try { - decoded = decode(encoded); - } catch (IllegalArgumentException e) { - e.printStackTrace(); - System.err.println("Bad data:\n"+encoded); - System.exit(1); - } - - if (!Arrays.equals(array, decoded)) { - System.err.println("Data differs! n="+n); - System.exit(1); - } - System.out.println("n="+n+" ok!"); - } - } - - } diff --git a/core/test/net/sf/openrocket/util/Base64Test.java b/core/test/net/sf/openrocket/util/Base64Test.java new file mode 100644 index 00000000..edf13005 --- /dev/null +++ b/core/test/net/sf/openrocket/util/Base64Test.java @@ -0,0 +1,42 @@ +package net.sf.openrocket.util; + +import java.util.Arrays; +import java.util.Random; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class Base64Test { + + @Test + public void oldMainTest() throws Exception { + + // TODO - this test case should probably be less random and more targeted to + // special cases such as: + // null input + // empty input + // decoding bad string + + Random rnd = new Random(); + + for (int round=0; round < 1000; round++) { + int n = rnd.nextInt(1000); + n = 100000; + + byte[] array = new byte[n]; + rnd.nextBytes(array); + + String encoded = Base64.encode(array); + + byte[] decoded = null; + decoded = Base64.decode(encoded); + + if (!Arrays.equals(array, decoded)) { + fail("Data differs! n="+n); + } + System.out.println("n="+n+" ok!"); + + } + } +} \ No newline at end of file