Move generation of examples into another build/generated

Bug: b/270105162
Change-Id: Iceb105a1b4cbad6ec68d4d868837ba3cabe6d625
diff --git a/src/test/examplesAndroidO/invokecustom/TestGenerator.java b/src/test/examplesAndroidO/invokecustom/TestGenerator.java
index a4cd89a..4879521 100644
--- a/src/test/examplesAndroidO/invokecustom/TestGenerator.java
+++ b/src/test/examplesAndroidO/invokecustom/TestGenerator.java
@@ -13,6 +13,7 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;
@@ -26,19 +27,24 @@
 public class TestGenerator {
 
   private final Path classNamePath;
+  private final Path outputClassNamePath;
 
   public static void main(String[] args) throws IOException {
-    assert args.length == 1;
-    TestGenerator testGenerator = new TestGenerator(Paths.get(args[0],
-        TestGenerator.class.getPackage().getName(), InvokeCustom.class.getSimpleName() + ".class"));
+    assert args.length == 2;
+    String fileName = InvokeCustom.class.getSimpleName() + ".class";
+    Path inputFile = Paths.get(args[0], TestGenerator.class.getPackage().getName(), fileName);
+    Path outputFile = Paths.get(args[1], fileName);
+    TestGenerator testGenerator = new TestGenerator(inputFile, outputFile);
     testGenerator.generateTests();
   }
 
-  public TestGenerator(Path classNamePath) {
+  public TestGenerator(Path classNamePath, Path outputClassNamePath) {
     this.classNamePath = classNamePath;
+    this.outputClassNamePath = outputClassNamePath;
   }
 
   private void generateTests() throws IOException {
+    Files.createDirectories(outputClassNamePath.getParent());
     try (InputStream input = Files.newInputStream(classNamePath)) {
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
@@ -63,7 +69,8 @@
               super.visitEnd();
             }
           }, 0);
-      try (OutputStream output = Files.newOutputStream(classNamePath)) {
+      try (OutputStream output =
+          Files.newOutputStream(outputClassNamePath, StandardOpenOption.CREATE)) {
         output.write(cw.toByteArray());
       }
     }
diff --git a/src/test/examplesAndroidO/invokecustom2/TestGenerator.java b/src/test/examplesAndroidO/invokecustom2/TestGenerator.java
index 377084e..2a4eba4 100644
--- a/src/test/examplesAndroidO/invokecustom2/TestGenerator.java
+++ b/src/test/examplesAndroidO/invokecustom2/TestGenerator.java
@@ -14,6 +14,7 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
 import org.objectweb.asm.ClassReader;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;
@@ -25,19 +26,24 @@
 public class TestGenerator {
 
   private final Path classNamePath;
+  private final Path outputClassNamePath;
 
   public static void main(String[] args) throws IOException {
-    assert args.length == 1;
-    TestGenerator testGenerator = new TestGenerator(Paths.get(args[0],
-        TestGenerator.class.getPackage().getName(), InvokeCustom.class.getSimpleName() + ".class"));
+    assert args.length == 2;
+    String fileName = invokecustom.InvokeCustom.class.getSimpleName() + ".class";
+    Path inputFile = Paths.get(args[0], TestGenerator.class.getPackage().getName(), fileName);
+    Path outputFile = Paths.get(args[1], fileName);
+    TestGenerator testGenerator = new TestGenerator(inputFile, outputFile);
     testGenerator.generateTests();
   }
 
-  public TestGenerator(Path classNamePath) {
+  public TestGenerator(Path classNamePath, Path outputClassNamePath) {
     this.classNamePath = classNamePath;
+    this.outputClassNamePath = outputClassNamePath;
   }
 
   private void generateTests() throws IOException {
+    Files.createDirectories(outputClassNamePath.getParent());
     try (InputStream input = Files.newInputStream(classNamePath)) {
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
@@ -58,7 +64,8 @@
               super.visitEnd();
             }
           }, 0);
-      try (OutputStream output = Files.newOutputStream(classNamePath)) {
+      try (OutputStream output =
+          Files.newOutputStream(outputClassNamePath, StandardOpenOption.CREATE)) {
         output.write(cw.toByteArray());
       }
     }
diff --git a/src/test/examplesAndroidO/stringconcat/TestGenerator.java b/src/test/examplesAndroidO/stringconcat/TestGenerator.java
index 72bdfbf..4755c4d 100644
--- a/src/test/examplesAndroidO/stringconcat/TestGenerator.java
+++ b/src/test/examplesAndroidO/stringconcat/TestGenerator.java
@@ -12,6 +12,7 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
 import java.util.ArrayList;
 import java.util.List;
 import org.objectweb.asm.ClassReader;
@@ -40,13 +41,16 @@
       false);
 
   public static void main(String[] args) throws IOException {
-    assert args.length == 1;
-    generateTests(Paths.get(args[0],
-        TestGenerator.class.getPackage().getName(),
-        StringConcat.class.getSimpleName() + ".class"));
+    assert args.length == 2;
+    String fileName = StringConcat.class.getSimpleName() + ".class";
+    Path inputFile = Paths.get(args[0], TestGenerator.class.getPackage().getName(), fileName);
+    Path outputFile = Paths.get(args[1], fileName);
+    generateTests(inputFile, outputFile);
   }
 
-  private static void generateTests(Path classNamePath) throws IOException {
+  private static void generateTests(Path classNamePath, Path outputClassNamePath)
+      throws IOException {
+    Files.createDirectories(outputClassNamePath.getParent());
     try (InputStream input = Files.newInputStream(classNamePath)) {
       ClassReader cr = new ClassReader(input);
       ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
@@ -221,7 +225,8 @@
               };
             }
           }, 0);
-      try (OutputStream output = Files.newOutputStream(classNamePath)) {
+      try (OutputStream output =
+          Files.newOutputStream(outputClassNamePath, StandardOpenOption.CREATE)) {
         output.write(cw.toByteArray());
       }
     }