git-commit-vandalism/t/t4034/cpp/post
Johannes Sixt 1cf93847c1 t4034/cpp: actually test that operator tokens are not split
8d96e7288f (t4034: bulk verify builtin word regex sanity, 2010-12-18)
added many tests with the intent to verify that operators consisting of
more than one symbol are kept together. These are tested by probing a
transition from, e.g., a!=b to x!=y, which results in the word-diff

  [-a-]{+x+}!=[-b-]{+y+}

But that proves only that the letters and operators are separate tokens.
To prove that != is an unseparable token, we have to probe a transition
from, e.g., a=b to a!=b having a word-diff

  a[-=-]{+!=+}b

that proves that the ! is not separate from the =.

In the post-image, add to or remove from operators a character that
turns it into another valid operator.

Change the identifiers used around operators such that the diff
algorithm does not have an incentive to match, e.g., a<b in one spot
in the pre-image with a<b elsewhere in the post-image.

Adjust the expected output to match the new differences. Notice that
there are some undesirable tokenizations around e, ., and -.  This will
be addressed in a later change.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-10-08 13:04:07 -07:00

17 lines
267 B
Plaintext

Foo() : x(0&42) { bar(x); }
cout<<"Hello World?\n"<<endl;
(1) (-1e10) (0xabcdef) 'y'
[a] b->*v d.*e
~!a !~b c+ d- e**f g&&h
a*=b c/=d e%=f
a++b c--d
a<<=b c>>=d
a<=b c<d e>=f g>h
a!=b c=d
a^=b c|=d e&=f
a|b
a?:b
a==b c+d e-f g*h i/j k%l m<<n o>>p q&r s^t u|v
a,b
a:b