Skip to content

Commit 9d8d83a

Browse files
committed
add error and panic tests for codes_index
1 parent bb2558c commit 9d8d83a

File tree

1 file changed

+39
-3
lines changed

1 file changed

+39
-3
lines changed

tests/index.rs

+39-3
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,50 @@ fn collect_index_iterator() {
8383

8484
#[test]
8585
fn add_file_error() {
86+
thread::spawn(|| {
87+
let grib_path = Path::new("./data/iceland-levels.grib");
88+
let keys = vec!["shortName", "typeOfLevel", "level", "stepType"];
89+
let mut index_op = CodesIndex::new_from_keys(&keys).unwrap();
90+
91+
loop {
92+
index_op = index_op.add_grib_file(grib_path).unwrap();
93+
}
94+
});
95+
96+
thread::sleep(std::time::Duration::from_millis(250));
97+
8698
let keys = vec!["shortName", "typeOfLevel", "level", "stepType"];
87-
let index = CodesIndex::new_from_keys(&keys).unwrap();
88-
let grib_path = Path::new("./data/xxx.grib");
89-
let index = index.add_grib_file(grib_path);
99+
let wrong_path = Path::new("./data/xxx.grib");
100+
let index = CodesIndex::new_from_keys(&keys)
101+
.unwrap()
102+
.add_grib_file(wrong_path);
90103

91104
assert!(index.is_err());
92105
}
93106

107+
#[test]
108+
fn index_panic() {
109+
thread::spawn(|| {
110+
let grib_path = Path::new("./data/iceland-levels.grib");
111+
let keys = vec!["shortName", "typeOfLevel", "level", "stepType"];
112+
let mut index_op = CodesIndex::new_from_keys(&keys).unwrap();
113+
114+
loop {
115+
index_op = index_op.add_grib_file(grib_path).unwrap();
116+
}
117+
});
118+
119+
thread::sleep(std::time::Duration::from_millis(250));
120+
121+
let keys = vec!["shortName", "typeOfLevel", "level", "stepType"];
122+
let wrong_path = Path::new("./data/xxx.grib");
123+
let index = CodesIndex::new_from_keys(&keys).unwrap();
124+
125+
let result = std::panic::catch_unwind(|| index.add_grib_file(wrong_path).unwrap());
126+
127+
assert!(result.is_err());
128+
}
129+
94130
#[test]
95131
fn add_file_while_index_open() {
96132
thread::spawn(|| {

0 commit comments

Comments
 (0)