7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 4235519 8004212 8005394 8007298 8006295 8006315 8006530 8007379 8008925
27 * 8014217 8025003 8026330 8028397 8129544 8165243
28 * @summary tests java.util.Base64
29 * @library /test/lib
30 * @build jdk.test.lib.RandomFactory
31 * @run main TestBase64
32 * @key randomness
33 */
34
35 import java.io.ByteArrayInputStream;
36 import java.io.ByteArrayOutputStream;
37 import java.io.InputStream;
38 import java.io.IOException;
39 import java.io.OutputStream;
40 import java.nio.ByteBuffer;
41 import java.util.Arrays;
42 import java.util.ArrayList;
43 import java.util.Base64;
44 import java.util.List;
45 import java.util.Random;
46
47 import jdk.test.lib.RandomFactory;
61 test(Base64.getEncoder(), Base64.getDecoder(), numRuns, numBytes);
62 test(Base64.getUrlEncoder(), Base64.getUrlDecoder(), numRuns, numBytes);
63 test(Base64.getMimeEncoder(), Base64.getMimeDecoder(), numRuns, numBytes);
64
65 byte[] nl_1 = new byte[] {'\n'};
66 byte[] nl_2 = new byte[] {'\n', '\r'};
67 byte[] nl_3 = new byte[] {'\n', '\r', '\n'};
68 for (int i = 0; i < 10; i++) {
69 int len = rnd.nextInt(200) + 4;
70 test(Base64.getMimeEncoder(len, nl_1),
71 Base64.getMimeDecoder(),
72 numRuns, numBytes);
73 test(Base64.getMimeEncoder(len, nl_2),
74 Base64.getMimeDecoder(),
75 numRuns, numBytes);
76 test(Base64.getMimeEncoder(len, nl_3),
77 Base64.getMimeDecoder(),
78 numRuns, numBytes);
79 }
80
81 testNull(Base64.getEncoder());
82 testNull(Base64.getUrlEncoder());
83 testNull(Base64.getMimeEncoder());
84 testNull(Base64.getMimeEncoder(10, new byte[]{'\n'}));
85 testNull(Base64.getDecoder());
86 testNull(Base64.getUrlDecoder());
87 testNull(Base64.getMimeDecoder());
88 checkNull(() -> Base64.getMimeEncoder(10, null));
89
90 testIOE(Base64.getEncoder());
91 testIOE(Base64.getUrlEncoder());
92 testIOE(Base64.getMimeEncoder());
93 testIOE(Base64.getMimeEncoder(10, new byte[]{'\n'}));
94
95 byte[] src = new byte[1024];
96 rnd.nextBytes(src);
97 final byte[] decoded = Base64.getEncoder().encode(src);
98 testIOE(Base64.getDecoder(), decoded);
99 testIOE(Base64.getMimeDecoder(), decoded);
100 testIOE(Base64.getUrlDecoder(), Base64.getUrlEncoder().encode(src));
|
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 /**
25 * @test
26 * @bug 4235519 8004212 8005394 8007298 8006295 8006315 8006530 8007379 8008925
27 * 8014217 8025003 8026330 8028397 8129544 8165243 8176379
28 * @summary tests java.util.Base64
29 * @library /test/lib
30 * @build jdk.test.lib.RandomFactory
31 * @run main TestBase64
32 * @key randomness
33 */
34
35 import java.io.ByteArrayInputStream;
36 import java.io.ByteArrayOutputStream;
37 import java.io.InputStream;
38 import java.io.IOException;
39 import java.io.OutputStream;
40 import java.nio.ByteBuffer;
41 import java.util.Arrays;
42 import java.util.ArrayList;
43 import java.util.Base64;
44 import java.util.List;
45 import java.util.Random;
46
47 import jdk.test.lib.RandomFactory;
61 test(Base64.getEncoder(), Base64.getDecoder(), numRuns, numBytes);
62 test(Base64.getUrlEncoder(), Base64.getUrlDecoder(), numRuns, numBytes);
63 test(Base64.getMimeEncoder(), Base64.getMimeDecoder(), numRuns, numBytes);
64
65 byte[] nl_1 = new byte[] {'\n'};
66 byte[] nl_2 = new byte[] {'\n', '\r'};
67 byte[] nl_3 = new byte[] {'\n', '\r', '\n'};
68 for (int i = 0; i < 10; i++) {
69 int len = rnd.nextInt(200) + 4;
70 test(Base64.getMimeEncoder(len, nl_1),
71 Base64.getMimeDecoder(),
72 numRuns, numBytes);
73 test(Base64.getMimeEncoder(len, nl_2),
74 Base64.getMimeDecoder(),
75 numRuns, numBytes);
76 test(Base64.getMimeEncoder(len, nl_3),
77 Base64.getMimeDecoder(),
78 numRuns, numBytes);
79 }
80
81 // test mime case with < 4 length
82 for (int len = 0; len < 4; len++) {
83 test(Base64.getMimeEncoder(len, nl_1),
84 Base64.getMimeDecoder(),
85 numRuns, numBytes);
86
87 test(Base64.getMimeEncoder(len, nl_2),
88 Base64.getMimeDecoder(),
89 numRuns, numBytes);
90
91 test(Base64.getMimeEncoder(len, nl_3),
92 Base64.getMimeDecoder(),
93 numRuns, numBytes);
94 }
95
96 testNull(Base64.getEncoder());
97 testNull(Base64.getUrlEncoder());
98 testNull(Base64.getMimeEncoder());
99 testNull(Base64.getMimeEncoder(10, new byte[]{'\n'}));
100 testNull(Base64.getDecoder());
101 testNull(Base64.getUrlDecoder());
102 testNull(Base64.getMimeDecoder());
103 checkNull(() -> Base64.getMimeEncoder(10, null));
104
105 testIOE(Base64.getEncoder());
106 testIOE(Base64.getUrlEncoder());
107 testIOE(Base64.getMimeEncoder());
108 testIOE(Base64.getMimeEncoder(10, new byte[]{'\n'}));
109
110 byte[] src = new byte[1024];
111 rnd.nextBytes(src);
112 final byte[] decoded = Base64.getEncoder().encode(src);
113 testIOE(Base64.getDecoder(), decoded);
114 testIOE(Base64.getMimeDecoder(), decoded);
115 testIOE(Base64.getUrlDecoder(), Base64.getUrlEncoder().encode(src));
|