Skip to content

Commit e9ca8d4

Browse files
committed
Support FreeBSD-specific behavior in remaining interop tests.
issue: #5
1 parent 5edcb89 commit e9ca8d4

File tree

5 files changed

+176
-36
lines changed

5 files changed

+176
-36
lines changed

fuse/src/protocol/access/access_interop_test.rs

+121-24
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,31 @@ fn access() {
100100
let rc = unsafe { libc::access(path.as_ptr(), libc::F_OK) };
101101
assert_eq!(rc, 0);
102102
});
103-
assert_eq!(requests.len(), 1);
104103

105-
let expect = r#"AccessRequest {
104+
#[cfg(target_os = "linux")]
105+
{
106+
assert_eq!(requests.len(), 1);
107+
let expect = r#"AccessRequest {
106108
node_id: 2,
107109
mask: 0,
108110
}"#;
109-
if let Some(diff) = diff_str(expect, &requests[0]) {
110-
println!("{}", diff);
111-
assert!(false);
111+
if let Some(diff) = diff_str(expect, &requests[0]) {
112+
println!("{}", diff);
113+
assert!(false);
114+
}
115+
}
116+
117+
#[cfg(target_os = "freebsd")]
118+
{
119+
assert_eq!(requests.len(), 1);
120+
let expect = r#"AccessRequest {
121+
node_id: 1,
122+
mask: 1,
123+
}"#;
124+
if let Some(diff) = diff_str(expect, &requests[0]) {
125+
println!("{}", diff);
126+
assert!(false);
127+
}
112128
}
113129
}
114130

@@ -120,15 +136,42 @@ fn access_read() {
120136
let rc = unsafe { libc::access(path.as_ptr(), libc::R_OK) };
121137
assert_eq!(rc, 0);
122138
});
123-
assert_eq!(requests.len(), 1);
124139

125-
let expect = r#"AccessRequest {
140+
#[cfg(target_os = "linux")]
141+
{
142+
assert_eq!(requests.len(), 1);
143+
144+
let expect = r#"AccessRequest {
126145
node_id: 2,
127146
mask: 4,
128147
}"#;
129-
if let Some(diff) = diff_str(expect, &requests[0]) {
130-
println!("{}", diff);
131-
assert!(false);
148+
if let Some(diff) = diff_str(expect, &requests[0]) {
149+
println!("{}", diff);
150+
assert!(false);
151+
}
152+
}
153+
154+
#[cfg(target_os = "freebsd")]
155+
{
156+
assert_eq!(requests.len(), 2);
157+
158+
let expect = r#"AccessRequest {
159+
node_id: 1,
160+
mask: 1,
161+
}"#;
162+
if let Some(diff) = diff_str(expect, &requests[0]) {
163+
println!("{}", diff);
164+
assert!(false);
165+
}
166+
167+
let expect = r#"AccessRequest {
168+
node_id: 2,
169+
mask: 4,
170+
}"#;
171+
if let Some(diff) = diff_str(expect, &requests[1]) {
172+
println!("{}", diff);
173+
assert!(false);
174+
}
132175
}
133176
}
134177

@@ -140,15 +183,42 @@ fn access_write() {
140183
let rc = unsafe { libc::access(path.as_ptr(), libc::W_OK) };
141184
assert_eq!(rc, 0);
142185
});
143-
assert_eq!(requests.len(), 1);
144186

