Skip to content

Commit 5edcb89

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

File tree

4 files changed

+158
-41
lines changed

4 files changed

+158
-41
lines changed

fuse/src/protocol/getxattr/getxattr_interop_test.rs

+18-12
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ impl fuse::FuseHandlers for TestFS {
6060
) {
6161
self.requests.send(format!("{:#?}", request)).unwrap();
6262

63-
let xattr_small = fuse::XattrName::from_bytes(b"xattr_small").unwrap();
63+
let xattr_small =
64+
fuse::XattrName::from_bytes(b"user.xattr_small").unwrap();
6465
let xattr_toobig =
65-
fuse::XattrName::from_bytes(b"xattr_toobig").unwrap();
66+
fuse::XattrName::from_bytes(b"user.xattr_toobig").unwrap();
6667

6768
if request.name() == xattr_small {
6869
let mut resp = fuse::GetxattrResponse::new(request.size());
@@ -104,10 +105,10 @@ fn getxattr_test(
104105
fn getxattr_query_size() {
105106
let requests = getxattr_test(|root| {
106107
let path = path_cstr(root.join("xattrs.txt"));
107-
let xattr_name = ffi::CString::new("xattr_small").unwrap();
108108

109109
#[cfg(target_os = "linux")]
110110
let rc = unsafe {
111+
let xattr_name = ffi::CString::new("user.xattr_small").unwrap();
111112
libc::getxattr(
112113
path.as_ptr(),
113114
xattr_name.as_ptr(),
@@ -118,6 +119,7 @@ fn getxattr_query_size() {
118119

119120
#[cfg(target_os = "freebsd")]
120121
let rc = unsafe {
122+
let xattr_name = ffi::CString::new("xattr_small").unwrap();
121123
libc::extattr_get_file(
122124
path.as_ptr(),
123125
libc::EXTATTR_NAMESPACE_USER,
@@ -134,7 +136,7 @@ fn getxattr_query_size() {
134136
let expect = r#"GetxattrRequest {
135137
node_id: 2,
136138
size: None,
137-
name: "xattr_small",
139+
name: "user.xattr_small",
138140
}"#;
139141
if let Some(diff) = diff_str(expect, &requests[0]) {
140142
println!("{}", diff);
@@ -146,12 +148,12 @@ fn getxattr_query_size() {
146148
fn getxattr_small() {
147149
let requests = getxattr_test(|root| {
148150
let path = path_cstr(root.join("xattrs.txt"));
149-
let xattr_name = ffi::CString::new("xattr_small").unwrap();
150151

151152
let mut value = [0u8; 20];
152153

153154
#[cfg(target_os = "linux")]
154155
let rc = unsafe {
156+
let xattr_name = ffi::CString::new("user.xattr_small").unwrap();
155157
libc::getxattr(
156158
path.as_ptr(),
157159
xattr_name.as_ptr(),
@@ -162,6 +164,7 @@ fn getxattr_small() {
162164

163165
#[cfg(target_os = "freebsd")]
164166
let rc = unsafe {
167+
let xattr_name = ffi::CString::new("xattr_small").unwrap();
165168
libc::extattr_get_file(
166169
path.as_ptr(),
167170
libc::EXTATTR_NAMESPACE_USER,
@@ -179,7 +182,7 @@ fn getxattr_small() {
179182
let expect = r#"GetxattrRequest {
180183
node_id: 2,
181184
size: Some(20),
182-
name: "xattr_small",
185+
name: "user.xattr_small",
183186
}"#;
184187
if let Some(diff) = diff_str(expect, &requests[0]) {
185188
println!("{}", diff);
@@ -191,10 +194,10 @@ fn getxattr_small() {
191194
fn getxattr_noexist() {
192195
let requests = getxattr_test(|root| {
193196
let path = path_cstr(root.join("xattrs.txt"));
194-
let xattr_name = ffi::CString::new("xattr_noexist").unwrap();
195197

196198
#[cfg(target_os = "linux")]
197199
let rc = unsafe {
200+
let xattr_name = ffi::CString::new("user.xattr_noexist").unwrap();
198201
libc::getxattr(
199202
path.as_ptr(),
200203
xattr_name.as_ptr(),
@@ -205,6 +208,7 @@ fn getxattr_noexist() {
205208

206209
#[cfg(target_os = "freebsd")]
207210
let rc = unsafe {
211+
let xattr_name = ffi::CString::new("xattr_noexist").unwrap();
208212
libc::extattr_get_file(
209213
path.as_ptr(),
210214
libc::EXTATTR_NAMESPACE_USER,
@@ -224,7 +228,7 @@ fn getxattr_noexist() {
224228
let expect = r#"GetxattrRequest {
225229
node_id: 2,
226230
size: None,
227-
name: "xattr_noexist",
231+
name: "user.xattr_noexist",
228232
}"#;
229233
if let Some(diff) = diff_str(expect, &requests[0]) {
230234
println!("{}", diff);
@@ -236,12 +240,12 @@ fn getxattr_noexist() {
236240
fn getxattr_buffer_too_small() {
237241
let requests = getxattr_test(|root| {
238242
let path = path_cstr(root.join("xattrs.txt"));
239-
let xattr_name = ffi::CString::new("xattr_small").unwrap();
240243

241244
let mut value = [0u8; 1];
242245

243246
#[cfg(target_os = "linux")]
244247
let rc = unsafe {
248+
let xattr_name = ffi::CString::new("user.xattr_small").unwrap();
245249
libc::getxattr(
246250
path.as_ptr(),
247251
xattr_name.as_ptr(),
@@ -252,6 +256,7 @@ fn getxattr_buffer_too_small() {
252256

253257
#[cfg(target_os = "freebsd")]
254258
let rc = unsafe {
259+
let xattr_name = ffi::CString::new("xattr_small").unwrap();
255260
libc::extattr_get_file(
256261
path.as_ptr(),
257262
libc::EXTATTR_NAMESPACE_USER,
@@ -269,7 +274,7 @@ fn getxattr_buffer_too_small() {
269274
let expect = r#"GetxattrRequest {
270275
node_id: 2,
271276
size: Some(1),
272-
name: "xattr_small",
277+
name: "user.xattr_small",
273278
}"#;
274279
if let Some(diff) = diff_str(expect, &requests[0]) {
275280
println!("{}", diff);
@@ -281,12 +286,12 @@ fn getxattr_buffer_too_small() {
281286
fn getxattr_oversize_xattr() {
282287
let requests = getxattr_test(|root| {
283288
let path = path_cstr(root.join("xattrs.txt"));
284-
let xattr_name = ffi::CString::new("xattr_toobig").unwrap();
285289

286290
let mut value = [0u8; 32];
287291

288292
#[cfg(target_os = "linux")]
289293
let rc = unsafe {
294+
let xattr_name = ffi::CString::new("user.xattr_toobig").unwrap();
290295
libc::getxattr(
291296
path.as_ptr(),
292297
xattr_name.as_ptr(),
@@ -297,6 +302,7 @@ fn getxattr_oversize_xattr() {
297302

298303
#[cfg(target_os = "freebsd")]
299304
let rc = unsafe {
305+
let xattr_name = ffi::CString::new("xattr_toobig").unwrap();
300306
libc::extattr_get_file(
301307
path.as_ptr(),
302308
libc::EXTATTR_NAMESPACE_USER,
@@ -314,7 +320,7 @@ fn getxattr_oversize_xattr() {
314320
let expect = r#"GetxattrRequest {
315321
node_id: 2,
316322
size: Some(32),
317-
name: "xattr_toobig",
323+
name: "user.xattr_toobig",
318324
}"#;
319325
if let Some(diff) = diff_str(expect, &requests[0]) {
320326
println!("{}", diff);

0 commit comments

Comments
 (0)