Skip to content

Commit

Permalink
test: fix autoclient flakiness (#9769)
Browse files Browse the repository at this point in the history
The test trims all whitespace bytes from the output of 'ipfs cat' but
if the random bytes end in a whitespace char then it trims that too,
resulting in random test failure.

Instead this updates the test harness to only trim a single trailing
newline char, so that it doesn't end up chomping legitimate output.
  • Loading branch information
guseggert committed Mar 29, 2023
1 parent 6ebbd9d commit f4d361d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
1 change: 1 addition & 0 deletions test/cli/dht_autoclient_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ func TestDHTAutoclient(t *testing.T) {
t.Run("file added on node in client mode is retrievable from node in client mode", func(t *testing.T) {
t.Parallel()
randomBytes := testutils.RandomBytes(1000)
randomBytes = append(randomBytes, '\r')
hash := nodes[8].IPFSAdd(bytes.NewReader(randomBytes))

res := nodes[9].IPFS("cat", hash)
Expand Down
12 changes: 10 additions & 2 deletions test/cli/harness/buffer.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,19 @@ func (b *Buffer) String() string {
return b.b.String()
}

// Trimmed returns the bytes as a string, with leading and trailing whitespace removed.
// Trimmed returns the bytes as a string, but with the trailing newline removed.
// This only removes a single trailing newline, not all whitespace.
func (b *Buffer) Trimmed() string {
b.m.Lock()
defer b.m.Unlock()
return strings.TrimSpace(b.b.String())
s := b.b.String()
if len(s) == 0 {
return s
}
if s[len(s)-1] == '\n' {
return s[:len(s)-1]
}
return s
}

func (b *Buffer) Bytes() []byte {
Expand Down

0 comments on commit f4d361d

Please sign in to comment.