1 /*
2 * Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 package compiler.intrinsics.sha.cli.testcases;
25
26 import compiler.intrinsics.sha.cli.DigestOptionsBase;
27 import jdk.test.lib.process.ExitCode;
28 import jdk.test.lib.Platform;
29 import jdk.test.lib.cli.CommandLineOptionTest;
30 import jdk.test.lib.cli.predicate.NotPredicate;
31 import jdk.test.lib.cli.predicate.OrPredicate;
32
33 /**
34 * Generic test case for SHA-related options targeted to any CPU except
35 * AArch64, PPC, S390x, and X86.
36 */
37 public class GenericTestCaseForOtherCPU extends
38 DigestOptionsBase.TestCase {
39
40 final private boolean checkUseSHA;
41
42 public GenericTestCaseForOtherCPU(String optionName) {
43 this(optionName, true);
44 }
45
46 public GenericTestCaseForOtherCPU(String optionName, boolean checkUseSHA) {
47 // Execute the test case on any CPU except AArch64, PPC, S390x, and X86.
48 super(optionName, new NotPredicate(
49 new OrPredicate(Platform::isAArch64,
50 new OrPredicate(Platform::isS390x,
51 new OrPredicate(Platform::isPPC,
52 new OrPredicate(Platform::isX64,
53 Platform::isX86))))));
54
55 this.checkUseSHA = checkUseSHA;
56 }
57
58 @Override
59 protected void verifyWarnings() throws Throwable {
60 String shouldPassMessage = String.format("JVM should start with "
61 + "option '%s' without any warnings", optionName);
62 // Verify that on non-x86 and non-AArch64 CPU usage of SHA-related
63 // options will not cause any warnings.
64 CommandLineOptionTest.verifySameJVMStartup(null,
65 new String[] { ".*" + optionName + ".*" }, shouldPassMessage,
66 shouldPassMessage, ExitCode.OK,
67 DigestOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
68 CommandLineOptionTest.prepareBooleanFlag(optionName, true));
69
70 CommandLineOptionTest.verifySameJVMStartup(null,
71 new String[] { ".*" + optionName + ".*" }, shouldPassMessage,
72 shouldPassMessage, ExitCode.OK,
73 DigestOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
74 CommandLineOptionTest.prepareBooleanFlag(optionName, false));
75 }
76
77 @Override
78 protected void verifyOptionValues() throws Throwable {
79 // Verify that option is disabled by default.
80 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
81 String.format("Option '%s' should be disabled by default",
82 optionName),
|
1 /*
2 * Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 package compiler.intrinsics.sha.cli.testcases;
25
26 import compiler.intrinsics.sha.cli.DigestOptionsBase;
27 import jdk.test.lib.process.ExitCode;
28 import jdk.test.lib.Platform;
29 import jdk.test.lib.cli.CommandLineOptionTest;
30 import jdk.test.lib.cli.predicate.NotPredicate;
31 import jdk.test.lib.cli.predicate.OrPredicate;
32
33 /**
34 * Generic test case for SHA-related options targeted to any CPU except
35 * AArch64, RISCV64, PPC, S390x, and X86.
36 */
37 public class GenericTestCaseForOtherCPU extends
38 DigestOptionsBase.TestCase {
39
40 final private boolean checkUseSHA;
41
42 public GenericTestCaseForOtherCPU(String optionName) {
43 this(optionName, true);
44 }
45
46 public GenericTestCaseForOtherCPU(String optionName, boolean checkUseSHA) {
47 // Execute the test case on any CPU except AArch64, RISCV64, PPC, S390x, and X86.
48 super(optionName, new NotPredicate(
49 new OrPredicate(Platform::isAArch64,
50 new OrPredicate(Platform::isRISCV64,
51 new OrPredicate(Platform::isS390x,
52 new OrPredicate(Platform::isPPC,
53 new OrPredicate(Platform::isX64,
54 Platform::isX86)))))));
55
56 this.checkUseSHA = checkUseSHA;
57 }
58
59 @Override
60 protected void verifyWarnings() throws Throwable {
61 String shouldPassMessage = String.format("JVM should start with "
62 + "option '%s' without any warnings", optionName);
63 // Verify that on non-x86, non-RISCV64 and non-AArch64 CPU usage of SHA-related
64 // options will not cause any warnings.
65 CommandLineOptionTest.verifySameJVMStartup(null,
66 new String[] { ".*" + optionName + ".*" }, shouldPassMessage,
67 shouldPassMessage, ExitCode.OK,
68 DigestOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
69 CommandLineOptionTest.prepareBooleanFlag(optionName, true));
70
71 CommandLineOptionTest.verifySameJVMStartup(null,
72 new String[] { ".*" + optionName + ".*" }, shouldPassMessage,
73 shouldPassMessage, ExitCode.OK,
74 DigestOptionsBase.UNLOCK_DIAGNOSTIC_VM_OPTIONS,
75 CommandLineOptionTest.prepareBooleanFlag(optionName, false));
76 }
77
78 @Override
79 protected void verifyOptionValues() throws Throwable {
80 // Verify that option is disabled by default.
81 CommandLineOptionTest.verifyOptionValueForSameVM(optionName, "false",
82 String.format("Option '%s' should be disabled by default",
83 optionName),
|