34 * compiler.intrinsics.base64.TestBase64 35 */ 36 37 package compiler.intrinsics.base64; 38 39 import java.io.BufferedReader; 40 import java.io.FileReader; 41 import java.nio.ByteBuffer; 42 import java.nio.charset.Charset; 43 import java.nio.charset.StandardCharsets; 44 import java.nio.file.Files; 45 import java.nio.file.Paths; 46 import java.util.Base64; 47 import java.util.Base64.Decoder; 48 import java.util.Base64.Encoder; 49 import java.util.Objects; 50 import java.util.Random; 51 52 import compiler.whitebox.CompilerWhiteBoxTest; 53 import sun.hotspot.code.Compiler; 54 import jtreg.SkippedException; 55 56 public class TestBase64 { 57 static boolean checkOutput = Boolean.getBoolean("checkOutput"); 58 59 public static void main(String[] args) throws Exception { 60 if (!Compiler.isIntrinsicAvailable(CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION, "java.util.Base64$Encoder", "encodeBlock", byte[].class, int.class, int.class, byte[].class, int.class, boolean.class)) { 61 throw new SkippedException("Base64 intrinsic is not available"); 62 } 63 int iters = (args.length > 0 ? Integer.valueOf(args[0]) : 100000); 64 System.out.println(iters + " iterations"); 65 66 test0(Base64Type.BASIC, Base64.getEncoder(), Base64.getDecoder(),"plain.txt", "baseEncode.txt", iters); 67 test0(Base64Type.URLSAFE, Base64.getUrlEncoder(), Base64.getUrlDecoder(),"plain.txt", "urlEncode.txt", iters); 68 test0(Base64Type.MIME, Base64.getMimeEncoder(), Base64.getMimeDecoder(),"plain.txt", "mimeEncode.txt", iters); 69 } 70 71 public static void test0(Base64Type type, Encoder encoder, Decoder decoder, String srcFile, String encodedFile, int numIterations) throws Exception { 72 73 String[] srcLns = Files.readAllLines(Paths.get(SRCDIR, srcFile), DEF_CHARSET) 74 .toArray(new String[0]); 75 String[] encodedLns = Files.readAllLines(Paths.get(SRCDIR, encodedFile), DEF_CHARSET) 76 .toArray(new String[0]); 77 78 for (int i = 0; i < numIterations; i++) { 79 int lns = 0; 80 for (String srcStr : srcLns) { 81 String encodedStr = null; | 34 * compiler.intrinsics.base64.TestBase64 35 */ 36 37 package compiler.intrinsics.base64; 38 39 import java.io.BufferedReader; 40 import java.io.FileReader; 41 import java.nio.ByteBuffer; 42 import java.nio.charset.Charset; 43 import java.nio.charset.StandardCharsets; 44 import java.nio.file.Files; 45 import java.nio.file.Paths; 46 import java.util.Base64; 47 import java.util.Base64.Decoder; 48 import java.util.Base64.Encoder; 49 import java.util.Objects; 50 import java.util.Random; 51 52 import compiler.whitebox.CompilerWhiteBoxTest; 53 import sun.hotspot.code.Compiler; 54 55 public class TestBase64 { 56 static boolean checkOutput = Boolean.getBoolean("checkOutput"); 57 58 public static void main(String[] args) throws Exception { 59 if (!Compiler.isIntrinsicAvailable(CompilerWhiteBoxTest.COMP_LEVEL_FULL_OPTIMIZATION, "java.util.Base64$Encoder", "encodeBlock", byte[].class, int.class, int.class, byte[].class, int.class, boolean.class)) { 60 System.out.println("Base64 intrinsic is not available"); 61 return; 62 } 63 int iters = (args.length > 0 ? Integer.valueOf(args[0]) : 100000); 64 System.out.println(iters + " iterations"); 65 66 test0(Base64Type.BASIC, Base64.getEncoder(), Base64.getDecoder(),"plain.txt", "baseEncode.txt", iters); 67 test0(Base64Type.URLSAFE, Base64.getUrlEncoder(), Base64.getUrlDecoder(),"plain.txt", "urlEncode.txt", iters); 68 test0(Base64Type.MIME, Base64.getMimeEncoder(), Base64.getMimeDecoder(),"plain.txt", "mimeEncode.txt", iters); 69 } 70 71 public static void test0(Base64Type type, Encoder encoder, Decoder decoder, String srcFile, String encodedFile, int numIterations) throws Exception { 72 73 String[] srcLns = Files.readAllLines(Paths.get(SRCDIR, srcFile), DEF_CHARSET) 74 .toArray(new String[0]); 75 String[] encodedLns = Files.readAllLines(Paths.get(SRCDIR, encodedFile), DEF_CHARSET) 76 .toArray(new String[0]); 77 78 for (int i = 0; i < numIterations; i++) { 79 int lns = 0; 80 for (String srcStr : srcLns) { 81 String encodedStr = null; |