Skip to content

Commit 05477f0

Browse files
committed
Add tests for Location Info
1 parent 2f7cc24 commit 05477f0

File tree

1 file changed

+47
-5
lines changed

1 file changed

+47
-5
lines changed

src/hl/location.rs

+47-5
Original file line numberDiff line numberDiff line change
@@ -176,16 +176,22 @@ impl From<H5O_type_t> for LocationType {
176176
}
177177

178178
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
179+
/// Information about a [`Location`]
179180
pub struct LocationInfo {
180181
pub fileno: u64,
181182
pub token: LocationToken,
182183
pub loc_type: LocationType,
183184
pub refcount: usize,
184-
pub atime: i64,
185-
pub mtime: i64,
186-
pub ctime: i64,
187-
pub btime: i64,
188-
pub num_attrs: usize,
185+
/// Not available when requesting only basic info
186+
atime: i64,
187+
/// Not available when requesting only basic info
188+
mtime: i64,
189+
/// Not available when requesting only basic info
190+
ctime: i64,
191+
/// Not available when requesting only basic info
192+
btime: i64,
193+
/// Not available when requesting only basic info
194+
num_attrs: usize,
189195
}
190196

191197
#[cfg(not(hdf5_1_12_0))]
@@ -298,4 +304,40 @@ pub mod tests {
298304
assert!(file.comment().is_none());
299305
})
300306
}
307+
308+
#[test]
309+
pub fn test_location_info() {
310+
with_tmp_file(|file| {
311+
let token;
312+
{
313+
let group = file.create_group("group").unwrap();
314+
let info = group.get_info().unwrap();
315+
assert_eq!(info.refcount, 1);
316+
assert_eq!(info.loc_type, LocationType::Group);
317+
token = info.token;
318+
}
319+
let group = file.open_by_token(token).unwrap();
320+
assert_eq!(group.name(), "/group");
321+
let token;
322+
{
323+
let var = file.new_dataset::<i8>().create("var").unwrap();
324+
var.new_attr::<i16>().create("attr").unwrap();
325+
let info = var.get_info().unwrap();
326+
assert_eq!(info.refcount, 1);
327+
assert_eq!(info.loc_type, LocationType::Dataset);
328+
token = info.token;
329+
}
330+
let var = file.open_by_token(token).unwrap();
331+
assert_eq!(var.name(), "/var");
332+
333+
let info = file.get_info_by_name("group").unwrap();
334+
let group = file.open_by_token(info.token).unwrap();
335+
assert_eq!(group.name(), "/group");
336+
let info = file.get_info_by_name("var").unwrap();
337+
let var = file.open_by_token(info.token).unwrap();
338+
assert_eq!(var.name(), "/var");
339+
340+
assert!(file.get_info_by_name("gibberish").is_err());
341+
})
342+
}
301343
}

0 commit comments

Comments
 (0)