gopkg.in/docker/docker.v20@v20.10.27/pkg/system/stat_unix_test.go (about)

     1  //go:build linux || freebsd
     2  // +build linux freebsd
     3  
     4  package system // import "github.com/docker/docker/pkg/system"
     5  
     6  import (
     7  	"os"
     8  	"syscall"
     9  	"testing"
    10  
    11  	"gotest.tools/v3/assert"
    12  )
    13  
    14  // TestFromStatT tests fromStatT for a tempfile
    15  func TestFromStatT(t *testing.T) {
    16  	file, _, _, dir := prepareFiles(t)
    17  	defer os.RemoveAll(dir)
    18  
    19  	stat := &syscall.Stat_t{}
    20  	err := syscall.Lstat(file, stat)
    21  	assert.NilError(t, err)
    22  
    23  	s, err := fromStatT(stat)
    24  	assert.NilError(t, err)
    25  
    26  	if stat.Mode != s.Mode() {
    27  		t.Fatal("got invalid mode")
    28  	}
    29  	if stat.Uid != s.UID() {
    30  		t.Fatal("got invalid uid")
    31  	}
    32  	if stat.Gid != s.GID() {
    33  		t.Fatal("got invalid gid")
    34  	}
    35  	//nolint:unconvert // conversion needed to fix mismatch types on mips64el
    36  	if uint64(stat.Rdev) != s.Rdev() {
    37  		t.Fatal("got invalid rdev")
    38  	}
    39  	if stat.Mtim != s.Mtim() {
    40  		t.Fatal("got invalid mtim")
    41  	}
    42  }