Merge lp:~pete-woods/gmenuharness/increase-timeouts into lp:gmenuharness

Proposed by Pete Woods
Status: Merged
Approved by: Pete Woods
Approved revision: 33
Merged at revision: 28
Proposed branch: lp:~pete-woods/gmenuharness/increase-timeouts
Merge into: lp:gmenuharness
Diff against target: 268 lines (+61/-92)
7 files modified
CMakeLists.txt (+2/-1)
debian/gen-debian-files.sh (+1/-1)
debian/libgmenuharness0.1.yakkety.symbols (+0/-68)
src/CMakeLists.txt (+2/-2)
src/MatchResult.cpp (+1/-1)
src/MenuMatcher.cpp (+53/-16)
src/libgmenuharness.pc.in (+2/-3)
To merge this branch: bzr merge lp:~pete-woods/gmenuharness/increase-timeouts
Reviewer Review Type Date Requested Status
Indicator Applet Developers Pending
Review via email: mp+309467@code.launchpad.net

Commit message

Improve test stability. Fix FTBFS on Zesty by reusing Xenial symbols file for Zesty and Yakkety. Use GNUInstallDirs package correctly in CMakeLists.txt for generating pkg-config files.

Description of the change

Improve test stability. Fix FTBFS on Zesty by reusing Xenial symbols file for Zesty and Yakkety. Use GNUInstallDirs package correctly in CMakeLists.txt for generating pkg-config files.

To post a comment you must log in.
34. By Pete Woods

