Skip to content

Commit

Permalink
[test/spec-cpp] Fix bug that prevented running tests.
Browse files Browse the repository at this point in the history
Fixed infinite loop.

Results: 591 for osh_eval.py, and 456 for osh_eval.cc

Compared with 534 and 420 as of the 0.8.pre5 release.
  • Loading branch information
Andy Chu committed May 30, 2020
1 parent 44b0a97 commit 5ca59a8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 23 deletions.
29 changes: 6 additions & 23 deletions bin/osh_eval.py
Expand Up @@ -220,11 +220,13 @@ def main(argv):

builtins = {} # type: Dict[int, vm._Builtin]
builtins[builtin_i.echo] = builtin_pure.Echo(exec_opts)
#builtins[builtin_i.shopt] = Shopt(mutable_opts)
#builtins[builtin_i.set] = Set(mutable_opts)

builtins[builtin_i.set] = builtin_pure.Set(mutable_opts, mem)
builtins[builtin_i.shopt] = builtin_pure.Shopt(mutable_opts)
# DUMMY VERSIONS
builtins[builtin_i.shopt] = Shopt(mutable_opts)
builtins[builtin_i.set] = Set(mutable_opts)

#builtins[builtin_i.set] = builtin_pure.Set(mutable_opts, mem)
#builtins[builtin_i.shopt] = builtin_pure.Shopt(mutable_opts)

builtins[builtin_i.alias] = builtin_pure.Alias(aliases, errfmt)
builtins[builtin_i.unalias] = builtin_pure.UnAlias(aliases, errfmt)
Expand Down Expand Up @@ -262,25 +264,6 @@ def main(argv):
return status


class Echo(vm._Builtin):
"""Simple echo builtin.
"""
def __init__(self):
# type: () -> None
self.f = mylib.Stdout()

def Run(self, cmd_val):
# type: (cmd_value__Argv) -> int

for i, a in enumerate(cmd_val.argv[1:]):
if i != 0:
self.f.write(' ') # arg separator
self.f.write(a)

self.f.write('\n')
return 0


class Set(vm._Builtin):
def __init__(self, mutable_opts):
# type: (MutableOpts) -> None
Expand Down
5 changes: 5 additions & 0 deletions spec/redirect.test.sh
Expand Up @@ -587,6 +587,11 @@ fd=$minfd
is-fd-open() { : >&$1; }
while is-fd-open "$fd"; do
: $((fd+=1))

# prevent infinite loop for broken osh_eval
if test $fd -gt 1000; then
break
fi
done

# 3. test
Expand Down

0 comments on commit 5ca59a8

Please sign in to comment.