diff --git a/libexec/bats-exec-test b/libexec/bats-exec-test index 8f3bd510..5a076650 100755 --- a/libexec/bats-exec-test +++ b/libexec/bats-exec-test @@ -48,7 +48,7 @@ load() { } run() { - local e E T oldIFS + local e E T [[ ! "$-" =~ e ]] || e=1 [[ ! "$-" =~ E ]] || E=1 [[ ! "$-" =~ T ]] || T=1 @@ -57,12 +57,10 @@ run() { set +T output="$("$@" 2>&1)" status="$?" - oldIFS=$IFS IFS=$'\n' lines=($output) [ -z "$e" ] || set -e [ -z "$E" ] || set -E [ -z "$T" ] || set -T - IFS=$oldIFS } setup() { diff --git a/test/bats.bats b/test/bats.bats index f1aff293..280515d2 100755 --- a/test/bats.bats +++ b/test/bats.bats @@ -30,14 +30,14 @@ fixtures bats @test "empty test file runs zero tests" { run bats "$FIXTURE_ROOT/empty.bats" [ $status -eq 0 ] - [ "$output" = "1..0" ] + [ $output = "1..0" ] } @test "one passing test" { run bats "$FIXTURE_ROOT/passing.bats" [ $status -eq 0 ] - [ "${lines[0]}" = "1..1" ] - [ "${lines[1]}" = "ok 1 a passing test" ] + [ ${lines[0]} = "1..1" ] + [ ${lines[1]} = "ok 1 a passing test" ] } @test "summary passing tests" { @@ -256,9 +256,3 @@ fixtures bats [ "${lines[5]}" = "# (in test file $RELATIVE_FIXTURE_ROOT/single_line.bats, line 9)" ] [ "${lines[6]}" = $'# `@test "failing" { false; }\' failed' ] } - -@test "testing IFS not modified by run" { - run bats "$FIXTURE_ROOT/loop_keep_IFS.bats" - [ $status -eq 0 ] - [ "${lines[1]}" = "ok 1 loop_func" ] -} diff --git a/test/fixtures/bats/loop_keep_IFS.bats b/test/fixtures/bats/loop_keep_IFS.bats deleted file mode 100644 index f30613ae..00000000 --- a/test/fixtures/bats/loop_keep_IFS.bats +++ /dev/null @@ -1,16 +0,0 @@ -# see issue #89 -loop_func() { - local search="none one two tree" - local d - - for d in $search ; do - echo $d - done -} - -@test "loop_func" { - run loop_func - [[ "${lines[3]}" == 'tree' ]] - run loop_func - [[ "${lines[2]}" == 'two' ]] -} diff --git a/test/suite.bats b/test/suite.bats index 53716863..14f5008e 100755 --- a/test/suite.bats +++ b/test/suite.bats @@ -6,30 +6,30 @@ fixtures suite @test "running a suite with no test files" { run bats "$FIXTURE_ROOT/empty" [ $status -eq 0 ] - [ "$output" = "1..0" ] + [ $output = "1..0" ] } @test "running a suite with one test file" { run bats "$FIXTURE_ROOT/single" [ $status -eq 0 ] - [ "${lines[0]}" = "1..1" ] - [ "${lines[1]}" = "ok 1 a passing test" ] + [ ${lines[0]} = "1..1" ] + [ ${lines[1]} = "ok 1 a passing test" ] } @test "counting tests in a suite" { run bats -c "$FIXTURE_ROOT/single" [ $status -eq 0 ] - [ "$output" -eq 1 ] + [ $output -eq 1 ] run bats -c "$FIXTURE_ROOT/multiple" [ $status -eq 0 ] - [ "$output" -eq 3 ] + [ $output -eq 3 ] } @test "aggregated output of multiple tests in a suite" { run bats "$FIXTURE_ROOT/multiple" [ $status -eq 0 ] - [ "${lines[0]}" = "1..3" ] + [ ${lines[0]} = "1..3" ] echo "$output" | grep "^ok . truth" echo "$output" | grep "^ok . more truth" echo "$output" | grep "^ok . quasi-truth" @@ -38,14 +38,14 @@ fixtures suite @test "a failing test in a suite results in an error exit code" { FLUNK=1 run bats "$FIXTURE_ROOT/multiple" [ $status -eq 1 ] - [ "${lines[0]}" = "1..3" ] + [ ${lines[0]} = "1..3" ] echo "$output" | grep "^not ok . quasi-truth" } @test "running an ad-hoc suite by specifying multiple test files" { run bats "$FIXTURE_ROOT/multiple/a.bats" "$FIXTURE_ROOT/multiple/b.bats" [ $status -eq 0 ] - [ "${lines[0]}" = "1..3" ] + [ ${lines[0]} = "1..3" ] echo "$output" | grep "^ok . truth" echo "$output" | grep "^ok . more truth" echo "$output" | grep "^ok . quasi-truth"