
####################
# Read with no vars is not an error

####################
# Read with -a and anything other than exactly on var name is an error

####################
# Verify correct behavior of subcommands and splitting of input.
2
2
1
[one
two]
1
[one
two]
1
[one
two
]

####################
# Test splitting input
1 'hello' 1 'there'
1 'hello there'
1 ''
1 '' 1 ''
1 'test' 1 '' 1 ''
1 'foo' 1 'bar' 1 'baz'
0 a

####################
# Test splitting input with IFS empty
1 'hello'
1 'h' 1 'ello'
1 'h' 1 'e' 1 'llo'
0
1 't' 0
1 't' 0 0
1 ' ' 1 't'

2 'hello' 'there'
1 'hello'
6 'this' 'is' 'a' 'bunch' 'of' 'words'
3 'one' 'two' 'three'
0

5 'h' 'e' 'l' 'l' 'o'
1 'h'
0

####################
# read -n tests
tes
test
test
tes
tin
t

####################
# read -z tests
testing
test ing
newline

1 'test' 1 'ing'
1 'test' 1 ''
1 'foo' 1 'bar'
2 'foo' 'bar'
2 'baz' 'quux'

####################
# Chunked read tests
Chunked reads test pass

####################
# Confirm reading non-interactively works -- #4206 regression
$a: not set in local scope
$a: set in global scope, unexported, with 1 elements
$a[1]: length=3 value=|abc|
$a: not set in universal scope

$b: not set in local scope
$b: set in global scope, unexported, with 1 elements
$b[1]: length=3 value=|def|
$b: not set in universal scope


####################
# Test --delimiter (and $IFS, for now)
a=b


####################
# Delimiter =
a
b

####################
# Delimiter empty
a
=
b

####################
# IFS empty string
a
=
b

####################
# IFS unset
a=b



####################
# Delimiter =
a
b


Multi-char delimiters with -d
a
b
c
Multi-char delimiters with IFS
a
b
c

banana sausage
