pkg/tarstream/file_changes_test.go
Rama main · réplica de lectura del repositorio original.
package tarstream
import (
"io"
"os"
"path/filepath"
"testing"
"github.com/cockroachdb/errors"
)
func TestFileSizeChanges(t *testing.T) {
for _, content := range []string{"ab", "abcdefgh"} {
t.Run(content, func(t *testing.T) {
path := filepath.Join(t.TempDir(), "file")
if err := os.WriteFile(path, []byte("abcd"), 0644); err != nil {
t.Fatal(err)
}
info, err := os.Stat(path)
if err != nil {
t.Fatal(err)
}
tv := NewTarVec([]Datavec{&PathVec{Path: path, Info: info}, MemVec{Data: []byte("end")}})
if err := os.WriteFile(path, []byte(content), 0644); err != nil {
t.Fatal(err)
}
got, err := io.ReadAll(tv)
if len(content) < 4 {
if string(got) != content || !errors.Is(err, io.ErrUnexpectedEOF) {
t.Fatalf("truncated: %q, %v", got, err)
}
} else if string(got) != "abcdend" || err != nil {
t.Fatalf("grown: %q, %v", got, err)
}
if err := tv.Close(); err != nil {
t.Fatal(err)
}
})
}
}