42 * @summary jpackage basic testing |
42 * @summary jpackage basic testing |
43 * @library ../../../../helpers |
43 * @library ../../../../helpers |
44 * @build jdk.jpackage.test.* |
44 * @build jdk.jpackage.test.* |
45 * @modules jdk.jpackage/jdk.jpackage.internal |
45 * @modules jdk.jpackage/jdk.jpackage.internal |
46 * @compile BasicTest.java |
46 * @compile BasicTest.java |
47 * @run main/othervm/timeout=360 -Xmx512m jdk.jpackage.test.Main |
47 * @run main/othervm/timeout=720 -Xmx512m jdk.jpackage.test.Main |
48 * --jpt-run=jdk.jpackage.tests.BasicTest |
48 * --jpt-run=jdk.jpackage.tests.BasicTest |
49 */ |
49 */ |
50 |
50 |
51 public final class BasicTest { |
51 public final class BasicTest { |
52 @Test |
52 @Test |
114 TKit.assertEquals(0, countStrings.apply(unexpectedPrefixes), |
114 TKit.assertEquals(0, countStrings.apply(unexpectedPrefixes), |
115 "Check help text doesn't contain unexpected parameters"); |
115 "Check help text doesn't contain unexpected parameters"); |
116 } |
116 } |
117 |
117 |
118 @Test |
118 @Test |
|
119 @SuppressWarnings("unchecked") |
119 public void testVerbose() { |
120 public void testVerbose() { |
120 JPackageCommand cmd = JPackageCommand.helloAppImage() |
121 JPackageCommand cmd = JPackageCommand.helloAppImage() |
121 .setFakeRuntime().executePrerequisiteActions(); |
122 .setFakeRuntime().executePrerequisiteActions(); |
122 |
123 |
123 List<String> expectedVerboseOutputStrings = new ArrayList<>(); |
124 List<String> expectedVerboseOutputStrings = new ArrayList<>(); |
137 TKit.throwUnknownPlatformError(); |
138 TKit.throwUnknownPlatformError(); |
138 } |
139 } |
139 |
140 |
140 TKit.deleteDirectoryContentsRecursive(cmd.outputDir()); |
141 TKit.deleteDirectoryContentsRecursive(cmd.outputDir()); |
141 List<String> nonVerboseOutput = cmd.createExecutor().executeAndGetOutput(); |
142 List<String> nonVerboseOutput = cmd.createExecutor().executeAndGetOutput(); |
142 |
143 List<String>[] verboseOutput = (List<String>[])new List<?>[1]; |
143 TKit.deleteDirectoryContentsRecursive(cmd.outputDir()); |
144 |
144 List<String> verboseOutput = cmd.createExecutor().addArgument( |
145 // Directory clean up is not 100% reliable on Windows because of |
145 "--verbose").executeAndGetOutput(); |
146 // antivirus software that can lock .exe files. Setup |
146 |
147 // diffreent output directory instead of cleaning the default one for |
147 TKit.assertTrue(nonVerboseOutput.size() < verboseOutput.size(), |
148 // verbose jpackage run. |
|
149 TKit.withTempDirectory("verbose-output", tempDir -> { |
|
150 cmd.setArgumentValue("--dest", tempDir); |
|
151 verboseOutput[0] = cmd.createExecutor().addArgument( |
|
152 "--verbose").executeAndGetOutput(); |
|
153 }); |
|
154 |
|
155 TKit.assertTrue(nonVerboseOutput.size() < verboseOutput[0].size(), |
148 "Check verbose output is longer than regular"); |
156 "Check verbose output is longer than regular"); |
149 |
157 |
150 expectedVerboseOutputStrings.forEach(str -> { |
158 expectedVerboseOutputStrings.forEach(str -> { |
151 TKit.assertTextStream(str).label("regular output") |
159 TKit.assertTextStream(str).label("regular output") |
152 .predicate(String::contains).negate() |
160 .predicate(String::contains).negate() |
153 .apply(nonVerboseOutput.stream()); |
161 .apply(nonVerboseOutput.stream()); |
154 }); |
162 }); |
155 |
163 |
156 expectedVerboseOutputStrings.forEach(str -> { |
164 expectedVerboseOutputStrings.forEach(str -> { |
157 TKit.assertTextStream(str).label("verbose output") |
165 TKit.assertTextStream(str).label("verbose output") |
158 .apply(verboseOutput.stream()); |
166 .apply(verboseOutput[0].stream()); |
159 }); |
167 }); |
160 } |
168 } |
161 |
169 |
162 @Test |
170 @Test |
163 public void testNoName() { |
171 public void testNoName() { |