@@ -267,6 +267,11 @@ teardown() {
267267 " assert_lines_equal 'foo' 'bar' 'baz'"
268268}
269269
270+ @test " $SUITE : assert_lines_equal zero lines" {
271+ expect_assertion_success " printf ''" \
272+ " assert_lines_equal"
273+ }
274+
270275@test " $SUITE : assert_lines_equal failure" {
271276 expect_assertion_failure " printf 'foo\nbar\nbaz\n'" \
272277 " assert_lines_equal 'foo' 'quux' 'baz'" \
@@ -387,6 +392,21 @@ teardown() {
387392 assert_lines_equal ' ' ' foo' ' ' ' bar' ' ' ' baz' ' '
388393}
389394
395+ @test " $SUITE : set_bats_output_and_lines_from_file from empty file" {
396+ printf_to_test_output_file ' \n'
397+ set_bats_output_and_lines_from_file " $TEST_OUTPUT_FILE "
398+ assert_lines_equal ' '
399+ }
400+
401+ @test " $SUITE : set_bats_output_and_lines_from_file from completely empty file" {
402+ printf_to_test_output_file ' '
403+ set_bats_output_and_lines_from_file " $TEST_OUTPUT_FILE "
404+
405+ # Note that because there wasn't even a newline, we don't even expect the
406+ # empty string to be present in `lines`.
407+ assert_lines_equal
408+ }
409+
390410@test " $SUITE : set_bats_output_and_lines_from_file fails if file is missing" {
391411 run set_bats_output_and_lines_from_file " $TEST_OUTPUT_FILE "
392412 assert_failure " '$TEST_OUTPUT_FILE ' doesn't exist or isn't a regular file."
@@ -412,6 +432,20 @@ teardown() {
412432 " assert_file_equals '$TEST_OUTPUT_FILE ' '' 'foo' '' 'bar' '' 'baz' ''"
413433}
414434
435+ @test " $SUITE : assert_file_equals expect file containing empty string only" {
436+ expect_assertion_success \
437+ " printf_to_test_output_file '\n'" \
438+ " assert_file_equals '$TEST_OUTPUT_FILE ' ''"
439+ }
440+
441+ @test " $SUITE : assert_file_equals expect file completely empty file" {
442+ # Note that because there wasn't even a newline, we don't even supply the
443+ # empty string to `assert_file_equals`.
444+ expect_assertion_success \
445+ " printf_to_test_output_file ''" \
446+ " assert_file_equals '$TEST_OUTPUT_FILE '"
447+ }
448+
415449@test " $SUITE : assert_file_equals failure" {
416450 expect_assertion_failure \
417451 " printf_to_test_output_file '\nfoo\n\nbar\n\nbaz\n\n'" \
0 commit comments