t4034: add tests showing problematic cpp tokenizations

The word regex is too loose and matches long streaks of characters
that should actually be separate tokens.  Add these problematic test
cases. Separate the lines with text that will remain identical in the
pre- and post-image so that the diff algorithm will not lump removals
and additions of consecutive lines together. This makes the expected
output easier to read.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Sixt 2021-10-08 19:09:54 +00:00 committed by Junio C Hamano
parent 1cf93847c1
commit 3e063de46e
3 changed files with 49 additions and 7 deletions

View File

@ -1,11 +1,25 @@
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index c5672a2..4229868 100644<RESET>
<BOLD>index 1229cdb..3feae6f 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,16 +1,16 @@<RESET>
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <GREEN>bar(x);<RESET> }
<CYAN>@@ -1,30 +1,30 @@<RESET>
Foo() : x(0<RED>&&1<RESET><GREEN>&42<RESET>) { <RED>foo0<RESET><GREEN>bar<RESET>(x<RED>.f<RESET><GREEN>.F<RESET>ind); }
cout<<"Hello World<RED>!<RESET><GREEN>?<RESET>\n"<<endl;
<GREEN>(<RESET>1<GREEN>) (<RESET>-1e10<GREEN>) (<RESET>0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
<GREEN>(<RESET>1 <RED>-1e10<RESET><GREEN>+1e10<RESET> 0xabcdef<GREEN>)<RESET> '<RED>x<RESET><GREEN>y<RESET>'
// long double<RESET>
<RED>3.141592653e-10l<RESET><GREEN>3.141592654e+10l<RESET>
// float<RESET>
120<RED>E5f<RESET><GREEN>E6f<RESET>
// hex<RESET>
<RED>0xdeadbeaf+8<RESET><GREEN>0xdeadBeaf+7<RESET>ULL
// octal<RESET>
<RED>01234567<RESET><GREEN>01234560<RESET>
// binary<RESET>
<RED>0b1000<RESET><GREEN>0b1100<RESET>+e1
// expression<RESET>
<RED>1.5-e+2+f<RESET><GREEN>1.5-e+3+f<RESET>
// another one<RESET>
str<RED>.e+65<RESET><GREEN>.e+75<RESET>
[a] b<RED>-><RESET><GREEN>->*<RESET>v d<RED>.e<RESET><GREEN>.*e<RESET>
<GREEN>~<RESET>!a <GREEN>!<RESET>~b c<RED>++<RESET><GREEN>+<RESET> d<RED>--<RESET><GREEN>-<RESET> e*<GREEN>*<RESET>f g<RED>&<RESET><GREEN>&&<RESET>h
a<RED>*<RESET><GREEN>*=<RESET>b c<RED>/<RESET><GREEN>/=<RESET>d e<RED>%<RESET><GREEN>%=<RESET>f

View File

@ -1,6 +1,20 @@
Foo() : x(0&42) { bar(x); }
Foo() : x(0&42) { bar(x.Find); }
cout<<"Hello World?\n"<<endl;
(1) (-1e10) (0xabcdef) 'y'
(1 +1e10 0xabcdef) 'y'
// long double
3.141592654e+10l
// float
120E6f
// hex
0xdeadBeaf+7ULL
// octal
01234560
// binary
0b1100+e1
// expression
1.5-e+3+f
// another one
str.e+75
[a] b->*v d.*e
~!a !~b c+ d- e**f g&&h
a*=b c/=d e%=f

View File

@ -1,6 +1,20 @@
Foo():x(0&&1){}
Foo():x(0&&1){ foo0( x.find); }
cout<<"Hello World!\n"<<endl;
1 -1e10 0xabcdef 'x'
// long double
3.141592653e-10l
// float
120E5f
// hex
0xdeadbeaf+8ULL
// octal
01234567
// binary
0b1000+e1
// expression
1.5-e+2+f
// another one
str.e+65
[a] b->v d.e
!a ~b c++ d-- e*f g&h
a*b c/d e%f