summaryrefslogtreecommitdiff
path: root/cli/tools/coverage/merge.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2022-07-11 19:02:11 -0400
committerGitHub <noreply@github.com>2022-07-11 19:02:11 -0400
commit82431062fa6dd82679e1903dda4e33103a0299da (patch)
tree1b0c0784bba6d7e767110b352a6616020f962d58 /cli/tools/coverage/merge.rs
parentb68115db3a7c87518c59e6db7fa0ca2f1e3b4ca7 (diff)
fix(coverage): better handling of multi-byte characters (#15159)
Diffstat (limited to 'cli/tools/coverage/merge.rs')
-rw-r--r--cli/tools/coverage/merge.rs162
1 files changed, 81 insertions, 81 deletions
diff --git a/cli/tools/coverage/merge.rs b/cli/tools/coverage/merge.rs
index b0606e215..08a695e1d 100644
--- a/cli/tools/coverage/merge.rs
+++ b/cli/tools/coverage/merge.rs
@@ -54,15 +54,15 @@ pub fn merge_scripts(
let first: &ScriptCoverage = &scripts[0];
(first.script_id.clone(), first.url.clone())
};
- let mut range_to_funcs: BTreeMap<Range, Vec<FunctionCoverage>> =
+ let mut range_to_funcs: BTreeMap<CharRange, Vec<FunctionCoverage>> =
BTreeMap::new();
for script_cov in scripts {
for func_cov in script_cov.functions {
let root_range = {
let root_range_cov: &CoverageRange = &func_cov.ranges[0];
- Range {
- start: root_range_cov.start_offset,
- end: root_range_cov.end_offset,
+ CharRange {
+ start: root_range_cov.start_char_offset,
+ end: root_range_cov.end_char_offset,
}
};
range_to_funcs
@@ -85,12 +85,12 @@ pub fn merge_scripts(
}
#[derive(Eq, PartialEq, Hash, Copy, Clone, Debug)]
-struct Range {
+struct CharRange {
start: usize,
end: usize,
}
-impl Ord for Range {
+impl Ord for CharRange {
fn cmp(&self, other: &Self) -> ::std::cmp::Ordering {
if self.start != other.start {
self.start.cmp(&other.start)
@@ -100,7 +100,7 @@ impl Ord for Range {
}
}
-impl PartialOrd for Range {
+impl PartialOrd for CharRange {
fn partial_cmp(&self, other: &Self) -> Option<::std::cmp::Ordering> {
if self.start != other.start {
self.start.partial_cmp(&other.start)
@@ -249,7 +249,7 @@ fn merge_range_tree_children<'a>(
Vec::with_capacity(parent_trees.len());
let mut wrapped_children: Vec<Vec<&'a mut RangeTree<'a>>> =
Vec::with_capacity(parent_trees.len());
- let mut open_range: Option<Range> = None;
+ let mut open_range: Option<CharRange> = None;
for _parent_tree in parent_trees.iter() {
flat_children.push(Vec::new());
@@ -318,7 +318,7 @@ fn merge_range_tree_children<'a>(
.push(tree);
}
start_event_queue.set_pending_offset(open_range_end);
- open_range = Some(Range {
+ open_range = Some(CharRange {
start: event.offset,
end: open_range_end,
});
@@ -452,8 +452,8 @@ mod tests {
function_name: String::from("lib"),
is_block_coverage: true,
ranges: vec![CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 1,
}],
}],
@@ -467,8 +467,8 @@ mod tests {
function_name: String::from("lib"),
is_block_coverage: true,
ranges: vec![CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 2,
}],
}],
@@ -483,8 +483,8 @@ mod tests {
function_name: String::from("lib"),
is_block_coverage: true,
ranges: vec![CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 3,
}],
}],
@@ -506,13 +506,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 10,
},
CoverageRange {
- start_offset: 3,
- end_offset: 6,
+ start_char_offset: 3,
+ end_char_offset: 6,
count: 1,
},
],
@@ -528,13 +528,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 20,
},
CoverageRange {
- start_offset: 3,
- end_offset: 6,
+ start_char_offset: 3,
+ end_char_offset: 6,
count: 2,
},
],
@@ -551,13 +551,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 30,
},
CoverageRange {
- start_offset: 3,
- end_offset: 6,
+ start_char_offset: 3,
+ end_char_offset: 6,
count: 3,
},
],
@@ -580,13 +580,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 10,
},
CoverageRange {
- start_offset: 2,
- end_offset: 5,
+ start_char_offset: 2,
+ end_char_offset: 5,
count: 1,
},
],
@@ -602,13 +602,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 20,
},
CoverageRange {
- start_offset: 4,
- end_offset: 7,
+ start_char_offset: 4,
+ end_char_offset: 7,
count: 2,
},
],
@@ -625,23 +625,23 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 30,
},
CoverageRange {
- start_offset: 2,
- end_offset: 5,
+ start_char_offset: 2,
+ end_char_offset: 5,
count: 21,
},
CoverageRange {
- start_offset: 4,
- end_offset: 5,
+ start_char_offset: 4,
+ end_char_offset: 5,
count: 3,
},
CoverageRange {
- start_offset: 5,
- end_offset: 7,
+ start_char_offset: 5,
+ end_char_offset: 7,
count: 12,
},
],
@@ -664,23 +664,23 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 1,
},
CoverageRange {
- start_offset: 1,
- end_offset: 8,
+ start_char_offset: 1,
+ end_char_offset: 8,
count: 6,
},
CoverageRange {
- start_offset: 1,
- end_offset: 5,
+ start_char_offset: 1,
+ end_char_offset: 5,
count: 5,
},
CoverageRange {
- start_offset: 5,
- end_offset: 8,
+ start_char_offset: 5,
+ end_char_offset: 8,
count: 7,
},
],
@@ -696,23 +696,23 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 4,
},
CoverageRange {
- start_offset: 1,
- end_offset: 8,
+ start_char_offset: 1,
+ end_char_offset: 8,
count: 8,
},
CoverageRange {
- start_offset: 1,
- end_offset: 5,
+ start_char_offset: 1,
+ end_char_offset: 5,
count: 9,
},
CoverageRange {
- start_offset: 5,
- end_offset: 8,
+ start_char_offset: 5,
+ end_char_offset: 8,
count: 7,
},
],
@@ -729,13 +729,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 9,
+ start_char_offset: 0,
+ end_char_offset: 9,
count: 5,
},
CoverageRange {
- start_offset: 1,
- end_offset: 8,
+ start_char_offset: 1,
+ end_char_offset: 8,
count: 14,
},
],
@@ -758,13 +758,13 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 7,
+ start_char_offset: 0,
+ end_char_offset: 7,
count: 10,
},
CoverageRange {
- start_offset: 0,
- end_offset: 4,
+ start_char_offset: 0,
+ end_char_offset: 4,
count: 1,
},
],
@@ -780,18 +780,18 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 7,
+ start_char_offset: 0,
+ end_char_offset: 7,
count: 20,
},
CoverageRange {
- start_offset: 1,
- end_offset: 6,
+ start_char_offset: 1,
+ end_char_offset: 6,
count: 11,
},
CoverageRange {
- start_offset: 2,
- end_offset: 5,
+ start_char_offset: 2,
+ end_char_offset: 5,
count: 2,
},
],
@@ -808,23 +808,23 @@ mod tests {
is_block_coverage: true,
ranges: vec![
CoverageRange {
- start_offset: 0,
- end_offset: 7,
+ start_char_offset: 0,
+ end_char_offset: 7,
count: 30,
},
CoverageRange {
- start_offset: 0,
- end_offset: 6,
+ start_char_offset: 0,
+ end_char_offset: 6,
count: 21,
},
CoverageRange {
- start_offset: 1,
- end_offset: 5,
+ start_char_offset: 1,
+ end_char_offset: 5,
count: 12,
},
CoverageRange {
- start_offset: 2,
- end_offset: 4,
+ start_char_offset: 2,
+ end_char_offset: 4,
count: 3,
},
],