Use script instead to wrangle symbols files

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CMakeLists.txt'
2--- CMakeLists.txt 2015-11-18 12:45:59 +0000
3+++ CMakeLists.txt 2016-11-09 11:45:41 +0000
4@@ -3,6 +3,7 @@
5
6 set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
7 find_package(PkgConfig REQUIRED)
8+include(GNUInstallDirs)
9
10 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 ${COMMON_FLAGS} -fno-strict-aliasing -fvisibility-inlines-hidden")
11
12@@ -14,7 +15,7 @@
13 set(GMENU_HARNESS_SO_VERSION_MINOR "1")
14 set(GMENU_HARNESS_SO_VERSION_MICRO "0")
15 set(GMENU_HARNESS_SO_VERSION ${GMENU_HARNESS_SO_VERSION_MAJOR}.${GMENU_HARNESS_SO_VERSION_MINOR})
16-set(GMENU_HARNESS_HDR_INSTALL_BASE_DIR include/${GMENU_HARNESS}-${GMENU_HARNESS_SO_VERSION})
17+set(GMENU_HARNESS_HDR_INSTALL_BASE_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR}/${GMENU_HARNESS}-${GMENU_HARNESS_SO_VERSION})
18 set(GMENU_HARNESS_HDR_INSTALL_DIR ${GMENU_HARNESS_HDR_INSTALL_BASE_DIR}/unity/${GMENU_HARNESS})
19
20 include_directories(include)
21
22=== modified file 'debian/gen-debian-files.sh'
23--- debian/gen-debian-files.sh 2015-11-17 11:07:38 +0000
24+++ debian/gen-debian-files.sh 2016-11-09 11:45:41 +0000
25@@ -6,6 +6,6 @@
26 SOURCE_SYMBOLS_FILE="${DIR}/libgmenuharness0.1.${DISTRO}.symbols"
27 TARGET_SYMBOLS_FILE="${DIR}/libgmenuharness0.1.symbols"
28
29-if [ ! -f "$TARGET_SYMBOLS_FILE" ]; then
30+if [ -f "$SOURCE_SYMBOLS_FILE" ]; then
31 cp "$SOURCE_SYMBOLS_FILE" "$TARGET_SYMBOLS_FILE"
32 fi
33
34=== renamed file 'debian/libgmenuharness0.1.xenial.symbols' => 'debian/libgmenuharness0.1.symbols'
35=== removed file 'debian/libgmenuharness0.1.yakkety.symbols'
36--- debian/libgmenuharness0.1.yakkety.symbols 2016-06-10 11:40:05 +0000
37+++ debian/libgmenuharness0.1.yakkety.symbols 1970-01-01 00:00:00 +0000
38@@ -1,68 +0,0 @@
39-libgmenuharness.so.0.1 libgmenuharness0.1 #MINVER#
40- (c++)"unity::gmenuharness::g_object_deleter(void*)@Base" 0.1+16.04.20151118
41- (c++)"unity::gmenuharness::gvariant_deleter(_GVariant*)@Base" 0.1+16.04.20151118
42- (c++)"unity::gmenuharness::MatchResult::concat_failures[abi:cxx11]() const@Base" 0.1+16.04.20151118
43- (c++)"unity::gmenuharness::MatchResult::createChild() const@Base" 0.1+16.04.20151118
44- (c++)"unity::gmenuharness::MatchResult::failure(std::vector<unsigned int, std::allocator<unsigned int> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
45- (c++)"unity::gmenuharness::MatchResult::hasTimedOut() const@Base" 0.1+16.04.20151118
46- (c++)"unity::gmenuharness::MatchResult::MatchResult()@Base" 0.1+16.04.20151118
47- (c++)"unity::gmenuharness::MatchResult::MatchResult(unity::gmenuharness::MatchResult&&)@Base" 0.1+16.04.20151118
48- (c++)"unity::gmenuharness::MatchResult::MatchResult(unity::gmenuharness::MatchResult const&)@Base" 0.1+16.04.20151118
49- (c++)"unity::gmenuharness::MatchResult::merge(unity::gmenuharness::MatchResult const&)@Base" 0.1+16.04.20151118
50- (c++)"unity::gmenuharness::MatchResult::operator=(unity::gmenuharness::MatchResult&&)@Base" 0.1+16.04.20151118
51- (c++)"unity::gmenuharness::MatchResult::operator=(unity::gmenuharness::MatchResult const&)@Base" 0.1+16.04.20151118
52- (c++)"unity::gmenuharness::MatchResult::success() const@Base" 0.1+16.04.20151118
53- (c++)"unity::gmenuharness::MenuItemMatcher::action(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
54- (c++)"unity::gmenuharness::MenuItemMatcher::activate(std::shared_ptr<_GVariant> const&)@Base" 0.1+16.04.20151118
55- (c++)"unity::gmenuharness::MenuItemMatcher::attribute_not_set(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
56- (c++)"unity::gmenuharness::MenuItemMatcher::attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<_GVariant> const&)@Base" 0.1+16.04.20151118
57- (c++)"unity::gmenuharness::MenuItemMatcher::boolean_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.1+16.04.20151118
58- (c++)"unity::gmenuharness::MenuItemMatcher::checkbox()@Base" 0.1+16.04.20151118
59- (c++)"unity::gmenuharness::MenuItemMatcher::double_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)@Base" 0.1+16.04.20151118
60- (c++)"unity::gmenuharness::MenuItemMatcher::enabled(bool)@Base" 0.1.1+16.10.20160610.2-0ubuntu1
61- (c++)"unity::gmenuharness::MenuItemMatcher::has_exactly(unsigned int)@Base" 0.1+16.04.20151118
62- (c++)"unity::gmenuharness::MenuItemMatcher::icon(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
63- (c++)"unity::gmenuharness::MenuItemMatcher::int32_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@Base" 0.1+16.04.20151118
64- (c++)"unity::gmenuharness::MenuItemMatcher::int64_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)@Base" 0.1+16.04.20151118
65- (c++)"unity::gmenuharness::MenuItemMatcher::is_empty()@Base" 0.1+16.04.20151118
66- (c++)"unity::gmenuharness::MenuItemMatcher::item(unity::gmenuharness::MenuItemMatcher&&)@Base" 0.1+16.04.20151118
67- (c++)"unity::gmenuharness::MenuItemMatcher::item(unity::gmenuharness::MenuItemMatcher const&)@Base" 0.1+16.04.20151118
68- (c++)"unity::gmenuharness::MenuItemMatcher::label(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
69- (c++)"unity::gmenuharness::MenuItemMatcher::match(unity::gmenuharness::MatchResult&, std::vector<unsigned int, std::allocator<unsigned int> > const&, std::shared_ptr<_GMenuModel> const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<_GActionGroup>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<_GActionGroup> > > >&, unsigned int) const@Base" 0.1+16.04.20151118
70- (c++)"unity::gmenuharness::MenuItemMatcher::~MenuItemMatcher()@Base" 0.1+16.04.20151118
71- (c++)"unity::gmenuharness::MenuItemMatcher::MenuItemMatcher()@Base" 0.1+16.04.20151118
72- (c++)"unity::gmenuharness::MenuItemMatcher::MenuItemMatcher(unity::gmenuharness::MenuItemMatcher&&)@Base" 0.1+16.04.20151118
73- (c++)"unity::gmenuharness::MenuItemMatcher::MenuItemMatcher(unity::gmenuharness::MenuItemMatcher const&)@Base" 0.1+16.04.20151118
74- (c++)"unity::gmenuharness::MenuItemMatcher::mode(unity::gmenuharness::MenuItemMatcher::Mode)@Base" 0.1+16.04.20151118
75- (c++)"unity::gmenuharness::MenuItemMatcher::operator=(unity::gmenuharness::MenuItemMatcher&&)@Base" 0.1+16.04.20151118
76- (c++)"unity::gmenuharness::MenuItemMatcher::operator=(unity::gmenuharness::MenuItemMatcher const&)@Base" 0.1+16.04.20151118
77- (c++)"unity::gmenuharness::MenuItemMatcher::pass_through_activate(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<_GVariant> const&)@Base" 0.1+16.04.20151118
78- (c++)"unity::gmenuharness::MenuItemMatcher::pass_through_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<_GVariant> const&)@Base" 0.1+16.04.20151118
79- (c++)"unity::gmenuharness::MenuItemMatcher::pass_through_boolean_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)@Base" 0.1+16.04.20151118
80- (c++)"unity::gmenuharness::MenuItemMatcher::pass_through_double_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, double)@Base" 0.1+16.04.20151118
81- (c++)"unity::gmenuharness::MenuItemMatcher::pass_through_string_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
82- (c++)"unity::gmenuharness::MenuItemMatcher::radio()@Base" 0.1+16.04.20151118
83- (c++)"unity::gmenuharness::MenuItemMatcher::round_doubles(double)@Base" 0.1+16.04.20151118
84- (c++)"unity::gmenuharness::MenuItemMatcher::section()@Base" 0.1+16.04.20151118
85- (c++)"unity::gmenuharness::MenuItemMatcher::set_action_state(std::shared_ptr<_GVariant> const&)@Base" 0.1+16.04.20151118
86- (c++)"unity::gmenuharness::MenuItemMatcher::set_pass_through_action_state(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<_GVariant> const&)@Base" 0.1+16.04.20151118
87- (c++)"unity::gmenuharness::MenuItemMatcher::state_icons(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)@Base" 0.1+16.04.20151118
88- (c++)"unity::gmenuharness::MenuItemMatcher::string_attribute(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
89- (c++)"unity::gmenuharness::MenuItemMatcher::submenu()@Base" 0.1+16.04.20151118
90- (c++)"unity::gmenuharness::MenuItemMatcher::themed_icon(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)@Base" 0.1+16.04.20151118
91- (c++)"unity::gmenuharness::MenuItemMatcher::toggled(bool)@Base" 0.1+16.04.20151118
92- (c++)"unity::gmenuharness::MenuItemMatcher::type(unity::gmenuharness::MenuItemMatcher::Type)@Base" 0.1+16.04.20151118
93- (c++)"unity::gmenuharness::MenuItemMatcher::widget(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
94- (c++)"unity::gmenuharness::MenuMatcher::item(unity::gmenuharness::MenuItemMatcher const&)@Base" 0.1+16.04.20151118
95- (c++)"unity::gmenuharness::MenuMatcher::match() const@Base" 0.1+16.04.20151118
96- (c++)"unity::gmenuharness::MenuMatcher::match(unity::gmenuharness::MatchResult&) const@Base" 0.1+16.04.20151118
97- (c++)"unity::gmenuharness::MenuMatcher::~MenuMatcher()@Base" 0.1+16.04.20151118
98- (c++)"unity::gmenuharness::MenuMatcher::MenuMatcher(unity::gmenuharness::MenuMatcher::Parameters const&)@Base" 0.1+16.04.20151118
99- (c++)"unity::gmenuharness::MenuMatcher::Parameters::operator=(unity::gmenuharness::MenuMatcher::Parameters&&)@Base" 0.1+16.04.20151118
100- (c++)"unity::gmenuharness::MenuMatcher::Parameters::operator=(unity::gmenuharness::MenuMatcher::Parameters const&)@Base" 0.1+16.04.20151118
101- (c++)"unity::gmenuharness::MenuMatcher::Parameters::~Parameters()@Base" 0.1+16.04.20151118
102- (c++)"unity::gmenuharness::MenuMatcher::Parameters::Parameters(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0.1+16.04.20151118
103- (c++)"unity::gmenuharness::MenuMatcher::Parameters::Parameters(unity::gmenuharness::MenuMatcher::Parameters&&)@Base" 0.1+16.04.20151118
104- (c++)"unity::gmenuharness::MenuMatcher::Parameters::Parameters(unity::gmenuharness::MenuMatcher::Parameters const&)@Base" 0.1+16.04.20151118
105- (c++)"unity::gmenuharness::menuWaitForItems(std::shared_ptr<_GMenuModel> const&, unsigned int)@Base" 0.1+16.04.20151118
106- (c++)"unity::gmenuharness::waitForCore(_GObject*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)@Base" 0.1+16.04.20151118
107
108=== modified file 'src/CMakeLists.txt'
109--- src/CMakeLists.txt 2015-11-17 11:47:19 +0000
110+++ src/CMakeLists.txt 2016-11-09 11:45:41 +0000
111@@ -27,9 +27,9 @@
112
113 install(
114 TARGETS ${GMENU_HARNESS}
115- LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
116+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
117 )
118
119 # Set up package config.
120 configure_file(lib${GMENU_HARNESS}.pc.in lib${GMENU_HARNESS}.pc @ONLY)
121-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${GMENU_HARNESS}.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig)
122\ No newline at end of file
123+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${GMENU_HARNESS}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
124
125=== modified file 'src/MatchResult.cpp'
126--- src/MatchResult.cpp 2015-10-28 14:12:34 +0000
127+++ src/MatchResult.cpp 2016-11-09 11:45:41 +0000
128@@ -95,7 +95,7 @@
129
130 map<vector<unsigned int>, vector<string>, compare_vector> m_failures;
131
132- chrono::time_point<chrono::system_clock> m_timeout = chrono::system_clock::now() + chrono::seconds(10);
133+ chrono::time_point<chrono::system_clock> m_timeout = chrono::system_clock::now() + chrono::seconds(40);
134 };
135
136 MatchResult::MatchResult() :
137
138=== modified file 'src/MenuMatcher.cpp'
139--- src/MenuMatcher.cpp 2016-08-16 14:47:43 +0000
140+++ src/MenuMatcher.cpp 2016-11-09 11:45:41 +0000
141@@ -37,10 +37,6 @@
142
143 static void gdbus_connection_deleter(GDBusConnection* connection)
144 {
145-// if (!g_dbus_connection_is_closed(connection))
146-// {
147-// g_dbus_connection_close_sync(connection, nullptr, nullptr);
148-// }
149 g_clear_object(&connection);
150 }
151 }
152@@ -112,8 +108,57 @@
153
154 map<string, shared_ptr<GActionGroup>> m_actions;
155
156+ shared_ptr<GDBusConnection> createDBusConnection(GBusType type)
157+ {
158+ GError *error = nullptr;
159+
160+ gchar *address = g_dbus_address_get_for_bus_sync(type,
161+ nullptr, &error);
162+ if (!address)
163+ {
164+ g_assert(error != nullptr);
165+ if (error->domain != G_IO_ERROR
166+ || error->code != G_IO_ERROR_CANCELLED)
167+ {
168+ std::cerr << "Error getting the bus address: "
169+ << error->message;
170+ }
171+ g_error_free(error);
172+
173+ throw runtime_error("Unable to get DBus connection address");
174+ }
175+
176+ error = nullptr;
177+
178+ shared_ptr<GDBusConnection> bus(
179+ g_dbus_connection_new_for_address_sync(address,
180+ (GDBusConnectionFlags) (G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_CLIENT
181+ | G_DBUS_CONNECTION_FLAGS_MESSAGE_BUS_CONNECTION),
182+ nullptr, nullptr, &error), &gdbus_connection_deleter);
183+ g_free(address);
184+
185+ if (!bus)
186+ {
187+ g_assert(error != nullptr);
188+ if (error->domain != G_IO_ERROR
189+ || error->code != G_IO_ERROR_CANCELLED)
190+ {
191+ std::cerr << "Error getting the bus: " << error->message;
192+ }
193+ g_error_free(error);
194+ throw runtime_error("Unable to connect to DBus");
195+ }
196+
197+ g_dbus_connection_set_exit_on_close(bus.get(), FALSE);
198+
199+ return bus;
200+ }
201+
202 void createGmenu()
203 {
204+ m_system = createDBusConnection(G_BUS_TYPE_SYSTEM);
205+ m_session = createDBusConnection(G_BUS_TYPE_SESSION);
206+
207 m_menu.reset(
208 G_MENU_MODEL(
209 g_dbus_menu_model_get(
210@@ -139,14 +184,6 @@
211 MenuMatcher::MenuMatcher(const Parameters& parameters) :
212 p(new Priv(parameters))
213 {
214- p->m_system.reset(g_bus_get_sync(G_BUS_TYPE_SYSTEM, nullptr, nullptr),
215- &gdbus_connection_deleter);
216- g_dbus_connection_set_exit_on_close(p->m_system.get(), false);
217-
218- p->m_session.reset(g_bus_get_sync(G_BUS_TYPE_SESSION, nullptr, nullptr),
219- &gdbus_connection_deleter);
220- g_dbus_connection_set_exit_on_close(p->m_session.get(), false);
221-
222 p->createGmenu();
223 }
224
225@@ -160,15 +197,15 @@
226 return *this;
227 }
228
229-static chrono::time_point<chrono::system_clock> oneSecondTimeout() {
230- return chrono::system_clock::now() + chrono::seconds(1);
231+static chrono::time_point<chrono::system_clock> topLevelTimeout() {
232+ return chrono::system_clock::now() + chrono::seconds(20);
233 }
234
235 void MenuMatcher::match(MatchResult& matchResult) const
236 {
237 vector<unsigned int> location;
238
239- auto timeout = oneSecondTimeout();
240+ auto timeout = topLevelTimeout();
241
242 while (true)
243 {
244@@ -203,7 +240,7 @@
245 // Start with a fresh menu to work around initialisation race condition in GMenu
246 p->createGmenu();
247
248- timeout = oneSecondTimeout();
249+ timeout = topLevelTimeout();
250 }
251
252 if (matchResult.hasTimedOut())
253
254=== modified file 'src/libgmenuharness.pc.in'
255--- src/libgmenuharness.pc.in 2015-09-01 09:52:39 +0000
256+++ src/libgmenuharness.pc.in 2016-11-09 11:45:41 +0000
257@@ -16,9 +16,8 @@
258 # Authored by: Xavi Garcia Mena <xavi.garcia.mena@canonical.com>
259 #
260
261-prefix=@CMAKE_INSTALL_PREFIX@
262-includedir=${prefix}/@GMENU_HARNESS_HDR_INSTALL_BASE_DIR@
263-libdir=${prefix}/@LIBDIR@
264+includedir=@GMENU_HARNESS_HDR_INSTALL_BASE_DIR@
265+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
266
267 Name: libgmenuharness
268 Description: GMenu harness library

Subscribers

People subscribed via source and target branches