@Test
  public void source8() throws Exception {
    // Post-JDK8, we need to use --release 8 in order to be able to see the javax.annotation
    // package, which was deleted from the JDK in that release. On JDK8, there is no --release
    // option, so we have to use -source 8 -target 8.
    ImmutableList<String> options =
        isJdk9OrLater()
            ? ImmutableList.of("--release", "8")
            : ImmutableList.of("-source", "8", "-target", "8");
    String generated = runProcessor(options, null);
    assertThat(generated).contains(JAVAX_ANNOTATION_GENERATED);
    assertThat(generated).doesNotContain(JAVAX_ANNOTATION_PROCESSING_GENERATED);
  }
Used to produce a {@link StandardJavaFileManager} where a certain package appears to have no
classes. The results are exactly those from the proxied {@code StandardJavaFileManager} except
for the {@link StandardJavaFileManager#list list} method when its {@code packageName} argument
is the given package, in which case the result is an empty list.

<p>We can't use {@link javax.tools.ForwardingJavaFileManager} because at least some JDK
versions require the file manager to be a {@code StandardJavaFileManager} when the {@code
--release} flag is given.
common/src/test/java/com/google/auto/common/GeneratedAnnotationsTest.java