mirror of
https://github.com/ethauvin/bld.git
synced 2025-04-25 00:07:12 -07:00
Added more command files tests
This commit is contained in:
parent
d72e6ebc2e
commit
0382444c0c
7 changed files with 63 additions and 41 deletions
|
@ -159,7 +159,7 @@ public abstract class AbstractToolProviderOperation<T extends AbstractToolProvid
|
|||
}
|
||||
|
||||
public String nextToken() throws IOException {
|
||||
skipWhitespaceOrComments();
|
||||
trimWhitespaceOrComments();
|
||||
if (ch_ == -1) {
|
||||
return null;
|
||||
}
|
||||
|
@ -208,7 +208,7 @@ public abstract class AbstractToolProviderOperation<T extends AbstractToolProvid
|
|||
}
|
||||
|
||||
|
||||
private void skipWhitespaceOrComments() throws IOException {
|
||||
private void trimWhitespaceOrComments() throws IOException {
|
||||
while (ch_ != -1) {
|
||||
if (Character.isWhitespace(ch_)) { // Skip whitespaces
|
||||
ch_ = input_.read();
|
||||
|
|
|
@ -15,7 +15,7 @@ import java.util.Map;
|
|||
* @since 2.0.2
|
||||
*/
|
||||
public class JpackageOperation extends AbstractToolProviderOperation<JpackageOperation> {
|
||||
private final List<String> fileOptions_ = new ArrayList<>();
|
||||
private final List<String> cmdFiles_ = new ArrayList<>();
|
||||
private final JpackageOptions jpackageOptions_ = new JpackageOptions();
|
||||
|
||||
public JpackageOperation() {
|
||||
|
@ -24,7 +24,7 @@ public class JpackageOperation extends AbstractToolProviderOperation<JpackageOpe
|
|||
|
||||
@Override
|
||||
public void execute() throws Exception {
|
||||
toolArgs(fileOptions_.stream().map(opt -> '@' + opt).toList());
|
||||
toolArgs(cmdFiles_.stream().map(opt -> '@' + opt).toList());
|
||||
toolArgs(jpackageOptions_);
|
||||
super.execute();
|
||||
}
|
||||
|
@ -35,17 +35,17 @@ public class JpackageOperation extends AbstractToolProviderOperation<JpackageOpe
|
|||
* @return the list of files
|
||||
*/
|
||||
public List<String> fileOptions() {
|
||||
return fileOptions_;
|
||||
return cmdFiles_;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read options and/or mode from a file.
|
||||
* Read options and/or mode from file(s).
|
||||
*
|
||||
* @param file one or more file
|
||||
* @return this operation instance
|
||||
*/
|
||||
public JpackageOperation fileOptions(String... file) {
|
||||
fileOptions_.addAll(List.of(file));
|
||||
public JpackageOperation cmdFiles(String... file) {
|
||||
cmdFiles_.addAll(List.of(file));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -75,6 +75,25 @@ public class TestJlinkOperation {
|
|||
assertEquals("name-2=module-2", options.get("--launcher"), "incorrect launcher");
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCmdFiles() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jlink = new JlinkOperation().cmdFiles("src/test/resources/jlink/options_jlink.txt");
|
||||
assertDoesNotThrow(jlink::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
assertTrue(out.contains("List of available plugins:"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCmdFilesMulti() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jlink = new JlinkOperation().cmdFiles("src/test/resources/jlink/options_verbose.txt",
|
||||
"src/test/resources/jlink/options_version.txt");
|
||||
assertDoesNotThrow(jlink::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
assertTrue(out.matches("[\\d.]+[\\r\\n]+"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testDisablePlugin() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
|
@ -113,16 +132,6 @@ public class TestJlinkOperation {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFileOptions() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jlink = new JlinkOperation().cmdFiles("src/test/resources/jlink/options_verbose.txt",
|
||||
"src/test/resources/jlink/options_version.txt");
|
||||
assertDoesNotThrow(jlink::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
assertTrue(out.matches("[\\d.]+[\\r\\n]+"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testHelp() {
|
||||
var jlink = new JlinkOperation().toolArgs("--help");
|
||||
|
@ -138,15 +147,6 @@ public class TestJlinkOperation {
|
|||
assertThrows(ExitStatusException.class, jlink::execute);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testParseOptions() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jlink = new JlinkOperation().cmdFiles("src/test/resources/jlink/options_jlink.txt");
|
||||
assertDoesNotThrow(jlink::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
assertTrue(out.contains("List of available plugins:"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testVersion() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
|
|
|
@ -81,6 +81,32 @@ public class TestJmodOperation {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCmdFiles() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jmod = new JmodOperation().cmdFiles("src/test/resources/jlink/options_version.txt");
|
||||
assertDoesNotThrow(jmod::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
assertTrue(out.matches("[\\d.]+[\\r\\n]+"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCmdFilesCreate() throws IOException {
|
||||
var tmpdir = Files.createTempDirectory("bld-jmod-test").toFile();
|
||||
try {
|
||||
var mod = new File(tmpdir, "dev.mccue.tree.jmod");
|
||||
|
||||
var jmod = new JmodOperation()
|
||||
.cmdFiles("src/test/resources/jlink/options_jmod.txt")
|
||||
.jmodFile(mod.getAbsolutePath());
|
||||
|
||||
assertDoesNotThrow(jmod::execute);
|
||||
assertTrue(mod.exists(), "mod does not exist");
|
||||
} finally {
|
||||
FileUtils.deleteDirectory(tmpdir);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testCreate() throws IOException {
|
||||
var tmpdir = Files.createTempDirectory("bld-jmod-test").toFile();
|
||||
|
@ -88,6 +114,7 @@ public class TestJmodOperation {
|
|||
var mod = new File(tmpdir, "dev.mccue.tree.jmod");
|
||||
|
||||
var options = new JmodOptions()
|
||||
.date(ZonedDateTime.now())
|
||||
.legalNotices("src/test/resources/jlink/dev.mccue.apple/legal")
|
||||
.classpath("src/test/resources/jlink/build/jar/dev.mccue.apple.jar");
|
||||
var jmod = new JmodOperation()
|
||||
|
@ -138,15 +165,6 @@ public class TestJmodOperation {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFileOptions() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jmod = new JmodOperation().cmdFiles("src/test/resources/jlink/options_version.txt");
|
||||
assertDoesNotThrow(jmod::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
assertTrue(out.matches("[\\d.]+[\\r\\n]+"), out);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testHelp() {
|
||||
var jmod = new JmodOperation().toolArgs("--help-extra");
|
||||
|
|
|
@ -196,9 +196,9 @@ public class TestJpackageOperation {
|
|||
}
|
||||
|
||||
@Test
|
||||
void testFileOptions() {
|
||||
void testCmdFiles() {
|
||||
System.setOut(new PrintStream(outputStreamCaptor));
|
||||
var jpackage = new JpackageOperation().fileOptions("src/test/resources/jlink/options_verbose.txt",
|
||||
var jpackage = new JpackageOperation().cmdFiles("src/test/resources/jlink/options_verbose.txt",
|
||||
"src/test/resources/jlink/options_version.txt");
|
||||
assertDoesNotThrow(jpackage::execute);
|
||||
var out = outputStreamCaptor.toString();
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
--verbose --version #foo
|
||||
--module-path "foo bar" --list-plugins
|
||||
# bar
|
||||
--verbose --version #--foo
|
||||
--module-path "\'foo\' \"bar\" --bar" --list-plugins
|
||||
--output foo --bind-services
|
||||
|
||||
# bar
|
3
src/test/resources/jlink/options_jmod.txt
Normal file
3
src/test/resources/jlink/options_jmod.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
create
|
||||
--legal-notices src/test/resources/jlink/dev.mccue.apple/legal
|
||||
--class-path src/test/resources/jlink/build/jar/dev.mccue.apple.jar
|
Loading…
Add table
Add a link
Reference in a new issue