diff options
author | Ratchanan Srirattanamet <ratchanan@ubports.com> | 2020-04-27 17:58:04 +0700 |
---|---|---|
committer | Robert Tari <robert@tari.in> | 2021-08-12 02:25:11 +0200 |
commit | ef802adfb4afe44ae2ef529275aadc2629d7170f (patch) | |
tree | 5f24bc66baf1cd8c648c7f71fe1575463e2347c0 /tests/integration | |
parent | f193bca3b029fa2e379f61e28bb1e4b38ec43fac (diff) | |
download | ayatana-indicator-sound-ef802adfb4afe44ae2ef529275aadc2629d7170f.tar.gz ayatana-indicator-sound-ef802adfb4afe44ae2ef529275aadc2629d7170f.tar.bz2 ayatana-indicator-sound-ef802adfb4afe44ae2ef529275aadc2629d7170f.zip |
integration-test: provide a temporary HOME directory to the test
A couple of things in the integration-test rely on having a HOME
directory. Provide a temporary HOME for the test and its child, which
both prevents polluting the building user's HOME and allow the test to
run where HOME=/nonexistent (i.e. autobuilder).
Also remove the exception not to run the integration test inside the
(Canonical's) Jenkins, as it's not relevant anymore.
Diffstat (limited to 'tests/integration')
-rw-r--r-- | tests/integration/CMakeLists.txt | 13 | ||||
-rw-r--r-- | tests/integration/main.cpp | 17 |
2 files changed, 17 insertions, 13 deletions
diff --git a/tests/integration/CMakeLists.txt b/tests/integration/CMakeLists.txt index 74b9c23..e803a87 100644 --- a/tests/integration/CMakeLists.txt +++ b/tests/integration/CMakeLists.txt @@ -87,19 +87,6 @@ target_link_libraries( gmenuharness-shared ) -#### -## When building under jenkins, pulseuadio fails to start as there is no -## /run/user tree, HOME directory is missing, and similar issues. So here -## we check that we are the jenkins user, and avoid the integration tests, -## until such time in future when we can run these tests in some different -## manner to avoid needing to run pulseaudio in this way. -#### -execute_process( - COMMAND whoami - OUTPUT_VARIABLE TESTS_USER - OUTPUT_STRIP_TRAILING_WHITESPACE -) - add_test( integration-tests integration-tests diff --git a/tests/integration/main.cpp b/tests/integration/main.cpp index a29b3b6..f42c90a 100644 --- a/tests/integration/main.cpp +++ b/tests/integration/main.cpp @@ -20,6 +20,7 @@ //#include <config.h> #include <QCoreApplication> +#include <QTemporaryDir> #include <QTimer> #include <gtest/gtest.h> @@ -44,6 +45,22 @@ int main(int argc, char **argv) qputenv("LANG", "C.UTF-8"); unsetenv("LC_ALL"); + /* + * A couple of things rely on having a HOME directory: + * - The indicator itself relies on having a writable gsettings/dconf + * database, and the test relies on the functionality it provides. + * - The test starts Pulseaudio, which requires both a runtime and a + * state directory, both of which has a failback to the HOME. + * Provide a temporary HOME for the test and its child, which both prevents + * polluting the building user's HOME and allow the test to run where + * HOME=/nonexistent (i.e. autobuilder). + */ + QTemporaryDir tmpHome; + if (!tmpHome.isValid()) + qFatal("Cannot create a temporary HOME for the test."); + + setenv("HOME", tmpHome.path().toLocal8Bit().constData(), true); + QCoreApplication application(argc, argv); DBusMock::registerMetaTypes(); DBusTypes::registerMetaTypes(); |