145-
let expect = r#"AccessRequest {
187+
#[cfg(target_os = "linux")]
188+
{
189+
assert_eq!(requests.len(), 1);
190+
191+
let expect = r#"AccessRequest {
146192
node_id: 2,
147193
mask: 2,
148194
}"#;
149-
if let Some(diff) = diff_str(expect, &requests[0]) {
150-
println!("{}", diff);
151-
assert!(false);
195+
if let Some(diff) = diff_str(expect, &requests[0]) {
196+
println!("{}", diff);
197+
assert!(false);
198+
}
199+
}
200+
201+
#[cfg(target_os = "freebsd")]
202+
{
203+
assert_eq!(requests.len(), 2);
204+
205+
let expect = r#"AccessRequest {
206+
node_id: 1,
207+
mask: 1,
208+
}"#;
209+
if let Some(diff) = diff_str(expect, &requests[0]) {
210+
println!("{}", diff);
211+
assert!(false);
212+
}
213+
214+
let expect = r#"AccessRequest {
215+
node_id: 2,
216+
mask: 2,
217+
}"#;
218+
if let Some(diff) = diff_str(expect, &requests[1]) {
219+
println!("{}", diff);
220+
assert!(false);
221+
}
152222
}
153223
}
154224

@@ -160,23 +230,50 @@ fn access_exec() {
160230
let rc = unsafe { libc::access(path.as_ptr(), libc::X_OK) };
161231
assert_eq!(rc, 0);
162232
});
163-
assert_eq!(requests.len(), 2);
164233

165-
let expect = r#"GetattrRequest {
234+
#[cfg(target_os = "linux")]
235+
{
236+
assert_eq!(requests.len(), 2);
237+
238+
let expect = r#"GetattrRequest {
166239
node_id: 2,
167240
handle: None,
168241
}"#;
169-
if let Some(diff) = diff_str(expect, &requests[0]) {
170-
println!("{}", diff);
171-
assert!(false);
242+
if let Some(diff) = diff_str(expect, &requests[0]) {
243+
println!("{}", diff);
244+
assert!(false);
245+
}
246+
247+
let expect = r#"AccessRequest {
248+
node_id: 2,
249+
mask: 1,
250+
}"#;
251+
if let Some(diff) = diff_str(expect, &requests[1]) {
252+
println!("{}", diff);
253+
assert!(false);
254+
}
172255
}
173256

174-
let expect = r#"AccessRequest {
257+
#[cfg(target_os = "freebsd")]
258+
{
259+
assert_eq!(requests.len(), 2);
260+
261+
let expect = r#"AccessRequest {
262+
node_id: 1,
263+
mask: 1,
264+
}"#;
265+
if let Some(diff) = diff_str(expect, &requests[0]) {
266+
println!("{}", diff);
267+
assert!(false);
268+
}
269+
270+
let expect = r#"AccessRequest {
175271
node_id: 2,
176272
mask: 1,
177273
}"#;
178-
if let Some(diff) = diff_str(expect, &requests[1]) {
179-
println!("{}", diff);
180-
assert!(false);
274+
if let Some(diff) = diff_str(expect, &requests[1]) {
275+
println!("{}", diff);
276+
assert!(false);
277+
}
181278
}
182279
}

fuse/src/protocol/create/create_interop_test.rs

+39-12
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,23 @@ fn create() {
8080
});
8181
assert_eq!(requests.len(), 1);
8282

83-
let expect = r#"CreateRequest {
83+
#[cfg(target_os = "linux")]
84+
let flags = 33345;
85+
86+
#[cfg(target_os = "freebsd")]
87+
let flags = 514;
88+
89+
let expect = format!(
90+
r#"CreateRequest {{
8491
node_id: 1,
8592
name: "create.txt",
86-
flags: 33345,
93+
flags: {},
8794
mode: 0o100644,
8895
umask: 18,
89-
}"#;
90-
if let Some(diff) = diff_str(expect, &requests[0]) {
96+
}}"#,
97+
flags
98+
);
99+
if let Some(diff) = diff_str(&expect, &requests[0]) {
91100
println!("{}", diff);
92101
assert!(false);
93102
}
@@ -108,14 +117,23 @@ fn create_open() {
108117
});
109118
assert_eq!(requests.len(), 1);
110119

