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) } }