Merge lp:~michihenning/thumbnailer/snap into lp:thumbnailer/devel

Proposed by Michi Henning
Status: Merged
Approved by: James Henstridge
Approved revision: 377
Merged at revision: 370
Proposed branch: lp:~michihenning/thumbnailer/snap
Merge into: lp:thumbnailer/devel
Diff against target: 833 lines (+228/-124)
25 files modified
CMakeLists.txt (+5/-0)
doc/libthumbnailer-qt/examples/qt_example_test.cpp (+3/-3)
include/internal/env_vars.h (+22/-6)
man/thumbnailer-service.1 (+1/-1)
snapcraft.yaml (+4/-0)
src/CMakeLists.txt (+1/-0)
src/env_vars.cpp (+148/-0)
src/file_io.cpp (+1/-1)
src/imageextractor.cpp (+1/-4)
src/service/inactivityhandler.cpp (+1/-39)
src/settings.cpp (+2/-19)
src/thumbnailer.cpp (+2/-2)
src/ubuntuserverdownloader.cpp (+2/-13)
tests/dbus/dbus_test.cpp (+7/-7)
tests/download/download_test.cpp (+1/-1)
tests/file_io/file_io_test.cpp (+1/-1)
tests/image-provider/image-provider_test.cpp (+1/-2)
tests/libthumbnailer-qt/libthumbnailer-qt_test.cpp (+3/-3)
tests/qml/qml_test.cpp (+1/-1)
tests/settings/settings_test.cpp (+3/-3)
tests/slow-vs-thumb/slow-vs-thumb_test.cpp (+1/-1)
tests/stress/stress_test.cpp (+4/-4)
tests/thumbnailer-admin/thumbnailer-admin_test.cpp (+3/-3)
tests/thumbnailer/thumbnailer_test.cpp (+8/-8)
tests/utils/artserver.cpp (+2/-2)
To merge this branch: bzr merge lp:~michihenning/thumbnailer/snap
Reviewer Review Type Date Requested Status
James Henstridge Approve
unity-api-1-bot continuous-integration Approve
Review via email: mp+316060@code.launchpad.net

Commit message

Adjust paths when running in a snap. Decision whether to adjust paths is now made at compile time. Also consolidated all the environment variable accesses into an EnvVar helper class.
Added home interface to service and admin tool for the time being. This allows local thumbnailing to work (but the apparmor credentials check is currently not doing the right thing).
videos don't thumbnail yet because we are not bundling the gstreamer codecs, I suspect.

Description of the change

Adjust paths when running in a snap.

To post a comment you must log in.
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

PASSED: Continuous integration, rev:373
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/22/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1577
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1584
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1362
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1362/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1362
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1362/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1362
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1362/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1362
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1362/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1362
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1362/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1362
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1362/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/22/rebuild

