package xtfs import ( "embed" "io" "os" "strings" "testing" ) var ( //go:embed _test/embed embedded embed.FS xtfs *XTFS ) func TestMain(m *testing.M) { var err error xtfs, err = New("_test/disk", embedded, WithSub("_test/embed"), WithCaching(false)) if err != nil { panic(err) } os.Exit(m.Run()) } func TestEmbed(t *testing.T) { fi, err := xtfs.Open("test1.txt") if err != nil { t.Log(err) t.FailNow() } defer fi.Close() test1, err := io.ReadAll(fi) if err != nil { t.Log(err) t.FailNow() } if !strings.EqualFold(string(test1), "test1") { t.Log("embed did not match") t.FailNow() } } func TestDisk(t *testing.T) { fi, err := xtfs.Open("test2.txt") if err != nil { t.Log(err) t.FailNow() } defer fi.Close() test2, err := io.ReadAll(fi) if err != nil { t.Log(err) t.FailNow() } if !strings.EqualFold(string(test2), "test3") { t.Log("embed did not match") t.FailNow() } } func BenchmarkCache(b *testing.B) { x, err := New("_test/disk", embedded) if err != nil { b.Log(err) b.FailNow() } for idx := 0; idx < b.N; idx++ { x.exists("test2.txt") } } func BenchmarkNoCache(b *testing.B) { x, err := New("_test/disk", embedded, WithCaching(false)) if err != nil { b.Log(err) b.FailNow() } for idx := 0; idx < b.N; idx++ { x.exists("test2.txt") } }