Merge lp:~afrantzis/mir/fix-1576760-increase-timeout into lp:mir
- fix-1576760-increase-timeout
- Merge into development-branch
Status: | Merged |
---|---|
Approved by: | Alexandros Frantzis |
Approved revision: | no longer in the source branch. |
Merged at revision: | 3572 |
Proposed branch: | lp:~afrantzis/mir/fix-1576760-increase-timeout |
Merge into: | lp:mir |
Diff against target: |
263 lines (+29/-29) 1 file modified
tests/acceptance-tests/test_nested_mir.cpp (+29/-29) |
To merge this branch: | bzr merge lp:~afrantzis/mir/fix-1576760-increase-timeout |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Cemil Azizoglu (community) | Approve | ||
Mir CI Bot | continuous-integration | Approve | |
Review via email: mp+298753@code.launchpad.net |
Commit message
tests: Increase timeouts to accommodate valgrind slowness
Description of the change
tests: Increase timeouts to accommodate valgrind slowness
Use the existing 'timeout' variable which was set in the code, but not used until now.
Mir CI Bot (mir-ci-bot) wrote : | # |
Cemil Azizoglu (cemil-azizoglu) wrote : | # |
I suspect these timeouts are overly conservative. If these tests start failing they may take a really long time to run since the timeout value is set to 10 at the moment. We should probably change the timeout to something like 2 or 3, and the (two) instances that require more than that can be hard-coded to have 5 or 10.
Alexandros Frantzis (afrantzis) wrote : | # |
> I suspect these timeouts are overly conservative
valgrind under high load (which we can't control since our CI infrastructure is shared) can be *extremely* slow.
> If these tests start failing they may take a really long time to run since the timeout value
> is set to 10 at the moment
Can't say I am really concerned with this, since it's an extremely rare event and will add in the absolute worst case 5 minutes of total time.
> We should probably change the timeout to something like 2 or 3, and the (two) instances
> that require more than that can be hard-coded to have 5 or 10.
The reason the two instances have 5 and 10 respectively (which are arbitrary values), is because they failed at some point in the past due to valgrind slowness and high CI load, so we had to increase their timeouts.
Now NestedServer.
I tried setting the timeout to 3 seconds, but I got some failures locally under valgrind + sufficient load in various NestedServer.* tests. I couldn't get failures locally with 5 seconds, so I think it's a good start, although only time will tell if it will be enough for CI.
Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3568
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'tests/acceptance-tests/test_nested_mir.cpp' | |||
2 | --- tests/acceptance-tests/test_nested_mir.cpp 2016-06-02 08:19:38 +0000 | |||
3 | +++ tests/acceptance-tests/test_nested_mir.cpp 2016-07-01 10:10:31 +0000 | |||
4 | @@ -122,7 +122,7 @@ | |||
5 | 122 | {{640, 0}, {1920, 1080}} | 122 | {{640, 0}, {1920, 1080}} |
6 | 123 | }; | 123 | }; |
7 | 124 | 124 | ||
9 | 125 | std::chrono::seconds const timeout{10}; | 125 | std::chrono::seconds const timeout{5}; |
10 | 126 | 126 | ||
11 | 127 | // We can't rely on the test environment to have X cursors, so we provide some of our own | 127 | // We can't rely on the test environment to have X cursors, so we provide some of our own |
12 | 128 | auto const cursor_names = { | 128 | auto const cursor_names = { |
13 | @@ -405,7 +405,7 @@ | |||
14 | 405 | 405 | ||
15 | 406 | mir_wait_for(mir_connection_apply_display_config(connection, configuration)); | 406 | mir_wait_for(mir_connection_apply_display_config(connection, configuration)); |
16 | 407 | 407 | ||
18 | 408 | initial_condition.wait_for(std::chrono::seconds{1}); | 408 | initial_condition.wait_for(timeout); |
19 | 409 | mir_display_config_destroy(configuration); | 409 | mir_display_config_destroy(configuration); |
20 | 410 | 410 | ||
21 | 411 | Mock::VerifyAndClearExpectations(&display); | 411 | Mock::VerifyAndClearExpectations(&display); |
22 | @@ -598,7 +598,7 @@ | |||
23 | 598 | trigger_lifecycle_event(mir_lifecycle_state_resumed); | 598 | trigger_lifecycle_event(mir_lifecycle_state_resumed); |
24 | 599 | trigger_lifecycle_event(mir_lifecycle_state_will_suspend); | 599 | trigger_lifecycle_event(mir_lifecycle_state_will_suspend); |
25 | 600 | 600 | ||
27 | 601 | events_processed.wait_for(std::chrono::seconds{5}); | 601 | events_processed.wait_for(timeout); |
28 | 602 | } | 602 | } |
29 | 603 | 603 | ||
30 | 604 | TEST_F(NestedServer, client_may_connect_to_nested_server_and_create_surface) | 604 | TEST_F(NestedServer, client_may_connect_to_nested_server_and_create_surface) |
31 | @@ -613,7 +613,7 @@ | |||
32 | 613 | return mir_surface_get_visibility(surface) == mir_surface_visibility_exposed | 613 | return mir_surface_get_visibility(surface) == mir_surface_visibility_exposed |
33 | 614 | && mir_surface_get_focus(surface) == mir_surface_focused; | 614 | && mir_surface_get_focus(surface) == mir_surface_focused; |
34 | 615 | }, | 615 | }, |
36 | 616 | std::chrono::seconds{10}); | 616 | timeout); |
37 | 617 | 617 | ||
38 | 618 | EXPECT_TRUE(became_exposed_and_focused); | 618 | EXPECT_TRUE(became_exposed_and_focused); |
39 | 619 | } | 619 | } |
40 | @@ -644,7 +644,7 @@ | |||
41 | 644 | 644 | ||
42 | 645 | mir_buffer_stream_swap_buffers_sync(mir_surface_get_buffer_stream(surface)); | 645 | mir_buffer_stream_swap_buffers_sync(mir_surface_get_buffer_stream(surface)); |
43 | 646 | 646 | ||
45 | 647 | wait.wait_for(std::chrono::seconds{1}); | 647 | wait.wait_for(timeout); |
46 | 648 | Mock::VerifyAndClearExpectations(mock_session_mediator_report.get()); | 648 | Mock::VerifyAndClearExpectations(mock_session_mediator_report.get()); |
47 | 649 | } | 649 | } |
48 | 650 | 650 | ||
49 | @@ -659,7 +659,7 @@ | |||
50 | 659 | mir_surface_release_sync(surface); | 659 | mir_surface_release_sync(surface); |
51 | 660 | mir_connection_release(connection); | 660 | mir_connection_release(connection); |
52 | 661 | 661 | ||
54 | 662 | wait.wait_for(std::chrono::seconds{1}); | 662 | wait.wait_for(timeout); |
55 | 663 | Mock::VerifyAndClearExpectations(mock_session_mediator_report.get()); | 663 | Mock::VerifyAndClearExpectations(mock_session_mediator_report.get()); |
56 | 664 | } | 664 | } |
57 | 665 | 665 | ||
58 | @@ -685,7 +685,7 @@ | |||
59 | 685 | client.update_display_configuration( | 685 | client.update_display_configuration( |
60 | 686 | [](MirDisplayConfiguration* config) { config->outputs->used = false; }); | 686 | [](MirDisplayConfiguration* config) { config->outputs->used = false; }); |
61 | 687 | 687 | ||
63 | 688 | condition.wait_for(std::chrono::seconds{1}); | 688 | condition.wait_for(timeout); |
64 | 689 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 689 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
65 | 690 | } | 690 | } |
66 | 691 | 691 | ||
67 | @@ -714,7 +714,7 @@ | |||
68 | 714 | 714 | ||
69 | 715 | mir_wait_for(mir_connection_apply_display_config(client.connection, configuration)); | 715 | mir_wait_for(mir_connection_apply_display_config(client.connection, configuration)); |
70 | 716 | 716 | ||
72 | 717 | config_reported.wait_for(std::chrono::seconds{3}); | 717 | config_reported.wait_for(timeout); |
73 | 718 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 718 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
74 | 719 | } | 719 | } |
75 | 720 | 720 | ||
76 | @@ -744,7 +744,7 @@ | |||
77 | 744 | mir_wait_for(mir_surface_configure_cursor(client.surface, conf)); | 744 | mir_wait_for(mir_surface_configure_cursor(client.surface, conf)); |
78 | 745 | mir_cursor_configuration_destroy(conf); | 745 | mir_cursor_configuration_destroy(conf); |
79 | 746 | 746 | ||
81 | 747 | condition.wait_for(std::chrono::seconds{1}); | 747 | condition.wait_for(timeout); |
82 | 748 | Mock::VerifyAndClearExpectations(mock_cursor.get()); | 748 | Mock::VerifyAndClearExpectations(mock_cursor.get()); |
83 | 749 | } | 749 | } |
84 | 750 | 750 | ||
85 | @@ -756,7 +756,7 @@ | |||
86 | 756 | 756 | ||
87 | 757 | mir_buffer_stream_swap_buffers_sync(client.buffer_stream); | 757 | mir_buffer_stream_swap_buffers_sync(client.buffer_stream); |
88 | 758 | 758 | ||
90 | 759 | condition.wait_for(std::chrono::seconds{1}); | 759 | condition.wait_for(timeout); |
91 | 760 | Mock::VerifyAndClearExpectations(mock_cursor.get()); | 760 | Mock::VerifyAndClearExpectations(mock_cursor.get()); |
92 | 761 | } | 761 | } |
93 | 762 | } | 762 | } |
94 | @@ -786,7 +786,7 @@ | |||
95 | 786 | mir_wait_for(mir_surface_configure_cursor(client.surface, cursor)); | 786 | mir_wait_for(mir_surface_configure_cursor(client.surface, cursor)); |
96 | 787 | mir_cursor_configuration_destroy(cursor); | 787 | mir_cursor_configuration_destroy(cursor); |
97 | 788 | 788 | ||
99 | 789 | condition.wait_for(std::chrono::seconds{1}); | 789 | condition.wait_for(timeout); |
100 | 790 | Mock::VerifyAndClearExpectations(mock_cursor.get()); | 790 | Mock::VerifyAndClearExpectations(mock_cursor.get()); |
101 | 791 | } | 791 | } |
102 | 792 | } | 792 | } |
103 | @@ -814,7 +814,7 @@ | |||
104 | 814 | mir_wait_for(mir_surface_configure_cursor(client.surface, conf)); | 814 | mir_wait_for(mir_surface_configure_cursor(client.surface, conf)); |
105 | 815 | mir_cursor_configuration_destroy(conf); | 815 | mir_cursor_configuration_destroy(conf); |
106 | 816 | 816 | ||
108 | 817 | condition.wait_for(std::chrono::seconds{1}); | 817 | condition.wait_for(timeout); |
109 | 818 | Mock::VerifyAndClearExpectations(mock_cursor.get()); | 818 | Mock::VerifyAndClearExpectations(mock_cursor.get()); |
110 | 819 | } | 819 | } |
111 | 820 | 820 | ||
112 | @@ -867,7 +867,7 @@ | |||
113 | 867 | 867 | ||
114 | 868 | ClientWithAPaintedSurface client(nested_mir); | 868 | ClientWithAPaintedSurface client(nested_mir); |
115 | 869 | 869 | ||
117 | 870 | condition.wait_for(std::chrono::seconds{1}); | 870 | condition.wait_for(timeout); |
118 | 871 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 871 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
119 | 872 | 872 | ||
120 | 873 | EXPECT_TRUE(condition.raised()); | 873 | EXPECT_TRUE(condition.raised()); |
121 | @@ -889,7 +889,7 @@ | |||
122 | 889 | 889 | ||
123 | 890 | server.the_display_configuration_controller()->set_base_configuration(new_config); | 890 | server.the_display_configuration_controller()->set_base_configuration(new_config); |
124 | 891 | 891 | ||
126 | 892 | condition.wait_for(std::chrono::seconds{1}); | 892 | condition.wait_for(timeout); |
127 | 893 | Mock::VerifyAndClearExpectations(config_policy.get()); | 893 | Mock::VerifyAndClearExpectations(config_policy.get()); |
128 | 894 | EXPECT_TRUE(condition.raised()); | 894 | EXPECT_TRUE(condition.raised()); |
129 | 895 | } | 895 | } |
130 | @@ -914,7 +914,7 @@ | |||
131 | 914 | [](MirDisplayConfiguration* config) { config->outputs->used = false; }); | 914 | [](MirDisplayConfiguration* config) { config->outputs->used = false; }); |
132 | 915 | 915 | ||
133 | 916 | // Wait for initial config to be applied | 916 | // Wait for initial config to be applied |
135 | 917 | initial_condition.wait_for(std::chrono::seconds{1}); | 917 | initial_condition.wait_for(timeout); |
136 | 918 | 918 | ||
137 | 919 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 919 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
138 | 920 | ASSERT_TRUE(initial_condition.raised()); | 920 | ASSERT_TRUE(initial_condition.raised()); |
139 | @@ -924,7 +924,7 @@ | |||
140 | 924 | .WillRepeatedly(InvokeWithoutArgs([&] { condition.raise(); })); | 924 | .WillRepeatedly(InvokeWithoutArgs([&] { condition.raise(); })); |
141 | 925 | } | 925 | } |
142 | 926 | 926 | ||
144 | 927 | condition.wait_for(std::chrono::seconds{1}); | 927 | condition.wait_for(timeout); |
145 | 928 | EXPECT_TRUE(condition.raised()); | 928 | EXPECT_TRUE(condition.raised()); |
146 | 929 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 929 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
147 | 930 | } | 930 | } |
148 | @@ -952,7 +952,7 @@ | |||
149 | 952 | nested_mir.server.the_display_configuration_controller()->set_base_configuration(new_config); | 952 | nested_mir.server.the_display_configuration_controller()->set_base_configuration(new_config); |
150 | 953 | 953 | ||
151 | 954 | // Wait for initial config to be applied | 954 | // Wait for initial config to be applied |
153 | 955 | initial_condition.wait_for(std::chrono::seconds{1}); | 955 | initial_condition.wait_for(timeout); |
154 | 956 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 956 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
155 | 957 | ASSERT_TRUE(initial_condition.raised()); | 957 | ASSERT_TRUE(initial_condition.raised()); |
156 | 958 | 958 | ||
157 | @@ -960,7 +960,7 @@ | |||
158 | 960 | .WillRepeatedly(InvokeWithoutArgs([&] { condition.raise(); })); | 960 | .WillRepeatedly(InvokeWithoutArgs([&] { condition.raise(); })); |
159 | 961 | } | 961 | } |
160 | 962 | 962 | ||
162 | 963 | condition.wait_for(std::chrono::seconds{1}); | 963 | condition.wait_for(timeout); |
163 | 964 | EXPECT_TRUE(condition.raised()); | 964 | EXPECT_TRUE(condition.raised()); |
164 | 965 | } | 965 | } |
165 | 966 | 966 | ||
166 | @@ -979,7 +979,7 @@ | |||
167 | 979 | 979 | ||
168 | 980 | display.emit_configuration_change_event(new_config); | 980 | display.emit_configuration_change_event(new_config); |
169 | 981 | 981 | ||
171 | 982 | client_config_changed.wait_for(std::chrono::seconds{1}); | 982 | client_config_changed.wait_for(timeout); |
172 | 983 | 983 | ||
173 | 984 | ASSERT_TRUE(client_config_changed.raised()); | 984 | ASSERT_TRUE(client_config_changed.raised()); |
174 | 985 | 985 | ||
175 | @@ -1008,7 +1008,7 @@ | |||
176 | 1008 | nested_mir.server.the_display_configuration_controller()->set_base_configuration(initial_config); | 1008 | nested_mir.server.the_display_configuration_controller()->set_base_configuration(initial_config); |
177 | 1009 | 1009 | ||
178 | 1010 | // Wait for initial config to be applied | 1010 | // Wait for initial config to be applied |
180 | 1011 | initial_condition.wait_for(std::chrono::seconds{1}); | 1011 | initial_condition.wait_for(timeout); |
181 | 1012 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 1012 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
182 | 1013 | ASSERT_TRUE(initial_condition.raised()); | 1013 | ASSERT_TRUE(initial_condition.raised()); |
183 | 1014 | } | 1014 | } |
184 | @@ -1024,7 +1024,7 @@ | |||
185 | 1024 | 1024 | ||
186 | 1025 | display.emit_configuration_change_event(expect_config); | 1025 | display.emit_configuration_change_event(expect_config); |
187 | 1026 | 1026 | ||
189 | 1027 | condition.wait_for(std::chrono::seconds{1}); | 1027 | condition.wait_for(timeout); |
190 | 1028 | EXPECT_TRUE(condition.raised()); | 1028 | EXPECT_TRUE(condition.raised()); |
191 | 1029 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 1029 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
192 | 1030 | } | 1030 | } |
193 | @@ -1054,7 +1054,7 @@ | |||
194 | 1054 | 1054 | ||
195 | 1055 | display.emit_configuration_change_event(expect_config); | 1055 | display.emit_configuration_change_event(expect_config); |
196 | 1056 | 1056 | ||
198 | 1057 | condition.wait_for(std::chrono::seconds{1}); | 1057 | condition.wait_for(timeout); |
199 | 1058 | EXPECT_TRUE(condition.raised()); | 1058 | EXPECT_TRUE(condition.raised()); |
200 | 1059 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 1059 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
201 | 1060 | } | 1060 | } |
202 | @@ -1074,7 +1074,7 @@ | |||
203 | 1074 | 1074 | ||
204 | 1075 | display.emit_configuration_change_event(new_config); | 1075 | display.emit_configuration_change_event(new_config); |
205 | 1076 | 1076 | ||
207 | 1077 | client_config_changed.wait_for(std::chrono::seconds{1}); | 1077 | client_config_changed.wait_for(timeout); |
208 | 1078 | 1078 | ||
209 | 1079 | ASSERT_TRUE(client_config_changed.raised()); | 1079 | ASSERT_TRUE(client_config_changed.raised()); |
210 | 1080 | 1080 | ||
211 | @@ -1109,7 +1109,7 @@ | |||
212 | 1109 | nested_mir.server.the_display_configuration_controller()->set_base_configuration(initial_config); | 1109 | nested_mir.server.the_display_configuration_controller()->set_base_configuration(initial_config); |
213 | 1110 | 1110 | ||
214 | 1111 | // Wait for initial config to be applied | 1111 | // Wait for initial config to be applied |
216 | 1112 | initial_condition.wait_for(std::chrono::seconds{1}); | 1112 | initial_condition.wait_for(timeout); |
217 | 1113 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 1113 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
218 | 1114 | ASSERT_TRUE(initial_condition.raised()); | 1114 | ASSERT_TRUE(initial_condition.raised()); |
219 | 1115 | } | 1115 | } |
220 | @@ -1131,7 +1131,7 @@ | |||
221 | 1131 | 1131 | ||
222 | 1132 | display.emit_configuration_change_event(new_config); | 1132 | display.emit_configuration_change_event(new_config); |
223 | 1133 | 1133 | ||
225 | 1134 | condition.wait_for(std::chrono::seconds{1}); | 1134 | condition.wait_for(timeout); |
226 | 1135 | EXPECT_TRUE(condition.raised()); | 1135 | EXPECT_TRUE(condition.raised()); |
227 | 1136 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 1136 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
228 | 1137 | } | 1137 | } |
229 | @@ -1167,7 +1167,7 @@ | |||
230 | 1167 | 1167 | ||
231 | 1168 | display.emit_configuration_change_event(new_config); | 1168 | display.emit_configuration_change_event(new_config); |
232 | 1169 | 1169 | ||
234 | 1170 | condition.wait_for(std::chrono::seconds{1}); | 1170 | condition.wait_for(timeout); |
235 | 1171 | EXPECT_TRUE(condition.raised()); | 1171 | EXPECT_TRUE(condition.raised()); |
236 | 1172 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); | 1172 | Mock::VerifyAndClearExpectations(the_mock_display_configuration_report().get()); |
237 | 1173 | } | 1173 | } |
238 | @@ -1192,7 +1192,7 @@ | |||
239 | 1192 | 1192 | ||
240 | 1193 | display.emit_configuration_change_event(new_config); | 1193 | display.emit_configuration_change_event(new_config); |
241 | 1194 | 1194 | ||
243 | 1195 | condition.wait_for(std::chrono::seconds{1}); | 1195 | condition.wait_for(timeout); |
244 | 1196 | 1196 | ||
245 | 1197 | EXPECT_TRUE(condition.raised()); | 1197 | EXPECT_TRUE(condition.raised()); |
246 | 1198 | 1198 | ||
247 | @@ -1235,14 +1235,14 @@ | |||
248 | 1235 | 1235 | ||
249 | 1236 | display.emit_configuration_change_event(new_hw_config); | 1236 | display.emit_configuration_change_event(new_hw_config); |
250 | 1237 | 1237 | ||
252 | 1238 | client_config_changed.wait_for(std::chrono::seconds{1}); | 1238 | client_config_changed.wait_for(timeout); |
253 | 1239 | if (client_config_changed.raised()) | 1239 | if (client_config_changed.raised()) |
254 | 1240 | { | 1240 | { |
255 | 1241 | client.update_display_configuration( | 1241 | client.update_display_configuration( |
256 | 1242 | [](MirDisplayConfiguration* config) { config->outputs->orientation = mir_orientation_inverted; }); | 1242 | [](MirDisplayConfiguration* config) { config->outputs->orientation = mir_orientation_inverted; }); |
257 | 1243 | } | 1243 | } |
258 | 1244 | 1244 | ||
260 | 1245 | host_config_change.wait_for(std::chrono::seconds{1}); | 1245 | host_config_change.wait_for(timeout); |
261 | 1246 | 1246 | ||
262 | 1247 | EXPECT_TRUE(host_config_change.raised()); | 1247 | EXPECT_TRUE(host_config_change.raised()); |
263 | 1248 | Mock::VerifyAndClearExpectations(&display); | 1248 | Mock::VerifyAndClearExpectations(&display); |
PASSED: Continuous integration, rev:3567 /mir-jenkins. ubuntu. com/job/ mir-ci/ 1216/ /mir-jenkins. ubuntu. com/job/ build-mir/ 1397 /mir-jenkins. ubuntu. com/job/ build-0- fetch/1448 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 1439 /mir-jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial/ 1439 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= vivid+overlay/ 1411 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= clang,platform= mesa,release= vivid+overlay/ 1411/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial/ 1411 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= amd64,compiler= gcc,platform= mesa,release= xenial/ 1411/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 1411 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= cross-armhf, compiler= gcc,platform= android, release= vivid+overlay/ 1411/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 1411 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= android, release= vivid+overlay/ 1411/artifact/ output/ *zip*/output. zip /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial/ 1411 /mir-jenkins. ubuntu. com/job/ build-2- binpkg- mir/arch= i386,compiler= gcc,platform= mesa,release= xenial/ 1411/artifact/ output/ *zip*/output. zip
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild: /mir-jenkins. ubuntu. com/job/ mir-ci/ 1216/rebuild
https:/