108 final String errorDirName = "error_" + currError++;
109 final File errorDir = new File(errorDirName);
110 errorDir.mkdirs();
111 for (int i = 0; i < classes.length; i++) {
112 classes[i].writeClass(errorDir);
113 }
114 try (final FileWriter fos =
115 new FileWriter(new File(errorDir, "description.txt"))) {
116 fos.write(this.toString());
117 }
118 return errorDirName;
119 }
120
121 /**
122 * Run this case, return an error message, or null.
123 *
124 * @return An error message, or null if the case succeeded.
125 */
126 public String run() {
127 /* Uncomment this line to print EVERY case */
128 //System.err.println("Running\n" + this);
129 final ClassBuilder builder =
130 new ClassBuilder(this, ClassBuilder.ExecutionMode.DIRECT);
131 try {
132 final ByteCodeClassLoader bcl = new ByteCodeClassLoader();
133 final ClassConstruct[] classes = builder.build();
134
135 try {
136 bcl.addClasses(classes);
137 bcl.loadAll();
138
139 // Grab the callsite class.
140 final Class testclass =
141 bcl.findClass(builder.getCallsiteClass().getDottedName());
142
143 // Get the 'test' method out of it and call it. The
144 // return value tess which class that got selected.
145 final java.lang.reflect.Method method =
146 testclass.getDeclaredMethod("test");
147 final int actual = (Integer) method.invoke(null);
148 // Check the result.
|
108 final String errorDirName = "error_" + currError++;
109 final File errorDir = new File(errorDirName);
110 errorDir.mkdirs();
111 for (int i = 0; i < classes.length; i++) {
112 classes[i].writeClass(errorDir);
113 }
114 try (final FileWriter fos =
115 new FileWriter(new File(errorDir, "description.txt"))) {
116 fos.write(this.toString());
117 }
118 return errorDirName;
119 }
120
121 /**
122 * Run this case, return an error message, or null.
123 *
124 * @return An error message, or null if the case succeeded.
125 */
126 public String run() {
127 /* Uncomment this line to print EVERY case */
128 System.err.println("Running\n" + this);
129 final ClassBuilder builder =
130 new ClassBuilder(this, ClassBuilder.ExecutionMode.DIRECT);
131 try {
132 final ByteCodeClassLoader bcl = new ByteCodeClassLoader();
133 final ClassConstruct[] classes = builder.build();
134
135 try {
136 bcl.addClasses(classes);
137 bcl.loadAll();
138
139 // Grab the callsite class.
140 final Class testclass =
141 bcl.findClass(builder.getCallsiteClass().getDottedName());
142
143 // Get the 'test' method out of it and call it. The
144 // return value tess which class that got selected.
145 final java.lang.reflect.Method method =
146 testclass.getDeclaredMethod("test");
147 final int actual = (Integer) method.invoke(null);
148 // Check the result.
|