langtools/test/jdk/jshell/ToolRetainTest.java
changeset 41635 cb3d04878117
parent 38539 71874886920f
child 41937 1313399705e9
equal deleted inserted replaced
41634:3f9c491b05aa 41635:cb3d04878117
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25  * @test
    25  * @test
    26  * @bug 8157200
    26  * @bug 8157200 8163840
    27  * @summary Tests of what information is retained across jshell tool runs
    27  * @summary Tests of what information is retained across jshell tool runs
    28  * @modules jdk.jshell/jdk.internal.jshell.tool
    28  * @modules jdk.jshell/jdk.internal.jshell.tool
    29  * @build ToolRetainTest ReplToolTesting
    29  * @build ToolRetainTest ReplToolTesting
    30  * @run testng ToolRetainTest
    30  * @run testng ToolRetainTest
    31  */
    31  */
    39         test(
    39         test(
    40                 (a) -> assertCommand(a, "/set mode trm -quiet", "|  Created new feedback mode: trm"),
    40                 (a) -> assertCommand(a, "/set mode trm -quiet", "|  Created new feedback mode: trm"),
    41                 (a) -> assertCommand(a, "/set feedback trm", ""),
    41                 (a) -> assertCommand(a, "/set feedback trm", ""),
    42                 (a) -> assertCommand(a, "/set format trm display '{name}:{value}'", ""),
    42                 (a) -> assertCommand(a, "/set format trm display '{name}:{value}'", ""),
    43                 (a) -> assertCommand(a, "int x = 45", "x:45"),
    43                 (a) -> assertCommand(a, "int x = 45", "x:45"),
    44                 (a) -> assertCommand(a, "/retain mode trm", ""),
    44                 (a) -> assertCommand(a, "/set mode -retain trm", ""),
    45                 (a) -> assertCommand(a, "/exit", "")
    45                 (a) -> assertCommand(a, "/exit", "")
    46         );
    46         );
    47         test(
    47         test(
       
    48                 (a) -> assertCommandOutputContains(a, "/set mode trm",
       
    49                         "/set format trm display \"{name}:{value}\""),
    48                 (a) -> assertCommand(a, "/set feedback trm", ""),
    50                 (a) -> assertCommand(a, "/set feedback trm", ""),
    49                 (a) -> assertCommand(a, "int x = 45", "x:45")
    51                 (a) -> assertCommand(a, "int x = 45", "x:45")
    50         );
    52         );
    51     }
    53     }
    52 
    54 
    53     public void testRetain2Mode() {
    55     public void testRetain2Mode() {
    54         test(
    56         test(
    55                 (a) -> assertCommand(a, "/set mode trm1 -quiet", "|  Created new feedback mode: trm1"),
    57                 (a) -> assertCommand(a, "/set mode trm1 -quiet", "|  Created new feedback mode: trm1"),
    56                 (a) -> assertCommand(a, "/retain mode trm1", ""),
    58                 (a) -> assertCommand(a, "/set mode -retain trm1", ""),
    57                 (a) -> assertCommand(a, "/retain feedback trm1", ""),
    59                 (a) -> assertCommand(a, "/set feedback -retain trm1", ""),
    58                 (a) -> assertCommand(a, "/set format trm1 display '{name}:{value}'", ""),
    60                 (a) -> assertCommand(a, "/set format trm1 display '{name}:{value}'", ""),
    59                 (a) -> assertCommand(a, "int x = 66", "x:66"),
    61                 (a) -> assertCommand(a, "int x = 66", "x:66"),
    60                 (a) -> assertCommand(a, "/retain mode trm1", ""),
    62                 (a) -> assertCommand(a, "/set mode -retain trm1", ""),
    61                 (a) -> assertCommand(a, "/exit", "")
    63                 (a) -> assertCommand(a, "/exit", "")
    62         );
    64         );
    63         test(
    65         test(
    64                 (a) -> assertCommand(a, "/set mode trm2 -quiet", ""),
    66                 (a) -> assertCommand(a, "/set mode trm2 -quiet", ""),
    65                 (a) -> assertCommand(a, "/set format trm2 display '{name}={value}'", ""),
    67                 (a) -> assertCommand(a, "/set format trm2 display '{name}={value}'", ""),
    66                 (a) -> assertCommand(a, "int x = 45", "x:45"),
    68                 (a) -> assertCommand(a, "int x = 45", "x:45"),
    67                 (a) -> assertCommand(a, "/retain mode trm2", ""),
    69                 (a) -> assertCommand(a, "/set mode -retain trm2", ""),
    68                 (a) -> assertCommand(a, "/exit", "")
    70                 (a) -> assertCommand(a, "/exit", "")
    69         );
    71         );
    70         test(
    72         test(
       
    73                 (a) -> assertCommandOutputContains(a, "/set mode trm1",
       
    74                         "/set format trm1 display \"{name}:{value}\""),
       
    75                 (a) -> assertCommand(a, "/set format trm2 display",
       
    76                         "|  /set format trm2 display \"{name}={value}\""),
    71                 (a) -> assertCommand(a, "int x = 99", "x:99"),
    77                 (a) -> assertCommand(a, "int x = 99", "x:99"),
    72                 (a) -> assertCommand(a, "/set feedback trm2", ""),
    78                 (a) -> assertCommand(a, "/set feedback trm2", ""),
    73                 (a) -> assertCommand(a, "int z = 77", "z=77")
    79                 (a) -> assertCommand(a, "int z = 77", "z=77")
    74         );
    80         );
    75     }
    81     }
    76 
    82 
    77     public void testRetainFeedback() {
    83     public void testRetainFeedback() {
    78         test(
    84         test(
    79                 (a) -> assertCommand(a, "/retain feedback verbose", "|  Feedback mode: verbose"),
    85                 (a) -> assertCommand(a, "/set feedback -retain verbose", "|  Feedback mode: verbose"),
    80                 (a) -> assertCommand(a, "/exit", "")
    86                 (a) -> assertCommand(a, "/exit", "")
    81         );
    87         );
    82         test(
    88         test(
       
    89                 (a) -> assertCommandOutputStartsWith(a, "/set feedback",
       
    90                         "|  /set feedback -retain verbose\n" +
       
    91                         "|  \n" +
       
    92                         "|  "),
    83                 (a) -> assertCommandOutputContains(a, "int h =8", "|  created variable h : int")
    93                 (a) -> assertCommandOutputContains(a, "int h =8", "|  created variable h : int")
    84         );
    94         );
    85     }
    95     }
    86 
    96 
    87     public void testRetainFeedbackBlank() {
    97     public void testRetainFeedbackBlank() {
       
    98         String feedbackOut =
       
    99                         "|  /set feedback -retain verbose\n" +
       
   100                         "|  \n" +
       
   101                         "|  Available feedback modes:\n" +
       
   102                         "|     concise\n" +
       
   103                         "|     normal\n" +
       
   104                         "|     silent\n" +
       
   105                         "|     verbose";
    88         test(
   106         test(
    89                 (a) -> assertCommand(a, "/set feedback verbose", "|  Feedback mode: verbose"),
   107                 (a) -> assertCommand(a, "/set feedback verbose", "|  Feedback mode: verbose"),
    90                 (a) -> assertCommand(a, "/retain feedback", ""),
   108                 (a) -> assertCommand(a, "/set feedback -retain", ""),
       
   109                 (a) -> assertCommand(a, "/set feedback", feedbackOut),
    91                 (a) -> assertCommand(a, "/exit", "")
   110                 (a) -> assertCommand(a, "/exit", "")
    92         );
   111         );
    93         test(
   112         test(
       
   113                 (a) -> assertCommand(a, "/set feedback", feedbackOut),
    94                 (a) -> assertCommandOutputContains(a, "int qw = 5", "|  created variable qw : int")
   114                 (a) -> assertCommandOutputContains(a, "int qw = 5", "|  created variable qw : int")
    95         );
   115         );
    96     }
   116     }
    97 
   117 
    98     public void testRetainEditor() {
   118     public void testRetainEditor() {
    99         test(
   119         test(
   100                 (a) -> assertCommand(a, "/retain editor nonexistent", "|  Editor set to: nonexistent"),
   120                 (a) -> assertCommand(a, "/set editor -retain nonexistent",
       
   121                         "|  Editor set to: nonexistent\n" +
       
   122                         "|  Editor setting retained: nonexistent"),
   101                 (a) -> assertCommand(a, "/exit", "")
   123                 (a) -> assertCommand(a, "/exit", "")
   102         );
   124         );
   103         test(
   125         test(
       
   126                 (a) -> assertCommand(a, "/set editor", "|  /set editor -retain nonexistent"),
   104                 (a) -> assertCommandOutputContains(a, "int h =8", ""),
   127                 (a) -> assertCommandOutputContains(a, "int h =8", ""),
   105                 (a) -> assertCommandOutputContains(a, "/edit h", "Edit Error:")
   128                 (a) -> assertCommandOutputContains(a, "/edit h", "Edit Error:")
   106         );
   129         );
   107     }
   130     }
   108 
   131 
   109     public void testRetainEditorBlank() {
   132     public void testRetainEditorBlank() {
   110         test(
   133         test(
   111                 (a) -> assertCommand(a, "/set editor nonexistent", "|  Editor set to: nonexistent"),
   134                 (a) -> assertCommand(a, "/set editor nonexistent", "|  Editor set to: nonexistent"),
   112                 (a) -> assertCommand(a, "/retain editor", ""),
   135                 (a) -> assertCommand(a, "/set editor -retain", "|  Editor setting retained: nonexistent"),
   113                 (a) -> assertCommand(a, "/exit", "")
   136                 (a) -> assertCommand(a, "/exit", "")
   114         );
   137         );
   115         test(
   138         test(
   116                 (a) -> assertCommandOutputContains(a, "int h =8", ""),
   139                 (a) -> assertCommandOutputContains(a, "int h =8", ""),
   117                 (a) -> assertCommandOutputContains(a, "/edit h", "Edit Error:")
   140                 (a) -> assertCommandOutputContains(a, "/edit h", "Edit Error:")
   118         );
   141         );
   119     }
   142     }
   120 
   143 
   121     public void testRetainModeNeg() {
   144     public void testRetainModeNeg() {
   122         test(
   145         test(
   123                 (a) -> assertCommandOutputStartsWith(a, "/retain mode verbose",
   146                 (a) -> assertCommandOutputStartsWith(a, "/set mode -retain verbose",
   124                         "|  Not valid with a predefined mode"),
   147                         "|  Not valid with a predefined mode"),
   125                 (a) -> assertCommandOutputStartsWith(a, "/retain mode ????",
   148                 (a) -> assertCommandOutputStartsWith(a, "/set mode -retain ????",
   126                         "|  Expected a feedback mode name: ????")
   149                         "|  Expected a feedback mode name: ????")
   127         );
   150         );
   128     }
   151     }
   129 
   152 
   130     public void testRetainFeedbackNeg() {
   153     public void testRetainFeedbackNeg() {
   131         test(
   154         test(
   132                 (a) -> assertCommandOutputStartsWith(a, "/retain feedback babble1",
   155                 (a) -> assertCommandOutputStartsWith(a, "/set feedback -retain babble1",
   133                         "|  Does not match any current feedback mode"),
   156                         "|  Does not match any current feedback mode"),
   134                 (a) -> assertCommand(a, "/set mode trfn",
   157                 (a) -> assertCommandOutputStartsWith(a, "/set mode trfn",
       
   158                         "|  To create a new mode either the -command or the -quiet option must be used -- \n" +
       
   159                         "|  Does not match any current feedback mode: trfn -- /set mode trfn"),
       
   160                 (a) -> assertCommand(a, "/set mode trfn -command",
   135                         "|  Created new feedback mode: trfn"),
   161                         "|  Created new feedback mode: trfn"),
   136                 (a) -> assertCommandOutputContains(a, "/retain feedback trfn",
   162                 (a) -> assertCommandOutputContains(a, "/set feedback -retain trfn",
   137                         "is predefined or has been retained"),
   163                         "is predefined or has been retained"),
   138                 (a) -> assertCommandOutputStartsWith(a, "/retain feedback !!!!",
   164                 (a) -> assertCommandOutputStartsWith(a, "/set feedback -retain !!!!",
   139                         "|  Expected a feedback mode name: !!!!")
   165                         "|  Expected a feedback mode name: !!!!")
   140         );
   166         );
   141     }
   167     }
   142 
   168 
   143     public void testNoRetainMode() {
   169     public void testNoRetainMode() {