github.com/pbberlin/tools@v0.0.0-20160910141205-7aa5421c2169/os/fsi/tests/suite0_test.go (about) 1 // +build suite0 2 // go test -tags=suite0 3 4 package tests 5 6 import ( 7 "io/ioutil" 8 "os" 9 "testing" 10 ) 11 12 func TestWriteRead(t *testing.T) { 13 14 Fss, c := initFileSystems() 15 defer c.Close() 16 17 for _, fs := range Fss { 18 19 c.Infof(" ") 20 c.Infof("%v %v\n", fs.Name(), fs.String()) 21 c.Infof("================================") 22 23 err := fs.Mkdir("/temp/testdir", os.ModePerm) 24 if err != nil { 25 if !os.IsExist(err) { 26 c.Criticalf("%v\n", err) 27 t.Fatalf("%v\n", err) 28 } 29 } 30 31 f, err := fs.Create("/temp/testdir/test.txt") 32 if err != nil { 33 c.Criticalf("create: %v\n", err) 34 t.Fatalf("create: %v\n", err) 35 } 36 37 bts0 := []byte("some text content") 38 _, err = f.WriteString(string(bts0)) 39 if err != nil { 40 c.Criticalf("writestr: %v\n", err) 41 t.Fatalf("writestr: %v\n", err) 42 } 43 44 err = f.Close() 45 if err != nil { 46 c.Criticalf("close: %v\n", err) 47 t.Fatalf("close: %v\n", err) 48 } 49 50 f2, err := fs.Open("/temp/testdir/test.txt") 51 if err != nil { 52 c.Criticalf("%v\n", err) 53 t.Fatalf("%v\n", err) 54 } 55 defer f2.Close() 56 bts1, err := ioutil.ReadAll(f2) 57 if err != nil { 58 c.Criticalf("%v\n", err) 59 t.Fatalf("%v\n", err) 60 } 61 // c.Infof("1st: %v\n", string(bts1)) 62 63 bts2, err := fs.ReadFile("/temp/testdir/test.txt") 64 if err != nil { 65 c.Criticalf("%v\n", err) 66 t.Fatalf("%v\n", err) 67 } 68 69 // c.Infof("2nd: %v\n", string(bts2)) 70 71 bts4 := []byte("other stuff") 72 err = fs.WriteFile("/temp/testdir/test1.txt", bts4, os.ModePerm) 73 if err != nil { 74 c.Criticalf("%v\n", err) 75 t.Fatalf("%v\n", err) 76 } 77 78 bts5, err := fs.ReadFile("/temp/testdir/test1.txt") 79 if err != nil { 80 c.Criticalf("%v\n", err) 81 t.Fatalf("%v\n", err) 82 } 83 84 if !(string(bts0) == string(bts1) && string(bts1) == string(bts2)) { 85 t.Fatalf("there are differences \nwnt %s \ngt1 %s \ngt2 %s", bts0, bts1, bts2) 86 } 87 if !(string(bts4) == string(bts5)) { 88 t.Fatalf("there are differences \nwnt %s \ngt1 %s", bts4, bts5) 89 } 90 91 // fsc, ok := fs.(*memfs.MemMapFs) 92 // if ok { 93 // fsc.Dump() 94 // } 95 96 } 97 98 }