Skip to content

Commit e50c853

Browse files
committed
wip: round trip tests
1 parent bb7cbb1 commit e50c853

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

crates/ltk_ritobin/tests/parse_sample.rs

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! Integration test for parsing a sample ritobin file.
22
3-
use ltk_ritobin::parse::parse;
3+
use ltk_ritobin::{parse::parse, print::print_bin};
44

55
const SAMPLE_RITOBIN: &str = r#"#PROP_text
66
type: string = "PROP"
@@ -77,18 +77,25 @@ fn test_parse_sample() {
7777
fn test_roundtrip() {
7878
let cst = parse(SAMPLE_RITOBIN);
7979
let (tree, errors) = cst.build_bin(SAMPLE_RITOBIN);
80+
// assert!(errors.is_empty());
8081

8182
// Write back to text
82-
// let output = write(&tree).expect("Failed to write");
83+
let output = print_bin(&tree, 80).expect("Failed to write");
8384

8485
// Parse again
85-
// let file2 = parse(&output).expect("Failed to parse output");
86-
// let tree2 = file2.to_bin_tree();
86+
let cst2 = parse(&output);
87+
88+
let mut str = String::new();
89+
cst2.print(&mut str, 0, &output);
90+
println!("reparsed:\n{str}");
91+
92+
let (tree2, errors) = cst2.build_bin(&output);
93+
// assert!(errors.is_empty());
8794

8895
// Verify structure is preserved
89-
// assert_eq!(tree.version, tree2.version);
90-
// assert_eq!(tree.dependencies.len(), tree2.dependencies.len());
91-
// assert_eq!(tree.objects.len(), tree2.objects.len());
96+
assert_eq!(tree.version, tree2.version);
97+
assert_eq!(tree.dependencies.len(), tree2.dependencies.len());
98+
assert_eq!(tree.objects.len(), tree2.objects.len());
9299
}
93100
//
94101
// #[test]

0 commit comments

Comments
 (0)