8157185: jshell tool: ambiguous format -- distinguished arguments should be options

Reviewed-by: vromero
This commit is contained in:
Robert Field 2016-05-18 11:35:10 -07:00
parent 34b3d6385e
commit 3d6e1e8abc
9 changed files with 99 additions and 99 deletions

View File

@ -600,7 +600,7 @@ class Feedback {
return valid;
}
// For /set newmode <new-mode> [command|quiet [<old-mode>]]
// For /set newmode <new-mode> [-command|-quiet [<old-mode>]]
boolean setNewMode() {
String umode = at.next();
if (umode == null) {
@ -611,8 +611,8 @@ class Feedback {
errorat("jshell.err.feedback.expected.mode.name", umode);
valid = false;
}
String[] fluffOpt = at.next("command", "quiet");
boolean fluff = fluffOpt == null || fluffOpt.length != 1 || "command".equals(fluffOpt[0]);
String[] fluffOpt = at.next("-command", "-quiet");
boolean fluff = fluffOpt == null || fluffOpt.length != 1 || "-command".equals(fluffOpt[0]);
if (fluffOpt != null && fluffOpt.length != 1) {
errorat("jshell.err.feedback.command.quiet");
valid = false;

View File

@ -113,7 +113,7 @@ public class JShellTool implements MessageHandler {
private static final String LINE_SEP = System.getProperty("line.separator");
private static final Pattern LINEBREAK = Pattern.compile("\\R");
private static final Pattern HISTORY_ALL_START_FILENAME = Pattern.compile(
"((?<cmd>(all|history|start))(\\z|\\p{javaWhitespace}+))?(?<filename>.*)");
"((?<cmd>(-all|-history|-start))(\\z|\\p{javaWhitespace}+))?(?<filename>.*)");
private static final String RECORD_SEPARATOR = "\u241E";
private static final String RB_NAME_PREFIX = "jdk.internal.jshell.tool.resources";
private static final String VERSION_RB_NAME = RB_NAME_PREFIX + ".version";
@ -879,8 +879,8 @@ public class JShellTool implements MessageHandler {
}
private static final CompletionProvider EMPTY_COMPLETION_PROVIDER = new FixedCompletionProvider();
private static final CompletionProvider KEYWORD_COMPLETION_PROVIDER = new FixedCompletionProvider("all ", "start ", "history ");
private static final CompletionProvider RELOAD_OPTIONS_COMPLETION_PROVIDER = new FixedCompletionProvider("restore", "quiet");
private static final CompletionProvider KEYWORD_COMPLETION_PROVIDER = new FixedCompletionProvider("-all ", "-start ", "-history ");
private static final CompletionProvider RELOAD_OPTIONS_COMPLETION_PROVIDER = new FixedCompletionProvider("-restore", "-quiet");
private static final CompletionProvider FILE_COMPLETION_PROVIDER = fileCompletions(p -> true);
private final Map<String, Command> commands = new LinkedHashMap<>();
private void registerCommand(Command cmd) {
@ -1389,7 +1389,7 @@ public class JShellTool implements MessageHandler {
*
* @param snippets the base list of possible snippets
* @param arg the user's argument to the command, maybe be the empty string
* @param allowAll if true, allow the use of 'all' and 'start'
* @param allowAll if true, allow the use of '-all' and '-start'
* @return a Stream of referenced snippets or null if no matches to specific arg
*/
private <T extends Snippet> Stream<T> argToSnippets(List<T> snippets, String arg, boolean allowAll) {
@ -1403,15 +1403,15 @@ public class JShellTool implements MessageHandler {
* @param snippets the base list of possible snippets
* @param defFilter the filter to apply to the arguments if no argument
* @param arg the user's argument to the command, maybe be the empty string
* @param allowAll if true, allow the use of 'all' and 'start'
* @param allowAll if true, allow the use of '-all' and '-start'
* @return a Stream of referenced snippets or null if no matches to specific arg
*/
private <T extends Snippet> Stream<T> argToSnippets(List<T> snippets,
Predicate<Snippet> defFilter, String arg, boolean allowAll) {
if (allowAll && arg.equals("all")) {
if (allowAll && arg.equals("-all")) {
// all snippets including start-up, failed, and overwritten
return snippets.stream();
} else if (allowAll && arg.equals("start")) {
} else if (allowAll && arg.equals("-start")) {
// start-up snippets
return snippets.stream()
.filter(this::inStartUp);
@ -1436,8 +1436,8 @@ public class JShellTool implements MessageHandler {
/**
* Convert a user argument to a Stream of snippets referenced by that
* argument, printing an informative message if no matches. Allow 'all' and
* 'start'.
* argument, printing an informative message if no matches. Allow '-all' and
* '-start'.
*
* @param snippets the base list of possible snippets
* @param defFilter the filter to apply to the arguments if no argument
@ -1595,7 +1595,7 @@ public class JShellTool implements MessageHandler {
}
private boolean cmdList(String arg) {
if (arg.equals("history")) {
if (arg.equals("-history")) {
return cmdHistory();
}
Stream<Snippet> stream = argToSnippetsWithMessage(state.snippets(),
@ -1672,13 +1672,13 @@ public class JShellTool implements MessageHandler {
Iterable<String> history = replayableHistory;
boolean echo = true;
if (arg.length() > 0) {
if ("restore".startsWith(arg)) {
if ("-restore".startsWith(arg)) {
if (replayableHistoryPrevious == null) {
errormsg("jshell.err.reload.no.previous");
return false;
}
history = replayableHistoryPrevious;
} else if ("quiet".startsWith(arg)) {
} else if ("-quiet".startsWith(arg)) {
echo = false;
} else {
errormsg("jshell.err.arg", "/reload", arg);
@ -1705,13 +1705,13 @@ public class JShellTool implements MessageHandler {
boolean saveStart = false;
String cmd = mat.group("cmd");
if (cmd != null) switch (cmd) {
case "all":
saveAll = "all";
case "-all":
saveAll = "-all";
break;
case "history":
case "-history":
useHistory = true;
break;
case "start":
case "-start":
saveStart = true;
break;
}

View File

@ -34,7 +34,7 @@ jshell.err.opt.unknown = Unknown option: {0}
jshell.msg.terminated =\
State engine terminated.\n\
Restore definitions with: /reload restore
Restore definitions with: /reload -restore
jshell.msg.use.one.of = Use one of: {0}
jshell.err.def.or.id.not.found = No applicable definition or id found named: {0}
@ -102,7 +102,7 @@ jshell.msg.help.for.help = Type /help for help.
jshell.err.feedback.expected.new.feedback.mode = Expected new feedback mode -- {0}
jshell.err.feedback.expected.mode.name = Expected a new feedback mode name. ''{0}'' is a known feedback mode -- {1}
jshell.err.feedback.command.quiet = Specify either ''command'' or ''quiet'' -- {0}
jshell.err.feedback.command.quiet = Specify either ''-command'' or ''-quiet'' -- {0}
jshell.err.feedback.expected.field = Expected field name missing -- {0}
jshell.err.feedback.expected.mode = Expected a feedback mode -- {0}
jshell.err.feedback.does.not.match.mode = Does not match any current feedback mode: {0} -- {1}
@ -151,15 +151,15 @@ where possible options include:\n\
\ -version Version information\n
help.list.summary = list the source you have typed
help.list.args = [<name or id>|all|start]
help.list.args = [<name or id>|-all|-start]
help.list =\
Show the source of snippets, prefaced with the snippet id.\n\
\n\
/list\n\t\
List the currently active snippets of code that you typed or read with /open\n\n\
/list start\n\t\
/list -start\n\t\
List the automatically evaluated start-up snippets\n\n\
/list all\n\t\
/list -all\n\t\
List all snippets including failed, overwritten, dropped, and start-up\n\n\
/list <name>\n\t\
List snippets with the specified name (preference for active snippets)\n\n\
@ -191,18 +191,18 @@ Drop a snippet -- making it inactive.\n\
Drop the snippet with the specified snippet id
help.save.summary = Save snippet source to a file.
help.save.args = [all|history|start] <file>
help.save.args = [-all|-history|-start] <file>
help.save =\
Save the specified snippets and/or commands to the specified file.\n\
\n\
/save <file>\n\t\
Save the source of current active snippets to the file.\n\n\
/save all <file>\n\t\
/save -all <file>\n\t\
Save the source of all snippets to the file.\n\t\
Includes source including overwritten, failed, and start-up code.\n\n\
/save history <file>\n\t\
/save -history <file>\n\t\
Save the sequential history of all commands and snippets entered since jshell was launched.\n\n\
/save start <file>\n\t\
/save -start <file>\n\t\
Save the default start-up definitions to the file.
help.open.summary = open a file as source input
@ -214,7 +214,7 @@ Open a file and read its contents as snippets and commands.\n\
Read the specified file as jshell input.
help.vars.summary = list the declared variables and their values
help.vars.args = [<name or id>|all|start]
help.vars.args = [<name or id>|-all|-start]
help.vars =\
List the type, name, and value of jshell variables.\n\
\n\
@ -224,13 +224,13 @@ List the type, name, and value of jshell variables.\n\
List jshell variables with the specified name (preference for active variables)\n\n\
/vars <id>\n\t\
List the jshell variable with the specified snippet id\n\n\
/vars start\n\t\
/vars -start\n\t\
List the automatically added start-up jshell variables\n\n\
/vars all\n\t\
/vars -all\n\t\
List all jshell variables including failed, overwritten, dropped, and start-up
help.methods.summary = list the declared methods and their signatures
help.methods.args = [<name or id>|all|start]
help.methods.args = [<name or id>|-all|-start]
help.methods =\
List the name, parameter types, and return type of jshell methods.\n\
\n\
@ -240,13 +240,13 @@ List the name, parameter types, and return type of jshell methods.\n\
List jshell methods with the specified name (preference for active methods)\n\n\
/methods <id>\n\t\
List the jshell method with the specified snippet id\n\n\
/methods start\n\t\
/methods -start\n\t\
List the automatically added start-up jshell methods\n\n\
/methods all\n\t\
/methods -all\n\t\
List all snippets including failed, overwritten, dropped, and start-up
help.types.summary = list the declared types
help.types.args =[<name or id>|all|start]
help.types.args =[<name or id>|-all|-start]
help.types =\
List jshell classes, interfaces, and enums.\n\
\n\
@ -256,9 +256,9 @@ List jshell classes, interfaces, and enums.\n\
List jshell types with the specified name (preference for active types)\n\n\
/types <id>\n\t\
List the jshell type with the specified snippet id\n\n\
/types start\n\t\
/types -start\n\t\
List the automatically added start-up jshell types\n\n\
/types all\n\t\
/types -all\n\t\
List all jshell types including failed, overwritten, dropped, and start-up
help.imports.summary = list the imported items
@ -283,8 +283,8 @@ Reset the jshell tool code and execution state:\n\t\
Tool settings are maintained, as set with: /set ...\n\
Save any work before using this command
help.reload.summary = reset and replay relevant history -- current or previous (restore)
help.reload.args = [restore] [quiet]
help.reload.summary = reset and replay relevant history -- current or previous (-restore)
help.reload.args = [-restore] [-quiet]
help.reload =\
Reset the jshell tool code and execution state then replay each\n\
jshell valid command and valid snippet in the order they were entered.\n\
@ -293,13 +293,13 @@ jshell valid command and valid snippet in the order they were entered.\n\
Reset and replay the valid history since jshell was entered, or\n\t\
a /reset, or /reload command was executed -- whichever is most\n\t\
recent.\n\n\
/reload restore\n\t\
/reload -restore\n\t\
Reset and replay the valid history between the previous and most\n\t\
recent time that jshell was entered, or a /reset, or /reload\n\t\
command was executed. This can thus be used to restore a previous\n\t\
jshell tool sesson.\n\n\
/reload [restore] quiet\n\t\
With the 'quiet' argument the replay is not shown. Errors will display.
/reload [-restore] -quiet\n\t\
With the '-quiet' argument the replay is not shown. Errors will display.
help.classpath.summary = add a path to the classpath
help.classpath.args = <path>
@ -350,7 +350,7 @@ the command prompt, the feedback mode to use, or the format of output.\n\
The contents of the specified <file> become the default start-up snippets and commands.\n\n\
/set feedback <mode>\n\t\
Set the feedback mode describing displayed feedback for entered snippets and commands.\n\n\
/set newmode <new-mode> [command|quiet [<old-mode>]]\n\t\
/set newmode <new-mode> [-command|-quiet [<old-mode>]]\n\t\
Create a user-defined feedback mode, optionally copying from an existing mode.\n\n\
/set prompt <mode> "<prompt>" "<continuation-prompt>"\n\t\
Set the displayed prompts for a given feedback mode.\n\n\
@ -544,12 +544,12 @@ Currently defined feedback modes:\n
help.set.newmode = \
Create a user-defined feedback mode, optionally copying from an existing mode.\n\
\n\t\
/set newmode <new-mode> [command|quiet [<old-mode>]]\n\
/set newmode <new-mode> [-command|-quiet [<old-mode>]]\n\
\n\
Where <new-mode> is the name of a mode you wish to create.\n\
Where <old-mode> is the name of a previously defined feedback mode.\n\
If <old-mode> is present, its settings are copied to the new mode.\n\
'command' vs 'quiet' determines if informative/verifying command feedback is displayed.\n\
'-command' vs '-quiet' determines if informative/verifying command feedback is displayed.\n\
\n\
Once the new mode is created, use '/set format' and '/set prompt' to configure it.\n\
Use '/set feedback' to use the new mode.\n\
@ -583,7 +583,7 @@ The contents of the specified <file> become the default start-up snippets and co
which are run when the jshell tool is started or reset.
startup.feedback = \
/set newmode verbose command \n\
/set newmode verbose -command \n\
\n\
/set prompt verbose '\\njshell> ' ' ...> ' \n\
\n\
@ -650,11 +650,11 @@ startup.feedback = \
/set truncation verbose 80\n\
/set truncation verbose 500 varvalue\n\
\n\
/set newmode normal command verbose \n\
/set newmode normal -command verbose \n\
/set format normal display '' added,modified,replaced,overwrote,dropped-update \n\
/set format normal display '{pre}{action} variable {name}, reset to null{post}' replaced-vardecl,varinit-ok-update \n\
/set format normal display '{result}' added,modified,replaced-expression,varvalue,assignment,varinit,vardecl-ok-primary \n\
/set newmode concise quiet normal \n\
/set newmode concise -quiet normal \n\
\n\
/set prompt concise 'jshell> ' ' ...> ' \n\
\n\
@ -662,7 +662,7 @@ startup.feedback = \
\n\
/set feedback normal \n\
\n\
/set newmode silent quiet \n\
/set newmode silent -quiet \n\
/set prompt silent '-> ' '>> ' \n\
/set format silent pre '| ' \n\
/set format silent post '%n' \n\

View File

@ -60,11 +60,11 @@ public class CommandCompletionTest extends ReplToolTesting {
public void testList() {
test(false, new String[] {"-nostartup"},
a -> assertCompletion(a, "/l|", false, "/list "),
a -> assertCompletion(a, "/list |", false, "all ", "history ", "start "),
a -> assertCompletion(a, "/list h|", false, "history "),
a -> assertCompletion(a, "/list |", false, "-all ", "-history ", "-start "),
a -> assertCompletion(a, "/list -h|", false, "-history "),
a -> assertCompletion(a, "/list q|", false),
a -> assertVariable(a, "int", "xray"),
a -> assertCompletion(a, "/list |", false, "1", "all ", "history ", "start ", "xray"),
a -> assertCompletion(a, "/list |", false, "-all ", "-history ", "-start ", "1", "xray"),
a -> assertCompletion(a, "/list x|", false, "xray")
);
}
@ -108,7 +108,7 @@ public class CommandCompletionTest extends ReplToolTesting {
Compiler compiler = new Compiler();
assertCompletion("/s|", false, "/save ", "/set ");
List<String> p1 = listFiles(Paths.get(""));
Collections.addAll(p1, "all ", "history ", "start ");
Collections.addAll(p1, "-all ", "-history ", "-start ");
FileSystems.getDefault().getRootDirectories().forEach(s -> p1.add(s.toString()));
Collections.sort(p1);
assertCompletion("/save |", false, p1.toArray(new String[p1.size()]));
@ -116,7 +116,7 @@ public class CommandCompletionTest extends ReplToolTesting {
List<String> p2 = listFiles(classDir);
assertCompletion("/save " + classDir + "/|",
false, p2.toArray(new String[p2.size()]));
assertCompletion("/save all " + classDir + "/|",
assertCompletion("/save -all " + classDir + "/|",
false, p2.toArray(new String[p2.size()]));
}

View File

@ -403,13 +403,13 @@ public class ToolBasicTest extends ReplToolTesting {
(a) -> assertCommand(a, "int a;", null),
(a) -> assertCommand(a, "()", null, null, null, "", ""),
(a) -> assertClass(a, "class A { public String toString() { return \"A\"; } }", "class", "A"),
(a) -> assertCommandCheckOutput(a, "/list all", (out) ->
(a) -> assertCommandCheckOutput(a, "/list -all", (out) ->
output.addAll(Stream.of(out.split("\n"))
.filter(str -> !str.isEmpty())
.map(str -> str.substring(str.indexOf(':') + 2))
.filter(str -> !str.startsWith("/"))
.collect(Collectors.toList()))),
(a) -> assertCommand(a, "/save all " + path.toString(), "")
(a) -> assertCommand(a, "/save -all " + path.toString(), "")
);
assertEquals(Files.readAllLines(path), output);
}
@ -472,7 +472,7 @@ public class ToolBasicTest extends ReplToolTesting {
public void testStartSave() throws IOException {
Compiler compiler = new Compiler();
Path startSave = compiler.getPath("startSave.txt");
test(a -> assertCommand(a, "/save start " + startSave.toString(), null));
test(a -> assertCommand(a, "/save -start " + startSave.toString(), null));
List<String> lines = Files.lines(startSave)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());

View File

@ -43,7 +43,7 @@ public class ToolFormatTest extends ReplToolTesting {
public void testSetFormat() {
try {
test(
(a) -> assertCommandOutputStartsWith(a, "/set newmode test command", "| Created new feedback mode: test"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode test -command", "| Created new feedback mode: test"),
(a) -> assertCommand(a, "/set format test pre '$ '", ""),
(a) -> assertCommand(a, "/set format test post ''", ""),
(a) -> assertCommand(a, "/set format test act 'ADD' added", ""),
@ -82,7 +82,7 @@ public class ToolFormatTest extends ReplToolTesting {
public void testSetFormatSelector() {
List<ReplTest> tests = new ArrayList<>();
tests.add((a) -> assertCommandOutputStartsWith(a, "/set newmode ate quiet",
tests.add((a) -> assertCommandOutputStartsWith(a, "/set newmode ate -quiet",
"| Created new feedback mode: ate"));
tests.add((a) -> assertCommand(a, "/set feedback ate", ""));
StringBuilder sb = new StringBuilder();
@ -162,7 +162,7 @@ public class ToolFormatTest extends ReplToolTesting {
(a) -> assertCommand(a, "String s = java.util.stream.IntStream.range(65, 74)"+
".mapToObj(i -> \"\"+(char)i).reduce((a,b) -> a + b + a).get()",
"s ==> \"ABACABADABACABAEABACABADABACABAFABACABADABACABAEABACABADABACABAGABACABADABA ..."),
(a) -> assertCommandOutputStartsWith(a, "/set newmode test quiet", ""),
(a) -> assertCommandOutputStartsWith(a, "/set newmode test -quiet", ""),
(a) -> assertCommandOutputStartsWith(a, "/set feedback test", ""),
(a) -> assertCommand(a, "/set format test display '{type}:{value}' primary", ""),
(a) -> assertCommand(a, "/set truncation test 20", ""),
@ -187,11 +187,11 @@ public class ToolFormatTest extends ReplToolTesting {
public void testSetNewModeQuiet() {
try {
test(
(a) -> assertCommandOutputStartsWith(a, "/set newmode nmq quiet normal", "| Created new feedback mode: nmq"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode nmq -quiet normal", "| Created new feedback mode: nmq"),
(a) -> assertCommand(a, "/set feedback nmq", ""),
(a) -> assertCommand(a, "/se ne nmq2 q nor", ""),
(a) -> assertCommand(a, "/se ne nmq2 -q nor", ""),
(a) -> assertCommand(a, "/se fee nmq2", ""),
(a) -> assertCommand(a, "/set newmode nmc command normal", ""),
(a) -> assertCommand(a, "/set newmode nmc -command normal", ""),
(a) -> assertCommandOutputStartsWith(a, "/set feedback nmc", "| Feedback mode: nmc"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode nm", "| Created new feedback mode: nm"),
(a) -> assertCommandOutputStartsWith(a, "/set feedback nm", "| Feedback mode: nm"),
@ -206,15 +206,15 @@ public class ToolFormatTest extends ReplToolTesting {
public void testSetError() {
try {
test(
(a) -> assertCommandOutputStartsWith(a, "/set newmode tee command foo",
(a) -> assertCommandOutputStartsWith(a, "/set newmode tee -command foo",
"| Does not match any current feedback mode: foo"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode tee flurb",
"| Specify either 'command' or 'quiet'"),
"| Specify either '-command' or '-quiet'"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode te2",
"| Created new feedback mode: te2"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode te2 command",
(a) -> assertCommandOutputStartsWith(a, "/set newmode te2 -command",
"| Expected a new feedback mode name. 'te2' is a known feedback mode"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode te command normal",
(a) -> assertCommandOutputStartsWith(a, "/set newmode te -command normal",
"| Created new feedback mode: te"),
(a) -> assertCommand(a, "/set format te errorpre 'ERROR: '", ""),
(a) -> assertCommandOutputStartsWith(a, "/set feedback te",
@ -260,8 +260,8 @@ public class ToolFormatTest extends ReplToolTesting {
(a) -> assertCommandOutputStartsWith(a, "/set newmode te",
"ERROR: Expected a new feedback mode name"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode x xyz",
"ERROR: Specify either 'command' or 'quiet'"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode x quiet y",
"ERROR: Specify either '-command' or '-quiet'"),
(a) -> assertCommandOutputStartsWith(a, "/set newmode x -quiet y",
"ERROR: Does not match any current feedback mode"),
(a) -> assertCommandOutputStartsWith(a, "/set prompt",
"ERROR: Expected a feedback mode"),

View File

@ -76,7 +76,7 @@ public class ToolLocaleMessageTest extends ReplToolTesting {
public void testSample() {
try {
testLocale(
(a) -> assertCommandOK(a, "/set newmode test command normal", "test"),
(a) -> assertCommandOK(a, "/set newmode test -command normal", "test"),
(a) -> assertCommandOK(a, "/set format test errorpre 'ERROR: '"),
(a) -> assertCommandOK(a, "/set feedback test", "test"),
@ -101,7 +101,7 @@ public class ToolLocaleMessageTest extends ReplToolTesting {
public void testCommand() {
try {
testLocale(
(a) -> assertCommandOK(a, "/set newmode test command normal", "test"),
(a) -> assertCommandOK(a, "/set newmode test -command normal", "test"),
(a) -> assertCommandOK(a, "/set format test errorpre 'ERROR: '"),
(a) -> assertCommandOK(a, "/set feedback test", "test"),
@ -134,13 +134,13 @@ public class ToolLocaleMessageTest extends ReplToolTesting {
public void testHelp() {
testLocale(
(a) -> assertCommandOK(a, "/help", "/list", "/save", "/set", "[restore]"),
(a) -> assertCommandOK(a, "/help /list", "start", "all"),
(a) -> assertCommandOK(a, "/help", "/list", "/save", "/set", "[-restore]"),
(a) -> assertCommandOK(a, "/help /list", "-start", "-all"),
(a) -> assertCommandOK(a, "/help /edit", "/set editor"),
(a) -> assertCommandOK(a, "/help /drop", "/drop"),
(a) -> assertCommandOK(a, "/help /save", "all", "start"),
(a) -> assertCommandOK(a, "/help /save", "-all", "-start"),
(a) -> assertCommandOK(a, "/help /open", "/open"),
(a) -> assertCommandOK(a, "/help /reload", "restore"),
(a) -> assertCommandOK(a, "/help /reload", "-restore"),
(a) -> assertCommandOK(a, "/help /help", "intro"),
(a) -> assertCommandOK(a, "/help /set", "newmode"),
(a) -> assertCommandOK(a, "/help /?", "intro"),
@ -156,11 +156,11 @@ public class ToolLocaleMessageTest extends ReplToolTesting {
public void testFeedbackError() {
try {
testLocale(
(a) -> assertCommandOK(a, "/set newmode tee command foo", "foo"),
(a) -> assertCommandOK(a, "/set newmode tee flurb", "command", "quiet"),
(a) -> assertCommandOK(a, "/set newmode tee -command foo", "foo"),
(a) -> assertCommandOK(a, "/set newmode tee flurb", "-command", "-quiet"),
(a) -> assertCommandOK(a, "/set newmode te2", "te2"),
(a) -> assertCommandOK(a, "/set newmode te2 command", "te2"),
(a) -> assertCommandOK(a, "/set newmode te command normal", "te"),
(a) -> assertCommandOK(a, "/set newmode te2 -command", "te2"),
(a) -> assertCommandOK(a, "/set newmode te -command normal", "te"),
(a) -> assertCommandOK(a, "/set format te errorpre 'ERROR: '"),
(a) -> assertCommandOK(a, "/set feedback te"),
@ -182,7 +182,7 @@ public class ToolLocaleMessageTest extends ReplToolTesting {
(a) -> assertCommandFail(a, "/set newmode"),
(a) -> assertCommandFail(a, "/set newmode te"),
(a) -> assertCommandFail(a, "/set newmode x xyz"),
(a) -> assertCommandFail(a, "/set newmode x quiet y"),
(a) -> assertCommandFail(a, "/set newmode x -quiet y"),
(a) -> assertCommandFail(a, "/set prompt"),
(a) -> assertCommandFail(a, "/set prompt te"),
(a) -> assertCommandFail(a, "/set prompt te aaa xyz", "aaa"),

View File

@ -120,7 +120,7 @@ public class ToolReloadTest extends ReplToolTesting {
a -> dropMethod(a, "/drop b", "b ()I", "| dropped method b()"),
a -> assertClass(a, "class A {}", "class", "A"),
a -> dropClass(a, "/dr A", "class A", "| dropped class A"),
a -> assertCommand(a, "/reload quiet",
a -> assertCommand(a, "/reload -quiet",
"| Restarting and restoring state."),
a -> assertCommandCheckOutput(a, "/vars", assertVariables()),
a -> assertCommandCheckOutput(a, "/methods", assertMethods()),
@ -169,7 +169,7 @@ public class ToolReloadTest extends ReplToolTesting {
"(int)int", "m"),
(a) -> evaluateExpression(a, "int", "m(x)", "25"),
(a) -> assertCommand(a, "/reset", "| Resetting state."),
(a) -> assertCommand(a, "/reload restore",
(a) -> assertCommand(a, "/reload -restore",
"| Restarting and restoring from previous state.\n" +
"-: int x = 5;\n" +
"-: int m(int z) { return z * z; }\n" +
@ -188,8 +188,8 @@ public class ToolReloadTest extends ReplToolTesting {
(a) -> evaluateExpression(a, "int", "m(x)", "25"),
(a) -> assertCommand(a, "System.exit(1);",
"| State engine terminated.\n" +
"| Restore definitions with: /reload restore"),
(a) -> assertCommand(a, "/reload restore",
"| Restore definitions with: /reload -restore"),
(a) -> assertCommand(a, "/reload -restore",
"| Restarting and restoring from previous state.\n" +
"-: int x = 5;\n" +
"-: int m(int z) { return z * z; }\n" +
@ -208,7 +208,7 @@ public class ToolReloadTest extends ReplToolTesting {
(a) -> evaluateExpression(a, "int", "m(x)", "25")
);
test(false, new String[]{"-nostartup"},
(a) -> assertCommand(a, "/reload restore",
(a) -> assertCommand(a, "/reload -restore",
"| Restarting and restoring from previous state.\n" +
"-: int x = 5;\n" +
"-: int m(int z) { return z * z; }\n" +

View File

@ -284,7 +284,7 @@ public class ToolSimpleTest extends ReplToolTesting {
(a) -> assertHelp(a, "/?", "/list", "/help", "/exit", "intro"),
(a) -> assertHelp(a, "/help", "/list", "/help", "/exit", "intro"),
(a) -> assertHelp(a, "/help short", "shortcuts", "<tab>"),
(a) -> assertHelp(a, "/? /li", "/list all", "snippets"),
(a) -> assertHelp(a, "/? /li", "/list -all", "snippets"),
(a) -> assertHelp(a, "/help /help", "/help <command>")
);
}
@ -314,15 +314,15 @@ public class ToolSimpleTest extends ReplToolTesting {
List<String> startVarList = new ArrayList<>(START_UP);
startVarList.add("int aardvark");
test(
a -> assertCommandCheckOutput(a, "/list all",
a -> assertCommandCheckOutput(a, "/list -all",
s -> checkLineToList(s, START_UP)),
a -> assertCommandOutputStartsWith(a, "/list " + arg,
"| No applicable definition or id found named: " + arg),
a -> assertVariable(a, "int", "aardvark"),
a -> assertCommandOutputContains(a, "/list aardvark", "aardvark"),
a -> assertCommandCheckOutput(a, "/list start",
a -> assertCommandCheckOutput(a, "/list -start",
s -> checkLineToList(s, START_UP)),
a -> assertCommandCheckOutput(a, "/list all",
a -> assertCommandCheckOutput(a, "/list -all",
s -> checkLineToList(s, startVarList)),
a -> assertCommandCheckOutput(a, "/list printf",
s -> assertTrue(s.contains("void printf"))),
@ -335,7 +335,7 @@ public class ToolSimpleTest extends ReplToolTesting {
String arg = "qqqq";
List<String> startVarList = new ArrayList<>();
test(
a -> assertCommandCheckOutput(a, "/vars all",
a -> assertCommandCheckOutput(a, "/vars -all",
s -> checkLineToList(s, startVarList)),
a -> assertCommandOutputStartsWith(a, "/vars " + arg,
"| No applicable definition or id found named: " + arg),
@ -344,9 +344,9 @@ public class ToolSimpleTest extends ReplToolTesting {
a -> assertVariable(a, "int", "a"),
a -> assertVariable(a, "double", "a", "1", "1.0"),
a -> assertCommandOutputStartsWith(a, "/vars aardvark", "| int aardvark = 0"),
a -> assertCommandCheckOutput(a, "/vars start",
a -> assertCommandCheckOutput(a, "/vars -start",
s -> checkLineToList(s, startVarList)),
a -> assertCommandOutputStartsWith(a, "/vars all",
a -> assertCommandOutputStartsWith(a, "/vars -all",
"| int aardvark = 0\n| int a = "),
a -> assertCommandOutputStartsWith(a, "/vars printf",
"| No applicable definition or id found named: printf"),
@ -359,9 +359,9 @@ public class ToolSimpleTest extends ReplToolTesting {
String arg = "qqqq";
List<String> startMethodList = new ArrayList<>(START_UP_CMD_METHOD);
test(
a -> assertCommandCheckOutput(a, "/methods all",
a -> assertCommandCheckOutput(a, "/methods -all",
s -> checkLineToList(s, startMethodList)),
a -> assertCommandCheckOutput(a, "/methods start",
a -> assertCommandCheckOutput(a, "/methods -start",
s -> checkLineToList(s, startMethodList)),
a -> assertCommandCheckOutput(a, "/methods printf",
s -> checkLineToList(s, startMethodList)),
@ -377,7 +377,7 @@ public class ToolSimpleTest extends ReplToolTesting {
"| No applicable definition or id found named: " + arg),
a -> assertCommandOutputStartsWith(a, "/methods aardvark",
"| No applicable definition or id found named: aardvark"),
a -> assertCommandCheckOutput(a, "/methods start",
a -> assertCommandCheckOutput(a, "/methods -start",
s -> checkLineToList(s, startMethodList)),
a -> assertCommandCheckOutput(a, "/methods printf",
s -> checkLineToList(s, startMethodList)),
@ -393,16 +393,16 @@ public class ToolSimpleTest extends ReplToolTesting {
String arg = "qqqq";
List<String> startTypeList = new ArrayList<>();
test(
a -> assertCommandCheckOutput(a, "/types all",
a -> assertCommandCheckOutput(a, "/types -all",
s -> checkLineToList(s, startTypeList)),
a -> assertCommandCheckOutput(a, "/types start",
a -> assertCommandCheckOutput(a, "/types -start",
s -> checkLineToList(s, startTypeList)),
a -> assertCommandOutputStartsWith(a, "/types " + arg,
"| No applicable definition or id found named: " + arg),
a -> assertVariable(a, "int", "aardvark"),
(a) -> assertClass(a, "class A { }", "class", "A"),
(a) -> assertClass(a, "interface A { }", "interface", "A"),
a -> assertCommandOutputStartsWith(a, "/types all",
a -> assertCommandOutputStartsWith(a, "/types -all",
"| class A\n" +
"| interface A"),
(a) -> assertClass(a, "enum E { }", "enum", "E"),
@ -417,7 +417,7 @@ public class ToolSimpleTest extends ReplToolTesting {
"| @interface B"),
a -> assertCommandOutputStartsWith(a, "/types " + arg,
"| No applicable definition or id found named: " + arg),
a -> assertCommandCheckOutput(a, "/types start",
a -> assertCommandCheckOutput(a, "/types -start",
s -> checkLineToList(s, startTypeList))
);
}