review: Approve (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

PASSED: Continuous integration, rev:374
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/23/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1578
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1585
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1363
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1363/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1363
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1363/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1363
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1363/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1363
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1363/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1363
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1363/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1363
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1363/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/23/rebuild

review: Approve (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

PASSED: Continuous integration, rev:375
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/24/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1579
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1586
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1364
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1364/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1364
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1364/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1364
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1364/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1364
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1364/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1364
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1364/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1364
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1364/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/24/rebuild

review: Approve (continuous-integration)
lp:~michihenning/thumbnailer/snap updated
376. By Michi Henning

Added home interface to enable thumbnailing local files.
Also add this to the thumbnailer-admin command, because it is a royal
pain not to be able to use it for local media files.

Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

PASSED: Continuous integration, rev:376
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/25/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1580
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1587
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1365
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1365/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1365
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1365/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1365
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1365/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1365
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1365/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1365
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1365/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1365
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1365/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/25/rebuild

review: Approve (continuous-integration)
Revision history for this message
James Henstridge (jamesh) wrote :

I've noted a few small issues as inline comments.

review: Needs Fixing
lp:~michihenning/thumbnailer/snap updated
377. By Michi Henning

Review comments from James.

Revision history for this message
Michi Henning (michihenning) wrote :

Thanks for that! I think I've addressed all the issues. Tests pass for normal and -DSNAP_BUILD.

Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

PASSED: Continuous integration, rev:377
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/26/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1593
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1600
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1378
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1378/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1378
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1378/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1378
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1378/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1378
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1378/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1378
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1378/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1378
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1378/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-thumbnailer-ci/26/rebuild

review: Approve (continuous-integration)
Revision history for this message
James Henstridge (jamesh) wrote :

Looks close enough. I expected you to call the cmake option SNAP_BUILD, since that's the variable you were already using (and setting in snapcraft.yaml). That can be addressed with a future MP though.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2017-01-16 05:12:01 +0000
+++ CMakeLists.txt 2017-02-03 07:36:24 +0000
@@ -47,6 +47,11 @@
4747
48add_definitions(-DQT_NO_KEYWORDS)48add_definitions(-DQT_NO_KEYWORDS)
4949
50option(SnapBuild "Build for snap release")
51if(${SnapBuild} OR "${SNAP_BUILD}")
52 add_definitions(-DSNAP_BUILD=1)
53endif()
54
50include(GNUInstallDirs)55include(GNUInstallDirs)
5156
52# libthumbnailer-qt version57# libthumbnailer-qt version
5358
=== modified file 'doc/libthumbnailer-qt/examples/qt_example_test.cpp'
--- doc/libthumbnailer-qt/examples/qt_example_test.cpp 2017-01-17 04:13:01 +0000
+++ doc/libthumbnailer-qt/examples/qt_example_test.cpp 2017-02-03 07:36:24 +0000
@@ -146,7 +146,7 @@
146 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);146 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);
147147
148 // set 3 seconds as max idle time148 // set 3 seconds as max idle time
149 setenv(unity::thumbnailer::internal::MAX_IDLE, "1000", true);149 setenv(unity::thumbnailer::internal::EnvVars::MAX_IDLE, "1000", true);
150150
151 dbus_.reset(new DBusServer());151 dbus_.reset(new DBusServer());
152 }152 }
@@ -155,7 +155,7 @@
155 {155 {
156 dbus_.reset();156 dbus_.reset();
157157
158 unsetenv(unity::thumbnailer::internal::MAX_IDLE);158 unsetenv(unity::thumbnailer::internal::EnvVars::MAX_IDLE);
159 unsetenv("XDG_CACHE_HOME");159 unsetenv("XDG_CACHE_HOME");
160 tempdir.reset();160 tempdir.reset();
161 }161 }
@@ -192,7 +192,7 @@
192 QCoreApplication app(argc, argv);192 QCoreApplication app(argc, argv);
193 setenv("GSETTINGS_BACKEND", "memory", true);193 setenv("GSETTINGS_BACKEND", "memory", true);
194 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);194 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
195 setenv(unity::thumbnailer::internal::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);195 setenv(unity::thumbnailer::internal::EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
196 ::testing::InitGoogleTest(&argc, argv);196 ::testing::InitGoogleTest(&argc, argv);
197 return RUN_ALL_TESTS();197 return RUN_ALL_TESTS();
198}198}
199199
=== modified file 'include/internal/env_vars.h'
--- include/internal/env_vars.h 2015-12-14 04:43:11 +0000
+++ include/internal/env_vars.h 2017-02-03 07:36:24 +0000
@@ -18,8 +18,9 @@
1818
19#pragma once19#pragma once
2020
21#include <map>21#include <internal/config.h>
22#include <string>22
23#include <QString>
2324
24namespace unity25namespace unity
25{26{
@@ -30,10 +31,25 @@
30namespace internal31namespace internal
31{32{
3233
33constexpr char const* MAX_IDLE = "THUMBNAILER_MAX_IDLE";34struct EnvVars
34constexpr char const* UBUNTU_SERVER_URL = "THUMBNAILER_UBUNTU_SERVER_URL";35{
35constexpr char const* UTIL_DIR = "THUMBNAILER_UTIL_DIR";36 static int get_max_idle();
36constexpr char const* LOG_LEVEL = "THUMBNAILER_LOG_LEVEL";37 static QString get_ubuntu_server_url();
38 static QString get_util_dir();
39 static int get_log_level();
40 static std::string get_cache_dir();
41
42 static constexpr char const* MAX_IDLE = "THUMBNAILER_MAX_IDLE";
43 static constexpr int DFLT_MAX_IDLE = 30000;
44
45 static constexpr char const* UBUNTU_SERVER_URL = "THUMBNAILER_UBUNTU_SERVER_URL";
46 static constexpr char const* DFLT_UBUNTU_SERVER_URL = "https://dash.ubuntu.com";
47
48 static constexpr char const* UTIL_DIR = "THUMBNAILER_UTIL_DIR";
49 static constexpr char const* DFLT_UTIL_DIR = SHARE_PRIV_ABS;
50
51 static constexpr char const* LOG_LEVEL = "THUMBNAILER_LOG_LEVEL";
52};
3753
38} // namespace internal54} // namespace internal
3955
4056
=== modified file 'man/thumbnailer-service.1'
--- man/thumbnailer-service.1 2016-04-07 01:18:31 +0000
+++ man/thumbnailer-service.1 2017-02-03 07:36:24 +0000
@@ -55,7 +55,7 @@
55.B THUMBNAILER_UTIL_DIR55.B THUMBNAILER_UTIL_DIR
56The directory in which to look for the \fBvs\-thumb\fP executable, which is used56The directory in which to look for the \fBvs\-thumb\fP executable, which is used
57to extract images from streaming media. If not set, the program is expected to be in57to extract images from streaming media. If not set, the program is expected to be in
58\fB/usr/lib/\fP\fI<arch>\fP\fB/thumbnailer\fP.58\fB$/usr/lib/\fP\fI<arch>\fP\fB/thumbnailer\fP.
59.TP59.TP
60.B THUMBNAILER_MAX_IDLE60.B THUMBNAILER_MAX_IDLE
61The service exits once it has been idle for the number of milliseconds specified by this variable. If not set,61The service exits once it has been idle for the number of milliseconds specified by this variable. If not set,
6262
=== modified file 'snapcraft.yaml'
--- snapcraft.yaml 2017-01-30 03:00:30 +0000
+++ snapcraft.yaml 2017-02-03 07:36:24 +0000
@@ -44,6 +44,7 @@
44 # See https://bugs.launchpad.net/snappy/+bug/160015444 # See https://bugs.launchpad.net/snappy/+bug/1600154
45 # For now, the service uses default settings because it's gsettings lookups fail.45 # For now, the service uses default settings because it's gsettings lookups fail.
46 - gsettings46 - gsettings
47 - home
47 slots:48 slots:
48 - thumbnailer49 - thumbnailer
49 thumbnailer-admin:50 thumbnailer-admin:
@@ -51,10 +52,13 @@
51 plugs:52 plugs:
52 - platform53 - platform
53 - thumbnails54 - thumbnails
55 - home
5456
55parts:57parts:
56 thumbnailer:58 thumbnailer:
57 plugin: cmake59 plugin: cmake
60 configflags:
61 - -DSNAP_BUILD=1
58 source: .62 source: .
59 after:63 after:
60 - desktop-ubuntu-app-platform64 - desktop-ubuntu-app-platform
6165
=== modified file 'src/CMakeLists.txt'
--- src/CMakeLists.txt 2016-02-14 23:42:00 +0000
+++ src/CMakeLists.txt 2017-02-03 07:36:24 +0000
@@ -18,6 +18,7 @@
18 artdownloader.cpp18 artdownloader.cpp
19 backoff_adjuster.cpp19 backoff_adjuster.cpp
20 check_access.cpp20 check_access.cpp
21 env_vars.cpp
21 file_io.cpp22 file_io.cpp
22 file_lock.cpp23 file_lock.cpp
23 image.cpp24 image.cpp
2425
=== added file 'src/env_vars.cpp'
--- src/env_vars.cpp 1970-01-01 00:00:00 +0000
+++ src/env_vars.cpp 2017-02-03 07:36:24 +0000
@@ -0,0 +1,148 @@
1/*
2 * Copyright (C) 2017 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 3 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Michi Henning <michi.henning@canonical.com>
17 */
18
19#include <internal/env_vars.h>
20
21#include <internal/config.h>
22
23#pragma GCC diagnostic push
24#pragma GCC diagnostic ignored "-Wold-style-cast"
25#include <glib.h>
26#pragma GCC diagnostic pop
27#include <QDebug>
28#include <sstream>
29
30using namespace std;
31
32namespace unity
33{
34
35namespace thumbnailer
36{
37
38namespace internal
39{
40
41int EnvVars::get_max_idle()
42{
43 char const* c_idle_time = getenv(MAX_IDLE);
44 if (c_idle_time)
45 {
46 std::string str_idle_time(c_idle_time);
47 try
48 {
49 int env_value = std::stoi(str_idle_time);
50 if (env_value < 1000)
51 {
52 std::ostringstream s;
53 s << "Value for env variable THUMBNAILER_MAX_IDLE \"" << env_value << "\" must be >= 1000.";
54 throw std::invalid_argument(s.str());
55 }
56 return env_value;
57 }
58 catch (std::exception& e)
59 {
60 std::ostringstream s;
61 s << "Value for env variable THUMBNAILER_MAX_IDLE \"" << str_idle_time << "\" must be >= 1000.";
62 throw std::invalid_argument(s.str());
63 }
64 }
65 return DFLT_MAX_IDLE;
66}
67
68QString EnvVars::get_ubuntu_server_url()
69{
70 char const* override_url = getenv(UBUNTU_SERVER_URL);
71 if (override_url && *override_url)
72 {
73 return override_url;
74 }
75 return DFLT_UBUNTU_SERVER_URL;
76}
77
78QString EnvVars::get_util_dir()
79{
80 char const* utildir = getenv(UTIL_DIR);
81 if (utildir && *utildir)
82 {
83 return utildir;
84 }
85
86#ifdef SNAP_BUILD
87 char const* snapdir = getenv("SNAP");
88 if (!snapdir || !*snapdir)
89 {
90 throw std::runtime_error("Environment variable SNAP is not set or empty.");
91 }
92 return QString(snapdir) + "/" + SHARE_PRIV_ABS;
93#else
94 return SHARE_PRIV_ABS;
95#endif
96}
97
98int EnvVars::get_log_level()
99{
100 char const* level = getenv(LOG_LEVEL);
101 if (level && *level)
102 {
103 int l;
104 try
105 {
106 l = std::stoi(level);
107 }
108 catch (std::exception const& e)
109 {
110 qCritical() << "Environment variable" << LOG_LEVEL << "has invalid setting:" << level
111 << "(expected value in range 0..2) - variable ignored";
112 return -1;
113 }
114 if (l < 0 || l > 2)
115 {
116 qCritical() << "Environment variable" << LOG_LEVEL << "has invalid setting:" << level
117 << "(expected value in range 0..2) - variable ignored";
118 return -1;
119 }
120 return l;
121 }
122 return -1;
123}
124
125string EnvVars::get_cache_dir()
126{
127 string cache_dir = g_get_user_cache_dir(); // Always returns something, even HOME and XDG_CACHE_HOME are not set.
128
129#ifdef SNAP_BUILD
130 // When running in a snap, g_get_user_cache_dir() returns $SNAP_USER_DATA (not shared among snap versions),
131 // but we want $SNAP_USER_COMMON, which is shared. PersistentCache automatically deals with versioning
132 // changes in the database, so reverting to a snap with an earlier DB schema is safe.
133 char const* user_common = getenv("SNAP_USER_COMMON");
134 if (user_common && *user_common)
135 {
136 return user_common;
137 }
138 setenv("SNAP_USER_COMMON", cache_dir.c_str(), 1);
139#endif
140
141 return cache_dir;
142}
143
144} // namespace internal
145
146} // namespace thumbnailer
147
148} // namespace unity
0149
=== modified file 'src/file_io.cpp'
--- src/file_io.cpp 2015-12-02 12:48:12 +0000
+++ src/file_io.cpp 2017-02-03 07:36:24 +0000
@@ -90,7 +90,7 @@
90 int fd = mkstemp(&tmp_path[0]);90 int fd = mkstemp(&tmp_path[0]);
91 if (fd == -1)91 if (fd == -1)
92 {92 {
93 string s = string("write_file(): mkstemp() failed for " + tmp_path + ": ") + safe_strerror(errno);93 string s = string("write_file(): cannot create temp file in " + dir.native() + ": ") + safe_strerror(errno);
94 throw runtime_error(s);94 throw runtime_error(s);
95 }95 }
9696
9797
=== modified file 'src/imageextractor.cpp'
--- src/imageextractor.cpp 2016-03-18 22:49:32 +0000
+++ src/imageextractor.cpp 2017-02-03 07:36:24 +0000
@@ -20,7 +20,6 @@
2020
21#include <internal/imageextractor.h>21#include <internal/imageextractor.h>
2222
23#include <internal/config.h>
24#include <internal/env_vars.h>23#include <internal/env_vars.h>
25#include <internal/safe_strerror.h>24#include <internal/safe_strerror.h>
2625
@@ -102,9 +101,7 @@
102{101{
103 // Gstreamer video pipelines are unstable so we need to run an102 // Gstreamer video pipelines are unstable so we need to run an
104 // external helper executable.103 // external helper executable.
105 char* utildir = getenv(UTIL_DIR);104 exe_path_ = EnvVars::get_util_dir() + "/vs-thumb";
106 exe_path_ = utildir ? utildir : SHARE_PRIV_ABS;
107 exe_path_ += QLatin1String("/vs-thumb");
108 QUrl in_url = QUrl::fromLocalFile(filename_.c_str());105 QUrl in_url = QUrl::fromLocalFile(filename_.c_str());
109 QUrl out_url;106 QUrl out_url;
110 out_url.setScheme("fd");107 out_url.setScheme("fd");
111108
=== modified file 'src/service/inactivityhandler.cpp'
--- src/service/inactivityhandler.cpp 2015-12-12 02:06:41 +0000
+++ src/service/inactivityhandler.cpp 2017-02-03 07:36:24 +0000
@@ -28,44 +28,6 @@
28#include <sstream>28#include <sstream>
29#include <string>29#include <string>
3030
31const int MAX_INACTIVITY_TIME = 30000; // max inactivity time before exiting the app, in milliseconds
32
33namespace
34{
35
36int get_env_inactivity_time(int default_value)
37{
38 using namespace unity::thumbnailer::internal;
39
40 char const* c_idle_time = getenv(MAX_IDLE);
41 if (c_idle_time)
42 {
43 std::string str_idle_time(c_idle_time);
44 try
45 {
46 int env_value = std::stoi(str_idle_time);
47 if (env_value < 1000)
48 {
49 std::ostringstream s;
50 s << "InactivityHandler::InactivityHandler(): Value for env variable THUMBNAILER_MAX_IDLE \""
51 << env_value << "\" must be >= 1000.";
52 throw std::invalid_argument(s.str());
53 }
54 return env_value;
55 }
56 catch (std::exception& e)
57 {
58 std::ostringstream s;
59 s << "InactivityHandler::InactivityHandler(): Value for env variable THUMBNAILER_MAX_IDLE \""
60 << str_idle_time << "\" must be >= 1000.";
61 throw std::invalid_argument(s.str());
62 }
63 }
64 return default_value;
65}
66
67} // namespace
68
69namespace unity31namespace unity
70{32{
7133
@@ -81,7 +43,7 @@
81{43{
82 assert(timer_func);44 assert(timer_func);
83 connect(&timer_, &QTimer::timeout, this, &InactivityHandler::timer_expired);45 connect(&timer_, &QTimer::timeout, this, &InactivityHandler::timer_expired);
84 timer_.setInterval(get_env_inactivity_time(MAX_INACTIVITY_TIME));46 timer_.setInterval(internal::EnvVars::get_max_idle());
85}47}
8648
87InactivityHandler::~InactivityHandler()49InactivityHandler::~InactivityHandler()
8850
=== modified file 'src/settings.cpp'
--- src/settings.cpp 2016-01-11 07:33:57 +0000
+++ src/settings.cpp 2017-02-03 07:36:24 +0000
@@ -139,26 +139,9 @@
139 using namespace unity::thumbnailer::internal;139 using namespace unity::thumbnailer::internal;
140140
141 int log_level = get_positive_or_zero_int("log-level", LOG_LEVEL_DEFAULT);141 int log_level = get_positive_or_zero_int("log-level", LOG_LEVEL_DEFAULT);
142 char const* level = getenv(LOG_LEVEL);142 int l = EnvVars::get_log_level();
143 if (level && *level)143 if (l != -1)
144 {144 {
145 int l;
146 try
147 {
148 l = std::stoi(level);
149 }
150 catch (std::exception const& e)
151 {
152 qCritical() << "Environment variable" << LOG_LEVEL << "has invalid setting:" << level
153 << "(expected value in range 0..2) - variable ignored";
154 return log_level;
155 }
156 if (l < 0 || l > 2)
157 {
158 qCritical() << "Environment variable" << LOG_LEVEL << "has invalid setting:" << level
159 << "(expected value in range 0..2) - variable ignored";
160 return log_level;
161 }
162 log_level = l;145 log_level = l;
163 }146 }
164 return log_level;147 return log_level;
165148
=== modified file 'src/thumbnailer.cpp'
--- src/thumbnailer.cpp 2017-01-30 08:24:44 +0000
+++ src/thumbnailer.cpp 2017-02-03 07:36:24 +0000
@@ -23,6 +23,7 @@
23#include <internal/artreply.h>23#include <internal/artreply.h>
24#include <internal/cachehelper.h>24#include <internal/cachehelper.h>
25#include <internal/check_access.h>25#include <internal/check_access.h>
26#include <internal/env_vars.h>
26#include <internal/image.h>27#include <internal/image.h>
27#include <internal/imageextractor.h>28#include <internal/imageextractor.h>
28#include <internal/local_album_art.h>29#include <internal/local_album_art.h>
@@ -744,8 +745,7 @@
744Thumbnailer::Thumbnailer()745Thumbnailer::Thumbnailer()
745 : downloader_(new UbuntuServerDownloader())746 : downloader_(new UbuntuServerDownloader())
746{747{
747 string xdg_base = g_get_user_cache_dir(); // Always returns something, even HOME and XDG_CACHE_HOME are not set.748 string cache_dir = EnvVars::get_cache_dir() + "/unity-thumbnailer";
748 string cache_dir = xdg_base + "/unity-thumbnailer";
749 make_directories(cache_dir, 0700);749 make_directories(cache_dir, 0700);
750750
751 try751 try
752752
=== modified file 'src/ubuntuserverdownloader.cpp'
--- src/ubuntuserverdownloader.cpp 2016-01-05 07:00:49 +0000
+++ src/ubuntuserverdownloader.cpp 2017-02-03 07:36:24 +0000
@@ -99,17 +99,6 @@
99 return key;99 return key;
100}100}
101101
102char const* server_url()
103{
104 char const* server_url = DFLT_SERVER_URL;
105 char const* override_url = getenv(thumbnailer::internal::UBUNTU_SERVER_URL);
106 if (override_url && *override_url)
107 {
108 server_url = override_url;
109 }
110 return server_url;
111}
112
113} // namespace102} // namespace
114103
115class UbuntuServerArtReply : public ArtReply104class UbuntuServerArtReply : public ArtReply
@@ -279,7 +268,7 @@
279 QString const& album,268 QString const& album,
280 chrono::milliseconds timeout)269 chrono::milliseconds timeout)
281{270{
282 auto url = make_art_url(server_url(), ALBUM_ART_BASE_URL, artist, album, api_key_);271 auto url = make_art_url(EnvVars::get_ubuntu_server_url(), ALBUM_ART_BASE_URL, artist, album, api_key_);
283 return download_url(url, timeout);272 return download_url(url, timeout);
284}273}
285274
@@ -287,7 +276,7 @@
287 QString const& album,276 QString const& album,
288 chrono::milliseconds timeout)277 chrono::milliseconds timeout)
289{278{
290 auto url = make_art_url(server_url(), ARTIST_ART_BASE_URL, artist, album, api_key_);279 auto url = make_art_url(EnvVars::get_ubuntu_server_url(), ARTIST_ART_BASE_URL, artist, album, api_key_);
291 return download_url(url, timeout);280 return download_url(url, timeout);
292}281}
293282
294283
=== modified file 'tests/dbus/dbus_test.cpp'
--- tests/dbus/dbus_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/dbus/dbus_test.cpp 2017-02-03 07:36:24 +0000
@@ -74,8 +74,8 @@
74 tempdir.reset(new QTemporaryDir(TESTBINDIR "/dbus-test.XXXXXX"));74 tempdir.reset(new QTemporaryDir(TESTBINDIR "/dbus-test.XXXXXX"));
75 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);75 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);
7676
77 setenv(MAX_IDLE, "1000", true);77 setenv(EnvVars::MAX_IDLE, "1000", true);
78 setenv(LOG_LEVEL, "2", true); // For coverage78 setenv(EnvVars::LOG_LEVEL, "2", true); // For coverage
7979
80 dbus_.reset(new DBusServer());80 dbus_.reset(new DBusServer());
81 }81 }
@@ -90,7 +90,7 @@
90 dbus_.reset();90 dbus_.reset();
91 art_server_.reset();91 art_server_.reset();
9292
93 unsetenv(MAX_IDLE);93 unsetenv(EnvVars::MAX_IDLE);
94 unsetenv("XDG_CACHE_HOME");94 unsetenv("XDG_CACHE_HOME");
95 tempdir.reset();95 tempdir.reset();
96 }96 }
@@ -318,7 +318,7 @@
318 QTemporaryDir tempdir(TESTBINDIR "/dbus-test.XXXXXX");318 QTemporaryDir tempdir(TESTBINDIR "/dbus-test.XXXXXX");
319 setenv("XDG_CACHE_HOME", (tempdir.path() + "/cache").toUtf8().data(), true);319 setenv("XDG_CACHE_HOME", (tempdir.path() + "/cache").toUtf8().data(), true);
320320
321 EnvVarGuard ev_guard(MAX_IDLE, "bad_value");321 EnvVarGuard ev_guard(EnvVars::MAX_IDLE, "bad_value");
322 try322 try
323 {323 {
324 unique_ptr<DBusServer> dbus(new DBusServer());324 unique_ptr<DBusServer> dbus(new DBusServer());
@@ -341,7 +341,7 @@
341 QTemporaryDir tempdir(TESTBINDIR "/dbus-test.XXXXXX");341 QTemporaryDir tempdir(TESTBINDIR "/dbus-test.XXXXXX");
342 setenv("XDG_CACHE_HOME", (tempdir.path() + "/cache").toUtf8().data(), true);342 setenv("XDG_CACHE_HOME", (tempdir.path() + "/cache").toUtf8().data(), true);
343343
344 EnvVarGuard ev_guard(MAX_IDLE, "999");344 EnvVarGuard ev_guard(EnvVars::MAX_IDLE, "999");
345 try345 try
346 {346 {
347 unique_ptr<DBusServer> dbus(new DBusServer());347 unique_ptr<DBusServer> dbus(new DBusServer());
@@ -359,7 +359,7 @@
359 QTemporaryDir tempdir(TESTBINDIR "/dbus-test.XXXXXX");359 QTemporaryDir tempdir(TESTBINDIR "/dbus-test.XXXXXX");
360 setenv("XDG_CACHE_HOME", (tempdir.path() + "/cache").toUtf8().data(), true);360 setenv("XDG_CACHE_HOME", (tempdir.path() + "/cache").toUtf8().data(), true);
361361
362 EnvVarGuard ev_guard(MAX_IDLE, nullptr);362 EnvVarGuard ev_guard(EnvVars::MAX_IDLE, nullptr);
363 unique_ptr<DBusServer> dbus(new DBusServer()); // For coverage with default timeout.363 unique_ptr<DBusServer> dbus(new DBusServer()); // For coverage with default timeout.
364}364}
365365
@@ -623,7 +623,7 @@
623623
624 setenv("GSETTINGS_BACKEND", "memory", true);624 setenv("GSETTINGS_BACKEND", "memory", true);
625 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);625 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
626 setenv(UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);626 setenv(EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
627 ::testing::InitGoogleTest(&argc, argv);627 ::testing::InitGoogleTest(&argc, argv);
628 return RUN_ALL_TESTS();628 return RUN_ALL_TESTS();
629}629}
630630
=== modified file 'tests/download/download_test.cpp'
--- tests/download/download_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/download/download_test.cpp 2017-02-03 07:36:24 +0000
@@ -234,7 +234,7 @@
234 QCoreApplication qt_app(argc, argv);234 QCoreApplication qt_app(argc, argv);
235 setenv("GSETTINGS_BACKEND", "memory", true);235 setenv("GSETTINGS_BACKEND", "memory", true);
236 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);236 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
237 setenv(UBUNTU_SERVER_URL, "http://127.0.0.1", true);237 setenv(EnvVars::UBUNTU_SERVER_URL, "http://127.0.0.1", true);
238 ::testing::InitGoogleTest(&argc, argv);238 ::testing::InitGoogleTest(&argc, argv);
239 return RUN_ALL_TESTS();239 return RUN_ALL_TESTS();
240}240}
241241
=== modified file 'tests/file_io/file_io_test.cpp'
--- tests/file_io/file_io_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/file_io/file_io_test.cpp 2017-02-03 07:36:24 +0000
@@ -113,7 +113,7 @@
113 {113 {
114 chmod(dir.c_str(), 0700);114 chmod(dir.c_str(), 0700);
115 string msg = e.what();115 string msg = e.what();
116 EXPECT_TRUE(boost::starts_with(msg, "write_file(): mkstemp() failed for ")) << msg;116 EXPECT_TRUE(boost::starts_with(msg, "write_file(): cannot create temp file in ")) << msg;
117 }117 }
118118
119 try119 try
120120
=== modified file 'tests/image-provider/image-provider_test.cpp'
--- tests/image-provider/image-provider_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/image-provider/image-provider_test.cpp 2017-02-03 07:36:24 +0000
@@ -40,7 +40,6 @@
4040
41using namespace std;41using namespace std;
42using namespace unity::thumbnailer::qml;42using namespace unity::thumbnailer::qml;
43using unity::thumbnailer::internal::UTIL_DIR;
44using unity::thumbnailer::qt::Thumbnailer;43using unity::thumbnailer::qt::Thumbnailer;
4544
46class ProviderTest : public ::testing::Test45class ProviderTest : public ::testing::Test
@@ -214,7 +213,7 @@
214 QGuiApplication app(argc, argv);213 QGuiApplication app(argc, argv);
215 setenv("GSETTINGS_BACKEND", "memory", true);214 setenv("GSETTINGS_BACKEND", "memory", true);
216 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);215 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
217 setenv(UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);216 setenv(unity::thumbnailer::internal::EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
218 ::testing::InitGoogleTest(&argc, argv);217 ::testing::InitGoogleTest(&argc, argv);
219 return RUN_ALL_TESTS();218 return RUN_ALL_TESTS();
220}219}
221220
=== modified file 'tests/libthumbnailer-qt/libthumbnailer-qt_test.cpp'
--- tests/libthumbnailer-qt/libthumbnailer-qt_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/libthumbnailer-qt/libthumbnailer-qt_test.cpp 2017-02-03 07:36:24 +0000
@@ -82,7 +82,7 @@
82 tempdir.reset(new QTemporaryDir(TESTBINDIR "/libthumbnailer-qt.XXXXXX"));82 tempdir.reset(new QTemporaryDir(TESTBINDIR "/libthumbnailer-qt.XXXXXX"));
83 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);83 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);
8484
85 setenv(MAX_IDLE, "10000", true);85 setenv(EnvVars::MAX_IDLE, "10000", true);
8686
87 dbus_.reset(new DBusServer());87 dbus_.reset(new DBusServer());
88 }88 }
@@ -97,7 +97,7 @@
97 dbus_.reset();97 dbus_.reset();
98 art_server_.reset();98 art_server_.reset();
9999
100 unsetenv(MAX_IDLE);100 unsetenv(EnvVars::MAX_IDLE);
101 unsetenv("XDG_CACHE_HOME");101 unsetenv("XDG_CACHE_HOME");
102 tempdir.reset();102 tempdir.reset();
103 }103 }
@@ -794,7 +794,7 @@
794794
795 setenv("GSETTINGS_BACKEND", "memory", true);795 setenv("GSETTINGS_BACKEND", "memory", true);
796 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);796 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
797 setenv(UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);797 setenv(EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
798798
799 // Turn on trace so we get coverage on those parts of the code.799 // Turn on trace so we get coverage on those parts of the code.
800 gobj_ptr<GSettings> gsettings(g_settings_new("com.canonical.Unity.Thumbnailer"));800 gobj_ptr<GSettings> gsettings(g_settings_new("com.canonical.Unity.Thumbnailer"));
801801
=== modified file 'tests/qml/qml_test.cpp'
--- tests/qml/qml_test.cpp 2016-09-26 00:30:42 +0000
+++ tests/qml/qml_test.cpp 2017-02-03 07:36:24 +0000
@@ -78,7 +78,7 @@
7878
79 setenv("GSETTINGS_BACKEND", "memory", true);79 setenv("GSETTINGS_BACKEND", "memory", true);
80 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);80 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
81 setenv(unity::thumbnailer::internal::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);81 setenv(unity::thumbnailer::internal::EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
82 qmlRegisterSingletonType("testconfig", 1, 0, "Config", make_test_config);82 qmlRegisterSingletonType("testconfig", 1, 0, "Config", make_test_config);
83 qmlProtectModule("testconfig", 1);83 qmlProtectModule("testconfig", 1);
8484
8585
=== modified file 'tests/settings/settings_test.cpp'
--- tests/settings/settings_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/settings/settings_test.cpp 2017-02-03 07:36:24 +0000
@@ -188,7 +188,7 @@
188188
189TEST(Settings, log_level_env_override)189TEST(Settings, log_level_env_override)
190{190{
191 EnvVarGuard ev_guard(LOG_LEVEL, "0");191 EnvVarGuard ev_guard(EnvVars::LOG_LEVEL, "0");
192192
193 Settings settings;193 Settings settings;
194 EXPECT_EQ(0, settings.log_level());194 EXPECT_EQ(0, settings.log_level());
@@ -196,7 +196,7 @@
196196
197TEST(Settings, log_level_env_bad_setting)197TEST(Settings, log_level_env_bad_setting)
198{198{
199 EnvVarGuard ev_guard(LOG_LEVEL, "abc");199 EnvVarGuard ev_guard(EnvVars::LOG_LEVEL, "abc");
200200
201 Settings settings;201 Settings settings;
202 EXPECT_EQ(1, settings.log_level());202 EXPECT_EQ(1, settings.log_level());
@@ -204,7 +204,7 @@
204204
205TEST(Settings, log_level_out_of_range)205TEST(Settings, log_level_out_of_range)
206{206{
207 EnvVarGuard ev_guard(LOG_LEVEL, "3");207 EnvVarGuard ev_guard(EnvVars::LOG_LEVEL, "3");
208208
209 Settings settings;209 Settings settings;
210 EXPECT_EQ(1, settings.log_level());210 EXPECT_EQ(1, settings.log_level());
211211
=== modified file 'tests/slow-vs-thumb/slow-vs-thumb_test.cpp'
--- tests/slow-vs-thumb/slow-vs-thumb_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/slow-vs-thumb/slow-vs-thumb_test.cpp 2017-02-03 07:36:24 +0000
@@ -82,7 +82,7 @@
82 QCoreApplication app(argc, argv);82 QCoreApplication app(argc, argv);
8383
84 // Run fake vs-thumb that does nothing for 20 seconds.84 // Run fake vs-thumb that does nothing for 20 seconds.
85 setenv(UTIL_DIR, TESTSRCDIR "/slow-vs-thumb/slow", true);85 setenv(EnvVars::UTIL_DIR, TESTSRCDIR "/slow-vs-thumb/slow", true);
86 ::testing::InitGoogleTest(&argc, argv);86 ::testing::InitGoogleTest(&argc, argv);
87 return RUN_ALL_TESTS();87 return RUN_ALL_TESTS();
88}88}
8989
=== modified file 'tests/stress/stress_test.cpp'
--- tests/stress/stress_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/stress/stress_test.cpp 2017-02-03 07:36:24 +0000
@@ -163,7 +163,7 @@
163 tempdir.reset(new QTemporaryDir(TESTBINDIR "/stress-test.XXXXXX"));163 tempdir.reset(new QTemporaryDir(TESTBINDIR "/stress-test.XXXXXX"));
164 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);164 setenv("XDG_CACHE_HOME", (tempdir->path() + "/cache").toUtf8().data(), true);
165165
166 setenv(MAX_IDLE, "30000", true);166 setenv(EnvVars::MAX_IDLE, "30000", true);
167167
168 dbus_.reset(new DBusServer());168 dbus_.reset(new DBusServer());
169 thumbnailer_.reset(new unity::thumbnailer::qt::Thumbnailer(dbus_->connection()));169 thumbnailer_.reset(new unity::thumbnailer::qt::Thumbnailer(dbus_->connection()));
@@ -224,7 +224,7 @@
224 dbus_.reset();224 dbus_.reset();
225 art_server_.reset();225 art_server_.reset();
226226
227 unsetenv(MAX_IDLE);227 unsetenv(EnvVars::MAX_IDLE);
228 unsetenv("XDG_CACHE_HOME");228 unsetenv("XDG_CACHE_HOME");
229 tempdir.reset();229 tempdir.reset();
230230
@@ -612,8 +612,8 @@
612#endif612#endif
613 setenv("GSETTINGS_BACKEND", "memory", true);613 setenv("GSETTINGS_BACKEND", "memory", true);
614 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);614 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
615 setenv(UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);615 setenv(EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
616 setenv(LOG_LEVEL, "0", true);616 setenv(EnvVars::LOG_LEVEL, "0", true);
617 ::testing::InitGoogleTest(&argc, argv);617 ::testing::InitGoogleTest(&argc, argv);
618 return RUN_ALL_TESTS();618 return RUN_ALL_TESTS();
619}619}
620620
=== modified file 'tests/thumbnailer-admin/thumbnailer-admin_test.cpp'
--- tests/thumbnailer-admin/thumbnailer-admin_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/thumbnailer-admin/thumbnailer-admin_test.cpp 2017-02-03 07:36:24 +0000
@@ -48,7 +48,7 @@
48 ASSERT_NE(-1, chdir(temp_dir().c_str()));48 ASSERT_NE(-1, chdir(temp_dir().c_str()));
49 setenv("XDG_CACHE_HOME", qPrintable(tempdir->path() + "/cache"), true);49 setenv("XDG_CACHE_HOME", qPrintable(tempdir->path() + "/cache"), true);
5050
51 setenv(MAX_IDLE, "3000", true);51 setenv(EnvVars::MAX_IDLE, "3000", true);
5252
53 dbus_.reset(new DBusServer());53 dbus_.reset(new DBusServer());
54 }54 }
@@ -62,7 +62,7 @@
62 {62 {
63 dbus_.reset();63 dbus_.reset();
6464
65 unsetenv(MAX_IDLE);65 unsetenv(EnvVars::MAX_IDLE);
66 unsetenv("XDG_CACHE_HOME");66 unsetenv("XDG_CACHE_HOME");
67 tempdir.reset();67 tempdir.reset();
68 }68 }
@@ -723,7 +723,7 @@
723{723{
724 QCoreApplication app(argc, argv);724 QCoreApplication app(argc, argv);
725725
726 setenv(UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);726 setenv(EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
727 setenv("LC_ALL", "C", true);727 setenv("LC_ALL", "C", true);
728 ::testing::InitGoogleTest(&argc, argv);728 ::testing::InitGoogleTest(&argc, argv);
729 return RUN_ALL_TESTS();729 return RUN_ALL_TESTS();
730730
=== modified file 'tests/thumbnailer/thumbnailer_test.cpp'
--- tests/thumbnailer/thumbnailer_test.cpp 2017-01-17 04:13:01 +0000
+++ tests/thumbnailer/thumbnailer_test.cpp 2017-02-03 07:36:24 +0000
@@ -447,7 +447,7 @@
447TEST_F(ThumbnailerTest, vs_thumb_exec_failure)447TEST_F(ThumbnailerTest, vs_thumb_exec_failure)
448{448{
449 // Cause vs-thumb exec failure.449 // Cause vs-thumb exec failure.
450 EnvVarGuard ev_guard(UTIL_DIR, "no_such_directory");450 EnvVarGuard ev_guard(EnvVars::UTIL_DIR, "no_such_directory");
451451
452 Thumbnailer tn;452 Thumbnailer tn;
453453
@@ -468,7 +468,7 @@
468TEST_F(ThumbnailerTest, vs_thumb_exit_1)468TEST_F(ThumbnailerTest, vs_thumb_exit_1)
469{469{
470 // Run fake vs-thumb that exits with status 1470 // Run fake vs-thumb that exits with status 1
471 EnvVarGuard ev_guard(UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-exit-1");471 EnvVarGuard ev_guard(EnvVars::UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-exit-1");
472472
473 Thumbnailer tn;473 Thumbnailer tn;
474474
@@ -489,7 +489,7 @@
489TEST_F(ThumbnailerTest, vs_thumb_exit_2)489TEST_F(ThumbnailerTest, vs_thumb_exit_2)
490{490{
491 // Run fake vs-thumb that exits with status 2491 // Run fake vs-thumb that exits with status 2
492 EnvVarGuard ev_guard(UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-exit-2");492 EnvVarGuard ev_guard(EnvVars::UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-exit-2");
493493
494 Thumbnailer tn;494 Thumbnailer tn;
495495
@@ -510,7 +510,7 @@
510TEST_F(ThumbnailerTest, vs_thumb_exit_99)510TEST_F(ThumbnailerTest, vs_thumb_exit_99)
511{511{
512 // Run fake vs-thumb that exits with status 99512 // Run fake vs-thumb that exits with status 99
513 EnvVarGuard ev_guard(UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-exit-99");513 EnvVarGuard ev_guard(EnvVars::UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-exit-99");
514514
515 Thumbnailer tn;515 Thumbnailer tn;
516516
@@ -531,7 +531,7 @@
531TEST_F(ThumbnailerTest, vs_thumb_crash)531TEST_F(ThumbnailerTest, vs_thumb_crash)
532{532{
533 // Run fake vs-thumb that kills itself with SIGTERM533 // Run fake vs-thumb that kills itself with SIGTERM
534 EnvVarGuard ev_guard(UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-crash");534 EnvVarGuard ev_guard(EnvVars::UTIL_DIR, TESTSRCDIR "/thumbnailer/vs-thumb-crash");
535535
536 Thumbnailer tn;536 Thumbnailer tn;
537537
@@ -1011,7 +1011,7 @@
1011TEST_F(RemoteServer, dead_server)1011TEST_F(RemoteServer, dead_server)
1012{1012{
1013 // Dead server won't reply.1013 // Dead server won't reply.
1014 EnvVarGuard ev_guard(UBUNTU_SERVER_URL, "http://deadserver.invalid");1014 EnvVarGuard ev_guard(EnvVars::UBUNTU_SERVER_URL, "http://deadserver.invalid");
10151015
1016 Thumbnailer tn;1016 Thumbnailer tn;
10171017
@@ -1032,8 +1032,8 @@
1032 QCoreApplication app(argc, argv);1032 QCoreApplication app(argc, argv);
1033 setenv("GSETTINGS_BACKEND", "memory", true);1033 setenv("GSETTINGS_BACKEND", "memory", true);
1034 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);1034 setenv("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR, true);
1035 setenv(UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);1035 setenv(EnvVars::UTIL_DIR, TESTBINDIR "/../src/vs-thumb", true);
1036 setenv(UBUNTU_SERVER_URL, "http://127.0.0.1", true);1036 setenv(EnvVars::UBUNTU_SERVER_URL, "http://127.0.0.1", true);
1037 ::testing::InitGoogleTest(&argc, argv);1037 ::testing::InitGoogleTest(&argc, argv);
1038 return RUN_ALL_TESTS();1038 return RUN_ALL_TESTS();
1039}1039}
10401040
=== modified file 'tests/utils/artserver.cpp'
--- tests/utils/artserver.cpp 2016-01-11 08:20:51 +0000
+++ tests/utils/artserver.cpp 2017-02-03 07:36:24 +0000
@@ -79,7 +79,7 @@
79 {79 {
80 qCritical() << "Failed to terminate fake art server";80 qCritical() << "Failed to terminate fake art server";
81 }81 }
82 unsetenv(unity::thumbnailer::internal::UBUNTU_SERVER_URL);82 unsetenv(unity::thumbnailer::internal::EnvVars::UBUNTU_SERVER_URL);
83}83}
8484
85std::string const& ArtServer::server_url() const85std::string const& ArtServer::server_url() const
@@ -108,5 +108,5 @@
108108
109void ArtServer::update_env()109void ArtServer::update_env()
110{110{
111 setenv(unity::thumbnailer::internal::UBUNTU_SERVER_URL, server_url().c_str(), true);111 setenv(unity::thumbnailer::internal::EnvVars::UBUNTU_SERVER_URL, server_url().c_str(), true);
112}112}

Subscribers

People subscribed via source and target branches

to all changes: