@@ -60,14 +60,14 @@ impl fuse::FuseHandlers for TestFS {
60
60
) {
61
61
self . requests . send ( format ! ( "{:#?}" , request) ) . unwrap ( ) ;
62
62
let mut response = fuse:: StatfsResponse :: new ( ) ;
63
- response. set_block_count ( 10 ) ;
64
- response. set_block_size ( 20 ) ;
65
- response. set_blocks_available ( 30 ) ;
66
- response. set_blocks_free ( 40 ) ;
67
- response. set_fragment_size ( 50 ) ;
68
- response. set_inode_count ( 60 ) ;
69
- response. set_inodes_free ( 70 ) ;
70
- response. set_max_filename_length ( 80 ) ;
63
+ response. set_block_size ( 10 ) ;
64
+ response. set_block_count ( 20 ) ;
65
+ response. set_blocks_free ( 30 ) ;
66
+ response. set_blocks_available ( 40 ) ;
67
+ response. set_inode_count ( 50 ) ;
68
+ response. set_inodes_free ( 60 ) ;
69
+ response. set_max_filename_length ( 70 ) ;
70
+ response. set_fragment_size ( 80 ) ;
71
71
respond. ok ( & response) ;
72
72
}
73
73
}
@@ -94,15 +94,28 @@ fn statfs() {
94
94
} ;
95
95
assert_eq ! ( rc, 0 ) ;
96
96
97
+ #[ cfg( target_os = "linux" ) ]
97
98
let expect = r#"statfs {
98
- f_bsize: 20,
99
- f_blocks: 10,
100
- f_bfree: 40,
101
- f_bavail: 30,
102
- f_files: 60,
103
- f_ffree: 70,
104
- f_namelen: 80,
105
- f_frsize: 50,
99
+ f_bsize: 10,
100
+ f_blocks: 20,
101
+ f_bfree: 30,
102
+ f_bavail: 40,
103
+ f_files: 50,
104
+ f_ffree: 60,
105
+ f_namelen: 70,
106
+ f_frsize: 80,
107
+ }"# ;
108
+ // https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253424
109
+ #[ cfg( target_os = "freebsd" ) ]
110
+ let expect = r#"statfs {
111
+ f_bsize: 80,
112
+ f_iosize: 65536,
113
+ f_blocks: 20,
114
+ f_bfree: 30,
115
+ f_bavail: 40,
116
+ f_files: 50,
117
+ f_ffree: 60,
118
+ f_namemax: 70,
106
119
}"# ;
107
120
let got = format ! ( "{:#?}" , & DebugStatfs ( stat_buf) ) ;
108
121
if let Some ( diff) = diff_str ( expect, & got) {
@@ -112,8 +125,13 @@ fn statfs() {
112
125
} ) ;
113
126
assert_eq ! ( requests. len( ) , 1 ) ;
114
127
128
+ #[ cfg( target_os = "linux" ) ]
115
129
let expect = r#"StatfsRequest {
116
130
node_id: 2,
131
+ }"# ;
132
+ #[ cfg( target_os = "freebsd" ) ]
133
+ let expect = r#"StatfsRequest {
134
+ node_id: 1,
117
135
}"# ;
118
136
if let Some ( diff) = diff_str ( expect, & requests[ 0 ] ) {
119
137
println ! ( "{}" , diff) ;
@@ -132,15 +150,30 @@ fn statfs_statvfs() {
132
150
} ;
133
151
assert_eq ! ( rc, 0 ) ;
134
152
153
+ #[ cfg( target_os = "linux" ) ]
154
+ let expect = r#"statvfs {
155
+ f_bsize: 10,
156
+ f_frsize: 80,
157
+ f_blocks: 20,
158
+ f_bfree: 30,
159
+ f_bavail: 40,
160
+ f_files: 50,
161
+ f_ffree: 60,
162
+ f_favail: 60,
163
+ f_namemax: 70,
164
+ }"# ;
165
+ // https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253424
166
+ #[ cfg( target_os = "freebsd" ) ]
135
167
let expect = r#"statvfs {
136
- f_bsize: 20,
137
- f_blocks: 10,
138
- f_bfree: 40,
139
- f_bavail: 30,
140
- f_files: 60,
141
- f_ffree: 70,
142
- f_namemax: 80,
143
- f_frsize: 50,
168
+ f_bsize: 65536,
169
+ f_frsize: 80,
170
+ f_blocks: 20,
171
+ f_bfree: 30,
172
+ f_bavail: 40,
173
+ f_files: 50,
174
+ f_ffree: 60,
175
+ f_favail: 60,
176
+ f_namemax: 255,
144
177
}"# ;
145
178
let got = format ! ( "{:#?}" , & DebugStatvfs ( stat_buf) ) ;
146
179
if let Some ( diff) = diff_str ( expect, & got) {
@@ -150,8 +183,13 @@ fn statfs_statvfs() {
150
183
} ) ;
151
184
assert_eq ! ( requests. len( ) , 1 ) ;
152
185
186
+ #[ cfg( target_os = "linux" ) ]
153
187
let expect = r#"StatfsRequest {
154
188
node_id: 2,
189
+ }"# ;
190
+ #[ cfg( target_os = "freebsd" ) ]
191
+ let expect = r#"StatfsRequest {
192
+ node_id: 1,
155
193
}"# ;
156
194
if let Some ( diff) = diff_str ( expect, & requests[ 0 ] ) {
157
195
println ! ( "{}" , diff) ;
@@ -161,26 +199,35 @@ fn statfs_statvfs() {
161
199
162
200
struct DebugStatfs ( libc:: statfs ) ;
163
201
202
+ #[ cfg( target_os = "linux" ) ]
164
203
impl fmt:: Debug for DebugStatfs {
165
204
fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
166
- let mut s = fmt. debug_struct ( "statfs" ) ;
167
- s. field ( "f_bsize" , & self . 0 . f_bsize ) ;
168
- s. field ( "f_blocks" , & self . 0 . f_blocks ) ;
169
- s. field ( "f_bfree" , & self . 0 . f_bfree ) ;
170
- s. field ( "f_bavail" , & self . 0 . f_bavail ) ;
171
- s. field ( "f_files" , & self . 0 . f_files ) ;
172
- s. field ( "f_ffree" , & self . 0 . f_ffree ) ;
205
+ fmt. debug_struct ( "statfs" )
206
+ . field ( "f_bsize" , & self . 0 . f_bsize )
207
+ . field ( "f_blocks" , & self . 0 . f_blocks )
208
+ . field ( "f_bfree" , & self . 0 . f_bfree )
209
+ . field ( "f_bavail" , & self . 0 . f_bavail )
210
+ . field ( "f_files" , & self . 0 . f_files )
211
+ . field ( "f_ffree" , & self . 0 . f_ffree )
212
+ . field ( "f_namelen" , & self . 0 . f_namelen )
213
+ . field ( "f_frsize" , & self . 0 . f_frsize )
214
+ . finish ( )
215
+ }
216
+ }
173
217
174
- #[ cfg( target_os = "linux" ) ]
175
- {
176
- s. field ( "f_namelen" , & self . 0 . f_namelen ) ;
177
- s. field ( "f_frsize" , & self . 0 . f_frsize ) ;
178
- }
179
- #[ cfg( target_os = "freebsd" ) ]
180
- {
181
- s. field ( "f_namemax" , & self . 0 . f_namemax ) ;
182
- }
183
- s. finish ( )
218
+ #[ cfg( target_os = "freebsd" ) ]
219
+ impl fmt:: Debug for DebugStatfs {
220
+ fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
221
+ fmt. debug_struct ( "statfs" )
222
+ . field ( "f_bsize" , & self . 0 . f_bsize )
223
+ . field ( "f_iosize" , & self . 0 . f_iosize )
224
+ . field ( "f_blocks" , & self . 0 . f_blocks )
225
+ . field ( "f_bfree" , & self . 0 . f_bfree )
226
+ . field ( "f_bavail" , & self . 0 . f_bavail )
227
+ . field ( "f_files" , & self . 0 . f_files )
228
+ . field ( "f_ffree" , & self . 0 . f_ffree )
229
+ . field ( "f_namemax" , & self . 0 . f_namemax )
230
+ . finish ( )
184
231
}
185
232
}
186
233
@@ -190,13 +237,14 @@ impl fmt::Debug for DebugStatvfs {
190
237
fn fmt ( & self , fmt : & mut fmt:: Formatter ) -> fmt:: Result {
191
238
fmt. debug_struct ( "statvfs" )
192
239
. field ( "f_bsize" , & self . 0 . f_bsize )
240
+ . field ( "f_frsize" , & self . 0 . f_frsize )
193
241
. field ( "f_blocks" , & self . 0 . f_blocks )
194
242
. field ( "f_bfree" , & self . 0 . f_bfree )
195
243
. field ( "f_bavail" , & self . 0 . f_bavail )
196
244
. field ( "f_files" , & self . 0 . f_files )
197
245
. field ( "f_ffree" , & self . 0 . f_ffree )
246
+ . field ( "f_favail" , & self . 0 . f_favail )
198
247
. field ( "f_namemax" , & self . 0 . f_namemax )
199
- . field ( "f_frsize" , & self . 0 . f_frsize )
200
248
. finish ( )
201
249
}
202
250
}
0 commit comments