Results for func-parsing.test.sh

casedashbashmkshoshdescription
0pass pass BUG pass Incomplete Function
details
1pass pass ok pass Incomplete Function 2
details
2pass pass ok pass Bad function
details
3pass ok pass ok Unbraced function body.
detailsdetails
4pass pass pass pass Function with spaces, to see if ( and ) are separate tokens.
5pass pass pass pass subshell function
6pass pass pass pass Hard case, function with } token in it
7ok pass pass pass . in function name
details
8ok pass ok pass = in function name
detailsdetails
9pass ok ok pass Function name with $
detailsdetails
10ok pass pass pass Function name with !
details
11ok pass pass pass Function name with -
details
12pass pass pass pass Break after ) is OK.
13pass pass pass pass Nested definition

44 passed, 11 ok, 0 known unimplemented, 1 known bugs, 0 failed, 0 skipped

Details on runs that didn't PASS

mksh0 Incomplete Function

stdout:
stderr: 
mksh1 Incomplete Function 2

stdout:
stderr: 
/bin/mksh: <stdin>[2]: syntax error: '{' unmatched
mksh2 Bad function

stdout:
stderr: 
/bin/mksh: <stdin>[1]: syntax error: 'ls' unexpected
bash3 Unbraced function body.

stdout:
stderr: 
/bin/bash: line 1: syntax error near unexpected token `ls'
/bin/bash: line 1: `one_line() ls; one_line;'
osh3 Unbraced function body.

stdout:
stderr: 
Line 1 of '<stdin>'
  one_line() ls; one_line;
             ^~
Expected a compound command (e.g. for while if case), got (CompoundWord parts:[(LiteralPart token:(token id:Lit_Chars val:ls span_id:4))])
---
Line 0 of '<unknown>'
  <no position info for token>
Error parsing AndOr in ParseCommandTerm
---
dash7 . in function name

stdout:
stderr: 
/bin/dash: 1: Syntax error: Bad function name
dash8 = in function name

stdout:
stderr: 
/bin/dash: 1: Syntax error: Bad function name
mksh8 = in function name

stdout:
stderr: 
/bin/mksh: <stdin>[1]: func-name=ext: invalid function name
bash9 Function name with $

stdout:
stderr: 
/bin/bash: line 1: `foo$bar': not a valid identifier
mksh9 Function name with $

stdout:
stderr: 
/bin/mksh: <stdin>[1]: foo$bar: invalid function name
dash10 Function name with !

stdout:
stderr: 
/bin/dash: 1: Syntax error: Bad function name
dash11 Function name with -

stdout:
stderr: 
/bin/dash: 1: Syntax error: Bad function name