|
1 | 1 | //! Integration test for parsing a sample ritobin file. |
2 | 2 |
|
3 | | -use ltk_ritobin::parse::parse; |
| 3 | +use ltk_ritobin::{parse::parse, print::print_bin}; |
4 | 4 |
|
5 | 5 | const SAMPLE_RITOBIN: &str = r#"#PROP_text |
6 | 6 | type: string = "PROP" |
@@ -77,18 +77,25 @@ fn test_parse_sample() { |
77 | 77 | fn test_roundtrip() { |
78 | 78 | let cst = parse(SAMPLE_RITOBIN); |
79 | 79 | let (tree, errors) = cst.build_bin(SAMPLE_RITOBIN); |
| 80 | + // assert!(errors.is_empty()); |
80 | 81 |
|
81 | 82 | // Write back to text |
82 | | - // let output = write(&tree).expect("Failed to write"); |
| 83 | + let output = print_bin(&tree, 80).expect("Failed to write"); |
83 | 84 |
|
84 | 85 | // 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()); |
87 | 94 |
|
88 | 95 | // 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()); |
92 | 99 | } |
93 | 100 | // |
94 | 101 | // #[test] |
|
0 commit comments