blob: 1cbf2e79b24fd8aad8e887c26e34510e8201908b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2014 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.tests.compiler.regression;
import java.io.File;
import java.util.Map;
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
import junit.framework.Test;
@SuppressWarnings({ "unchecked", "rawtypes" })
public class Jsr14Test extends AbstractRegressionTest {
public Jsr14Test(String name) {
super(name);
}
protected Map getCompilerOptions() {
Map options = super.getCompilerOptions();
options.put(CompilerOptions.OPTION_Compliance, CompilerOptions.VERSION_1_5);
options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
return options;
}
// Static initializer to specify tests subset using TESTS_* static variables
// All specified tests which does not belong to the class are skipped...
static {
// TESTS_NAMES = new String[] { "test000" };
// TESTS_NUMBERS = new int[] { 15 };
// TESTS_RANGE = new int[] { 11, -1 };
}
public static Test suite() {
return buildMinimalComplianceTestSuite(testClass(), F_1_4);
}
//https://bugs.eclipse.org/bugs/show_bug.cgi?id=277450
public void test1() throws Exception {
this.runConformTest(
new String[] {
"X.java",
"public class X {\n" +
" public static void main(String[] args) {\n" +
" System.out.println(X.class);\n" +
" }\n" +
"}",
},
"class X");
String expectedOutput =
" // Method descriptor #18 ([Ljava/lang/String;)V\n" +
" // Stack: 3, Locals: 1\n" +
" public static void main(java.lang.String[] args);\n" +
" 0 getstatic java.lang.System.out : java.io.PrintStream [19]\n" +
" 3 getstatic X.class$0 : java.lang.Class [25]\n" +
" 6 dup\n" +
" 7 ifnonnull 35\n" +
" 10 pop\n" +
" 11 ldc <String \"X\"> [27]\n" +
" 13 invokestatic java.lang.Class.forName(java.lang.String) : java.lang.Class [28]\n" +
" 16 dup\n" +
" 17 putstatic X.class$0 : java.lang.Class [25]\n" +
" 20 goto 35\n" +
" 23 new java.lang.NoClassDefFoundError [34]\n" +
" 26 dup_x1\n" +
" 27 swap\n" +
" 28 invokevirtual java.lang.Throwable.getMessage() : java.lang.String [36]\n" +
" 31 invokespecial java.lang.NoClassDefFoundError(java.lang.String) [42]\n" +
" 34 athrow\n" +
" 35 invokevirtual java.io.PrintStream.println(java.lang.Object) : void [45]\n" +
" 38 return\n";
checkDisassembledClassFile(OUTPUT_DIR + File.separator + "X.class", "X", expectedOutput);
}
public static Class testClass() {
return Jsr14Test.class;
}
}