github.com/pkg/sftp@v1.13.6/client_integration_linux_test.go (about) 1 package sftp 2 3 import ( 4 "syscall" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestClientStatVFS(t *testing.T) { 11 if *testServerImpl { 12 t.Skipf("go server does not support FXP_EXTENDED") 13 } 14 sftp, cmd := testClient(t, READWRITE, NODELAY) 15 defer cmd.Wait() 16 defer sftp.Close() 17 18 _, ok := sftp.HasExtension("statvfs@openssh.com") 19 require.True(t, ok, "server doesn't list statvfs extension") 20 21 vfs, err := sftp.StatVFS("/") 22 if err != nil { 23 t.Fatal(err) 24 } 25 26 // get system stats 27 s := syscall.Statfs_t{} 28 err = syscall.Statfs("/", &s) 29 if err != nil { 30 t.Fatal(err) 31 } 32 33 // check some stats 34 if vfs.Frsize != uint64(s.Frsize) { 35 t.Fatalf("fr_size does not match, expected: %v, got: %v", s.Frsize, vfs.Frsize) 36 } 37 38 if vfs.Bsize != uint64(s.Bsize) { 39 t.Fatalf("f_bsize does not match, expected: %v, got: %v", s.Bsize, vfs.Bsize) 40 } 41 42 if vfs.Namemax != uint64(s.Namelen) { 43 t.Fatalf("f_namemax does not match, expected: %v, got: %v", s.Namelen, vfs.Namemax) 44 } 45 }