111-
let expect = r#"CreateRequest {
120+
#[cfg(target_os = "linux")]
121+
let flags = 32833;
122+
123+
#[cfg(target_os = "freebsd")]
124+
let flags = 514;
125+
126+
let expect = format!(
127+
r#"CreateRequest {{
112128
node_id: 1,
113129
name: "create.txt",
114-
flags: 32833,
130+
flags: {},
115131
mode: 0o100644,
116132
umask: 18,
117-
}"#;
118-
if let Some(diff) = diff_str(expect, &requests[0]) {
133+
}}"#,
134+
flags
135+
);
136+
if let Some(diff) = diff_str(&expect, &requests[0]) {
119137
println!("{}", diff);
120138
assert!(false);
121139
}
@@ -140,14 +158,23 @@ fn create_exclusive() {
140158
});
141159
assert_eq!(requests.len(), 1);
142160

143-
let expect = r#"CreateRequest {
161+
#[cfg(target_os = "linux")]
162+
let flags = 32961;
163+
164+
#[cfg(target_os = "freebsd")]
165+
let flags = 514;
166+
167+
let expect = format!(
168+
r#"CreateRequest {{
144169
node_id: 1,
145170
name: "create.txt",
146-
flags: 32961,
171+
flags: {},
147172
mode: 0o100644,
148173
umask: 18,
149-
}"#;
150-
if let Some(diff) = diff_str(expect, &requests[0]) {
174+
}}"#,
175+
flags
176+
);
177+
if let Some(diff) = diff_str(&expect, &requests[0]) {
151178
println!("{}", diff);
152179
assert!(false);
153180
}

fuse/src/protocol/fallocate/fallocate_interop_test.rs

+1
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ fn fallocate() {
125125
}
126126

127127
#[test]
128+
#[cfg_attr(target_os = "freebsd", ignore)]
128129
fn posix_fallocate() {
129130
let requests = fallocate_test(|root| {
130131
let path = path_cstr(root.join("fallocate.txt"));

fuse/src/protocol/lseek/lseek_interop_test.rs

+3
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ fn lseek_test(
8888
}
8989

9090
#[test]
91+
#[cfg_attr(target_os = "freebsd", ignore)]
9192
fn lseek_set() {
9293
let requests = lseek_test(|root| {
9394
let path = path_cstr(root.join("lseek.txt"));
@@ -104,6 +105,7 @@ fn lseek_set() {
104105
}
105106

106107
#[test]
108+
#[cfg_attr(target_os = "freebsd", ignore)]
107109
fn lseek_data() {
108110
let requests = lseek_test(|root| {
109111
let path = path_cstr(root.join("lseek.txt"));
@@ -131,6 +133,7 @@ fn lseek_data() {
131133
}
132134

133135
#[test]
136+
#[cfg_attr(target_os = "freebsd", ignore)]
134137
fn lseek_hole() {
135138
let requests = lseek_test(|root| {
136139
let path = path_cstr(root.join("lseek.txt"));

fuse/src/protocol/opendir/opendir_interop_test.rs

+12
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,15 @@ fn opendir() {
8989
});
9090
assert_eq!(requests.len(), 1);
9191

92+
#[cfg(target_os = "linux")]
9293
let expect = r#"OpendirRequest {
9394
node_id: 2,
9495
flags: 0x00018000,
96+
}"#;
97+
#[cfg(target_os = "freebsd")]
98+
let expect = r#"OpendirRequest {
99+
node_id: 2,
100+
flags: 0x00000000,
95101
}"#;
96102
if let Some(diff) = diff_str(expect, &requests[0]) {
97103
println!("{}", diff);
@@ -112,9 +118,15 @@ fn opendir_open() {
112118
});
113119
assert_eq!(requests.len(), 1);
114120

121+
#[cfg(target_os = "linux")]
115122
let expect = r#"OpendirRequest {
116123
node_id: 2,
117124
flags: 0x00008000,
125+
}"#;
126+
#[cfg(target_os = "freebsd")]
127+
let expect = r#"OpendirRequest {
128+
node_id: 2,
129+
flags: 0x00000000,
118130
}"#;
119131
if let Some(diff) = diff_str(expect, &requests[0]) {
120132
println!("{}", diff);

0 commit comments

Comments
 (0)