Added `declare` as an alias for `set` expectation

env
Mike Gerwitz 2014-06-10 22:12:09 -04:00
parent 93b6b6d7f5
commit 8a73619b0d
2 changed files with 181 additions and 166 deletions

View File

@ -64,3 +64,12 @@ _expect--set()
esac
}
##
# Alias for `set`
#
_expect--declare()
{
_expect--set "$@"
}

View File

@ -26,182 +26,188 @@ declare -- empty=""
declare -- one="1"'
declare curchk
function setchk()
{
_expect--set 0 4 <(:) <( echo "$stubenv" ) "$@"
_expect--$curchk 0 4 <(:) <( echo "$stubenv" ) "$@"
}
describe set
describe = and == operators
it succeeds on string equality
expect setchk var = val
to succeed
for name in set declare; do
curchk=$name
expect setchk var == val
to succeed
describe set
describe = and == operators
it succeeds on string equality
expect setchk var = val
to succeed
expect setchk var == val
to succeed
end
it fails on string inequality
expect setchk var = unval
to fail
expect setchk var == unval
to fail
end
end
it fails on string inequality
expect setchk var = unval
to fail
expect setchk var == unval
describe != operator
it succeeds on string inequality
expect setchk var != foo
to succeed
end
it fails on string equality
expect setchk var != val
to fail
end
end
describe =~ operator
it succeeds on a match
expect setchk \
long =~ fo+ ba. baz\$
to succeed
end
# note that this also ensures that *all* arguments are part of the
# match
it fails on a mismatch
expect setchk \
long =~ fo+ baX baz\$
to fail
end
end
describe -n operator
it succeeds when string is non-empty
expect setchk var -n
to succeed
end
it fails when string is empty
expect setchk empty -n
to fail
end
end
describe -z operator
it succeeds when string is empty
expect setchk empty -z
to succeed
end
it fails when string is non-empty
expect setchk var -z
to fail
end
end
describe -eq operator
it succeeds on numeric equality
expect setchk one -eq 1
to succeed
end
it fails on numeric inequality
expect setchk one -eq 2
to fail
end
end
describe -gt operator
it succeeds when numerically greater
expect setchk one -gt 0
to succeed
end
it fails when not numerically greater
expect setchk one -gt 1
to fail
end
end
describe -ge operator
it succeeds when numerically greater
expect setchk one -ge 0
to succeed
end
it succeeds when numerically equal
expect setchk one -ge 1
to succeed
end
it fails when numerically less than
expect setchk one -ge 2
to fail
end
end
describe -lt operator
it succeeds when numerically less than
expect setchk one -lt 2
to succeed
end
it fails when not numerically less than
expect setchk one -lt 1
to fail
end
end
describe -le operator
it succeeds when numerically less than
expect setchk one -le 2
to succeed
end
it succeeds when numerically equal
expect setchk one -le 1
to succeed
end
it fails when numerically greater than
expect setchk one -le 0
to fail
end
end
describe -ne operator
it succeeds when numerically unequal
expect setchk one -ne 2
to succeed
end
it fails when numerically equal
expect setchk one -ne 1
to fail
end
end
# primarily for safety and strict documentation, but no other tests make
# sense at the moment
it fails on unrecognized operators
# shell injection (not that this is realistically a problem, because
# we can execute arbitrary shell code anyway)
expect setchk var "!= foo -a 1 -eq" 1
to fail
end
end
describe != operator
it succeeds on string inequality
expect setchk var != foo
to succeed
end
it fails on string equality
expect setchk var != val
to fail
end
end
describe =~ operator
it succeeds on a match
expect setchk \
long =~ fo+ ba. baz\$
to succeed
end
# note that this also ensures that *all* arguments are part of the match
it fails on a mismatch
expect setchk \
long =~ fo+ baX baz\$
to fail
end
end
describe -n operator
it succeeds when string is non-empty
expect setchk var -n
to succeed
end
it fails when string is empty
expect setchk empty -n
to fail
end
end
describe -z operator
it succeeds when string is empty
expect setchk empty -z
to succeed
end
it fails when string is non-empty
expect setchk var -z
to fail
end
end
describe -eq operator
it succeeds on numeric equality
expect setchk one -eq 1
to succeed
end
it fails on numeric inequality
expect setchk one -eq 2
to fail
end
end
describe -gt operator
it succeeds when numerically greater
expect setchk one -gt 0
to succeed
end
it fails when not numerically greater
expect setchk one -gt 1
to fail
end
end
describe -ge operator
it succeeds when numerically greater
expect setchk one -ge 0
to succeed
end
it succeeds when numerically equal
expect setchk one -ge 1
to succeed
end
it fails when numerically less than
expect setchk one -ge 2
to fail
end
end
describe -lt operator
it succeeds when numerically less than
expect setchk one -lt 2
to succeed
end
it fails when not numerically less than
expect setchk one -lt 1
to fail
end
end
describe -le operator
it succeeds when numerically less than
expect setchk one -le 2
to succeed
end
it succeeds when numerically equal
expect setchk one -le 1
to succeed
end
it fails when numerically greater than
expect setchk one -le 0
to fail
end
end
describe -ne operator
it succeeds when numerically unequal
expect setchk one -ne 2
to succeed
end
it fails when numerically equal
expect setchk one -ne 1
to fail
end
end
# primarily for safety and strict documentation, but no other tests make
# sense at the moment
it fails on unrecognized operators
# shell injection (not that this is realistically a problem, because we
# can execute arbitrary shell code anyway)
expect setchk var "!= foo -a 1 -eq" 1
to fail
end
end
done