2
0
Fork 0
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:
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 {
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();

View file

@ -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;
}

View file

@ -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));

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
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");

View file

@ -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();

View file

@ -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

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