2
0
Fork 0
mirror of https://github.com/ethauvin/bld.git synced 2025-04-25 08:17:11 -07:00

Added more command files tests

This commit is contained in:
Erik C. Thauvin 2024-08-05 10:40:42 -07:00
parent d72e6ebc2e
commit 0382444c0c
Signed by: erik
GPG key ID: 776702A6A2DA330E
7 changed files with 63 additions and 41 deletions

View file

@ -159,7 +159,7 @@ public abstract class AbstractToolProviderOperation<T extends AbstractToolProvid
} }
public String nextToken() throws IOException { public String nextToken() throws IOException {
skipWhitespaceOrComments(); trimWhitespaceOrComments();
if (ch_ == -1) { if (ch_ == -1) {
return null; 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) { while (ch_ != -1) {
if (Character.isWhitespace(ch_)) { // Skip whitespaces if (Character.isWhitespace(ch_)) { // Skip whitespaces
ch_ = input_.read(); ch_ = input_.read();

View file

@ -15,7 +15,7 @@ import java.util.Map;
* @since 2.0.2 * @since 2.0.2
*/ */
public class JpackageOperation extends AbstractToolProviderOperation<JpackageOperation> { 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(); private final JpackageOptions jpackageOptions_ = new JpackageOptions();
public JpackageOperation() { public JpackageOperation() {
@ -24,7 +24,7 @@ public class JpackageOperation extends AbstractToolProviderOperation<JpackageOpe
@Override @Override
public void execute() throws Exception { public void execute() throws Exception {
toolArgs(fileOptions_.stream().map(opt -> '@' + opt).toList()); toolArgs(cmdFiles_.stream().map(opt -> '@' + opt).toList());
toolArgs(jpackageOptions_); toolArgs(jpackageOptions_);
super.execute(); super.execute();
} }
@ -35,17 +35,17 @@ public class JpackageOperation extends AbstractToolProviderOperation<JpackageOpe
* @return the list of files * @return the list of files
*/ */
public List<String> fileOptions() { 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 * @param file one or more file
* @return this operation instance * @return this operation instance
*/ */
public JpackageOperation fileOptions(String... file) { public JpackageOperation cmdFiles(String... file) {
fileOptions_.addAll(List.of(file)); cmdFiles_.addAll(List.of(file));
return this; return this;
} }

View file

@ -75,6 +75,25 @@ public class TestJlinkOperation {
assertEquals("name-2=module-2", options.get("--launcher"), "incorrect launcher"); 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 @Test
void testDisablePlugin() { void testDisablePlugin() {
System.setOut(new PrintStream(outputStreamCaptor)); 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 @Test
void testHelp() { void testHelp() {
var jlink = new JlinkOperation().toolArgs("--help"); var jlink = new JlinkOperation().toolArgs("--help");
@ -138,15 +147,6 @@ public class TestJlinkOperation {
assertThrows(ExitStatusException.class, jlink::execute); 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 @Test
void testVersion() { void testVersion() {
System.setOut(new PrintStream(outputStreamCaptor)); System.setOut(new PrintStream(outputStreamCaptor));

View file

@ -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 @Test
void testCreate() throws IOException { void testCreate() throws IOException {
var tmpdir = Files.createTempDirectory("bld-jmod-test").toFile(); 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 mod = new File(tmpdir, "dev.mccue.tree.jmod");
var options = new JmodOptions() var options = new JmodOptions()
.date(ZonedDateTime.now())
.legalNotices("src/test/resources/jlink/dev.mccue.apple/legal") .legalNotices("src/test/resources/jlink/dev.mccue.apple/legal")
.classpath("src/test/resources/jlink/build/jar/dev.mccue.apple.jar"); .classpath("src/test/resources/jlink/build/jar/dev.mccue.apple.jar");
var jmod = new JmodOperation() 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 @Test
void testHelp() { void testHelp() {
var jmod = new JmodOperation().toolArgs("--help-extra"); var jmod = new JmodOperation().toolArgs("--help-extra");

View file

@ -196,9 +196,9 @@ public class TestJpackageOperation {
} }
@Test @Test
void testFileOptions() { void testCmdFiles() {
System.setOut(new PrintStream(outputStreamCaptor)); 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"); "src/test/resources/jlink/options_version.txt");
assertDoesNotThrow(jpackage::execute); assertDoesNotThrow(jpackage::execute);
var out = outputStreamCaptor.toString(); var out = outputStreamCaptor.toString();

View file

@ -1,4 +1,5 @@
--verbose --version #foo --verbose --version #--foo
--module-path "foo bar" --list-plugins --module-path "\'foo\' \"bar\" --bar" --list-plugins
# bar --output foo --bind-services
# bar

View 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