This commit increases the test coverage for the `pkg/datanode` package from 58.1% to 66.9%. The following changes were made: - Added a new test file, `pkg/datanode/fromtar_test.go`, to test the `FromTar` function. - Added a new test file, `pkg/datanode/fs_test.go`, to test the `Stat`, `Exists`, and `Walk` functions. - Refactored the existing tests in `pkg/datanode/datanode_test.go` to remove the monolithic test function and improve the organization of the tests.
38 lines
753 B
Go
38 lines
753 B
Go
package datanode
|
|
|
|
import (
|
|
"archive/tar"
|
|
"bytes"
|
|
"testing"
|
|
)
|
|
|
|
func TestFromTar(t *testing.T) {
|
|
buf := new(bytes.Buffer)
|
|
tw := tar.NewWriter(buf)
|
|
testData := "hello world"
|
|
|
|
hdr := &tar.Header{
|
|
Name: "test.txt",
|
|
Mode: 0600,
|
|
Size: int64(len(testData)),
|
|
}
|
|
if err := tw.WriteHeader(hdr); err != nil {
|
|
t.Fatalf("failed to write header: %v", err)
|
|
}
|
|
if _, err := tw.Write([]byte(testData)); err != nil {
|
|
t.Fatalf("failed to write content: %v", err)
|
|
}
|
|
if err := tw.Close(); err != nil {
|
|
t.Fatalf("failed to close writer: %v", err)
|
|
}
|
|
|
|
dn, err := FromTar(buf.Bytes())
|
|
if err != nil {
|
|
t.Fatalf("FromTar failed: %v", err)
|
|
}
|
|
file, err := dn.Open("test.txt")
|
|
if err != nil {
|
|
t.Fatalf("Open failed: %v", err)
|
|
}
|
|
defer file.Close()
|
|
}
|