aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/tst_blackbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/blackbox/tst_blackbox.cpp')
-rw-r--r--tests/auto/blackbox/tst_blackbox.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/blackbox/tst_blackbox.cpp b/tests/auto/blackbox/tst_blackbox.cpp
index 9ffffff77..7bf59f487 100644
--- a/tests/auto/blackbox/tst_blackbox.cpp
+++ b/tests/auto/blackbox/tst_blackbox.cpp
@@ -1547,6 +1547,15 @@ void TestBlackbox::installTree()
QVERIFY(QFile::exists(installRoot + "content/subdir2/baz.txt"));
}
+static QProcessEnvironment processEnvironmentWithCurrentDirectoryInLibraryPath()
+{
+ QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
+ env.insert(HostOsInfo::libraryPathEnvironmentVariable(),
+ QStringList({env.value(HostOsInfo::libraryPathEnvironmentVariable()), "."})
+ .join(HostOsInfo::pathListSeparator()));
+ return env;
+}
+
void TestBlackbox::java()
{
Settings settings((QString()));
@@ -1584,6 +1593,29 @@ void TestBlackbox::java()
foreach (const QString &classFile, classFiles1) {
QVERIFY2(!regularFileExists(classFile), qPrintable(classFile));
}
+
+ // This tests various things: java.manifestClassPath, JNI, etc.
+ QDir::setCurrent(relativeBuildDir() + "/install-root");
+ QProcess process;
+ process.setProcessEnvironment(processEnvironmentWithCurrentDirectoryInLibraryPath());
+ process.start("java", QStringList() << "-jar" << "jar_file.jar");
+ QVERIFY2(process.waitForStarted(), qPrintable(process.errorString()));
+ QVERIFY2(process.waitForFinished(), qPrintable(process.errorString()));
+ QVERIFY2(process.exitCode() == 0, process.readAllStandardError().constData());
+ QByteArray stdout = process.readAllStandardOutput();
+ QVERIFY2(stdout.contains("Driving!"), stdout.constData());
+ QVERIFY2(stdout.contains("Flying!"), stdout.constData());
+ QVERIFY2(stdout.contains("Flying (this is a space ship)!"), stdout.constData());
+ QVERIFY2(stdout.contains("Sailing!"), stdout.constData());
+ QVERIFY2(stdout.contains("Native code performing complex internal combustion process (0x"),
+ stdout.constData());
+
+ process.start("unzip", QStringList() << "-p" << "jar_file.jar");
+ QVERIFY2(process.waitForStarted(), qPrintable(process.errorString()));
+ QVERIFY2(process.waitForFinished(), qPrintable(process.errorString()));
+ stdout = process.readAllStandardOutput();
+ QVERIFY2(stdout.contains("Class-Path: car_jar.jar random_stuff.jar"), stdout.constData());
+ QVERIFY2(stdout.contains("Main-Class: Vehicles"), stdout.constData());
}
void TestBlackbox::jsExtensionsFile()