Ctrl K
ComunidadGuías…

pkg/tarstream/file_changes_test.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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)
			}
		})
	}
}