| 
									
										
										
										
											2015-07-16 07:38:33 +08:00
										 |  |  | package sftp | 
					
						
							| 
									
										
										
										
											2015-07-16 07:36:15 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"syscall" | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-12-22 12:34:21 +08:00
										 |  |  | const sftpServer = "/usr/lib/openssh/sftp-server" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-16 07:36:15 +08:00
										 |  |  | func TestClientStatVFS(t *testing.T) { | 
					
						
							| 
									
										
										
										
											2016-01-01 22:31:52 +08:00
										 |  |  | 	if *testServerImpl { | 
					
						
							|  |  |  | 		t.Skipf("go server does not support FXP_EXTENDED") | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2015-07-16 07:36:15 +08:00
										 |  |  | 	sftp, cmd := testClient(t, READWRITE, NO_DELAY) | 
					
						
							|  |  |  | 	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.Frsize != uint64(s.Frsize) { | 
					
						
							| 
									
										
										
										
											2016-09-23 07:33:00 +08:00
										 |  |  | 		t.Fatalf("fr_size does not match, expected: %v, got: %v", s.Frsize, vfs.Frsize) | 
					
						
							| 
									
										
										
										
											2015-07-16 07:36:15 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if vfs.Bsize != uint64(s.Bsize) { | 
					
						
							| 
									
										
										
										
											2016-09-23 07:33:00 +08:00
										 |  |  | 		t.Fatalf("f_bsize does not match, expected: %v, got: %v", s.Bsize, vfs.Bsize) | 
					
						
							| 
									
										
										
										
											2015-07-16 07:36:15 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if vfs.Namemax != uint64(s.Namelen) { | 
					
						
							| 
									
										
										
										
											2016-09-23 07:33:00 +08:00
										 |  |  | 		t.Fatalf("f_namemax does not match, expected: %v, got: %v", s.Namelen, vfs.Namemax) | 
					
						
							| 
									
										
										
										
											2015-07-16 07:36:15 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | } |