diff --git a/tests/auto/cplusplus/cxx11/cxx11.pro b/tests/auto/cplusplus/cxx11/cxx11.pro index e2091b372fc..f5525de36b1 100644 --- a/tests/auto/cplusplus/cxx11/cxx11.pro +++ b/tests/auto/cplusplus/cxx11/cxx11.pro @@ -1,3 +1,10 @@ include(../../qttest.pri) include(../shared/shared.pri) SOURCES += tst_cxx11.cpp +OTHER_FILES += \ + data/inlineNamespace.1.cpp \ + data/inlineNamespace.1.errors.txt \ + data/staticAssert.1.cpp \ + data/staticAssert.1.errors.txt \ + data/noExcept.1.cpp \ + data/noExcept.1.errors.txt diff --git a/tests/auto/cplusplus/cxx11/data/noExcept.1.cpp b/tests/auto/cplusplus/cxx11/data/noExcept.1.cpp new file mode 100644 index 00000000000..7bfa4be7a8f --- /dev/null +++ b/tests/auto/cplusplus/cxx11/data/noExcept.1.cpp @@ -0,0 +1,5 @@ +void f() noexcept { +} + +void g() noexcept(1) { +} diff --git a/tests/auto/cplusplus/cxx11/data/noExcept.1.errors.txt b/tests/auto/cplusplus/cxx11/data/noExcept.1.errors.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/auto/cplusplus/cxx11/data/staticAssert.1.cpp b/tests/auto/cplusplus/cxx11/data/staticAssert.1.cpp new file mode 100644 index 00000000000..bb4a1507f90 --- /dev/null +++ b/tests/auto/cplusplus/cxx11/data/staticAssert.1.cpp @@ -0,0 +1,8 @@ +struct S { + static_assert(sizeof(char) == 1, "Some message"); + + void f() { + static_assert(sizeof(int) == 4, "Another message"); + } +}; + diff --git a/tests/auto/cplusplus/cxx11/data/staticAssert.1.errors.txt b/tests/auto/cplusplus/cxx11/data/staticAssert.1.errors.txt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/auto/cplusplus/cxx11/tst_cxx11.cpp b/tests/auto/cplusplus/cxx11/tst_cxx11.cpp index 33d396d9f5e..03a75e65aad 100644 --- a/tests/auto/cplusplus/cxx11/tst_cxx11.cpp +++ b/tests/auto/cplusplus/cxx11/tst_cxx11.cpp @@ -118,6 +118,10 @@ private Q_SLOTS: // void inlineNamespace_data(); void inlineNamespace(); + void staticAssert(); + void staticAssert_data(); + void noExcept(); + void noExcept_data(); // // checks for the semantic @@ -164,5 +168,49 @@ void tst_cxx11::inlineNamespaceLookup() QCOMPARE(results.size(), 1); // the symbol is visible from the global scope } +void tst_cxx11::staticAssert_data() +{ + QTest::addColumn("file"); + QTest::addColumn("errorFile"); + + QTest::newRow("staticAssert.1") << "staticAssert.1.cpp" << "staticAssert.1.errors.txt"; +} + +void tst_cxx11::staticAssert() +{ + QFETCH(QString, file); + QFETCH(QString, errorFile); + + QByteArray errors; + Document::Ptr doc = document(file, &errors); + + if (! qgetenv("DEBUG").isNull()) + printf("%s\n", errors.constData()); + + VERIFY_ERRORS(); +} + +void tst_cxx11::noExcept_data() +{ + QTest::addColumn("file"); + QTest::addColumn("errorFile"); + + QTest::newRow("noExcept.1") << "noExcept.1.cpp" << "noExcept.1.errors.txt"; +} + +void tst_cxx11::noExcept() +{ + QFETCH(QString, file); + QFETCH(QString, errorFile); + + QByteArray errors; + Document::Ptr doc = document(file, &errors); + + if (! qgetenv("DEBUG").isNull()) + printf("%s\n", errors.constData()); + + VERIFY_ERRORS(); +} + QTEST_APPLESS_MAIN(tst_cxx11) #include "tst_cxx11.moc"