test/hotspot/jtreg/runtime/appcds/cacheObject/CheckArchivedModuleApp.java
changeset 57567 b000362a89a0
parent 57566 ad84ae073248
child 57568 460ac76019f4
--- a/test/hotspot/jtreg/runtime/appcds/cacheObject/CheckArchivedModuleApp.java	Mon Jul 29 09:57:37 2019 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-import java.io.File;
-import java.lang.module.Configuration;
-import java.lang.module.ModuleDescriptor;
-import java.util.List;
-import java.util.Set;
-import sun.hotspot.WhiteBox;
-
-//
-// Test archived system module graph when open archive heap objects are mapped:
-//
-public class CheckArchivedModuleApp {
-    static WhiteBox wb;
-    public static void main(String args[]) throws Exception {
-        wb = WhiteBox.getWhiteBox();
-
-        if (!wb.areOpenArchiveHeapObjectsMapped()) {
-            System.out.println("Archived open_archive_heap objects are not mapped.");
-            System.out.println("This may happen during normal operation. Test Skipped.");
-            return;
-        }
-
-        if (args.length != 2) {
-           throw new RuntimeException(
-               "FAILED. Incorrect argument length: " + args.length);
-        }
-
-        boolean expectArchivedDescriptors = "yes".equals(args[0]);
-        boolean expectArchivedConfiguration = "yes".equals(args[1]);
-        // -XX:+EnableJVMCI adds extra system modules, in which case the system
-        // module objects are not archived.
-        Boolean enableJVMCI = wb.getBooleanVMFlag("EnableJVMCI");
-        if (enableJVMCI != null && enableJVMCI) {
-            expectArchivedDescriptors = false;
-            expectArchivedConfiguration = false;
-        }
-
-        checkModuleDescriptors(expectArchivedDescriptors);
-        checkConfiguration(expectArchivedConfiguration);
-        checkEmptyConfiguration(expectArchivedConfiguration);
-    }
-
-    private static void checkModuleDescriptors(boolean expectArchivedDescriptors) {
-        Set<Module> modules = ModuleLayer.boot().modules();
-        for (Module m : modules) {
-            ModuleDescriptor md = m.getDescriptor();
-            String name = md.name();
-            if (expectArchivedDescriptors) {
-                if (wb.isShared(md)) {
-                    System.out.println(name + " is archived. Expected.");
-                } else {
-                    throw new RuntimeException(
-                        "FAILED. " + name + " is not archived. Expect archived.");
-                }
-            } else {
-                if (!wb.isShared(md)) {
-                    System.out.println(name + " is not archived. Expected.");
-                } else {
-                    throw new RuntimeException(
-                        "FAILED. " + name + " is archived. Expect not archived.");
-                }
-            }
-        }
-    }
-
-    private static void checkEmptyConfiguration(boolean expectArchivedConfiguration) {
-        // Configuration.EMPTY_CONFIGURATION uses the singletons,
-        // ListN.EMPTY_LIST, SetN.EMPTY_SET and MapN.EMPTY_MAP in
-        // ImmutableCollections for the 'parents', 'modules' and
-        // 'graph' fields. The ImmutableCollections singletons
-        // can be accessed via List.of(), Set.of() and Map.of() APIs.
-        // Configuration public APIs also allow access to the
-        // EMPTY_CONFIGURATION's 'parents' and 'modules'. When the
-        // archived java heap data is enabled at runtime, make sure
-        // the EMPTY_CONFIGURATION.parents and EMPTY_CONFIGURATION.modules
-        // are the archived ImmutableCollections singletons.
-        Configuration emptyCf = Configuration.empty();
-        List emptyCfParents = emptyCf.parents();
-        Set emptyCfModules = emptyCf.modules();
-        if (expectArchivedConfiguration) {
-            if (emptyCfParents == List.of() &&
-                wb.isShared(emptyCfParents)) {
-                System.out.println("Empty Configuration has expected parents.");
-            } else {
-                throw new RuntimeException(
-                    "FAILED. Unexpected parents for empty Configuration.");
-            }
-            if (emptyCfModules == Set.of() &&
-                wb.isShared(emptyCfModules)) {
-                System.out.println("Empty Configuration has expected module set.");
-            } else {
-                throw new RuntimeException(
-                    "FAILED. Unexpected module set for empty Configuration.");
-            }
-        }
-    }
-
-
-
-    private static void checkConfiguration(boolean expectArchivedConfiguration) {
-        Configuration cf = ModuleLayer.boot().configuration();
-
-        if (expectArchivedConfiguration) {
-            if (wb.isShared(cf)) {
-                System.out.println("Boot layer configuration is archived. Expected.");
-            } else {
-                throw new RuntimeException(
-                    "FAILED. Boot layer configuration is not archived.");
-            }
-        } else {
-            if (!wb.isShared(cf)) {
-                System.out.println("Boot layer configuration is not archived. Expected.");
-            } else {
-                throw new RuntimeException(
-                    "FAILED. Boot layer configuration is archived.");
-            }
-        }
-    }
-}