Mir

Merge lp:~afrantzis/mir/fix-server-configuration-options-ptest into lp:mir

Proposed by Alexandros Frantzis
Status: Merged
Approved by: Alexandros Frantzis
Approved revision: no longer in the source branch.
Merged at revision: 3617
Proposed branch: lp:~afrantzis/mir/fix-server-configuration-options-ptest
Merge into: lp:mir
Diff against target: 108 lines (+32/-19)
1 file modified
tests/acceptance-tests/server_configuration_options.cpp (+32/-19)
To merge this branch: bzr merge lp:~afrantzis/mir/fix-server-configuration-options-ptest
Reviewer Review Type Date Requested Status
Mir CI Bot continuous-integration Approve
Alan Griffiths Approve
Review via email: mp+301374@code.launchpad.net

Commit message

tests: Fix ServerConfigurationOptions test to run safely with ptest

Description of the change

tests: Fix ServerConfigurationOptions test to run safely with ptest

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:3617
https://mir-jenkins.ubuntu.com/job/mir-ci/1365/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-mir/1631
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1684
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1675
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1675
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1675
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1646
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1646/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1646
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1646/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1646
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1646/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1646
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1646/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1646
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1646/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/mir-ci/1365/rebuild

review: Approve (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

OK

review: Approve
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

FAILED: Autolanding.
More details in the following jenkins job:
https://mir-jenkins.ubuntu.com/job/mir-autolanding/432/
Executed test runs:
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-mir/1636/console
    None: https://mir-jenkins.ubuntu.com/job/generic-land-mp/463/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/1689
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1680
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1680
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/1680
    FAILURE: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=vivid+overlay/1651/console
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1651
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/1651/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1651
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=cross-armhf,compiler=gcc,platform=android,release=vivid+overlay/1651/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1651
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=android,release=vivid+overlay/1651/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1651
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/1651/artifact/output/*zip*/output.zip

review: Needs Fixing (continuous-integration)
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

Autolanding failure is bug #1606418

Revision history for this message
Mir CI Bot (mir-ci-bot) :
review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'tests/acceptance-tests/server_configuration_options.cpp'
2--- tests/acceptance-tests/server_configuration_options.cpp 2016-07-07 11:14:26 +0000
3+++ tests/acceptance-tests/server_configuration_options.cpp 2016-07-28 12:34:42 +0000
4@@ -25,9 +25,21 @@
5
6 #include <cstdlib>
7 #include <fstream>
8+#include <system_error>
9
10 using namespace testing;
11
12+namespace
13+{
14+std::string create_temp_dir()
15+{
16+ char temp_dir[] = "temp_dir_XXXXXX";
17+ if (mkdtemp(temp_dir) == nullptr)
18+ throw std::system_error(errno, std::system_category(), "Failed to create temp dir");
19+
20+ return temp_dir;
21+}
22+
23 struct ServerConfigurationOptions : mir_test_framework::HeadlessTest
24 {
25 MOCK_METHOD1(command_line_handler, void(std::vector<std::string> const&));
26@@ -46,11 +58,9 @@
27
28 server.add_configuration_option(test_config_key, "", mir::OptionType::string);
29
30- clean_test_files();
31-
32- add_to_environment(env_xdg_config_home, fake_xdg_config_home);
33- add_to_environment(env_home, fake_home);
34- add_to_environment(env_xdg_config_dirs, fake_xdg_config_dirs);
35+ add_to_environment(env_xdg_config_home, fake_xdg_config_home.c_str());
36+ add_to_environment(env_home, fake_home.c_str());
37+ add_to_environment(env_xdg_config_dirs, fake_xdg_config_dirs.c_str());
38 }
39
40 void TearDown() override
41@@ -64,21 +74,13 @@
42 static constexpr char const* const env_home = "HOME";
43 static constexpr char const* const env_xdg_config_dirs = "XDG_CONFIG_DIRS";
44
45- static constexpr char const* const fake_xdg_config_home = "fake_xdg_config_home";
46- static constexpr char const* const fake_home = "fake_home";
47- static constexpr char const* const fake_home_config = "fake_home/.config";
48- static constexpr char const* const fake_xdg_config_dirs =
49- "fake_xdg_config_dir0:fake_xdg_config_dir1";
50- static constexpr char const* const fake_xdg_config_dir0 = "fake_xdg_config_dir0";
51- static constexpr char const* const fake_xdg_config_dir1 = "fake_xdg_config_dir1";
52-
53 static constexpr char const* const not_found = "not found";
54 std::string const config_filename{"test.config"};
55 static constexpr char const* const test_config_key = "config_dir";
56
57- void create_config_file_in(char const* dir)
58+ void create_config_file_in(std::string const& dir)
59 {
60- mkdir(dir, 0700);
61+ mkdir(dir.c_str(), 0700);
62
63 auto const filename = dir + ('/' + config_filename);
64
65@@ -86,10 +88,10 @@
66 config << test_config_key << '=' << dir << std::endl;
67 }
68
69- void remove_config_file_in(char const* dir)
70+ void remove_config_file_in(std::string const& dir)
71 {
72 remove((dir + ('/' + config_filename)).c_str());
73- remove(dir);
74+ remove(dir.c_str());
75 }
76
77 void clean_test_files()
78@@ -98,9 +100,20 @@
79 remove_config_file_in(fake_xdg_config_dir1);
80 remove_config_file_in(fake_xdg_config_home);
81 remove_config_file_in(fake_home_config);
82- remove(fake_home);
83+ remove(fake_home.c_str());
84+ remove(temp_dir.c_str());
85 }
86+
87+ std::string const temp_dir = create_temp_dir();
88+ std::string const fake_xdg_config_home = temp_dir + "/fake_xdg_config_home";
89+ std::string const fake_home = temp_dir + "/fake_home";
90+ std::string const fake_home_config = temp_dir + "/fake_home/.config";
91+ std::string const fake_xdg_config_dir0 = temp_dir + "/fake_xdg_config_dir0";
92+ std::string const fake_xdg_config_dir1 = temp_dir + "/fake_xdg_config_dir1";
93+ std::string const fake_xdg_config_dirs =
94+ fake_xdg_config_dir0 + ":" + fake_xdg_config_dir1;
95 };
96+}
97
98 TEST_F(ServerConfigurationOptions, unknown_command_line_options_are_passed_to_handler)
99 {
100@@ -137,7 +150,7 @@
101
102 TEST_F(ServerConfigurationOptions, are_read_from_home_config_file)
103 {
104- mkdir(fake_home, 0700);
105+ mkdir(fake_home.c_str(), 0700);
106 create_config_file_in(fake_home_config);
107
108 // $HOME is only used if $XDG_CONFIG_HOME isn't set

Subscribers

People subscribed via source and target branches