Text file src/cmd/go/testdata/script/test_fail_newline.txt

     1  [short] skip
     2  
     3  # In package list mode, output is buffered.
     4  # Check that a newline is printed after the buffer's contents.
     5  cd fail
     6  ! go test .
     7  ! stderr .
     8  stdout '^exitcode=1\n'
     9  stdout '^FAIL\s+example/fail'
    10  
    11  # In local directory mode output is streamed, so we don't know
    12  # whether the test printed anything at all, so we print the exit code
    13  # (just in case it failed without emitting any output at all),
    14  # and that happens to add the needed newline as well.
    15  ! go test
    16  ! stderr .
    17  stdout '^exitcode=1exit status 1\n'
    18  stdout '^FAIL\s+example/fail'
    19  
    20  # In package list mode, if the test passes the 'ok' message appears
    21  # on its own line.
    22  cd ../skip
    23  go test -v .
    24  ! stderr .
    25  stdout '^skipping\n'
    26  stdout '^ok\s+example/skip'
    27  
    28  # If the output is streamed and the test passes, we can't tell whether it ended
    29  # in a partial line, and don't want to emit any extra output in the
    30  # overwhelmingly common case that it did not.
    31  # (In theory we could hook the 'os' package to report whether output
    32  # was emitted and whether it ended in a newline, but that seems too invasive.)
    33  go test
    34  ! stderr .
    35  stdout '^skippingok\s+example/skip'
    36  
    37  
    38  -- go.mod --
    39  module example
    40  
    41  go 1.18
    42  -- fail/fail_test.go --
    43  package fail
    44  
    45  import (
    46  	"os"
    47  	"testing"
    48  )
    49  
    50  func TestMain(m *testing.M) {
    51  	os.Stderr.WriteString("exitcode=1")
    52  	os.Exit(1)
    53  }
    54  -- skip/skip_test.go --
    55  package skip
    56  
    57  import (
    58  	"os"
    59  	"testing"
    60  )
    61  
    62  func TestMain(m *testing.M) {
    63  	os.Stderr.WriteString("skipping")
    64  	os.Exit(0)
    65  }
    66  

View as plain text