From 06592b28adefd13ea6597304e359a82284400abc Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Tue, 14 Jan 2014 22:09:04 +0200 Subject: [PATCH] C++: Consolidate with/without comments preprocessor tests Change-Id: Ib08569d642da51f6d51bb0763fc95d5a5c13d28c Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com> --- .../preprocessor/tst_preprocessor.cpp | 278 +++++++----------- 1 file changed, 101 insertions(+), 177 deletions(-) diff --git a/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp b/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp index 4a5c8e17224..9cc7ecda61f 100644 --- a/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp +++ b/tests/auto/cplusplus/preprocessor/tst_preprocessor.cpp @@ -346,8 +346,6 @@ private slots: void comments_before_args(); void comments_within(); void comments_within_data(); - void comments_within2(); - void comments_within2_data(); void multitokens_argument(); void multitokens_argument_data(); void multiline_strings(); @@ -1107,12 +1105,25 @@ void tst_Preprocessor::dont_eagerly_expand() void tst_Preprocessor::comments_within() { - compare_input_output(); + QFETCH(QByteArray, input); + QFETCH(QByteArray, without_comments); + QFETCH(QByteArray, with_comments); + + Environment env; + Preprocessor preprocess(0, &env); + preprocess.setKeepComments(false); + QByteArray prep = preprocess.run(QLatin1String("<stdin>"), input); + QCOMPARE(prep.constData(), without_comments.constData()); + preprocess.setKeepComments(true); + prep = preprocess.run(QLatin1String("<stdin>"), input); + QCOMPARE(prep.constData(), with_comments.constData()); } + void tst_Preprocessor::comments_within_data() { QTest::addColumn<QByteArray>("input"); - QTest::addColumn<QByteArray>("output"); + QTest::addColumn<QByteArray>("without_comments"); + QTest::addColumn<QByteArray>("with_comments"); QTest::newRow("case 1") << _( "#define FOO int x;\n" @@ -1136,6 +1147,19 @@ void tst_Preprocessor::comments_within_data() "# expansion end\n" "# 8 \"<stdin>\"\n" "x = 10\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + " // comment\n" + " // comment\n" + " // comment\n" + " // comment\n" + "# expansion begin 76,3 ~3\n" + "int x;\n" + "# expansion end\n" + "# 8 \"<stdin>\"\n" + "x = 10\n" ); QTest::newRow("case 2") << _( @@ -1160,6 +1184,19 @@ void tst_Preprocessor::comments_within_data() "# expansion end\n" "# 8 \"<stdin>\"\n" "x = 10\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + " /* comment\n" + " comment\n" + " comment\n" + " comment */\n" + "# expansion begin 79,3 ~3\n" + "int x;\n" + "# expansion end\n" + "# 8 \"<stdin>\"\n" + "x = 10\n" ); QTest::newRow("case 3") << _( @@ -1186,6 +1223,21 @@ void tst_Preprocessor::comments_within_data() "# expansion end\n" "# 10 \"<stdin>\"\n" "x = 10\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + " // comment\n" + " // comment\n" + " // comment\n" + " // comment\n" + "# expansion begin 76,3 ~3\n" + "int x;\n" + "# expansion end\n" + "# 8 \"<stdin>\"\n" + "// test\n" + "// test again\n" + "x = 10\n" ); QTest::newRow("case 4") << _( @@ -1212,6 +1264,21 @@ void tst_Preprocessor::comments_within_data() "# expansion end\n" "# 10 \"<stdin>\"\n" "x = 10\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + " /* comment\n" + " comment\n" + " comment\n" + " comment */\n" + "# expansion begin 79,3 ~3\n" + "int x;\n" + "# expansion end\n" + "# 8 \"<stdin>\"\n" + "/* \n" + "*/\n" + "x = 10\n" ); QTest::newRow("case 5") << _( @@ -1231,6 +1298,15 @@ void tst_Preprocessor::comments_within_data() "{ (void)10; (void)12}; }\n" "# expansion end\n" "# 8 \"<stdin>\"\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + "void foo() {\n" + "# expansion begin 57,3 ~4 4:7 ~5 6:7 7:0 ~2\n" + "{ (void)10; (void)/*comment*/ 12}; }\n" + "# expansion end\n" + "# 8 \"<stdin>\"\n" ); QTest::newRow("case 6") << _( @@ -1250,6 +1326,15 @@ void tst_Preprocessor::comments_within_data() "{ (void)10; (void)12}; }\n" "# expansion end\n" "# 8 \"<stdin>\"\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + "void foo() {\n" + "# expansion begin 57,3 ~4 4:7 ~5 6:7 7:0 ~2\n" + "{ (void)10; (void)/*tricky*|comment*/ 12}; }\n" + "# expansion end\n" + "# 8 \"<stdin>\"\n" ); QTest::newRow("case 7") << _( @@ -1270,6 +1355,18 @@ void tst_Preprocessor::comments_within_data() "# 4 \"<stdin>\"\n" " ) {}\n" "}\n" + ) << _( + "# 1 \"<stdin>\"\n" + "\n" + "\n" + "void foo() {\n" + " if (\n" + "# expansion begin 68,3 ~5\n" + "(1 == 0)\n" + "# expansion end\n" + "# 4 \"<stdin>\"\n" + " ) {}\n" + "}\n" ); } @@ -1295,179 +1392,6 @@ void tst_Preprocessor::comments_before_args() QString("int a=1;int b=2;int c=3;int d=4;int e=5;")); } -void tst_Preprocessor::comments_within2() -{ - compare_input_output(true); -} - -void tst_Preprocessor::comments_within2_data() -{ - QTest::addColumn<QByteArray>("input"); - QTest::addColumn<QByteArray>("output"); - - QTest::newRow("case 1") << _( - "#define FOO int x;\n" - "\n" - " // comment\n" - " // comment\n" - " // comment\n" - " // comment\n" - "FOO\n" - "x = 10\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - " // comment\n" - " // comment\n" - " // comment\n" - " // comment\n" - "# expansion begin 76,3 ~3\n" - "int x;\n" - "# expansion end\n" - "# 8 \"<stdin>\"\n" - "x = 10\n" - ); - - QTest::newRow("case 2") << _( - "#define FOO int x;\n" - "\n" - " /* comment\n" - " comment\n" - " comment\n" - " comment */\n" - "FOO\n" - "x = 10\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - " /* comment\n" - " comment\n" - " comment\n" - " comment */\n" - "# expansion begin 79,3 ~3\n" - "int x;\n" - "# expansion end\n" - "# 8 \"<stdin>\"\n" - "x = 10\n" - ); - - QTest::newRow("case 3") << _( - "#define FOO int x;\n" - "\n" - " // comment\n" - " // comment\n" - " // comment\n" - " // comment\n" - "FOO\n" - "// test\n" - "// test again\n" - "x = 10\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - " // comment\n" - " // comment\n" - " // comment\n" - " // comment\n" - "# expansion begin 76,3 ~3\n" - "int x;\n" - "# expansion end\n" - "# 8 \"<stdin>\"\n" - "// test\n" - "// test again\n" - "x = 10\n" - ); - - QTest::newRow("case 4") << _( - "#define FOO int x;\n" - "\n" - "void foo() { /* comment\n" - " comment\n" - " comment\n" - " comment */\n" - "FOO\n" - "/* \n" - "*/\n" - "x = 10\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - "void foo() { /* comment\n" - " comment\n" - " comment\n" - " comment */\n" - "# expansion begin 91,3 ~3\n" - "int x;\n" - "# expansion end\n" - "# 8 \"<stdin>\"\n" - "/* \n" - "*/\n" - "x = 10\n" - ); - - QTest::newRow("case 5") << _( - "#define FOO(x, y) { (void)x; (void)y; }\n" - "\n" - "void foo() {\n" - " FOO(10,\n" - " //comment\n" - " 12\n" - "}\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - "void foo() {\n" - "# expansion begin 57,3 ~4 4:7 ~5 6:7 7:0 ~2\n" - "{ (void)10; (void)/*comment*/ 12}; }\n" - "# expansion end\n" - "# 8 \"<stdin>\"\n" - ); - - QTest::newRow("case 6") << _( - "#define FOO(x, y) { (void)x; (void)y; }\n" - "\n" - "void foo() {\n" - " FOO(10,\n" - " //tricky*/comment\n" - " 12\n" - "}\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - "void foo() {\n" - "# expansion begin 57,3 ~4 4:7 ~5 6:7 7:0 ~2\n" - "{ (void)10; (void)/*tricky*|comment*/ 12}; }\n" - "# expansion end\n" - "# 8 \"<stdin>\"\n" - ); - - QTest::newRow("case 7") << _( - "#define FOO 0 //comment\n" - "#define BAR (1 == FOO)\n" - "void foo() {\n" - " if (BAR) {}\n" - "}\n" - ) << _( - "# 1 \"<stdin>\"\n" - "\n" - "\n" - "void foo() {\n" - " if (\n" - "# expansion begin 68,3 ~5\n" - "(1 == 0)\n" - "# expansion end\n" - "# 4 \"<stdin>\"\n" - " ) {}\n" - "}\n" - ); -} - void tst_Preprocessor::multiline_strings() { compare_input_output(); -- GitLab