Add roundtrip testing and bump format version

This commit is contained in:
Rune Tynan 2021-03-04 18:45:57 -05:00
parent cf5246915b
commit ca48d1566e
No known key found for this signature in database
GPG Key ID: 7ECC932F8B2C731E
4 changed files with 51 additions and 1 deletions

View File

@ -1,5 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "addr2line"
version = "0.14.0"
@ -4568,6 +4570,7 @@ name = "rustdoc-json-types"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
]
[[package]]

View File

@ -242,7 +242,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> {
)
})
.collect(),
format_version: 4,
format_version: 5,
};
let mut p = self.out_path.clone();
p.push(output.index.get(&output.root).unwrap().name.clone().unwrap());

View File

@ -9,3 +9,6 @@ path = "lib.rs"
[dependencies]
serde = { version = "1.0", features = ["derive"] }
[dev-dependencies]
serde_json = "1.0"

View File

@ -508,3 +508,47 @@ pub struct Static {
pub mutable: bool,
pub expr: String,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_struct_info_roundtrip() {
let s = ItemEnum::Struct(Struct {
struct_type: StructType::Plain,
generics: Generics {
params: vec![],
where_predicates: vec![]
},
fields_stripped: false,
fields: vec![],
impls: vec![],
});
let struct_json = serde_json::to_string(&s).unwrap();
let de_s = serde_json::from_str(&struct_json).unwrap();
assert_eq!(s, de_s);
}
#[test]
fn test_union_info_roundtrip() {
let u = ItemEnum::Union(Union {
generics: Generics {
params: vec![],
where_predicates: vec![]
},
fields_stripped: false,
fields: vec![],
impls: vec![],
});
let union_json = serde_json::to_string(&u).unwrap();
let de_u = serde_json::from_str(&union_json).unwrap();
assert_eq!(u, de_u);
}
}