github.com/hanks177/podman/v4@v4.1.3-0.20220613032544-16d90015bc83/pkg/ctime/ctime_test.go (about) 1 package ctime 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 "time" 8 ) 9 10 func TestCreated(t *testing.T) { 11 before := time.Now() 12 13 fileA, err := ioutil.TempFile("", "ctime-test-") 14 if err != nil { 15 t.Error(err) 16 } 17 defer os.Remove(fileA.Name()) 18 19 fileB, err := ioutil.TempFile("", "ctime-test-") 20 if err != nil { 21 t.Error(err) 22 } 23 defer os.Remove(fileB.Name()) 24 25 after := time.Now() 26 27 infoA, err := fileA.Stat() 28 if err != nil { 29 t.Error(err) 30 } 31 32 err = fileA.Close() 33 if err != nil { 34 t.Error(err) 35 } 36 37 infoB, err := fileB.Stat() 38 if err != nil { 39 t.Error(err) 40 } 41 42 err = fileB.Close() 43 if err != nil { 44 t.Error(err) 45 } 46 47 createdA := Created(infoA) 48 beforeToCreateA := createdA.Sub(before) 49 if beforeToCreateA.Nanoseconds() < -1000000000 { 50 t.Errorf("created file A %s is %v nanoseconds before %s", createdA, -beforeToCreateA.Nanoseconds(), before) 51 } 52 53 createdB := Created(infoB) 54 createAToCreateB := createdB.Sub(createdA) 55 if createAToCreateB.Nanoseconds() < 0 { 56 t.Errorf("created file B %s is %v nanoseconds before file A %s", createdB, -createAToCreateB.Nanoseconds(), createdA) 57 } 58 59 createBToAfter := after.Sub(createdB) 60 if createBToAfter.Nanoseconds() < 0 { 61 t.Errorf("created file B %s is %v nanoseconds after %s", createdB, -createBToAfter.Nanoseconds(), after) 62 } 63 }