| 
									
										
										
										
											2015-08-05 13:21:35 +08:00
										 |  |  | package sftp | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"syscall" | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestClientStatVFS(t *testing.T) { | 
					
						
							| 
									
										
										
										
											2016-01-01 22:31:52 +08:00
										 |  |  | 	if *testServerImpl { | 
					
						
							|  |  |  | 		t.Skipf("go server does not support FXP_EXTENDED") | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2019-08-30 23:04:37 +08:00
										 |  |  | 	sftp, cmd := testClient(t, READWRITE, NODELAY) | 
					
						
							| 
									
										
										
										
											2015-08-05 13:21:35 +08:00
										 |  |  | 	defer cmd.Wait() | 
					
						
							|  |  |  | 	defer sftp.Close() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	vfs, err := sftp.StatVFS("/") | 
					
						
							|  |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		t.Fatal(err) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// get system stats
 | 
					
						
							|  |  |  | 	s := syscall.Statfs_t{} | 
					
						
							|  |  |  | 	err = syscall.Statfs("/", &s) | 
					
						
							|  |  |  | 	if err != nil { | 
					
						
							|  |  |  | 		t.Fatal(err) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	// check some stats
 | 
					
						
							|  |  |  | 	if vfs.Files != uint64(s.Files) { | 
					
						
							|  |  |  | 		t.Fatal("fr_size does not match") | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if vfs.Bfree != uint64(s.Bfree) { | 
					
						
							|  |  |  | 		t.Fatal("f_bsize does not match") | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if vfs.Favail != uint64(s.Ffree) { | 
					
						
							|  |  |  | 		t.Fatal("f_namemax does not match") | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } |