Skip to content

Commit

Permalink
Add roundtrip testing and bump format version
Browse files Browse the repository at this point in the history
  • Loading branch information
CraftSpider committed Mar 6, 2021
1 parent cf52469 commit ca48d15
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 1 deletion.
3 changes: 3 additions & 0 deletions Cargo.lock
@@ -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"
Expand Down Expand Up @@ -4568,6 +4570,7 @@ name = "rustdoc-json-types"
version = "0.1.0"
dependencies = [
"serde",
"serde_json",
]

[[package]]
Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/json/mod.rs
Expand Up @@ -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());
Expand Down
3 changes: 3 additions & 0 deletions src/rustdoc-json-types/Cargo.toml
Expand Up @@ -9,3 +9,6 @@ path = "lib.rs"

[dependencies]
serde = { version = "1.0", features = ["derive"] }

[dev-dependencies]
serde_json = "1.0"
44 changes: 44 additions & 0 deletions src/rustdoc-json-types/lib.rs
Expand Up @@ -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);
}
}

0 comments on commit ca48d15

Please sign in to comment.