pike.git/
src/
testsuite.in
Branch:
Tag:
Non-build tags
All tags
No tags
2018-07-13
2018-07-13 13:53:34 by Henrik Grubbström (Grubba) <grubba@grubba.org>
bea46d8767f45fc725b4c6c5f20e9104e6ecc087 (
21
lines) (+
11
/-
10
)
[
Show
|
Annotate
]
Branch:
master
Testsuite
[cpp()]
: Updated to new #line behavior.
9878:
test_compile_any([[import Stdio.Readline; mapping x=([]);]]) // testing preprocessor
-
test_eq([[cpp("#define FOO(X,Y) (X) (Y)\nFOO( (A),(B) )")]],"
#line 1 \"-\"\n\n
( (A) ) ( (B) )")
-
test_eq([[cpp("#define FOO(X)\nFOO BAR")]],"
#line
1 \"-\"\n\nFOO
BAR")
-
test_eq([[cpp("#define F 'F'\nF")]],"
#line 1 \"-\"\n\n
'F'")
-
test_eq([[cpp("#define MAX(X,Y) ((X)>(Y)?(X):(Y))\n#define MAX3(X,Y,Z) MAX(MAX(X,Y),Z)\nMAX3(1,2,3)")]],"
#line 1 \"-\"\n\n\n
(( (( 1 )>( 2 )?( 1 ):( 2 )) )>( 3 )?( (( 1 )>( 2 )?( 1 ):( 2 )) ):( 3 ))")
+
test_eq([[cpp("#define FOO(X,Y) (X) (Y)\nFOO( (A),(B) )")]],"
\n
( (A) ) ( (B) )")
+
test_eq([[cpp("#define FOO(X)\nFOO BAR")]],"
\nFOO
BAR")
+
test_eq([[cpp("#define F 'F'\nF")]],"
\n
'F'")
+
test_eq([[cpp("#define MAX(X,Y) ((X)>(Y)?(X):(Y))\n#define MAX3(X,Y,Z) MAX(MAX(X,Y),Z)\nMAX3(1,2,3)")]],"
\n\n
(( (( 1 )>( 2 )?( 1 ):( 2 )) )>( 3 )?( (( 1 )>( 2 )?( 1 ):( 2 )) ):( 3 ))")
test_eq([[cpp("foo\xfeff""bar \xfeff gazonk")]],[[cpp("foobar gazonk")]]) test_eq([[cpp("#define A(X) #X\n#define B(Y) A(Y)\nB(foo)")]],
-
"
#line
1
\"
-\"\n\n\n \"
foo\" ")
-
test_eq([[cpp("#define FOO(X) X\nFOO(\"\\\n\")\n")]], "
#line
1
\"
-
\"
\n\n\n
\"\"
\n");
-
test_eq([[cpp("#define FOO(X) X\r\nFOO(\"\\\r\n\")\r\n")]], "
#line
1
\"
-
\"
\n\n\n
\"\"
\n" /* Note: Added extra spaces for \r. */);
+
"
\n\n
\"foo\" ")
+
test_eq([[cpp("#define FOO(X) X\nFOO(\"\\\n\")\n")]], "
\n\n
\"\" \n");
+
test_eq([[cpp("#define FOO(X) X\r\nFOO(\"\\\r\n\")\r\n")]], "
\n\n
\"\" \n" /* Note: Added extra spaces for \r. */);
test_equal([[compile_string("#define FOO(X) X\nstring s=FOO(\"\\\n\\\n\");\nmixed f() {return ({__LINE__, backtrace()[-1][1]});}\n")()->f()]], ({5, 5})); test_equal([[compile_string("#define FOO(X) X\nstring s=FOO(#\"\n\n\");\nmixed f() {return ({__LINE__, backtrace()[-1][1]});}\n")()->f()]], ({5, 5})); test_equal([[
9902:
"constant val = TOSTR2(FOO);\n")()->val; ]], "") test_eq([[cpp("foo _Pragma(\"strict_types \\\\back \\\"str\\\"\") bar")]],
-
"
#line
1 \"-\"\nfoo
\n#pragma strict_types \\back \"str\"\n#line 1 \"-\"\n bar")
+
"
foo
\n#pragma strict_types \\back \"str\"\n#line 1 \"-\"\n bar")
test_equal([[ compile_string(Charset.encoder("ebcdic-us")-> feed("#charset ebcdic-us\n" "constant val = \"abc\";\n")->drain())()->val; ]], "abc")
-
test_eq([[cpp("\\\n")]], "
#line 1 \
"
-\"\n\n"
)
-
test_eq([[cpp("#if 1\\\n-1\nfoo\n#endif\n")]], "
#line 1 \
"
-\"\n\n\n\n\n"
)
+
test_eq([[cpp("\\\n")]], "
\n
")
+
test_eq([[cpp("#if 1\\\n-1\nfoo\n#endif\n")]], "
\n\n\n\n
")
test_any([[ #define TOSTR(X) #X return TOSTR(FOO "String with \\ and \" and space" BAR);