starcrypto/filex/file_split_test.go

37 lines
1.1 KiB
Go

package filex
import (
"bytes"
"errors"
"os"
"path/filepath"
"testing"
)
func TestSplitFilePatternValidation(t *testing.T) {
dir := t.TempDir()
src := filepath.Join(dir, "src.bin")
if err := os.WriteFile(src, bytes.Repeat([]byte{0x7f}, 64), 0o600); err != nil {
t.Fatalf("WriteFile failed: %v", err)
}
if err := SplitFile(src, filepath.Join(dir, "part.bin"), 2, true, nil); !errors.Is(err, ErrInvalidSplitPattern) {
t.Fatalf("expected ErrInvalidSplitPattern for missing '*', got: %v", err)
}
if err := SplitFile(src, filepath.Join(dir, "part_*_*.bin"), 2, true, nil); !errors.Is(err, ErrInvalidSplitPattern) {
t.Fatalf("expected ErrInvalidSplitPattern for multiple '*', got: %v", err)
}
pattern := filepath.Join(dir, "part_*.bin")
if err := SplitFile(src, pattern, 2, true, nil); err != nil {
t.Fatalf("SplitFile valid pattern failed: %v", err)
}
if _, err := os.Stat(filepath.Join(dir, "part_0.bin")); err != nil {
t.Fatalf("part_0.bin not found: %v", err)
}
if _, err := os.Stat(filepath.Join(dir, "part_1.bin")); err != nil {
t.Fatalf("part_1.bin not found: %v", err)
}
}