Test whether hidden API access flags are being enforced. The test is composed of
two JARs. The first (parent) defines methods and fields and the second (child)
tries to access them with reflection/JNI/MethodHandles or link against them.
Note that the first is compiled twice - once with and once without hidden access
flags.

The test then proceeds to exercise the following combinations of class loading:
(a) Both parent and child dex loaded with PathClassLoader, parent's class loader
    is the child's class loader's parent. Access flags should not be enforced as
    the parent does not belong to boot class path.
(b) Parent is appended to boot class path, child is loaded with PathClassLoader.
    In this situation child should not be able to access hidden methods/fields
    of the parent.
(c) Both parent and child are appended to boot class path. Restrictions should
    not apply as hidden APIs are accessible within the boundaries of the boot
    class path.
