@@ -39,7 +39,9 @@ async fn conformance_test_runner() -> anyhow::Result<()> {
39
39
Ok ( v) => either:: Either :: Left (
40
40
iter:: once ( async move {
41
41
let path = Path :: new ( v. as_str ( ) ) . to_path_buf ( ) ;
42
- let res = run_vector ( path. clone ( ) , engine) . await ?;
42
+ let res = run_vector ( path. clone ( ) , engine)
43
+ . await
44
+ . with_context ( || format ! ( "failed to run vector: {}" , path. display( ) ) ) ?;
43
45
anyhow:: Ok ( ( path, res) )
44
46
} )
45
47
. map ( futures:: future:: Either :: Left ) ,
@@ -52,7 +54,9 @@ async fn conformance_test_runner() -> anyhow::Result<()> {
52
54
let engine = engine. clone ( ) ;
53
55
async move {
54
56
let path = e?. path ( ) . to_path_buf ( ) ;
55
- let res = run_vector ( path. clone ( ) , engine) . await ?;
57
+ let res = run_vector ( path. clone ( ) , engine)
58
+ . await
59
+ . with_context ( || format ! ( "failed to run vector: {}" , path. display( ) ) ) ?;
56
60
Ok ( ( path, res) )
57
61
}
58
62
} )
@@ -147,17 +151,19 @@ async fn run_vector(
147
151
// Upstream bug is https://github.com/serde-rs/serde/issues/1183 (or at least that looks like
148
152
// the most appropriate one out of all the related issues).
149
153
let mut vector: HashMap < String , Box < serde_json:: value:: RawValue > > =
150
- serde_json:: from_reader ( reader) ?;
154
+ serde_json:: from_reader ( reader) . context ( "failed to parse vector" ) ?;
151
155
let class_json = vector
152
156
. remove ( "class" )
153
157
. context ( "expected test vector to have a class" ) ?;
154
158
155
- let class: & str = serde_json:: from_str ( class_json. get ( ) ) ?;
159
+ let class: & str =
160
+ serde_json:: from_str ( class_json. get ( ) ) . context ( "failed to parse test vector class" ) ?;
156
161
let vector_json = serde_json:: to_string ( & vector) ?;
157
162
158
163
match class {
159
164
"message" => {
160
- let v: MessageVector = serde_json:: from_str ( & vector_json) ?;
165
+ let v: MessageVector =
166
+ serde_json:: from_str ( & vector_json) . context ( "failed to parse message vector" ) ?;
161
167
let skip = !v. selector . as_ref ( ) . map_or ( true , Selector :: supported) ;
162
168
if skip {
163
169
Ok ( either:: Either :: Left (
0 commit comments