~ci-train-bot/ubuntu-app-launch/ubuntu-app-launch-ubuntu-zesty-2384

« back to all changes in this revision

Viewing changes to tests/failure-test.cc

  • Committer: Bileto Bot
  • Author(s): Ted Gould
  • Date: 2016-08-17 15:23:51 UTC
  • mfrom: (237.1.28 eventually-tests)
  • Revision ID: ci-train-bot@canonical.com-20160817152351-aaf1sjfcef6i6gjz
Add in eventually timeouts in tests to make them more robust

Approved by: Charles Kerr, unity-api-1-bot

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
#include <glib/gstdio.h>
22
22
#include <gio/gio.h>
23
23
#include <ubuntu-app-launch.h>
 
24
#include "eventually-fixture.h"
24
25
 
25
 
class FailureTest : public ::testing::Test
 
26
class FailureTest : public EventuallyFixture
26
27
{
27
28
        private:
28
29
                GTestDBus * testbus = NULL;
38
39
                        g_clear_object(&testbus);
39
40
                        return;
40
41
                }
41
 
 
42
 
                static gboolean pause_helper (gpointer pmainloop) {
43
 
                        g_main_loop_quit(static_cast<GMainLoop *>(pmainloop));
44
 
                        return G_SOURCE_REMOVE;
45
 
                }
46
 
 
47
 
                void pause (guint time) {
48
 
                        if (time > 0) {
49
 
                                GMainLoop * mainloop = g_main_loop_new(NULL, FALSE);
50
 
                                g_timeout_add(time, pause_helper, mainloop);
51
 
 
52
 
                                g_main_loop_run(mainloop);
53
 
 
54
 
                                g_main_loop_unref(mainloop);
55
 
                        }
56
 
 
57
 
                        while (g_main_pending()) {
58
 
                                g_main_iteration(TRUE);
59
 
                        }
60
 
                }
61
42
};
62
43
 
63
44
static void
81
62
 
82
63
        /* Status based */
83
64
        ASSERT_TRUE(g_spawn_command_line_sync(APP_FAILED_TOOL, NULL, NULL, NULL, NULL));
84
 
        pause(100);
85
65
 
86
 
        EXPECT_EQ("foo", last_observer);
 
66
        EXPECT_EVENTUALLY_EQ("foo", last_observer);
87
67
 
88
68
        last_observer.clear();
89
69
        g_unsetenv("EXIT_STATUS");
91
71
 
92
72
        /* Signal based */
93
73
        ASSERT_TRUE(g_spawn_command_line_sync(APP_FAILED_TOOL, NULL, NULL, NULL, NULL));
94
 
        pause(100);
95
74
 
96
 
        EXPECT_EQ("foo", last_observer);
 
75
        EXPECT_EVENTUALLY_EQ("foo", last_observer);
97
76
 
98
77
        ASSERT_TRUE(ubuntu_app_launch_observer_delete_app_failed(failed_observer, &last_observer));
99
78
 
111
90
 
112
91
        /* Status based */
113
92
        ASSERT_TRUE(g_spawn_command_line_sync(APP_FAILED_TOOL, NULL, NULL, NULL, NULL));
114
 
        pause(100);
115
93
 
116
 
        EXPECT_EQ("foo", last_observer);
 
94
        EXPECT_EVENTUALLY_EQ("foo", last_observer);
117
95
 
118
96
        ASSERT_TRUE(ubuntu_app_launch_observer_delete_app_failed(failed_observer, &last_observer));
119
97
 
141
119
        ASSERT_TRUE(ubuntu_app_launch_observer_add_app_failed(failed_start_observer, &last_observer));
142
120
 
143
121
        ASSERT_TRUE(g_spawn_command_line_sync(APP_FAILED_TOOL, NULL, NULL, NULL, NULL));
144
 
        pause(100);
145
122
 
146
 
        EXPECT_EQ("foo", last_observer);
 
123
        EXPECT_EVENTUALLY_EQ("foo", last_observer);
147
124
 
148
125
        ASSERT_TRUE(ubuntu_app_launch_observer_delete_app_failed(failed_start_observer, &last_observer));
149
126