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  }