spec test index / oilshell.org
| status | osh | osh-cpp | |
| pass | 1 | 1 | |
| FAIL | 6 | 6 | |
| total | 7 | 7 | |
| case | osh | osh-cpp | description |
| 0 | pass | pass | TODO: SETUP should be shared |
| 1 | FAIL | FAIL | retrieve key |
| details | details | ||
| 2 | FAIL | FAIL | set key |
| details | details | ||
| 3 | FAIL | FAIL | iterate over keys |
| details | details | ||
| 4 | FAIL | FAIL | iterate over both keys and values |
| details | details | ||
| 5 | FAIL | FAIL | get length |
| details | details | ||
| 6 | FAIL | FAIL | index by integer does not work |
| details | details |
2 passed, 0 OK, 0 not implemented, 0 BUG, 6 failed, 0 timeouts, 0 cases skipped 6 failed under osh
| osh | 1 retrieve key [osh stdout] Expected 'b\n', got 'aa\n' stdout: aastderr: |
| osh-cpp | 1 retrieve key [osh-cpp stdout] Expected 'b\n', got 'aa\n' stdout: aastderr: |
| osh | 2 set key [osh stdout] Expected "['bar', 'b', 'c', 'XX']\n", got "['XX', 'b', 'foo', 'bar', 'a+1', 'c']\n" stdout: ['XX', 'b', 'foo', 'bar', 'a+1', 'c']stderr: |
| osh-cpp | 2 set key [osh-cpp stdout] Expected "['bar', 'b', 'c', 'XX']\n", got "['XX', 'b', 'foo', 'bar', 'a+1', 'c']\n" stdout: ['XX', 'b', 'foo', 'bar', 'a+1', 'c']stderr: |
| osh | 3 iterate over keys [osh stdout] Expected u'k1: v1\nk2: v2\nk3: v3\n', got '' [osh status] Expected 0, got 1 [osh stderr] Found 'Traceback (most recent' stdout: stderr: Traceback (most recent call last):
File "/home/uke/oil/bin/oils_for_unix.py", line 198, in <module>
sys.exit(main(sys.argv))
File "/home/uke/oil/bin/oils_for_unix.py", line 170, in main
return AppBundleMain(argv)
File "/home/uke/oil/bin/oils_for_unix.py", line 140, in AppBundleMain
return shell.Main('osh', arg_r, environ, login_shell, loader, readline)
File "/home/uke/oil/core/shell.py", line 1138, in Main
cmd_flags=cmd_eval.IsMainProgram)
File "/home/uke/oil/core/main_loop.py", line 341, in Batch
node = c_parser.ParseLogicalLine() # can raise ParseError
File "/home/uke/oil/osh/cmd_parse.py", line 2774, in ParseLogicalLine
node = self._ParseCommandLine()
File "/home/uke/oil/osh/cmd_parse.py", line 2633, in _ParseCommandLine
child = self.ParseAndOr()
File "/home/uke/oil/osh/cmd_parse.py", line 2557, in ParseAndOr
return self._ParseAndOr()
File "/home/uke/oil/osh/cmd_parse.py", line 2568, in _ParseAndOr
child = self.ParsePipeline()
File "/home/uke/oil/osh/cmd_parse.py", line 2516, in ParsePipeline
child = self.ParseCommand()
File "/home/uke/oil/osh/cmd_parse.py", line 2434, in ParseCommand
return self.ParseCompoundCommand()
File "/home/uke/oil/osh/cmd_parse.py", line 2052, in ParseCompoundCommand
return self.ParseFor()
File "/home/uke/oil/osh/cmd_parse.py", line 1596, in ParseFor
n2 = self._ParseForEachLoop(for_kw)
File "/home/uke/oil/osh/cmd_parse.py", line 1535, in _ParseForEachLoop
iter_words, semi_tok = self.ParseForWords()
File "/home/uke/oil/osh/cmd_parse.py", line 1378, in ParseForWords
self._GetWord()
File "/home/uke/oil/osh/cmd_parse.py", line 648, in _GetWord
w = self.w_parser.ReadWord(self.next_lex_mode)
File "/home/uke/oil/osh/word_parse.py", line 2171, in ReadWord
w = self._ReadWord(word_mode)
File "/home/uke/oil/osh/word_parse.py", line 2098, in _ReadWord
return self._ReadCompoundWord(lex_mode)
File "/home/uke/oil/osh/word_parse.py", line 1783, in _ReadCompoundWord
return self._ReadCompoundWord3(lex_mode, Id.Undefined_Tok, True)
File "/home/uke/oil/osh/word_parse.py", line 1878, in _ReadCompoundWord3
part = self._ReadUnquotedLeftParts(is_triple_quoted)
File "/home/uke/oil/osh/word_parse.py", line 839, in _ReadUnquotedLeftParts
dq_part = self._ReadDoubleQuoted(self.cur_token)
File "/home/uke/oil/osh/word_parse.py", line 1101, in _ReadDoubleQuoted
self._ReadLikeDQ(left_token, False, parts)
File "/home/uke/oil/osh/word_parse.py", line 1044, in _ReadLikeDQ
part = self._ReadDoubleQuotedLeftParts()
File "/home/uke/oil/osh/word_parse.py", line 778, in _ReadDoubleQuotedLeftParts
raise AssertionError(self.cur_token)
AssertionError: (Token
id: Id.Left_DollarBraceZsh
length: 6
col: 10
line:
(SourceLine
line_num: 3
content: "for k in \"${(@k)assoc}\"; do\n"
src: (source.Stdin comment:"")
)
)
|
| osh-cpp | 3 iterate over keys [osh-cpp stdout] Expected u'k1: v1\nk2: v2\nk3: v3\n', got '' [osh-cpp status] Expected 0, got -6 stdout: stderr: osh: _gen/bin/oils_for_unix.mycpp.cc:46507: syntax_asdl::word_part_t* word_parse::WordParser::_ReadDoubleQuotedLeftParts(): Assertion `0' failed. timeout: the monitored command dumped core |
| osh | 4 iterate over both keys and values [osh stdout] Expected u'k1: v1\nk2: v2\nk3: v3\n', got '' [osh status] Expected 0, got 2 stdout: stderr: for k v ("${(@kv)assoc}"); do
^
[ stdin ]:3: Unexpected word after for loop variable
|
| osh-cpp | 4 iterate over both keys and values [osh-cpp stdout] Expected u'k1: v1\nk2: v2\nk3: v3\n', got '' [osh-cpp status] Expected 0, got 2 stdout: stderr: for k v ("${(@kv)assoc}"); do
^
[ stdin ]:3: Unexpected word after for loop variable
|
| osh | 5 get length [osh stdout] Expected '3 2\n', got '2 2\n' stdout: 2 2stderr: |
| osh-cpp | 5 get length [osh-cpp stdout] Expected '3 2\n', got '2 2\n' stdout: 2 2stderr: |
| osh | 6 index by integer does not work [osh stdout] Expected "['']\n", got "['v1']\n" stdout: ['v1']stderr: |
| osh-cpp | 6 index by integer does not work [osh-cpp stdout] Expected "['']\n", got "['v1']\n" stdout: ['v1']stderr: |