summaryrefslogtreecommitdiffstats
path: root/tests/auto/qpluginloader
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qpluginloader')
-rw-r--r--tests/auto/qpluginloader/.gitignore2
-rw-r--r--tests/auto/qpluginloader/almostplugin/almostplugin.cpp51
-rw-r--r--tests/auto/qpluginloader/almostplugin/almostplugin.h57
-rw-r--r--tests/auto/qpluginloader/almostplugin/almostplugin.pro7
-rw-r--r--tests/auto/qpluginloader/elftest/.gitattributes10
-rwxr-xr-xtests/auto/qpluginloader/elftest/corrupt1.elf64.sobin239745 -> 0 bytes
-rwxr-xr-xtests/auto/qpluginloader/elftest/corrupt2.elf64.sobin240097 -> 0 bytes
-rwxr-xr-xtests/auto/qpluginloader/elftest/corrupt3.elf64.sobin240097 -> 0 bytes
-rw-r--r--tests/auto/qpluginloader/elftest/debugobj.sobin507232 -> 0 bytes
-rw-r--r--tests/auto/qpluginloader/elftest/garbage1.so4
-rw-r--r--tests/auto/qpluginloader/elftest/garbage2.so1
-rw-r--r--tests/auto/qpluginloader/elftest/garbage3.so1
-rw-r--r--tests/auto/qpluginloader/elftest/garbage4.so1
-rw-r--r--tests/auto/qpluginloader/elftest/garbage5.so2
-rw-r--r--tests/auto/qpluginloader/lib/lib.pro18
-rw-r--r--tests/auto/qpluginloader/lib/mylib.c60
-rw-r--r--tests/auto/qpluginloader/qpluginloader.pro14
-rw-r--r--tests/auto/qpluginloader/theplugin/plugininterface.h54
-rw-r--r--tests/auto/qpluginloader/theplugin/theplugin.cpp51
-rw-r--r--tests/auto/qpluginloader/theplugin/theplugin.h57
-rw-r--r--tests/auto/qpluginloader/theplugin/theplugin.pro11
-rw-r--r--tests/auto/qpluginloader/tst/tst.pro32
-rw-r--r--tests/auto/qpluginloader/tst_qpluginloader.cpp406
23 files changed, 0 insertions, 839 deletions
diff --git a/tests/auto/qpluginloader/.gitignore b/tests/auto/qpluginloader/.gitignore
deleted file mode 100644
index 6b2fa3a715..0000000000
--- a/tests/auto/qpluginloader/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-tst_qpluginloader
-bin/
diff --git a/tests/auto/qpluginloader/almostplugin/almostplugin.cpp b/tests/auto/qpluginloader/almostplugin/almostplugin.cpp
deleted file mode 100644
index 70596c0113..0000000000
--- a/tests/auto/qpluginloader/almostplugin/almostplugin.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QtCore/QString>
-#include "almostplugin.h"
-#include <QtCore/qplugin.h>
-
-QString AlmostPlugin::pluginName() const
-{
- unresolvedSymbol();
- return QLatin1String("Plugin ok");
-}
-
-Q_EXPORT_PLUGIN2(almostplugin, AlmostPlugin)
diff --git a/tests/auto/qpluginloader/almostplugin/almostplugin.h b/tests/auto/qpluginloader/almostplugin/almostplugin.h
deleted file mode 100644
index 0021180b36..0000000000
--- a/tests/auto/qpluginloader/almostplugin/almostplugin.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef ALMOSTPLUGIN_H
-#define ALMOSTPLUGIN_H
-
-#include <QObject>
-#include "../theplugin/plugininterface.h"
-
-class AlmostPlugin : public QObject, public PluginInterface
-{
- Q_OBJECT
- Q_INTERFACES(PluginInterface)
-
-public:
- QString pluginName() const;
- void unresolvedSymbol() const;
-};
-
-#endif // ALMOSTPLUGIN_H
diff --git a/tests/auto/qpluginloader/almostplugin/almostplugin.pro b/tests/auto/qpluginloader/almostplugin/almostplugin.pro
deleted file mode 100644
index b45509ef01..0000000000
--- a/tests/auto/qpluginloader/almostplugin/almostplugin.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-HEADERS = almostplugin.h
-SOURCES = almostplugin.cpp
-TARGET = almostplugin
-DESTDIR = ../bin
-*-g++*:QMAKE_LFLAGS -= -Wl,--no-undefined
diff --git a/tests/auto/qpluginloader/elftest/.gitattributes b/tests/auto/qpluginloader/elftest/.gitattributes
deleted file mode 100644
index 891192ca94..0000000000
--- a/tests/auto/qpluginloader/elftest/.gitattributes
+++ /dev/null
@@ -1,10 +0,0 @@
-corrupt1.elf64.so set -crlf -diff
-corrupt2.elf64.so set -crlf -diff
-corrupt3.elf64.so set -crlf -diff
-debugobj.so set -crlf -diff
-garbage1.so set -crlf -diff
-garbage2.so set -crlf -diff
-garbage3.so set -crlf -diff
-garbage4.so set -crlf -diff
-garbage5.so set -crlf -diff
-
diff --git a/tests/auto/qpluginloader/elftest/corrupt1.elf64.so b/tests/auto/qpluginloader/elftest/corrupt1.elf64.so
deleted file mode 100755
index 12ce7362dc..0000000000
--- a/tests/auto/qpluginloader/elftest/corrupt1.elf64.so
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qpluginloader/elftest/corrupt2.elf64.so b/tests/auto/qpluginloader/elftest/corrupt2.elf64.so
deleted file mode 100755
index 11fdc2c118..0000000000
--- a/tests/auto/qpluginloader/elftest/corrupt2.elf64.so
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qpluginloader/elftest/corrupt3.elf64.so b/tests/auto/qpluginloader/elftest/corrupt3.elf64.so
deleted file mode 100755
index 94a2bc3560..0000000000
--- a/tests/auto/qpluginloader/elftest/corrupt3.elf64.so
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qpluginloader/elftest/debugobj.so b/tests/auto/qpluginloader/elftest/debugobj.so
deleted file mode 100644
index f0ee0569a3..0000000000
--- a/tests/auto/qpluginloader/elftest/debugobj.so
+++ /dev/null
Binary files differ
diff --git a/tests/auto/qpluginloader/elftest/garbage1.so b/tests/auto/qpluginloader/elftest/garbage1.so
deleted file mode 100644
index 0c7453077f..0000000000
--- a/tests/auto/qpluginloader/elftest/garbage1.so
+++ /dev/null
@@ -1,4 +0,0 @@
-pcdL+&&e=
-oÒʎI ٝmg]!Z
-L')t
-N(e P)Y8G 6-y "Zk4?^n5$Y=#y \ No newline at end of file
diff --git a/tests/auto/qpluginloader/elftest/garbage2.so b/tests/auto/qpluginloader/elftest/garbage2.so
deleted file mode 100644
index c06338e0c8..0000000000
--- a/tests/auto/qpluginloader/elftest/garbage2.so
+++ /dev/null
@@ -1 +0,0 @@
-v.YtKW3 \ No newline at end of file
diff --git a/tests/auto/qpluginloader/elftest/garbage3.so b/tests/auto/qpluginloader/elftest/garbage3.so
deleted file mode 100644
index a24c523a77..0000000000
--- a/tests/auto/qpluginloader/elftest/garbage3.so
+++ /dev/null
@@ -1 +0,0 @@
-ȂT-ڥ 쾜i8_xI׮x=4@[BKS$ \ No newline at end of file
diff --git a/tests/auto/qpluginloader/elftest/garbage4.so b/tests/auto/qpluginloader/elftest/garbage4.so
deleted file mode 100644
index 4f45cf5157..0000000000
--- a/tests/auto/qpluginloader/elftest/garbage4.so
+++ /dev/null
@@ -1 +0,0 @@
- !\~Uu:9T+91QEǚxng5zh^t'mm*ˈdXH;vw+G 9L0! \ No newline at end of file
diff --git a/tests/auto/qpluginloader/elftest/garbage5.so b/tests/auto/qpluginloader/elftest/garbage5.so
deleted file mode 100644
index f8c0a1d544..0000000000
--- a/tests/auto/qpluginloader/elftest/garbage5.so
+++ /dev/null
@@ -1,2 +0,0 @@
-Q
--9 \ No newline at end of file
diff --git a/tests/auto/qpluginloader/lib/lib.pro b/tests/auto/qpluginloader/lib/lib.pro
deleted file mode 100644
index ce9bf13c25..0000000000
--- a/tests/auto/qpluginloader/lib/lib.pro
+++ /dev/null
@@ -1,18 +0,0 @@
-TEMPLATE = lib
-CONFIG += dll
-CONFIG -= staticlib
-SOURCES = mylib.c
-TARGET = tst_qpluginloaderlib
-DESTDIR = ../bin
-QT = core
-
-win32-msvc: DEFINES += WIN32_MSVC
-win32-borland: DEFINES += WIN32_BORLAND
-
-#no special install rule for the library used by test
-INSTALLS =
-
-symbian: {
- TARGET.CAPABILITY=ALL -TCB
-}
-
diff --git a/tests/auto/qpluginloader/lib/mylib.c b/tests/auto/qpluginloader/lib/mylib.c
deleted file mode 100644
index dc43c35815..0000000000
--- a/tests/auto/qpluginloader/lib/mylib.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qglobal.h>
-
-#if defined(Q_CC_MSVC) || defined(Q_CC_MSVC_NET) || defined(Q_CC_BOR)
-#define LIB_EXPORT __declspec(dllexport)
-#else
-#define LIB_EXPORT
-#endif
-
-#if defined(Q_CC_BOR)
-# define BORLAND_STDCALL __stdcall
-#else
-# define BORLAND_STDCALL
-#endif
-
-LIB_EXPORT int BORLAND_STDCALL version()
-{
- return 1;
-}
-
diff --git a/tests/auto/qpluginloader/qpluginloader.pro b/tests/auto/qpluginloader/qpluginloader.pro
deleted file mode 100644
index 6e41b4c96a..0000000000
--- a/tests/auto/qpluginloader/qpluginloader.pro
+++ /dev/null
@@ -1,14 +0,0 @@
-QT = core
-TEMPLATE = subdirs
-CONFIG += ordered
-SUBDIRS = lib \
- theplugin \
- tst
-!win32: !macx-*: !symbian: SUBDIRS += almostplugin
-TARGET = tst_qpluginloader
-
-# no special install rule for subdir
-INSTALLS =
-
-
-CONFIG += parallel_test
diff --git a/tests/auto/qpluginloader/theplugin/plugininterface.h b/tests/auto/qpluginloader/theplugin/plugininterface.h
deleted file mode 100644
index 48d8443ba1..0000000000
--- a/tests/auto/qpluginloader/theplugin/plugininterface.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef PLUGININTERFACE_H
-#define PLUGININTERFACE_H
-
-struct PluginInterface {
- virtual ~PluginInterface() {}
- virtual QString pluginName() const = 0;
-};
-
-QT_BEGIN_NAMESPACE
-Q_DECLARE_INTERFACE(PluginInterface, "com.trolltect.autotests.plugininterface/1.0")
-QT_END_NAMESPACE
-
-#endif // PLUGININTERFACE_H
-
diff --git a/tests/auto/qpluginloader/theplugin/theplugin.cpp b/tests/auto/qpluginloader/theplugin/theplugin.cpp
deleted file mode 100644
index fdf599c875..0000000000
--- a/tests/auto/qpluginloader/theplugin/theplugin.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QtCore/QString>
-#include "theplugin.h"
-#include <QtCore/qplugin.h>
-
-QString ThePlugin::pluginName() const
-{
- return QLatin1String("Plugin ok");
-}
-
-Q_EXPORT_PLUGIN2(theplugin, ThePlugin)
-
diff --git a/tests/auto/qpluginloader/theplugin/theplugin.h b/tests/auto/qpluginloader/theplugin/theplugin.h
deleted file mode 100644
index 5b738696e0..0000000000
--- a/tests/auto/qpluginloader/theplugin/theplugin.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef THEPLUGIN_H
-#define THEPLUGIN_H
-
-#include <QObject>
-#include "plugininterface.h"
-
-class ThePlugin : public QObject, public PluginInterface
-{
- Q_OBJECT
- Q_INTERFACES(PluginInterface)
-
-public:
- virtual QString pluginName() const;
-};
-
-#endif // THEPLUGIN_H
-
diff --git a/tests/auto/qpluginloader/theplugin/theplugin.pro b/tests/auto/qpluginloader/theplugin/theplugin.pro
deleted file mode 100644
index 44b46b439f..0000000000
--- a/tests/auto/qpluginloader/theplugin/theplugin.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-TEMPLATE = lib
-CONFIG += plugin
-HEADERS = theplugin.h
-SOURCES = theplugin.cpp
-TARGET = $$qtLibraryTarget(theplugin)
-DESTDIR = ../bin
-
-symbian: {
- TARGET.EPOCALLOWDLLDATA=1
- TARGET.CAPABILITY=ALL -TCB
-}
diff --git a/tests/auto/qpluginloader/tst/tst.pro b/tests/auto/qpluginloader/tst/tst.pro
deleted file mode 100644
index 7ae6d89143..0000000000
--- a/tests/auto/qpluginloader/tst/tst.pro
+++ /dev/null
@@ -1,32 +0,0 @@
-load(qttest_p4)
-SOURCES += ../tst_qpluginloader.cpp
-TARGET = ../tst_qpluginloader
-QT = core
-HEADERS += ../theplugin/plugininterface.h
-
-win32 {
- CONFIG(debug, debug|release) {
- TARGET = ../../debug/tst_qpluginloader
-} else {
- TARGET = ../../release/tst_qpluginloader
- }
-}
-
-
-wince*: {
- addFiles.files = $$OUT_PWD/../bin/*.dll
- addFiles.path = bin
- DEPLOYMENT += addFiles
-}
-
-symbian: {
- libDep.files = tst_qpluginloaderlib.dll
- libDep.path = /sys/bin
- pluginDep.files = theplugin.dll
- pluginDep.path = bin
-
- DEPLOYMENT += libDep pluginDep
-}
-
-DEFINES += SRCDIR=\\\"$$PWD/../\\\"
-mac*:CONFIG+=insignificant_test
diff --git a/tests/auto/qpluginloader/tst_qpluginloader.cpp b/tests/auto/qpluginloader/tst_qpluginloader.cpp
deleted file mode 100644
index 76dbd48a14..0000000000
--- a/tests/auto/qpluginloader/tst_qpluginloader.cpp
+++ /dev/null
@@ -1,406 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-#include <qdir.h>
-#include <qpluginloader.h>
-#include "theplugin/plugininterface.h"
-
-// Helper macros to let us know if some suffixes are valid
-#define bundle_VALID false
-#define dylib_VALID false
-#define sl_VALID false
-#define a_VALID false
-#define so_VALID false
-#define dll_VALID false
-
-#if defined(Q_OS_DARWIN)
-# undef bundle_VALID
-# undef dylib_VALID
-# undef so_VALID
-# define bundle_VALID true
-# define dylib_VALID true
-# define so_VALID true
-# define SUFFIX ".dylib"
-# define PREFIX "lib"
-
-#elif defined(Q_OS_HPUX) && !defined(__ia64)
-# undef sl_VALID
-# define sl_VALID true
-# define SUFFIX ".sl"
-# define PREFIX "lib"
-
-#elif defined(Q_OS_AIX)
-# undef a_VALID
-# undef so_VALID
-# define a_VALID true
-# define so_VALID true
-# define SUFFIX ".so"
-# define PREFIX "lib"
-
-#elif defined(Q_OS_WIN)
-# undef dll_VALID
-# define dll_VALID true
-# ifdef QT_NO_DEBUG
-# define SUFFIX ".dll"
-# else
-# define SUFFIX "d.dll"
-# endif
-# define PREFIX ""
-
-#elif defined(Q_OS_SYMBIAN)
-# undef dll_VALID
-# define dll_VALID true
-# define SUFFIX ".dll"
-# define PREFIX ""
-
-#else // all other Unix
-# undef so_VALID
-# define so_VALID true
-# define SUFFIX ".so"
-# define PREFIX "lib"
-#endif
-
-static QString sys_qualifiedLibraryName(const QString &fileName)
-{
- QString currDir = QDir::currentPath();
- return currDir + "/bin/" + PREFIX + fileName + SUFFIX;
-}
-
-//TESTED_CLASS=
-//TESTED_FILES=
-
-QT_FORWARD_DECLARE_CLASS(QPluginLoader)
-class tst_QPluginLoader : public QObject
-{
- Q_OBJECT
-
-public:
- tst_QPluginLoader();
- virtual ~tst_QPluginLoader();
-
-private slots:
- void errorString();
- void loadHints();
- void deleteinstanceOnUnload();
- void checkingStubsFromDifferentDrives();
- void loadDebugObj();
- void loadCorruptElf();
- void loadGarbage();
-};
-
-tst_QPluginLoader::tst_QPluginLoader()
-
-{
-}
-
-tst_QPluginLoader::~tst_QPluginLoader()
-{
-}
-
-//#define SHOW_ERRORS 1
-
-void tst_QPluginLoader::errorString()
-{
-#if defined(Q_OS_WINCE)
- // On WinCE we need an QCoreApplication object for current dir
- int argc = 0;
- QCoreApplication app(argc,0);
-#endif
- const QString unknown(QLatin1String("Unknown error"));
-
- {
- QPluginLoader loader; // default constructed
- bool loaded = loader.load();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(loaded, false);
- QCOMPARE(loader.errorString(), unknown);
-
- QObject *obj = loader.instance();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(obj, static_cast<QObject*>(0));
- QCOMPARE(loader.errorString(), unknown);
-
- bool unloaded = loader.unload();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(unloaded, false);
- QCOMPARE(loader.errorString(), unknown);
- }
- {
- QPluginLoader loader( sys_qualifiedLibraryName("tst_qpluginloaderlib")); //not a plugin
- bool loaded = loader.load();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(loaded, false);
- QVERIFY(loader.errorString() != unknown);
-
- QObject *obj = loader.instance();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(obj, static_cast<QObject*>(0));
- QVERIFY(loader.errorString() != unknown);
-
- bool unloaded = loader.unload();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(unloaded, false);
- QVERIFY(loader.errorString() != unknown);
- }
-
- {
- QPluginLoader loader( sys_qualifiedLibraryName("nosuchfile")); //not a file
- bool loaded = loader.load();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(loaded, false);
- QVERIFY(loader.errorString() != unknown);
-
- QObject *obj = loader.instance();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(obj, static_cast<QObject*>(0));
- QVERIFY(loader.errorString() != unknown);
-
- bool unloaded = loader.unload();
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QCOMPARE(unloaded, false);
- QVERIFY(loader.errorString() != unknown);
- }
-
-#if !defined Q_OS_WIN && !defined Q_OS_MAC && !defined Q_OS_HPUX && !defined Q_OS_SYMBIAN
- {
- QPluginLoader loader( sys_qualifiedLibraryName("almostplugin")); //a plugin with unresolved symbols
- loader.setLoadHints(QLibrary::ResolveAllSymbolsHint);
- QCOMPARE(loader.load(), false);
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QVERIFY(loader.errorString() != unknown);
-
- QCOMPARE(loader.instance(), static_cast<QObject*>(0));
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QVERIFY(loader.errorString() != unknown);
-
- QCOMPARE(loader.unload(), false);
-#ifdef SHOW_ERRORS
- qDebug() << loader.errorString();
-#endif
- QVERIFY(loader.errorString() != unknown);
- }
-#endif
-
- {
- QPluginLoader loader( sys_qualifiedLibraryName("theplugin")); //a plugin
- QCOMPARE(loader.load(), true);
- QCOMPARE(loader.errorString(), unknown);
-
- QVERIFY(loader.instance() != static_cast<QObject*>(0));
- QCOMPARE(loader.errorString(), unknown);
-
- // Make sure that plugin really works
- PluginInterface* theplugin = qobject_cast<PluginInterface*>(loader.instance());
- QString pluginName = theplugin->pluginName();
- QCOMPARE(pluginName, QLatin1String("Plugin ok"));
-
- QCOMPARE(loader.unload(), true);
- QCOMPARE(loader.errorString(), unknown);
- }
-}
-
-void tst_QPluginLoader::loadHints()
-{
- QPluginLoader loader;
- QCOMPARE(loader.loadHints(), (QLibrary::LoadHints)0); //Do not crash
- loader.setLoadHints(QLibrary::ResolveAllSymbolsHint);
- loader.setFileName( sys_qualifiedLibraryName("theplugin")); //a plugin
- QCOMPARE(loader.loadHints(), QLibrary::ResolveAllSymbolsHint);
-}
-
-void tst_QPluginLoader::deleteinstanceOnUnload()
-{
- for (int pass = 0; pass < 2; ++pass) {
- QPluginLoader loader1;
- loader1.setFileName( sys_qualifiedLibraryName("theplugin")); //a plugin
- if (pass == 0)
- loader1.load(); // not recommended, instance() should do the job.
- PluginInterface *instance1 = qobject_cast<PluginInterface*>(loader1.instance());
- QVERIFY(instance1);
- QCOMPARE(instance1->pluginName(), QLatin1String("Plugin ok"));
-
- QPluginLoader loader2;
- loader2.setFileName( sys_qualifiedLibraryName("theplugin")); //a plugin
- if (pass == 0)
- loader2.load(); // not recommended, instance() should do the job.
- PluginInterface *instance2 = qobject_cast<PluginInterface*>(loader2.instance());
- QCOMPARE(instance2->pluginName(), QLatin1String("Plugin ok"));
-
- QSignalSpy spy1(loader1.instance(), SIGNAL(destroyed()));
- QSignalSpy spy2(loader2.instance(), SIGNAL(destroyed()));
- if (pass == 0) {
- QCOMPARE(loader2.unload(), false); // refcount not reached 0, not really unloaded
- QCOMPARE(spy1.count(), 0);
- QCOMPARE(spy2.count(), 0);
- }
- QCOMPARE(instance1->pluginName(), QLatin1String("Plugin ok"));
- QCOMPARE(instance2->pluginName(), QLatin1String("Plugin ok"));
- QVERIFY(loader1.unload()); // refcount reached 0, did really unload
- QCOMPARE(spy1.count(), 1);
- QCOMPARE(spy2.count(), 1);
- }
-}
-
-void tst_QPluginLoader::checkingStubsFromDifferentDrives()
-{
-#if defined(Q_OS_SYMBIAN)
-
- // This test needs C-drive + some additional drive (driveForStubs)
-
- const QString driveForStubs("E:/");// != "C:/"
- const QString stubDir("system/temp/stubtest/");
- const QString stubName("dummyStub.qtplugin");
- const QString fullStubFileName(stubDir + stubName);
- QDir dir(driveForStubs);
- bool test1(false); bool test2(false);
-
- // initial clean up
- QFile::remove(driveForStubs + fullStubFileName);
- dir.rmdir(driveForStubs + stubDir);
-
- // create a stub dir and do stub drive check
- if (!dir.mkpath(stubDir))
- QSKIP("Required drive not available for this test", SkipSingle);
-
- {// test without stub, should not be found
- QPluginLoader loader("C:/" + fullStubFileName);
- test1 = !loader.fileName().length();
- }
-
- // create a stub to defined drive
- QFile tempFile(driveForStubs + fullStubFileName);
- tempFile.open(QIODevice::ReadWrite);
- QFileInfo fileInfo(tempFile);
-
- {// now should be found even tried to find from C:
- QPluginLoader loader("C:/" + fullStubFileName);
- test2 = (loader.fileName() == fileInfo.absoluteFilePath());
- }
-
- // clean up
- tempFile.close();
- if (!QFile::remove(driveForStubs + fullStubFileName))
- QWARN("Could not remove stub file");
- if (!dir.rmdir(driveForStubs + stubDir))
- QWARN("Could not remove stub directory");
-
- // test after cleanup
- QVERIFY(test1);
- QVERIFY(test2);
-
-#endif//Q_OS_SYMBIAN
-}
-
-void tst_QPluginLoader::loadDebugObj()
-{
-#if defined (__ELF__)
- QVERIFY(QFile::exists(SRCDIR "elftest/debugobj.so"));
- QPluginLoader lib1(SRCDIR "elftest/debugobj.so");
- QCOMPARE(lib1.load(), false);
-#endif
-}
-
-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::loadGarbage()
-{
-#if defined (Q_OS_UNIX) && !defined(Q_OS_SYMBIAN)
- for (int i=0; i<5; i++) {
- QPluginLoader lib(QString(SRCDIR "elftest/garbage%1.so").arg(i));
- QCOMPARE(lib.load(), false);
-#ifdef SHOW_ERRORS
- qDebug() << lib.errorString();
-#endif
- }
-#endif
-}
-
-QTEST_APPLESS_MAIN(tst_QPluginLoader)
-#include "tst_qpluginloader.moc"