void tst_QPluginLoader::loadCorruptElf() { #if defined (__ELF__) if (sizeof(void*) == 8) { QVERIFY(QFile::exists(SRCDIR "elftest/corrupt1.elf64.so")); QPluginLoader lib1(SRCDIR "elftest/corrupt1.elf64.so"); QCOMPARE(lib1.load(), false); QVERIFY(lib1.errorString().contains("not a valid Qt plugin")); QPluginLoader lib2(SRCDIR "elftest/corrupt2.elf64.so"); QCOMPARE(lib2.load(), false); QVERIFY(lib2.errorString().contains("not a valid Qt plugin")); QPluginLoader lib3(SRCDIR "elftest/corrupt3.elf64.so"); QCOMPARE(lib3.load(), false); QVERIFY(lib3.errorString().contains("not a valid Qt plugin")); } else if (sizeof(void*) == 4) { QPluginLoader libW(SRCDIR "elftest/corrupt3.elf64.so"); QCOMPARE(libW.load(), false); QVERIFY(libW.errorString().contains("architecture")); } else { QFAIL("Please port QElfParser to this platform or blacklist this test."); } #endif }
void tst_QPluginLoader::loadCorruptElf() { #if defined (__ELF__) if (sizeof(void*) == 8) { QVERIFY(QFile::exists(QFINDTESTDATA("elftest/corrupt1.elf64.so"))); QPluginLoader lib1(QFINDTESTDATA("elftest/corrupt1.elf64.so")); QCOMPARE(lib1.load(), false); QVERIFY2(lib1.errorString().contains("not an ELF object"), qPrintable(lib1.errorString())); QPluginLoader lib2(QFINDTESTDATA("elftest/corrupt2.elf64.so")); QCOMPARE(lib2.load(), false); QVERIFY2(lib2.errorString().contains("invalid"), qPrintable(lib2.errorString())); QPluginLoader lib3(QFINDTESTDATA("elftest/corrupt3.elf64.so")); QCOMPARE(lib3.load(), false); QVERIFY2(lib3.errorString().contains("invalid"), qPrintable(lib3.errorString())); } else if (sizeof(void*) == 4) { QPluginLoader libW(QFINDTESTDATA("elftest/corrupt3.elf64.so")); QCOMPARE(libW.load(), false); QVERIFY2(libW.errorString().contains("architecture"), qPrintable(libW.errorString())); } else { QFAIL("Please port QElfParser to this platform or blacklist this test."); } #endif }