langtools/test/tools/javac/classfiles/attributes/SourceFile/SourceFileTestBase.java
changeset 25845 14935053bb07
parent 25434 823512a72660
child 36526 3b41f1c69604
equal deleted inserted replaced
25844:48eab270456c 25845:14935053bb07
    28 import java.util.ArrayList;
    28 import java.util.ArrayList;
    29 import java.util.List;
    29 import java.util.List;
    30 import java.util.Map;
    30 import java.util.Map;
    31 import javax.tools.JavaFileObject;
    31 import javax.tools.JavaFileObject;
    32 
    32 
       
    33 /**
       
    34  * Base class for Source file attribute tests. Checks expected file name for specified classes in the SourceFile attribute.
       
    35  * To add new tests you should extend the SourceFileTestBase class and invoke {@link #test} for static sources
       
    36  * or {@link #compileAndTest} for generated sources. For more information see corresponding methods.
       
    37  *
       
    38  * @see #test
       
    39  * @see #compileAndTest
       
    40  */
    33 public class SourceFileTestBase extends TestBase {
    41 public class SourceFileTestBase extends TestBase {
    34 
    42     /**
       
    43      * Checks expected fileName for the specified class in the SourceFile attribute.
       
    44      *
       
    45      * @param classToTest class to check its SourceFile attribute
       
    46      * @param fileName    expected name of the file from which the test file is compiled.
       
    47      */
    35     protected void test(Class<?> classToTest, String fileName) throws Exception {
    48     protected void test(Class<?> classToTest, String fileName) throws Exception {
    36         assertAttributePresent(ClassFile.read(getClassFile(classToTest)), fileName);
    49         assertAttributePresent(ClassFile.read(getClassFile(classToTest)), fileName);
    37     }
    50     }
    38 
    51 
       
    52     /**
       
    53      * Checks expected fileName for the specified class in the SourceFile attribute.
       
    54      *
       
    55      * @param classToTest class name to check its SourceFile attribute
       
    56      * @param fileName    expected name of the file from which the test file is compiled.
       
    57      */
    39     protected void test(String classToTest, String fileName) throws Exception {
    58     protected void test(String classToTest, String fileName) throws Exception {
    40         assertAttributePresent(ClassFile.read(getClassFile(classToTest + ".class")), fileName);
    59         assertAttributePresent(ClassFile.read(getClassFile(classToTest + ".class")), fileName);
    41     }
    60     }
    42 
    61 
    43     /**
    62     /**
    44      * Compile sourceCode and for all "classesToTest" checks SourceFile attribute.
    63      * Compiles sourceCode and for each specified class name checks the SourceFile attribute.
       
    64      * The file name is extracted from source code.
       
    65      *
       
    66      * @param sourceCode    source code to compile
       
    67      * @param classesToTest class names to check their SourceFile attribute.
    45      */
    68      */
    46     protected void compileAndTest(String sourceCode, String... classesToTest) throws Exception {
    69     protected void compileAndTest(String sourceCode, String... classesToTest) throws Exception {
    47 
    70 
    48         Map<String, ? extends JavaFileObject> classes = compile(sourceCode).getClasses();
    71         Map<String, ? extends JavaFileObject> classes = compile(sourceCode).getClasses();
    49         String fileName = ToolBox.getJavaFileNameFromSource(sourceCode);
    72         String fileName = ToolBox.getJavaFileNameFromSource(sourceCode);