< prev index next >

test/langtools/tools/javac/processing/model/util/elements/TestGetPackageOf.java

Print this page

        

*** 21,41 **** * questions. */ /* * @test ! * @bug 6453386 8216404 * @summary Test Elements.getPackageOf * @author Joseph D. Darcy * @library /tools/javac/lib * @modules java.compiler * jdk.compiler * @build JavacTestingAbstractProcessor TestGetPackageOf * @compile -processor TestGetPackageOf -proc:only TestGetPackageOf.java */ ! import java.util.Set; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; import static javax.lang.model.SourceVersion.*; import javax.lang.model.element.*; import javax.lang.model.util.*; --- 21,41 ---- * questions. */ /* * @test ! * @bug 6453386 8216404 8230337 * @summary Test Elements.getPackageOf * @author Joseph D. Darcy * @library /tools/javac/lib * @modules java.compiler * jdk.compiler * @build JavacTestingAbstractProcessor TestGetPackageOf * @compile -processor TestGetPackageOf -proc:only TestGetPackageOf.java */ ! import java.util.*; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; import static javax.lang.model.SourceVersion.*; import javax.lang.model.element.*; import javax.lang.model.util.*;
*** 46,77 **** /** * Test basic workings of Elements.getPackageOf */ public class TestGetPackageOf extends JavacTestingAbstractProcessor { /** ! * Check expected behavior on classes and packages. */ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { if (!roundEnv.processingOver()) { ! TypeElement stringElt = eltUtils.getTypeElement("java.lang.String"); PackageElement javaLangPkg = eltUtils.getPackageElement("java.lang"); PackageElement unnamedPkg = eltUtils.getPackageElement(""); - ModuleElement moduleElt = eltUtils.getModuleElement("java.base"); - PackageElement pkg = null; ! if (!javaLangPkg.equals(pkg=eltUtils.getPackageOf(stringElt) ) ) ! throw new RuntimeException("Unexpected package for String: " + pkg); ! if (!javaLangPkg.equals(pkg=eltUtils.getPackageOf(javaLangPkg) ) ) ! throw new RuntimeException("Unexpected package for java.lang: " + pkg); ! if (!unnamedPkg.equals(pkg=eltUtils.getPackageOf(unnamedPkg) ) ) ! throw new RuntimeException("Unexpected package for unnamed pkg: " + pkg); ! if (eltUtils.getPackageOf(moduleElt) != null) ! throw new RuntimeException("Unexpected package for module" + ! moduleElt.getSimpleName()); } return true; } } --- 46,88 ---- /** * Test basic workings of Elements.getPackageOf */ public class TestGetPackageOf extends JavacTestingAbstractProcessor { /** ! * Check expected behavior on classes and packages and other elements. */ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { if (!roundEnv.processingOver()) { ! TypeElement charElt = eltUtils.getTypeElement("java.lang.Character"); PackageElement javaLangPkg = eltUtils.getPackageElement("java.lang"); PackageElement unnamedPkg = eltUtils.getPackageElement(""); ! Map<Element, PackageElement> testCases = ! Map.of(javaLangPkg, javaLangPkg, ! charElt, javaLangPkg, ! unnamedPkg, unnamedPkg); ! for(var testCase : testCases.entrySet()) { ! checkPkg(testCase.getKey(), testCase.getValue()); ! } ! // The package of fields and methods and nested types of ! // java.lang.Character is java.lang. ! for (Element e : charElt.getEnclosedElements()) { ! checkPkg(e, javaLangPkg); ! } ! // A module has a null package. ! checkPkg(eltUtils.getModuleElement("java.base"), null); } return true; } + + private void checkPkg(Element e, PackageElement expectedPkg) { + PackageElement actualPkg = eltUtils.getPackageOf(e); + if (!Objects.equals(actualPkg, expectedPkg)) { + throw new RuntimeException(String.format("Unexpected package ``%s''' for %s %s, expected ``%s''%n", + actualPkg, e.getKind(), e.toString(), expectedPkg)); + } + } }
< prev index next >