diff options
Diffstat (limited to 'crates/test_utils/src/lib.rs')
-rw-r--r-- | crates/test_utils/src/lib.rs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/crates/test_utils/src/lib.rs b/crates/test_utils/src/lib.rs index ea99ac062..816d01f09 100644 --- a/crates/test_utils/src/lib.rs +++ b/crates/test_utils/src/lib.rs | |||
@@ -134,21 +134,25 @@ pub fn parse_fixture(fixture: &str) -> Vec<FixtureEntry> { | |||
134 | } | 134 | } |
135 | }; | 135 | }; |
136 | }; | 136 | }; |
137 | |||
137 | let margin = fixture | 138 | let margin = fixture |
138 | .lines() | 139 | .lines() |
139 | .filter(|it| it.trim_start().starts_with("//-")) | 140 | .filter(|it| it.trim_start().starts_with("//-")) |
140 | .map(|it| it.len() - it.trim_start().len()) | 141 | .map(|it| it.len() - it.trim_start().len()) |
141 | .next() | 142 | .next() |
142 | .expect("empty fixture"); | 143 | .expect("empty fixture"); |
143 | let lines = fixture.lines().filter_map(|line| { | 144 | |
144 | if line.len() >= margin { | 145 | let lines = fixture |
145 | assert!(line[..margin].trim().is_empty()); | 146 | .split('\n') // don't use `.lines` to not drop `\r\n` |
146 | Some(&line[margin..]) | 147 | .filter_map(|line| { |
147 | } else { | 148 | if line.len() >= margin { |
148 | assert!(line.trim().is_empty()); | 149 | assert!(line[..margin].trim().is_empty()); |
149 | None | 150 | Some(&line[margin..]) |
150 | } | 151 | } else { |
151 | }); | 152 | assert!(line.trim().is_empty()); |
153 | None | ||
154 | } | ||
155 | }); | ||
152 | 156 | ||
153 | for line in lines { | 157 | for line in lines { |
154 | if line.starts_with("//-") { | 158 | if line.starts_with("//-") { |