coverage: llvm-cov
expects column numbers to be bytes, not code points
This commit is contained in:
parent
88f5759ace
commit
6971e9332d
5 changed files with 112 additions and 27 deletions
40
tests/coverage/unicode.coverage
Normal file
40
tests/coverage/unicode.coverage
Normal file
|
@ -0,0 +1,40 @@
|
|||
LL| |// edition: 2021
|
||||
LL| |// ignore-windows - we can't force `llvm-cov` to use ANSI escapes on Windows
|
||||
LL| |// llvm-cov-flags: --use-color
|
||||
LL| |
|
||||
LL| |// Check that column numbers are denoted in bytes, so that they don't cause
|
||||
LL| |// `llvm-cov` to fail or emit malformed output.
|
||||
LL| |//
|
||||
LL| |// Note that when `llvm-cov` prints ^ arrows on a subsequent line, it simply
|
||||
LL| |// inserts one space character for each "column", with no understanding of
|
||||
LL| |// Unicode or character widths. So those arrows will tend to be misaligned
|
||||
LL| |// for non-ASCII source code, regardless of whether column numbers are code
|
||||
LL| |// points or bytes.
|
||||
LL| |
|
||||
LL| 1|fn main() {
|
||||
LL| [0;35m33[0m| for _İ in 'А'..='Я' { /* Я */ }
|
||||
^32 ^32
|
||||
LL| |
|
||||
LL| [0;35m1[0m| if 申し訳ございません() && [0;41m申し訳ございません()[0m [0;41m{[0m
|
||||
^0
|
||||
LL| 0|[0;41m println!("true");[0m
|
||||
LL| 1|[0;41m }[0m
|
||||
LL| |
|
||||
LL| 1| サビ();
|
||||
LL| 1|}
|
||||
LL| |
|
||||
LL| 1|fn 申し訳ございません() -> bool {
|
||||
LL| 1| std::hint::black_box(false)
|
||||
LL| 1|}
|
||||
LL| |
|
||||
LL| |macro_rules! macro_that_defines_a_function {
|
||||
LL| | (fn $名:ident () $体:tt) => {
|
||||
LL| [0;35m1[0m| fn $名 () $体 [0;41mfn 他 () {}[0m
|
||||
^0
|
||||
LL| | }
|
||||
LL| |}
|
||||
LL| |
|
||||
LL| |macro_that_defines_a_function! {
|
||||
LL| | fn サビ() {}
|
||||
LL| |}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue