Merge lp:~thomas-voss/dbus-cpp/add_fixture_for_testing_purposes into lp:dbus-cpp
- add_fixture_for_testing_purposes
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Pete Woods |
Approved revision: | 27 |
Merged at revision: | 18 |
Proposed branch: | lp:~thomas-voss/dbus-cpp/add_fixture_for_testing_purposes |
Merge into: | lp:dbus-cpp |
Diff against target: |
1821 lines (+914/-294) 25 files modified
CMakeLists.txt (+4/-0) data/CMakeLists.txt (+6/-0) data/session.conf (+42/-0) data/system.conf (+23/-0) debian/control (+1/-1) debian/libdbus-cpp1.symbols.amd64 (+41/-1) debian/libdbus-cpp1.symbols.armhf (+44/-0) debian/libdbus-cpp1.symbols.i386 (+44/-0) include/core/dbus/bus.h (+6/-0) include/core/dbus/dbus.h (+24/-13) include/core/dbus/fixture.h (+153/-0) include/core/dbus/impl/property.h (+32/-33) src/core/dbus/CMakeLists.txt (+9/-1) src/core/dbus/bus.cpp (+45/-4) src/core/dbus/dbus.cpp (+27/-0) src/core/dbus/fixture.cpp.in (+132/-0) tests/CMakeLists.txt (+18/-42) tests/bus_test.cpp (+38/-30) tests/compiler_test.cpp (+26/-26) tests/dbus_test.cpp (+34/-20) tests/executor_test.cpp (+37/-22) tests/message_test.cpp (+18/-17) tests/service_test.cpp (+93/-83) tests/stl_codec_test.cpp (+3/-0) tests/test_data.h.in (+14/-1) |
To merge this branch: | bzr merge lp:~thomas-voss/dbus-cpp/add_fixture_for_testing_purposes |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Pete Woods (community) | Approve | ||
PS Jenkins bot | continuous-integration | Approve | |
Review via email: mp+201169@code.launchpad.net |
Commit message
Add fixture for testing purposes.
Description of the change
Add fixture for testing purposes.
PS Jenkins bot (ps-jenkins) wrote : | # |
- 25. By Thomas Voß
-
Remove two obsolete sleeps.
Remove two obsolete std::cout's. - 26. By Thomas Voß
-
Adjust i386 symbols file.
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:26
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
- 27. By Thomas Voß
-
Clean up indentation.
PS Jenkins bot (ps-jenkins) wrote : | # |
PASSED: Continuous integration, rev:27
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
Click here to trigger a rebuild:
http://
Pete Woods (pete-woods) : | # |
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2013-11-27 18:57:42 +0000 |
3 | +++ CMakeLists.txt 2014-01-13 07:51:24 +0000 |
4 | @@ -20,6 +20,10 @@ |
5 | |
6 | find_package(Boost COMPONENTS filesystem program_options system REQUIRED) |
7 | find_package(LibXml2 REQUIRED) |
8 | +find_package(PkgConfig REQUIRED) |
9 | + |
10 | +pkg_check_modules(DBUS dbus-1) |
11 | +pkg_check_modules(PROCESS_CPP process-cpp) |
12 | |
13 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) |
14 | |
15 | |
16 | === modified file 'data/CMakeLists.txt' |
17 | --- data/CMakeLists.txt 2013-11-04 15:33:03 +0000 |
18 | +++ data/CMakeLists.txt 2014-01-13 07:51:24 +0000 |
19 | @@ -23,3 +23,9 @@ |
20 | DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig |
21 | ) |
22 | |
23 | +install( |
24 | + FILES ${CMAKE_CURRENT_SOURCE_DIR}/session.conf ${CMAKE_CURRENT_SOURCE_DIR}/system.conf |
25 | + DESTINATION |
26 | + "${CMAKE_INSTALL_DATADIR}/dbus-cpp/" |
27 | +) |
28 | + |
29 | |
30 | === added file 'data/session.conf' |
31 | --- data/session.conf 1970-01-01 00:00:00 +0000 |
32 | +++ data/session.conf 2014-01-13 07:51:24 +0000 |
33 | @@ -0,0 +1,42 @@ |
34 | +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" |
35 | + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> |
36 | +<busconfig> |
37 | + <!-- If we fork, keep the user's original umask to avoid affecting |
38 | + the behavior of child processes. --> |
39 | + <keep_umask/> |
40 | + |
41 | + <type>session</type> |
42 | + |
43 | + <listen>unix:tmpdir=/tmp</listen> |
44 | + |
45 | + <standard_session_servicedirs /> |
46 | + |
47 | + <policy context="default"> |
48 | + <!-- Allow everything to be sent --> |
49 | + <allow send_destination="*" eavesdrop="true"/> |
50 | + <!-- Allow everything to be received --> |
51 | + <allow eavesdrop="true"/> |
52 | + <!-- Allow anyone to own anything --> |
53 | + <allow own="*"/> |
54 | + </policy> |
55 | + |
56 | + <!-- raise the service start timeout to 40 seconds as it can timeout |
57 | + on the live cd on slow machines --> |
58 | + <limit name="service_start_timeout">60000</limit> |
59 | + |
60 | + <!-- the memory limits are 1G instead of say 4G because they can't exceed 32-bit signed int max --> |
61 | + <limit name="max_incoming_bytes">1000000000</limit> |
62 | + <limit name="max_outgoing_bytes">1000000000</limit> |
63 | + <limit name="max_message_size">1000000000</limit> |
64 | + <limit name="service_start_timeout">120000</limit> |
65 | + <limit name="auth_timeout">240000</limit> |
66 | + <limit name="max_completed_connections">100000</limit> |
67 | + <limit name="max_incomplete_connections">10000</limit> |
68 | + <limit name="max_connections_per_user">100000</limit> |
69 | + <limit name="max_pending_service_starts">10000</limit> |
70 | + <limit name="max_names_per_connection">50000</limit> |
71 | + <limit name="max_match_rules_per_connection">50000</limit> |
72 | + <limit name="max_replies_per_connection">50000</limit> |
73 | + <limit name="reply_timeout">300000</limit> |
74 | + |
75 | +</busconfig> |
76 | |
77 | === added file 'data/system.conf' |
78 | --- data/system.conf 1970-01-01 00:00:00 +0000 |
79 | +++ data/system.conf 2014-01-13 07:51:24 +0000 |
80 | @@ -0,0 +1,23 @@ |
81 | +<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-Bus Bus Configuration 1.0//EN" |
82 | + "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> |
83 | +<busconfig> |
84 | + <!-- If we fork, keep the user's original umask to avoid affecting |
85 | + the behavior of child processes. --> |
86 | + <keep_umask/> |
87 | + |
88 | + <type>system</type> |
89 | + |
90 | + <listen>unix:tmpdir=/tmp</listen> |
91 | + |
92 | + <standard_system_servicedirs/> |
93 | + |
94 | + <policy context="default"> |
95 | + <!-- Allow everything to be sent --> |
96 | + <allow send_destination="*" eavesdrop="true"/> |
97 | + <!-- Allow everything to be received --> |
98 | + <allow eavesdrop="true"/> |
99 | + <!-- Allow anyone to own anything --> |
100 | + <allow own="*"/> |
101 | + </policy> |
102 | + |
103 | +</busconfig> |
104 | |
105 | === modified file 'debian/control' |
106 | --- debian/control 2014-01-03 07:35:26 +0000 |
107 | +++ debian/control 2014-01-13 07:51:24 +0000 |
108 | @@ -2,7 +2,7 @@ |
109 | Priority: optional |
110 | Maintainer: Thomas Voß <thomas.voss@ubuntu.com> |
111 | Build-Depends: cmake, |
112 | - dbus-test-runner, |
113 | + dbus, |
114 | debhelper (>= 9), |
115 | doxygen, |
116 | google-mock, |
117 | |
118 | === modified file 'debian/libdbus-cpp1.symbols.amd64' |
119 | --- debian/libdbus-cpp1.symbols.amd64 2014-01-05 18:58:19 +0000 |
120 | +++ debian/libdbus-cpp1.symbols.amd64 2014-01-13 07:51:24 +0000 |
121 | @@ -304,7 +304,6 @@ |
122 | (c++)"std::__detail::_Hash_node<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, true>* std::_Hashtable<core::dbus::types::ObjectPath, std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::types::ObjectPath>, std::hash<core::dbus::types::ObjectPath>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_allocate_node<std::piecewise_construct_t const&, std::tuple<core::dbus::types::ObjectPath const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<core::dbus::types::ObjectPath const&>&&, std::tuple<>&&)@Base" 0replaceme |
123 | (c++)"std::__detail::_Hash_node<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, true>* std::_Hashtable<core::dbus::types::ObjectPath, std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::types::ObjectPath>, std::hash<core::dbus::types::ObjectPath>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_allocate_node<std::piecewise_construct_t const&, std::tuple<core::dbus::types::ObjectPath const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<core::dbus::types::ObjectPath const&>&&, std::tuple<>&&)@Base" 0replaceme |
124 | (c++)"std::_Hashtable<core::dbus::types::ObjectPath, std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::types::ObjectPath>, std::hash<core::dbus::types::ObjectPath>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, true>*)@Base" 0replaceme |
125 | - (c++)"std::_Hashtable<core::dbus::types::ObjectPath, std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::types::ObjectPath>, std::hash<core::dbus::types::ObjectPath>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::clear()@Base" 0replaceme |
126 | (c++)"std::_Hashtable<core::dbus::types::ObjectPath, std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::types::ObjectPath>, std::hash<core::dbus::types::ObjectPath>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_rehash(unsigned long, unsigned long const&)@Base" 0replaceme |
127 | (c++)"std::_Hashtable<core::dbus::Message::Type, std::pair<core::dbus::Message::Type const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::Message::Type const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::Message::Type>, std::hash<core::dbus::Message::Type>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>)@Base" 0replaceme |
128 | (c++)"std::_Hashtable<core::dbus::Message::Type, std::pair<core::dbus::Message::Type const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::Message::Type const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::Message::Type>, std::hash<core::dbus::Message::Type>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<core::dbus::Message::Type const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, true>*)@Base" 0replaceme |
129 | @@ -352,6 +351,46 @@ |
130 | (c++)"typeinfo for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
131 | (c++)"typeinfo name for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
132 | (c++)"vtable for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
133 | + (c++)"guard variable for core::dbus::DBus::Hello::name()::s@Base" 0replaceme |
134 | + (c++)"core::dbus::Bus::Bus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
135 | + (c++)"core::dbus::Bus::Bus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
136 | + (c++)"core::dbus::Fixture::create_connection_to_system_bus()@Base" 0replaceme |
137 | + (c++)"core::dbus::Fixture::create_connection_to_session_bus()@Base" 0replaceme |
138 | + (c++)"core::dbus::Fixture::Fixture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
139 | + (c++)"core::dbus::Fixture::Fixture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
140 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
141 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
142 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
143 | + (c++)"core::dbus::DBus::hello() const@Base" 0replaceme |
144 | + (c++)"std::_Function_base::_Base_manager<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}> const&, std::_Manager_operation)@Base" 0replaceme |
145 | + (c++)"std::_Function_base::_Base_manager<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}> const&, std::_Manager_operation)@Base" 0replaceme |
146 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_destroy()@Base" 0replaceme |
147 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_dispose()@Base" 0replaceme |
148 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_get_deleter(std::type_info const&)@Base" 0replaceme |
149 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
150 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
151 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
152 | + (c++)"std::_Function_handler<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
153 | + (c++)"std::_Function_handler<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
154 | + (c++)"std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~pair()@Base" 0replaceme |
155 | + (c++)"std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~pair()@Base" 0replaceme |
156 | + (c++)"std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_insert_<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)@Base" 0replaceme |
157 | + (c++)"std::pair<std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool> std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_insert_unique<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)@Base" 0replaceme |
158 | + (c++)"std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
159 | + (c++)"std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@Base" 0replaceme |
160 | + (c++)"typeinfo for core::dbus::Fixture@Base" 0replaceme |
161 | + (c++)"typeinfo for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
162 | + (c++)"typeinfo for core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
163 | + (c++)"typeinfo for core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
164 | + (c++)"typeinfo name for core::dbus::Fixture@Base" 0replaceme |
165 | + (c++)"typeinfo name for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
166 | + (c++)"typeinfo name for core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
167 | + (c++)"typeinfo name for core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
168 | + (c++)"vtable for core::dbus::Fixture@Base" 0replaceme |
169 | + (c++)"vtable for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
170 | + (c++)"core::dbus::DBus::Hello::name()::s@Base" 0replaceme |
171 | + (c++)"core::dbus::Fixture::default_system_bus_config_file()@Base" 0replaceme |
172 | + (c++)"core::dbus::Fixture::default_session_bus_config_file()@Base" 0replaceme |
173 | (c++|optional)"boost::exception_detail::error_info_injector<boost::system::system_error>::error_info_injector(boost::exception_detail::error_info_injector<boost::system::system_error> const&)@Base" 0replaceme |
174 | (c++|optional)"boost::exception_detail::error_info_injector<boost::system::system_error>::error_info_injector(boost::exception_detail::error_info_injector<boost::system::system_error> const&)@Base" 0replaceme |
175 | (c++|optional)"boost::exception_detail::error_info_injector<std::runtime_error>::error_info_injector(boost::exception_detail::error_info_injector<std::runtime_error> const&)@Base" 0replaceme |
176 | @@ -362,3 +401,4 @@ |
177 | (c++|optional)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 0replaceme |
178 | (c++|optional)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
179 | (c++|optional)"std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*)@Base" 0replaceme |
180 | + (c++|optional)"std::_Hashtable<core::dbus::types::ObjectPath, std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> >, std::allocator<std::pair<core::dbus::types::ObjectPath const, std::function<void (std::shared_ptr<core::dbus::Message> const&)> > >, std::__detail::_Select1st, std::equal_to<core::dbus::types::ObjectPath>, std::hash<core::dbus::types::ObjectPath>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::clear()@Base" 0replaceme |
181 | |
182 | === modified file 'debian/libdbus-cpp1.symbols.armhf' |
183 | --- debian/libdbus-cpp1.symbols.armhf 2014-01-05 18:58:19 +0000 |
184 | +++ debian/libdbus-cpp1.symbols.armhf 2014-01-13 07:51:24 +0000 |
185 | @@ -378,6 +378,50 @@ |
186 | (c++)"typeinfo for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
187 | (c++)"typeinfo name for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
188 | (c++)"vtable for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
189 | + (c++)"guard variable for core::dbus::DBus::Hello::name()::s@Base" 0replaceme |
190 | + (c++)"core::dbus::Bus::Bus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
191 | + (c++)"core::dbus::Bus::Bus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
192 | + (c++)"core::dbus::Fixture::default_system_bus_config_file()@Base" 0replaceme |
193 | + (c++)"core::dbus::Fixture::create_connection_to_system_bus()@Base" 0replaceme |
194 | + (c++)"core::dbus::Fixture::default_session_bus_config_file()@Base" 0replaceme |
195 | + (c++)"core::dbus::Fixture::create_connection_to_session_bus()@Base" 0replaceme |
196 | + (c++)"core::dbus::Fixture::Fixture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
197 | + (c++)"core::dbus::Fixture::Fixture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
198 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
199 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
200 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
201 | + (c++)"core::dbus::DBus::hello() const@Base" 0replaceme |
202 | + (c++)"std::_Function_base::_Base_manager<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}> const&, std::_Manager_operation)@Base" 0replaceme |
203 | + (c++)"std::_Function_base::_Base_manager<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}> const&, std::_Manager_operation)@Base" 0replaceme |
204 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_destroy()@Base" 0replaceme |
205 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_dispose()@Base" 0replaceme |
206 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_get_deleter(std::type_info const&)@Base" 0replaceme |
207 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
208 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
209 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
210 | + (c++)"std::_Function_handler<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
211 | + (c++)"std::_Function_handler<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
212 | + (c++)"std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~pair()@Base" 0replaceme |
213 | + (c++)"std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~pair()@Base" 0replaceme |
214 | + (c++)"std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_insert_<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)@Base" 0replaceme |
215 | + (c++)"std::pair<std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool> std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_insert_unique<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)@Base" 0replaceme |
216 | + (c++)"std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
217 | + (c++)"std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@Base" 0replaceme |
218 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
219 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
220 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
221 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
222 | + (c++)"typeinfo for core::dbus::Fixture@Base" 0replaceme |
223 | + (c++)"typeinfo for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
224 | + (c++)"typeinfo for core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
225 | + (c++)"typeinfo for core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
226 | + (c++)"typeinfo name for core::dbus::Fixture@Base" 0replaceme |
227 | + (c++)"typeinfo name for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
228 | + (c++)"typeinfo name for core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
229 | + (c++)"typeinfo name for core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
230 | + (c++)"vtable for core::dbus::Fixture@Base" 0replaceme |
231 | + (c++)"vtable for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
232 | + (c++)"core::dbus::DBus::Hello::name()::s@Base" 0replaceme |
233 | (c++|optional)"boost::exception_detail::error_info_injector<boost::system::system_error>::error_info_injector(boost::exception_detail::error_info_injector<boost::system::system_error> const&)@Base" 0replaceme |
234 | (c++|optional)"boost::exception_detail::error_info_injector<boost::system::system_error>::error_info_injector(boost::exception_detail::error_info_injector<boost::system::system_error> const&)@Base" 0replaceme |
235 | (c++|optional)"boost::exception_detail::error_info_injector<std::runtime_error>::error_info_injector(boost::exception_detail::error_info_injector<std::runtime_error> const&)@Base" 0replaceme |
236 | |
237 | === modified file 'debian/libdbus-cpp1.symbols.i386' |
238 | --- debian/libdbus-cpp1.symbols.i386 2014-01-05 18:58:19 +0000 |
239 | +++ debian/libdbus-cpp1.symbols.i386 2014-01-13 07:51:24 +0000 |
240 | @@ -378,6 +378,50 @@ |
241 | (c++)"typeinfo for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
242 | (c++)"typeinfo name for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
243 | (c++)"vtable for std::_Sp_counted_ptr<core::dbus::Message::Reader::Private*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
244 | + (c++)"guard variable for core::dbus::DBus::Hello::name()::s@Base" 0replaceme |
245 | + (c++)"core::dbus::Bus::Bus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
246 | + (c++)"core::dbus::Bus::Bus(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
247 | + (c++)"core::dbus::Fixture::default_system_bus_config_file()@Base" 0replaceme |
248 | + (c++)"core::dbus::Fixture::create_connection_to_system_bus()@Base" 0replaceme |
249 | + (c++)"core::dbus::Fixture::default_session_bus_config_file()@Base" 0replaceme |
250 | + (c++)"core::dbus::Fixture::create_connection_to_session_bus()@Base" 0replaceme |
251 | + (c++)"core::dbus::Fixture::Fixture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
252 | + (c++)"core::dbus::Fixture::Fixture(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
253 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
254 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
255 | + (c++)"core::dbus::Fixture::~Fixture()@Base" 0replaceme |
256 | + (c++)"core::dbus::DBus::hello() const@Base" 0replaceme |
257 | + (c++)"std::_Function_base::_Base_manager<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}> const&, std::_Manager_operation)@Base" 0replaceme |
258 | + (c++)"std::_Function_base::_Base_manager<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}> const&, std::_Manager_operation)@Base" 0replaceme |
259 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_destroy()@Base" 0replaceme |
260 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_dispose()@Base" 0replaceme |
261 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::_M_get_deleter(std::type_info const&)@Base" 0replaceme |
262 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
263 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
264 | + (c++)"std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>::~_Sp_counted_ptr()@Base" 0replaceme |
265 | + (c++)"std::_Function_handler<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
266 | + (c++)"std::_Function_handler<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}>::_M_invoke(std::_Any_data const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
267 | + (c++)"std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~pair()@Base" 0replaceme |
268 | + (c++)"std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~pair()@Base" 0replaceme |
269 | + (c++)"std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_insert_<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)@Base" 0replaceme |
270 | + (c++)"std::pair<std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, bool> std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_insert_unique<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&&)@Base" 0replaceme |
271 | + (c++)"std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 0replaceme |
272 | + (c++)"std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_erase(std::_Rb_tree_node<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*)@Base" 0replaceme |
273 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
274 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
275 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
276 | + (c++)"std::function<void (std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::function<core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}, void>(core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1})@Base" 0replaceme |
277 | + (c++)"typeinfo for core::dbus::Fixture@Base" 0replaceme |
278 | + (c++)"typeinfo for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
279 | + (c++)"typeinfo for core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
280 | + (c++)"typeinfo for core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
281 | + (c++)"typeinfo name for core::dbus::Fixture@Base" 0replaceme |
282 | + (c++)"typeinfo name for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
283 | + (c++)"typeinfo name for core::dbus::Fixture::Private::System::System(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
284 | + (c++)"typeinfo name for core::dbus::Fixture::Private::Session::Session(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#1}@Base" 0replaceme |
285 | + (c++)"vtable for core::dbus::Fixture@Base" 0replaceme |
286 | + (c++)"vtable for std::_Sp_counted_ptr<core::dbus::Bus*, (__gnu_cxx::_Lock_policy)2>@Base" 0replaceme |
287 | + (c++)"core::dbus::DBus::Hello::name()::s@Base" 0replaceme |
288 | (c++|optional)"boost::exception_detail::error_info_injector<boost::system::system_error>::error_info_injector(boost::exception_detail::error_info_injector<boost::system::system_error> const&)@Base" 0replaceme |
289 | (c++|optional)"boost::exception_detail::error_info_injector<boost::system::system_error>::error_info_injector(boost::exception_detail::error_info_injector<boost::system::system_error> const&)@Base" 0replaceme |
290 | (c++|optional)"boost::exception_detail::error_info_injector<std::runtime_error>::error_info_injector(boost::exception_detail::error_info_injector<std::runtime_error> const&)@Base" 0replaceme |
291 | |
292 | === modified file 'include/core/dbus/bus.h' |
293 | --- include/core/dbus/bus.h 2013-11-27 18:57:42 +0000 |
294 | +++ include/core/dbus/bus.h 2014-01-13 07:51:24 +0000 |
295 | @@ -172,6 +172,12 @@ |
296 | typedef std::function<MessageHandlerResult(const Message::Ptr& msg)> MessageHandler; |
297 | |
298 | /** |
299 | + * @brief Constructs an instance of Bus and connected to the bus specified by address. |
300 | + * @param address The address of the bus to connect to. |
301 | + */ |
302 | + explicit Bus(const std::string& address); |
303 | + |
304 | + /** |
305 | * @brief Creates a connection to a well-known bus. The implementation takes care of setting up thread-safety flags for DBus. |
306 | * @param bus The well-known bus the instance should connect to. |
307 | */ |
308 | |
309 | === modified file 'include/core/dbus/dbus.h' |
310 | --- include/core/dbus/dbus.h 2013-11-28 08:48:17 +0000 |
311 | +++ include/core/dbus/dbus.h 2014-01-13 07:51:24 +0000 |
312 | @@ -18,19 +18,23 @@ |
313 | #ifndef CORE_DBUS_DBUS_H_ |
314 | #define CORE_DBUS_DBUS_H_ |
315 | |
316 | -#include <core/dbus/bus.h> |
317 | -#include <core/dbus/codec.h> |
318 | -#include <core/dbus/object.h> |
319 | -#include <core/dbus/service.h> |
320 | #include <core/dbus/visibility.h> |
321 | -#include <core/dbus/types/object_path.h> |
322 | |
323 | -#include <sstream> |
324 | +#include <memory> |
325 | +#include <string> |
326 | +#include <vector> |
327 | |
328 | namespace core |
329 | { |
330 | namespace dbus |
331 | { |
332 | +class Bus; |
333 | +class Object; |
334 | +class Service; |
335 | +namespace types |
336 | +{ |
337 | +class ObjectPath; |
338 | +} |
339 | /** |
340 | * @brief The DBus class provides access to dbus daemon on the bus. |
341 | */ |
342 | @@ -46,7 +50,7 @@ |
343 | /** @brief Query the interface name of the DBus daemon. */ |
344 | static const std::string& interface(); |
345 | |
346 | - DBus(const Bus::Ptr& bus); |
347 | + DBus(const std::shared_ptr<Bus>& bus); |
348 | DBus(const DBus&) = delete; |
349 | |
350 | DBus& operator=(const DBus&) = delete; |
351 | @@ -57,29 +61,36 @@ |
352 | * @param [in] name Name of the remote peer. |
353 | * @return The process id of the remote peer. |
354 | */ |
355 | - ORG_FREEDESKTOP_DBUS_DLL_PUBLIC uint32_t get_connection_unix_process_id(const std::string& name) const; |
356 | + uint32_t get_connection_unix_process_id(const std::string& name) const; |
357 | |
358 | /** |
359 | * @brief Queries the user ID given a name on the bus. |
360 | * @param [in] name Name of the remote peer. |
361 | * @return The user id that the remote peer runs under. |
362 | */ |
363 | - ORG_FREEDESKTOP_DBUS_DLL_PUBLIC uint32_t get_connection_unix_user(const std::string& name) const; |
364 | + uint32_t get_connection_unix_user(const std::string& name) const; |
365 | + |
366 | + /** |
367 | + * @brief Say hello to the message bus daemon. |
368 | + * @return The unique name assigned to this connection. |
369 | + */ |
370 | + std::string hello() const; |
371 | |
372 | /** |
373 | * @brief List all known names on the bus. |
374 | * @return A vector of all known participants on the bus. |
375 | */ |
376 | - ORG_FREEDESKTOP_DBUS_DLL_PUBLIC std::vector<std::string> list_names() const; |
377 | + std::vector<std::string> list_names() const; |
378 | |
379 | private: |
380 | struct ListNames; |
381 | + struct Hello; |
382 | struct GetConnectionUnixProcessID; |
383 | struct GetConnectionUnixUser; |
384 | |
385 | - Bus::Ptr bus; |
386 | - Service::Ptr service; |
387 | - Object::Ptr object; |
388 | + std::shared_ptr<Bus> bus; |
389 | + std::shared_ptr<Service> service; |
390 | + std::shared_ptr<Object> object; |
391 | }; |
392 | } |
393 | } |
394 | |
395 | === added file 'include/core/dbus/fixture.h' |
396 | --- include/core/dbus/fixture.h 1970-01-01 00:00:00 +0000 |
397 | +++ include/core/dbus/fixture.h 2014-01-13 07:51:24 +0000 |
398 | @@ -0,0 +1,153 @@ |
399 | +/* |
400 | + * Copyright © 2012 Canonical Ltd. |
401 | + * |
402 | + * This program is free software: you can redistribute it and/or modify it |
403 | + * under the terms of the GNU Lesser General Public License version 3, |
404 | + * as published by the Free Software Foundation. |
405 | + * |
406 | + * This program is distributed in the hope that it will be useful, |
407 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
408 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
409 | + * GNU Lesser General Public License for more details. |
410 | + * |
411 | + * You should have received a copy of the GNU Lesser General Public License |
412 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
413 | + * |
414 | + * Authored by: Thomas Voß <thomas.voss@canonical.com> |
415 | + */ |
416 | +#ifndef CORE_DBUS_FIXTURE_H_ |
417 | +#define CORE_DBUS_FIXTURE_H_ |
418 | + |
419 | +#include <core/dbus/visibility.h> |
420 | + |
421 | +#include <memory> |
422 | +#include <string> |
423 | + |
424 | +namespace core |
425 | +{ |
426 | +namespace dbus |
427 | +{ |
428 | +class Bus; |
429 | + |
430 | +/** |
431 | + * @brief The Fixture class provides private session and system bus instances for testing purposes. |
432 | + */ |
433 | +class ORG_FREEDESKTOP_DBUS_DLL_PUBLIC Fixture |
434 | +{ |
435 | +public: |
436 | + |
437 | + /** |
438 | + * @brief default_session_bus_config_file provides the filename of the default session |
439 | + * bus configuration file. |
440 | + */ |
441 | + static const std::string& default_session_bus_config_file(); |
442 | + |
443 | + /** |
444 | + * @brief default_system_bus_config_file provides the filename of the default system |
445 | + * bus configuration file. |
446 | + */ |
447 | + static const std::string& default_system_bus_config_file(); |
448 | + |
449 | + /** |
450 | + * @brief Constructs a fixture instance with the two given configuration files. |
451 | + * |
452 | + * Any test running within the scope of this fixture will access the private |
453 | + * session- and system-bus instances setup by this class. |
454 | + * |
455 | + * @param session_bus_config_file Path to the session-bus configuration file. |
456 | + * @param system_bus_config_file Path to the system-bus configuration file. |
457 | + */ |
458 | + Fixture(const std::string& session_bus_config_file, |
459 | + const std::string& system_bus_config_file); |
460 | + |
461 | + virtual ~Fixture(); |
462 | + |
463 | + /** |
464 | + * @brief create_connection_to_session_bus creates a new connection to the testing session bus instance. |
465 | + */ |
466 | + std::shared_ptr<Bus> create_connection_to_session_bus(); |
467 | + |
468 | + /** |
469 | + * @brief create_connection_to_system_bus creates a new connection to the testing system bus instance. |
470 | + */ |
471 | + std::shared_ptr<Bus> create_connection_to_system_bus(); |
472 | + |
473 | +private: |
474 | + struct Private; |
475 | + std::unique_ptr<Private> d; |
476 | +}; |
477 | +} |
478 | +} |
479 | + |
480 | +#if defined(CORE_DBUS_ENABLE_GOOGLE_TEST_FIXTURE) |
481 | +#include <gtest/gtest.h> |
482 | +namespace core |
483 | +{ |
484 | +namespace dbus |
485 | +{ |
486 | +namespace testing |
487 | +{ |
488 | +/** |
489 | + * @brief The Fixture class provides a Google Test fixture for running |
490 | + * tests in a private dbus environment. |
491 | + */ |
492 | +class Fixture : public ::testing::Test |
493 | +{ |
494 | +public: |
495 | + |
496 | + /** |
497 | + * @brief default_session_bus_config_file provides the filename of the default session |
498 | + * bus configuration file. |
499 | + */ |
500 | + inline static std::string& default_session_bus_config_file() |
501 | + { |
502 | + static std::string s{core::dbus::Fixture::default_session_bus_config_file()}; |
503 | + return s; |
504 | + } |
505 | + |
506 | + /** |
507 | + * @brief default_system_bus_config_file provides the filename of the default system |
508 | + * bus configuration file. |
509 | + */ |
510 | + inline static std::string& default_system_bus_config_file() |
511 | + { |
512 | + static std::string s{core::dbus::Fixture::default_system_bus_config_file()}; |
513 | + return s; |
514 | + } |
515 | + |
516 | + /** |
517 | + * @brief Constructs an instance and sets up connections to the private |
518 | + * session and system bus. |
519 | + * |
520 | + * @throw std::runtime_error in case of issues. |
521 | + */ |
522 | + inline Fixture() : |
523 | + fixture(default_session_bus_config_file(), |
524 | + default_system_bus_config_file()) |
525 | + { |
526 | + } |
527 | + |
528 | + /** |
529 | + * @brief session_bus provides access to the private session bus. |
530 | + */ |
531 | + inline std::shared_ptr<Bus> session_bus() |
532 | + { |
533 | + return fixture.create_connection_to_session_bus(); |
534 | + } |
535 | + |
536 | + /** |
537 | + * @brief system_bus provides access to the private system bus. |
538 | + */ |
539 | + inline std::shared_ptr<Bus> system_bus() |
540 | + { |
541 | + return fixture.create_connection_to_system_bus(); |
542 | + } |
543 | + |
544 | +private: |
545 | + core::dbus::Fixture fixture; |
546 | +}; |
547 | +} |
548 | +} |
549 | +} |
550 | +#endif // CORE_DBUS_ENABLE_GOOGLE_TEST_FIXTURE |
551 | +#endif // CORE_DBUS_FIXTURE_H_ |
552 | |
553 | === modified file 'include/core/dbus/impl/property.h' |
554 | --- include/core/dbus/impl/property.h 2014-01-05 18:58:19 +0000 |
555 | +++ include/core/dbus/impl/property.h 2014-01-13 07:51:24 +0000 |
556 | @@ -65,47 +65,46 @@ |
557 | |
558 | template<typename PropertyType> |
559 | std::shared_ptr<Property<PropertyType>> |
560 | - Property<PropertyType>::make_property( |
561 | - const std::shared_ptr<Object>& parent) |
562 | +Property<PropertyType>::make_property(const std::shared_ptr<Object>& parent) |
563 | { |
564 | - return std::shared_ptr<Property<PropertyType>>( |
565 | - new Property<PropertyType>( |
566 | - parent, |
567 | - traits::Service<typename PropertyType::Interface>::interface_name(), |
568 | - PropertyType::name(), |
569 | - PropertyType::writable)); |
570 | + return std::shared_ptr<Property<PropertyType>>( |
571 | + new Property<PropertyType>( |
572 | + parent, |
573 | + traits::Service<typename PropertyType::Interface>::interface_name(), |
574 | + PropertyType::name(), |
575 | + PropertyType::writable)); |
576 | } |
577 | |
578 | - template<typename PropertyType> |
579 | - Property<PropertyType>::Property( |
580 | - const std::shared_ptr<Object>& parent, |
581 | - const std::string& interface, |
582 | - const std::string& name, |
583 | - bool writable) |
584 | - : parent(parent), |
585 | -interface(interface), |
586 | -name(name), |
587 | -writable(writable) |
588 | +template<typename PropertyType> |
589 | +Property<PropertyType>::Property( |
590 | + const std::shared_ptr<Object>& parent, |
591 | + const std::string& interface, |
592 | + const std::string& name, |
593 | + bool writable) |
594 | + : parent(parent), |
595 | + interface(interface), |
596 | + name(name), |
597 | + writable(writable) |
598 | { |
599 | if (!parent->is_stub()) |
600 | { |
601 | parent->get_property_router.install_route( |
602 | - Object::PropertyKey |
603 | - { |
604 | - traits::Service<typename PropertyType::Interface>::interface_name(), |
605 | - PropertyType::name() |
606 | - }, |
607 | - std::bind(&Property::handle_get, this, std::placeholders::_1)); |
608 | + Object::PropertyKey |
609 | + { |
610 | + traits::Service<typename PropertyType::Interface>::interface_name(), |
611 | + PropertyType::name() |
612 | + }, |
613 | + std::bind(&Property::handle_get, this, std::placeholders::_1)); |
614 | parent->set_property_router.install_route( |
615 | - Object::PropertyKey |
616 | - { |
617 | - traits::Service<typename PropertyType::Interface>::interface_name(), |
618 | - PropertyType::name() |
619 | - }, |
620 | - std::bind( |
621 | - &Property::handle_set, |
622 | - this, |
623 | - std::placeholders::_1)); |
624 | + Object::PropertyKey |
625 | + { |
626 | + traits::Service<typename PropertyType::Interface>::interface_name(), |
627 | + PropertyType::name() |
628 | + }, |
629 | + std::bind( |
630 | + &Property::handle_set, |
631 | + this, |
632 | + std::placeholders::_1)); |
633 | } |
634 | } |
635 | |
636 | |
637 | === modified file 'src/core/dbus/CMakeLists.txt' |
638 | --- src/core/dbus/CMakeLists.txt 2013-11-27 18:57:42 +0000 |
639 | +++ src/core/dbus/CMakeLists.txt 2014-01-13 07:51:24 +0000 |
640 | @@ -23,11 +23,18 @@ |
641 | ${CMAKE_SOURCE_DIR}/include |
642 | ${DBUS_INCLUDE_DIRS} |
643 | ${Boost_INCLUDE_DIRS} |
644 | - ) |
645 | + ${PROCESS_CPP_INCLUDE_DIR} |
646 | +) |
647 | + |
648 | +configure_file( |
649 | + fixture.cpp.in ${CMAKE_CURRENT_BINARY_DIR}/fixture.cpp @ONLY |
650 | +) |
651 | |
652 | add_library( |
653 | dbus-cpp SHARED |
654 | |
655 | + ${CMAKE_CURRENT_BINARY_DIR}/fixture.cpp |
656 | + |
657 | bus.cpp |
658 | dbus.cpp |
659 | error.cpp |
660 | @@ -46,6 +53,7 @@ |
661 | ${Boost_LIBRARIES} |
662 | ${DBUS_LIBRARIES} |
663 | ${LIBXML2_LIBRARIES} |
664 | + ${PROCESS_CPP_LIBRARIES} |
665 | ) |
666 | |
667 | set_target_properties( |
668 | |
669 | === modified file 'src/core/dbus/bus.cpp' |
670 | --- src/core/dbus/bus.cpp 2013-11-27 18:57:42 +0000 |
671 | +++ src/core/dbus/bus.cpp 2014-01-13 07:51:24 +0000 |
672 | @@ -17,7 +17,7 @@ |
673 | */ |
674 | |
675 | #include <core/dbus/bus.h> |
676 | - |
677 | +#include <core/dbus/dbus.h> |
678 | #include <core/dbus/match_rule.h> |
679 | #include <core/dbus/object.h> |
680 | |
681 | @@ -68,6 +68,12 @@ |
682 | core::dbus::Message::from_raw_message( |
683 | message))); |
684 | } |
685 | + |
686 | +void init_libdbus_thread_support_and_install_shutdown_handler() |
687 | +{ |
688 | + static std::once_flag once; |
689 | + std::call_once(once, []() { dbus_threads_init_default(); std::atexit(dbus_shutdown); }); |
690 | +} |
691 | } |
692 | |
693 | namespace core |
694 | @@ -101,6 +107,7 @@ |
695 | message_type_router([](const Message::Ptr& msg) { return msg->type(); }), |
696 | signal_router([](const Message::Ptr& msg){ return msg->path(); }) |
697 | { |
698 | + init_libdbus_thread_support_and_install_shutdown_handler(); |
699 | } |
700 | |
701 | std::shared_ptr<DBusConnection> connection; |
702 | @@ -116,12 +123,46 @@ |
703 | return Bus::MessageHandlerResult::not_yet_handled; |
704 | } |
705 | |
706 | +Bus::Bus(const std::string& address) |
707 | + : d(new Private()) |
708 | +{ |
709 | + Error se; |
710 | + d->connection.reset( |
711 | + dbus_connection_open_private(address.c_str(), std::addressof(se.raw())), |
712 | + [](DBusConnection*){} |
713 | + ); |
714 | + |
715 | + if (!d->connection) |
716 | + throw std::runtime_error(se.print()); |
717 | + |
718 | + d->message_type_router.install_route( |
719 | + Message::Type::signal, |
720 | + std::bind( |
721 | + &Bus::SignalRouter::operator(), |
722 | + std::ref(d->signal_router), |
723 | + std::placeholders::_1)); |
724 | + |
725 | + dbus_connection_add_filter( |
726 | + d->connection.get(), |
727 | + static_handle_message, |
728 | + this, |
729 | + nullptr); |
730 | + |
731 | + auto message = dbus::Message::make_method_call( |
732 | + DBus::name(), |
733 | + DBus::path(), |
734 | + DBus::interface(), |
735 | + "Hello"); |
736 | + |
737 | + auto reply = send_with_reply_and_block_for_at_most(message, std::chrono::seconds(1)); |
738 | + |
739 | + if (reply->type() == Message::Type::error) |
740 | + throw std::runtime_error(reply->error().print()); |
741 | +} |
742 | + |
743 | Bus::Bus(WellKnownBus bus) |
744 | : d(new Private()) |
745 | { |
746 | - static std::once_flag once; |
747 | - std::call_once(once, []() { dbus_threads_init_default(); std::atexit(dbus_shutdown); }); |
748 | - |
749 | Error se; |
750 | d->connection.reset( |
751 | dbus_bus_get_private(static_cast<DBusBusType>(bus), std::addressof(se.raw())), |
752 | |
753 | === modified file 'src/core/dbus/dbus.cpp' |
754 | --- src/core/dbus/dbus.cpp 2013-11-27 18:57:42 +0000 |
755 | +++ src/core/dbus/dbus.cpp 2014-01-13 07:51:24 +0000 |
756 | @@ -18,6 +18,9 @@ |
757 | |
758 | #include <core/dbus/dbus.h> |
759 | |
760 | +#include <core/dbus/object.h> |
761 | +#include <core/dbus/service.h> |
762 | + |
763 | #include <core/dbus/types/stl/string.h> |
764 | #include <core/dbus/types/stl/vector.h> |
765 | |
766 | @@ -44,6 +47,25 @@ |
767 | } |
768 | }; |
769 | |
770 | +struct DBus::Hello |
771 | +{ |
772 | + typedef DBus Interface; |
773 | + |
774 | + inline static const std::string& name() |
775 | + { |
776 | + static const std::string s |
777 | + { |
778 | + "Hello" |
779 | + }; |
780 | + return s; |
781 | + } |
782 | + |
783 | + inline static const std::chrono::milliseconds default_timeout() |
784 | + { |
785 | + return std::chrono::seconds{1}; |
786 | + } |
787 | +}; |
788 | + |
789 | struct DBus::GetConnectionUnixProcessID |
790 | { |
791 | typedef DBus Interface; |
792 | @@ -121,5 +143,10 @@ |
793 | { |
794 | return object->invoke_method_synchronously<GetConnectionUnixUser, uint32_t>(name).value(); |
795 | } |
796 | + |
797 | +std::string DBus::hello() const |
798 | +{ |
799 | + return object->invoke_method_synchronously<Hello, std::string>().value(); |
800 | +} |
801 | } |
802 | } |
803 | |
804 | === added file 'src/core/dbus/fixture.cpp.in' |
805 | --- src/core/dbus/fixture.cpp.in 1970-01-01 00:00:00 +0000 |
806 | +++ src/core/dbus/fixture.cpp.in 2014-01-13 07:51:24 +0000 |
807 | @@ -0,0 +1,132 @@ |
808 | +/* |
809 | + * Copyright © 2012 Canonical Ltd. |
810 | + * |
811 | + * This program is free software: you can redistribute it and/or modify it |
812 | + * under the terms of the GNU Lesser General Public License version 3, |
813 | + * as published by the Free Software Foundation. |
814 | + * |
815 | + * This program is distributed in the hope that it will be useful, |
816 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
817 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
818 | + * GNU Lesser General Public License for more details. |
819 | + * |
820 | + * You should have received a copy of the GNU Lesser General Public License |
821 | + * along with this program. If not, see <http://www.gnu.org/licenses/>. |
822 | + * |
823 | + * Authored by: Thomas Voß <thomas.voss@canonical.com> |
824 | + */ |
825 | + |
826 | +#include <core/dbus/fixture.h> |
827 | + |
828 | +#include <core/dbus/bus.h> |
829 | + |
830 | +#include <core/posix/exec.h> |
831 | +#include <core/posix/this_process.h> |
832 | + |
833 | +struct core::dbus::Fixture::Private |
834 | +{ |
835 | + struct Session |
836 | + { |
837 | + Session(const std::string& config_file) |
838 | + { |
839 | + std::vector<std::string> argv |
840 | + { |
841 | + "--config-file", |
842 | + config_file, |
843 | + "--print-address" |
844 | + }; |
845 | + |
846 | + std::map<std::string, std::string> env; |
847 | + core::posix::this_process::env::for_each([&env](const std::string& key, const std::string& value) |
848 | + { |
849 | + env.insert(std::make_pair(key, value)); |
850 | + }); |
851 | + |
852 | + daemon = core::posix::exec( |
853 | + "/bin/dbus-daemon", |
854 | + argv, |
855 | + env, |
856 | + core::posix::StandardStream::stdout); |
857 | + |
858 | + daemon.cout() >> address; |
859 | + |
860 | + if (address.empty()) |
861 | + throw std::runtime_error("Session: Could not read address of bus instance."); |
862 | + |
863 | + core::posix::this_process::env::set_or_throw("DBUS_SESSION_BUS_ADDRESS", address); |
864 | + core::posix::this_process::env::set_or_throw("DBUS_STARTER_ADDRESS", address); |
865 | + core::posix::this_process::env::set_or_throw("DBUS_STARTER_BUS_TYPE", "session"); |
866 | + } |
867 | + |
868 | + core::posix::ChildProcess daemon = core::posix::ChildProcess::invalid(); |
869 | + std::string address; |
870 | + } session; |
871 | + |
872 | + struct System |
873 | + { |
874 | + System(const std::string& config_file) |
875 | + { |
876 | + std::vector<std::string> argv |
877 | + { |
878 | + "--config-file", |
879 | + config_file, |
880 | + "--print-address" |
881 | + }; |
882 | + |
883 | + std::map<std::string, std::string> env; |
884 | + core::posix::this_process::env::for_each([&env](const std::string& key, const std::string& value) |
885 | + { |
886 | + env.insert(std::make_pair(key, value)); |
887 | + }); |
888 | + |
889 | + daemon = core::posix::exec( |
890 | + "/bin/dbus-daemon", |
891 | + argv, |
892 | + env, |
893 | + core::posix::StandardStream::stdout); |
894 | + |
895 | + daemon.cout() >> address; |
896 | + |
897 | + if (address.empty()) |
898 | + throw std::runtime_error("System: Could not read address of bus instance."); |
899 | + |
900 | + core::posix::this_process::env::set_or_throw("DBUS_SYSTEM_BUS_ADDRESS", address); |
901 | + } |
902 | + |
903 | + core::posix::ChildProcess daemon = core::posix::ChildProcess::invalid(); |
904 | + std::string address; |
905 | + } system; |
906 | +}; |
907 | + |
908 | +const std::string& core::dbus::Fixture::default_session_bus_config_file() |
909 | +{ |
910 | + static const std::string s{"@CMAKE_INSTALL_DATADIR@/dbus-cpp/session.conf"}; |
911 | + return s; |
912 | +} |
913 | + |
914 | +const std::string& core::dbus::Fixture::default_system_bus_config_file() |
915 | +{ |
916 | + static const std::string s{"@CMAKE_INSTALL_DATADIR@/dbus-cpp/system.conf"}; |
917 | + return s; |
918 | +} |
919 | + |
920 | +core::dbus::Fixture::Fixture(const std::string& session_bus_configuration_file, |
921 | + const std::string& system_bus_configuration_file) |
922 | + : d(new Private{Private::Session{session_bus_configuration_file}, |
923 | + Private::System{system_bus_configuration_file}}) |
924 | +{ |
925 | +} |
926 | + |
927 | +core::dbus::Fixture::~Fixture() |
928 | +{ |
929 | +} |
930 | + |
931 | +std::shared_ptr<core::dbus::Bus> core::dbus::Fixture::create_connection_to_session_bus() |
932 | +{ |
933 | + return std::shared_ptr<core::dbus::Bus>(new core::dbus::Bus{d->session.address}); |
934 | +} |
935 | + |
936 | +std::shared_ptr<core::dbus::Bus> core::dbus::Fixture::create_connection_to_system_bus() |
937 | +{ |
938 | + return std::shared_ptr<core::dbus::Bus>(new core::dbus::Bus{d->system.address}); |
939 | +} |
940 | |
941 | === modified file 'tests/CMakeLists.txt' |
942 | --- tests/CMakeLists.txt 2013-10-27 18:15:45 +0000 |
943 | +++ tests/CMakeLists.txt 2014-01-13 07:51:24 +0000 |
944 | @@ -21,36 +21,24 @@ |
945 | include_directories(${GMOCK_INCLUDE_DIR} ${GTEST_INCLUDE_DIR}) |
946 | set (CMAKE_CXX_FLAGS ${OLD_CMAKE_CXX_FLAGS}) |
947 | |
948 | -# We actually deliberately ignore the result of read and write in our tests |
949 | -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=unused-result") |
950 | - |
951 | -find_package(PkgConfig) |
952 | find_package(Threads) |
953 | |
954 | -pkg_check_modules(DBUS dbus-1) |
955 | +add_definitions(-DCORE_DBUS_ENABLE_GOOGLE_TEST_FIXTURE) |
956 | |
957 | configure_file( |
958 | ${CMAKE_CURRENT_SOURCE_DIR}/test_data.h.in |
959 | ${CMAKE_CURRENT_BINARY_DIR}/test_data.h @ONLY) |
960 | |
961 | -include_directories(${CMAKE_CURRENT_BINARY_DIR}) |
962 | - |
963 | -option( |
964 | - DBUS_CPP_ENABLE_DBUS_TEST_RUNNER |
965 | - "Rely on dbus test runner to start a private session for testing purposes" |
966 | - ON |
967 | - ) |
968 | - |
969 | -if (DBUS_CPP_ENABLE_DBUS_TEST_RUNNER) |
970 | - find_program(DBUS_TEST_RUNNER_EXECUTABLE dbus-test-runner) |
971 | - message(STATUS "Executing test suite under dbus-test-runner") |
972 | -endif (DBUS_CPP_ENABLE_DBUS_TEST_RUNNER) |
973 | +include_directories( |
974 | + ${CMAKE_CURRENT_BINARY_DIR} |
975 | +) |
976 | |
977 | include_directories( |
978 | ${DBUS_INCLUDE_DIRS} |
979 | ${Boost_INCLUDE_DIRS} |
980 | ${GTEST_INCLUDE_DIRS} |
981 | - ) |
982 | + ${PROCESS_CPP_INCLUDE_DIRS} |
983 | +) |
984 | |
985 | add_executable( |
986 | bus_test |
987 | @@ -112,7 +100,8 @@ |
988 | ${Boost_LIBRARIES} |
989 | ${DBUS_LIBRARIES} |
990 | ${GTEST_BOTH_LIBRARIES} |
991 | - ) |
992 | + ${PROCESS_CPP_LIBRARIES} |
993 | +) |
994 | |
995 | target_link_libraries( |
996 | dbus_test |
997 | @@ -224,26 +213,13 @@ |
998 | ${GTEST_BOTH_LIBRARIES} |
999 | ) |
1000 | |
1001 | -if (DBUS_CPP_ENABLE_DBUS_TEST_RUNNER) |
1002 | - add_test(bus_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/bus_test) |
1003 | - add_test(dbus_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/dbus_test) |
1004 | - add_test(executor_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/executor_test) |
1005 | - add_test(codec_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/codec_test) |
1006 | - add_test(compiler_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/compiler_test) |
1007 | - add_test(stl_codec_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/stl_codec_test) |
1008 | - add_test(message_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/message_test) |
1009 | - add_test(match_rule_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/match_rule_test) |
1010 | - add_test(message_router_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/message_router_test) |
1011 | - add_test(service_test ${DBUS_TEST_RUNNER_EXECUTABLE} --task=${CMAKE_CURRENT_BINARY_DIR}/service_test) |
1012 | -else(DBUS_CPP_ENABLE_DBUS_TEST_RUNNER) |
1013 | - add_test(bus_test ${CMAKE_CURRENT_BINARY_DIR}/bus_test) |
1014 | - add_test(dbus_test ${CMAKE_CURRENT_BINARY_DIR}/dbus_test) |
1015 | - add_test(executor_test ${CMAKE_CURRENT_BINARY_DIR}/executor_test) |
1016 | - add_test(codec_test ${CMAKE_CURRENT_BINARY_DIR}/codec_test) |
1017 | - add_test(compiler_test ${CMAKE_CURRENT_BINARY_DIR}/compiler_test) |
1018 | - add_test(stl_codec_test ${CMAKE_CURRENT_BINARY_DIR}/stl_codec_test) |
1019 | - add_test(message_test ${CMAKE_CURRENT_BINARY_DIR}/message_test) |
1020 | - add_test(match_rule_test ${CMAKE_CURRENT_BINARY_DIR}/match_rule_test) |
1021 | - add_test(message_router_test ${CMAKE_CURRENT_BINARY_DIR}/message_router_test) |
1022 | - add_test(service_test ${CMAKE_CURRENT_BINARY_DIR}/service_test) |
1023 | -endif(DBUS_CPP_ENABLE_DBUS_TEST_RUNNER) |
1024 | +add_test(bus_test ${CMAKE_CURRENT_BINARY_DIR}/bus_test) |
1025 | +add_test(dbus_test ${CMAKE_CURRENT_BINARY_DIR}/dbus_test) |
1026 | +add_test(executor_test ${CMAKE_CURRENT_BINARY_DIR}/executor_test) |
1027 | +add_test(codec_test ${CMAKE_CURRENT_BINARY_DIR}/codec_test) |
1028 | +add_test(compiler_test ${CMAKE_CURRENT_BINARY_DIR}/compiler_test) |
1029 | +add_test(stl_codec_test ${CMAKE_CURRENT_BINARY_DIR}/stl_codec_test) |
1030 | +add_test(message_test ${CMAKE_CURRENT_BINARY_DIR}/message_test) |
1031 | +add_test(match_rule_test ${CMAKE_CURRENT_BINARY_DIR}/match_rule_test) |
1032 | +add_test(message_router_test ${CMAKE_CURRENT_BINARY_DIR}/message_router_test) |
1033 | +add_test(service_test ${CMAKE_CURRENT_BINARY_DIR}/service_test) |
1034 | |
1035 | === modified file 'tests/bus_test.cpp' |
1036 | --- tests/bus_test.cpp 2013-11-27 18:57:42 +0000 |
1037 | +++ tests/bus_test.cpp 2014-01-13 07:51:24 +0000 |
1038 | @@ -17,11 +17,21 @@ |
1039 | */ |
1040 | |
1041 | #include <core/dbus/bus.h> |
1042 | +#include <core/dbus/codec.h> |
1043 | #include <core/dbus/dbus.h> |
1044 | +#include <core/dbus/fixture.h> |
1045 | #include <core/dbus/match_rule.h> |
1046 | +#include <core/dbus/message_streaming_operators.h> |
1047 | + |
1048 | +#include <core/dbus/types/stl/string.h> |
1049 | +#include <core/dbus/types/stl/vector.h> |
1050 | |
1051 | #include <core/dbus/asio/executor.h> |
1052 | |
1053 | +#include "test_data.h" |
1054 | + |
1055 | +#include <core/posix/exec.h> |
1056 | + |
1057 | #include <boost/asio.hpp> |
1058 | |
1059 | #include <gtest/gtest.h> |
1060 | @@ -33,22 +43,21 @@ |
1061 | |
1062 | namespace |
1063 | { |
1064 | -core::dbus::Bus::Ptr the_session_bus() |
1065 | -{ |
1066 | - core::dbus::Bus::Ptr session_bus = std::make_shared<core::dbus::Bus>(core::dbus::WellKnownBus::session); |
1067 | - return session_bus; |
1068 | -} |
1069 | -} |
1070 | - |
1071 | -TEST(Bus, ConstructionForSessionBusDoesNotThrow) |
1072 | -{ |
1073 | - std::shared_ptr<core::dbus::Bus> bus; |
1074 | - EXPECT_NO_THROW(bus.reset(new core::dbus::Bus(core::dbus::WellKnownBus::session));); |
1075 | - |
1076 | - EXPECT_TRUE(bus->raw() != nullptr); |
1077 | -} |
1078 | - |
1079 | -TEST(Bus, BlockingMethodInvocationSucceedsForValidMessage) |
1080 | +struct Bus : public core::dbus::testing::Fixture |
1081 | +{ |
1082 | +}; |
1083 | + |
1084 | +auto session_bus_config_file = |
1085 | + core::dbus::testing::Fixture::default_session_bus_config_file() = |
1086 | + core::testing::session_bus_configuration_file(); |
1087 | + |
1088 | +auto system_bus_config_file = |
1089 | + core::dbus::testing::Fixture::default_system_bus_config_file() = |
1090 | + core::testing::system_bus_configuration_file(); |
1091 | + |
1092 | +} |
1093 | + |
1094 | +TEST_F(Bus, BlockingMethodInvocationSucceedsForValidMessage) |
1095 | { |
1096 | static const char* expected_signature = DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_STRING_AS_STRING; |
1097 | auto msg = core::dbus::Message::make_method_call( |
1098 | @@ -57,7 +66,7 @@ |
1099 | dbus::DBus::name(), |
1100 | "ListNames"); |
1101 | |
1102 | - auto bus = the_session_bus(); |
1103 | + auto bus = session_bus(); |
1104 | const std::chrono::milliseconds timeout = std::chrono::seconds(10); |
1105 | std::shared_ptr<core::dbus::Message> reply = nullptr; |
1106 | EXPECT_NO_THROW( |
1107 | @@ -70,7 +79,7 @@ |
1108 | EXPECT_EQ(expected_signature, reply->signature()); |
1109 | } |
1110 | |
1111 | -TEST(Bus, NonBlockingMethodInvocationSucceedsForValidMessage) |
1112 | +TEST_F(Bus, NonBlockingMethodInvocationSucceedsForValidMessage) |
1113 | { |
1114 | auto msg = core::dbus::Message::make_method_call( |
1115 | dbus::DBus::name(), |
1116 | @@ -78,7 +87,7 @@ |
1117 | dbus::DBus::name(), |
1118 | "ListNames"); |
1119 | |
1120 | - auto bus = the_session_bus(); |
1121 | + auto bus = session_bus(); |
1122 | const std::chrono::milliseconds timeout = std::chrono::seconds(10); |
1123 | |
1124 | auto call = bus->send_with_reply_and_timeout(msg, timeout); |
1125 | @@ -88,23 +97,22 @@ |
1126 | EXPECT_TRUE(result.size() > 0); |
1127 | } |
1128 | |
1129 | -TEST(Bus, HasOwnerForNameReturnsTrueForExistingName) |
1130 | +TEST_F(Bus, HasOwnerForNameReturnsTrueForExistingName) |
1131 | { |
1132 | - core::dbus::Bus bus(core::dbus::WellKnownBus::session); |
1133 | - |
1134 | - EXPECT_TRUE(bus.has_owner_for_name(dbus::DBus::name())); |
1135 | + auto bus = session_bus(); |
1136 | + EXPECT_TRUE(bus->has_owner_for_name(dbus::DBus::name())); |
1137 | } |
1138 | |
1139 | -TEST(Bus, HasOwnerForNameReturnsFalseForNonExistingName) |
1140 | +TEST_F(Bus, HasOwnerForNameReturnsFalseForNonExistingName) |
1141 | { |
1142 | - auto bus = the_session_bus(); |
1143 | + auto bus = session_bus(); |
1144 | static const std::string non_existing_name = "com.canonical.does.not.exist"; |
1145 | EXPECT_FALSE(bus->has_owner_for_name(non_existing_name)); |
1146 | } |
1147 | |
1148 | -TEST(Bus, AddingAndRemovingAValidMatchRuleDoesNotThrow) |
1149 | +TEST_F(Bus, AddingAndRemovingAValidMatchRuleDoesNotThrow) |
1150 | { |
1151 | - auto bus = the_session_bus(); |
1152 | + auto bus = session_bus(); |
1153 | |
1154 | static const dbus::MatchRule valid_match_rule = dbus::MatchRule().type(dbus::Message::Type::signal); |
1155 | |
1156 | @@ -137,12 +145,13 @@ |
1157 | name); |
1158 | } |
1159 | } |
1160 | -TEST(Bus, InstallingARouteForSignalsResultsInTheRouteBeingInvoked) |
1161 | + |
1162 | +TEST_F(Bus, InstallingARouteForSignalsResultsInTheRouteBeingInvoked) |
1163 | { |
1164 | const std::string path{"/org/gnome/SettingsDaemon/Power"}; |
1165 | const core::dbus::types::ObjectPath to_route_for(path); |
1166 | bool invoked {false}; |
1167 | - auto bus = the_session_bus(); |
1168 | + auto bus = session_bus(); |
1169 | bus->install_executor(core::dbus::asio::make_executor(bus)); |
1170 | bus->access_signal_router().install_route(to_route_for,[&](const dbus::Message::Ptr&) |
1171 | { |
1172 | @@ -155,4 +164,3 @@ |
1173 | "LaLeLu"); |
1174 | bus->access_signal_router()(signal); |
1175 | } |
1176 | - |
1177 | |
1178 | === modified file 'tests/compiler_test.cpp' |
1179 | --- tests/compiler_test.cpp 2013-11-27 18:57:42 +0000 |
1180 | +++ tests/compiler_test.cpp 2014-01-13 07:51:24 +0000 |
1181 | @@ -262,35 +262,35 @@ |
1182 | const char* argv[] = |
1183 | { |
1184 | "dbus-cppc", |
1185 | - testing::com::canonical::user_metrics_introspection_file() |
1186 | + core::testing::com::canonical::user_metrics_introspection_file() |
1187 | }; |
1188 | |
1189 | EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1190 | |
1191 | - argv[1] = testing::com::canonical::url_dispatcher_introspection_file(); |
1192 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1193 | - |
1194 | - argv[1] = testing::org::freedesktop::modem_manager::modem::cdma_introspection_file(); |
1195 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1196 | - |
1197 | - argv[1] = testing::org::freedesktop::modem_manager::modem::firmware_introspection_file(); |
1198 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1199 | - |
1200 | - argv[1] = testing::org::freedesktop::modem_manager::modem::gsm::card_introspection_file(); |
1201 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1202 | - |
1203 | - argv[1] = testing::org::freedesktop::modem_manager::modem::gsm::contact_introspection_file(); |
1204 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1205 | - |
1206 | - argv[1] = testing::org::freedesktop::modem_manager::modem::gsm::hso_introspection_file(); |
1207 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1208 | - |
1209 | - argv[1] = testing::org::freedesktop::modem_manager::modem::gsm::network_introspection_file(); |
1210 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1211 | - |
1212 | - argv[1] = testing::org::freedesktop::modem_manager::modem::gsm::sms_introspection_file(); |
1213 | - EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1214 | - |
1215 | - argv[1] = testing::org::freedesktop::modem_manager::modem::gsm::ussd_introspection_file(); |
1216 | + argv[1] = core::testing::com::canonical::url_dispatcher_introspection_file(); |
1217 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1218 | + |
1219 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::cdma_introspection_file(); |
1220 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1221 | + |
1222 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::firmware_introspection_file(); |
1223 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1224 | + |
1225 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::gsm::card_introspection_file(); |
1226 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1227 | + |
1228 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::gsm::contact_introspection_file(); |
1229 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1230 | + |
1231 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::gsm::hso_introspection_file(); |
1232 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1233 | + |
1234 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::gsm::network_introspection_file(); |
1235 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1236 | + |
1237 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::gsm::sms_introspection_file(); |
1238 | + EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1239 | + |
1240 | + argv[1] = core::testing::org::freedesktop::modem_manager::modem::gsm::ussd_introspection_file(); |
1241 | EXPECT_EQ(EXIT_SUCCESS, dbus::Compiler::main(2, argv)); |
1242 | } |
1243 | |
1244 | === modified file 'tests/dbus_test.cpp' |
1245 | --- tests/dbus_test.cpp 2013-11-27 18:57:42 +0000 |
1246 | +++ tests/dbus_test.cpp 2014-01-13 07:51:24 +0000 |
1247 | @@ -17,12 +17,16 @@ |
1248 | */ |
1249 | |
1250 | #include <core/dbus/dbus.h> |
1251 | - |
1252 | +#include <core/dbus/fixture.h> |
1253 | +#include <core/dbus/object.h> |
1254 | +#include <core/dbus/service.h> |
1255 | #include <core/dbus/asio/executor.h> |
1256 | |
1257 | +#include "test_data.h" |
1258 | #include "test_service.h" |
1259 | -#include "cross_process_sync.h" |
1260 | -#include "fork_and_run.h" |
1261 | + |
1262 | +#include <core/testing/cross_process_sync.h> |
1263 | +#include <core/testing/fork_and_run.h> |
1264 | |
1265 | #include <gtest/gtest.h> |
1266 | |
1267 | @@ -30,25 +34,31 @@ |
1268 | |
1269 | namespace |
1270 | { |
1271 | -dbus::Bus::Ptr the_session_bus() |
1272 | +struct DBus : public core::dbus::testing::Fixture |
1273 | { |
1274 | - dbus::Bus::Ptr session_bus = std::make_shared<dbus::Bus>(dbus::WellKnownBus::session); |
1275 | - return session_bus; |
1276 | -} |
1277 | -} |
1278 | - |
1279 | -TEST(DBus, QueryingUnixProcessIdReturnsCorrectResult) |
1280 | +}; |
1281 | + |
1282 | +auto session_bus_config_file = |
1283 | + core::dbus::testing::Fixture::default_session_bus_config_file() = |
1284 | + core::testing::session_bus_configuration_file(); |
1285 | + |
1286 | +auto system_bus_config_file = |
1287 | + core::dbus::testing::Fixture::default_system_bus_config_file() = |
1288 | + core::testing::system_bus_configuration_file(); |
1289 | +} |
1290 | + |
1291 | +TEST_F(DBus, QueryingUnixProcessIdReturnsCorrectResult) |
1292 | { |
1293 | const std::string path{"/this/is/just/a/test/service"}; |
1294 | |
1295 | uint32_t pid = getpid(); |
1296 | uint32_t uid = getuid(); |
1297 | |
1298 | - test::CrossProcessSync barrier; |
1299 | + core::testing::CrossProcessSync barrier; |
1300 | |
1301 | - auto child = [path, pid, uid, &barrier]() |
1302 | + auto service = [this, path, pid, uid, &barrier]() |
1303 | { |
1304 | - auto bus = the_session_bus(); |
1305 | + auto bus = session_bus(); |
1306 | bus->install_executor(core::dbus::asio::make_executor(bus)); |
1307 | dbus::DBus daemon{bus}; |
1308 | |
1309 | @@ -69,24 +79,28 @@ |
1310 | }; |
1311 | |
1312 | object->install_method_handler<test::Service::Method>(handler); |
1313 | - barrier.signal_ready(); |
1314 | + barrier.try_signal_ready_for(std::chrono::milliseconds{500}); |
1315 | bus->run(); |
1316 | |
1317 | EXPECT_EQ(pid, sender_pid); |
1318 | EXPECT_EQ(uid, sender_uid); |
1319 | + |
1320 | + return ::testing::Test::HasFailure() ? core::posix::exit::Status::failure : core::posix::exit::Status::success; |
1321 | }; |
1322 | |
1323 | - auto parent = [path, &barrier]() |
1324 | + auto client = [this, path, &barrier]() |
1325 | { |
1326 | - auto bus = the_session_bus(); |
1327 | + auto bus = session_bus(); |
1328 | |
1329 | auto service = dbus::Service::use_service<test::Service>(bus); |
1330 | auto object = service->object_for_path(dbus::types::ObjectPath{path}); |
1331 | |
1332 | - barrier.wait_for_signal_ready(); |
1333 | - |
1334 | - object->invoke_method_synchronously<test::Service::Method, void>(); |
1335 | + barrier.wait_for_signal_ready_for(std::chrono::milliseconds{500}); |
1336 | + |
1337 | + object->invoke_method_synchronously<test::Service::Method, void>(); |
1338 | + |
1339 | + return ::testing::Test::HasFailure() ? core::posix::exit::Status::failure : core::posix::exit::Status::success; |
1340 | }; |
1341 | |
1342 | - ASSERT_NO_FATAL_FAILURE(test::fork_and_run(child, parent)); |
1343 | + ASSERT_NO_FATAL_FAILURE(core::testing::fork_and_run(service, client)); |
1344 | } |
1345 | |
1346 | === modified file 'tests/executor_test.cpp' |
1347 | --- tests/executor_test.cpp 2013-11-27 18:57:42 +0000 |
1348 | +++ tests/executor_test.cpp 2014-01-13 07:51:24 +0000 |
1349 | @@ -19,44 +19,54 @@ |
1350 | #include <core/dbus/asio/executor.h> |
1351 | |
1352 | #include <core/dbus/dbus.h> |
1353 | +#include <core/dbus/fixture.h> |
1354 | +#include <core/dbus/object.h> |
1355 | #include <core/dbus/service.h> |
1356 | |
1357 | -#include "cross_process_sync.h" |
1358 | -#include "fork_and_run.h" |
1359 | +#include "test_data.h" |
1360 | #include "test_service.h" |
1361 | |
1362 | +#include <core/testing/cross_process_sync.h> |
1363 | +#include <core/testing/fork_and_run.h> |
1364 | + |
1365 | #include <gtest/gtest.h> |
1366 | |
1367 | namespace dbus = core::dbus; |
1368 | |
1369 | namespace |
1370 | { |
1371 | -dbus::Bus::Ptr the_session_bus() |
1372 | +struct Executor : public core::dbus::testing::Fixture |
1373 | { |
1374 | - dbus::Bus::Ptr session_bus = std::make_shared<dbus::Bus>(dbus::WellKnownBus::session); |
1375 | - return session_bus; |
1376 | -} |
1377 | -} |
1378 | - |
1379 | -TEST(Executor, ThrowsOnConstructionFromNullBus) |
1380 | +}; |
1381 | + |
1382 | +auto session_bus_config_file = |
1383 | + core::dbus::testing::Fixture::default_session_bus_config_file() = |
1384 | + core::testing::session_bus_configuration_file(); |
1385 | + |
1386 | +auto system_bus_config_file = |
1387 | + core::dbus::testing::Fixture::default_system_bus_config_file() = |
1388 | + core::testing::system_bus_configuration_file(); |
1389 | +} |
1390 | + |
1391 | +TEST_F(Executor, ThrowsOnConstructionFromNullBus) |
1392 | { |
1393 | EXPECT_ANY_THROW(core::dbus::asio::make_executor(core::dbus::Bus::Ptr{})); |
1394 | } |
1395 | |
1396 | -TEST(Executor, DoesNotThrowForExistingBus) |
1397 | +TEST_F(Executor, DoesNotThrowForExistingBus) |
1398 | { |
1399 | - core::dbus::Bus::Ptr bus{new core::dbus::Bus{core::dbus::WellKnownBus::session}}; |
1400 | + auto bus = session_bus(); |
1401 | EXPECT_NO_THROW(bus->install_executor(core::dbus::asio::make_executor(bus))); |
1402 | } |
1403 | |
1404 | -TEST(Executor, ABusRunByAnExecutorReceivesSignals) |
1405 | +TEST_F(Executor, ABusRunByAnExecutorReceivesSignals) |
1406 | { |
1407 | - test::CrossProcessSync cross_process_sync; |
1408 | + core::testing::CrossProcessSync cross_process_sync; |
1409 | |
1410 | const int64_t expected_value = 42; |
1411 | - auto child = [expected_value, &cross_process_sync]() |
1412 | + auto service = [this, expected_value, &cross_process_sync]() |
1413 | { |
1414 | - auto bus = the_session_bus(); |
1415 | + auto bus = session_bus(); |
1416 | bus->install_executor(dbus::asio::make_executor(bus)); |
1417 | auto service = dbus::Service::add_service<test::Service>(bus); |
1418 | auto skeleton = service->add_object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1419 | @@ -68,16 +78,19 @@ |
1420 | bus->send(reply); |
1421 | skeleton->emit_signal<test::Service::Signals::Dummy, int64_t>(expected_value); |
1422 | }); |
1423 | - cross_process_sync.signal_ready(); |
1424 | + cross_process_sync.try_signal_ready_for(std::chrono::milliseconds{500}); |
1425 | bus->run(); |
1426 | + |
1427 | + return ::testing::Test::HasFailure() ? core::posix::exit::Status::failure : core::posix::exit::Status::success; |
1428 | }; |
1429 | - auto parent = [expected_value, cross_process_sync]() |
1430 | + |
1431 | + auto client = [this, expected_value, &cross_process_sync]() -> core::posix::exit::Status |
1432 | { |
1433 | - auto bus = the_session_bus(); |
1434 | + auto bus = session_bus(); |
1435 | bus->install_executor(dbus::asio::make_executor(bus)); |
1436 | std::thread t{[bus](){bus->run();}}; |
1437 | |
1438 | - cross_process_sync.wait_for_signal_ready(); |
1439 | + EXPECT_EQ(1, cross_process_sync.wait_for_signal_ready_for(std::chrono::milliseconds{500})); |
1440 | |
1441 | auto stub_service = dbus::Service::use_service(bus, dbus::traits::Service<test::Service>::interface_name()); |
1442 | auto stub = stub_service->object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1443 | @@ -93,12 +106,14 @@ |
1444 | if (t.joinable()) |
1445 | t.join(); |
1446 | |
1447 | - ASSERT_FALSE(result.is_error()); |
1448 | - ASSERT_EQ(expected_value, result.value()); |
1449 | + EXPECT_FALSE(result.is_error()); |
1450 | + EXPECT_EQ(expected_value, result.value()); |
1451 | EXPECT_EQ(expected_value, received_signal_value); |
1452 | + |
1453 | + return ::testing::Test::HasFailure() ? core::posix::exit::Status::failure : core::posix::exit::Status::success; |
1454 | }; |
1455 | |
1456 | - EXPECT_NO_FATAL_FAILURE(test::fork_and_run(child, parent)); |
1457 | + EXPECT_NO_FATAL_FAILURE(core::testing::fork_and_run(service, client)); |
1458 | } |
1459 | |
1460 | /*TEST(Bus, TimeoutThrowsForNullDBusWatch) |
1461 | |
1462 | === modified file 'tests/message_test.cpp' |
1463 | --- tests/message_test.cpp 2013-11-27 18:57:42 +0000 |
1464 | +++ tests/message_test.cpp 2014-01-13 07:51:24 +0000 |
1465 | @@ -16,6 +16,7 @@ |
1466 | * Authored by: Thomas Voß <thomas.voss@canonical.com> |
1467 | */ |
1468 | |
1469 | +#include <core/dbus/dbus.h> |
1470 | #include <core/dbus/message.h> |
1471 | |
1472 | #include <gtest/gtest.h> |
1473 | @@ -27,9 +28,9 @@ |
1474 | |
1475 | TEST(Message, BuildingAMethodCallMessageSucceedsForValidArguments) |
1476 | { |
1477 | - const std::string destination = DBUS_SERVICE_DBUS; |
1478 | - const std::string path = DBUS_PATH_DBUS; |
1479 | - const std::string interface = DBUS_SERVICE_DBUS; |
1480 | + const std::string destination = core::dbus::DBus::name(); |
1481 | + const std::string path = core::dbus::DBus::path().as_string(); |
1482 | + const std::string interface = core::dbus::DBus::name(); |
1483 | const std::string member = "ListNames"; |
1484 | |
1485 | std::shared_ptr<core::dbus::Message> msg; |
1486 | @@ -39,9 +40,9 @@ |
1487 | |
1488 | TEST(Message, BuildingAMethodCallMessageThrowsForInvalidArguments) |
1489 | { |
1490 | - const std::string destination = DBUS_SERVICE_DBUS; |
1491 | + const std::string destination = core::dbus::DBus::name(); |
1492 | const std::string path = "an:invalid:path"; |
1493 | - const std::string interface = DBUS_SERVICE_DBUS; |
1494 | + const std::string interface = core::dbus::DBus::name(); |
1495 | const std::string member = "ListNames"; |
1496 | |
1497 | std::shared_ptr<core::dbus::Message> msg; |
1498 | @@ -51,9 +52,9 @@ |
1499 | |
1500 | TEST(Message, AccessingAReaderOnAnEmptyMessageThrows) |
1501 | { |
1502 | - const std::string destination = DBUS_SERVICE_DBUS; |
1503 | - const std::string path = DBUS_PATH_DBUS; |
1504 | - const std::string interface = DBUS_SERVICE_DBUS; |
1505 | + const std::string destination = core::dbus::DBus::name(); |
1506 | + const std::string path = core::dbus::DBus::path().as_string(); |
1507 | + const std::string interface = core::dbus::DBus::name(); |
1508 | const std::string member = "ListNames"; |
1509 | |
1510 | auto msg = core::dbus::Message::make_method_call(destination, path, interface, member); |
1511 | @@ -63,9 +64,9 @@ |
1512 | |
1513 | TEST(Message, AccessingAWriterOnAnyMessageSucceeds) |
1514 | { |
1515 | - const std::string destination = DBUS_SERVICE_DBUS; |
1516 | - const std::string path = DBUS_PATH_DBUS; |
1517 | - const std::string interface = DBUS_SERVICE_DBUS; |
1518 | + const std::string destination = core::dbus::DBus::name(); |
1519 | + const std::string path = core::dbus::DBus::path().as_string(); |
1520 | + const std::string interface = core::dbus::DBus::name(); |
1521 | const std::string member = "ListNames"; |
1522 | |
1523 | auto msg = core::dbus::Message::make_method_call( |
1524 | @@ -86,9 +87,9 @@ |
1525 | |
1526 | TEST(Message, WriteAndSuccessiveReadAreIdempotent) |
1527 | { |
1528 | - const std::string destination = DBUS_SERVICE_DBUS; |
1529 | - const std::string path = DBUS_PATH_DBUS; |
1530 | - const std::string interface = DBUS_SERVICE_DBUS; |
1531 | + const std::string destination = core::dbus::DBus::name(); |
1532 | + const std::string path = core::dbus::DBus::path().as_string(); |
1533 | + const std::string interface = core::dbus::DBus::name(); |
1534 | const std::string member = "ListNames"; |
1535 | |
1536 | auto msg = core::dbus::Message::make_method_call( |
1537 | @@ -122,9 +123,9 @@ |
1538 | |
1539 | TEST(Message, WriteAndSuccessiveIterationAreIdempotent) |
1540 | { |
1541 | - const std::string destination = DBUS_SERVICE_DBUS; |
1542 | - const std::string path = DBUS_PATH_DBUS; |
1543 | - const std::string interface = DBUS_SERVICE_DBUS; |
1544 | + const std::string destination = core::dbus::DBus::name(); |
1545 | + const std::string path = core::dbus::DBus::path().as_string(); |
1546 | + const std::string interface = core::dbus::DBus::name(); |
1547 | const std::string member = "ListNames"; |
1548 | |
1549 | auto msg = core::dbus::Message::make_method_call( |
1550 | |
1551 | === modified file 'tests/service_test.cpp' |
1552 | --- tests/service_test.cpp 2013-12-25 10:16:19 +0000 |
1553 | +++ tests/service_test.cpp 2014-01-13 07:51:24 +0000 |
1554 | @@ -17,6 +17,7 @@ |
1555 | */ |
1556 | |
1557 | #include <core/dbus/dbus.h> |
1558 | +#include <core/dbus/fixture.h> |
1559 | #include <core/dbus/object.h> |
1560 | #include <core/dbus/property.h> |
1561 | #include <core/dbus/service.h> |
1562 | @@ -26,10 +27,12 @@ |
1563 | |
1564 | #include <core/dbus/asio/executor.h> |
1565 | |
1566 | -#include "cross_process_sync.h" |
1567 | -#include "fork_and_run.h" |
1568 | +#include "test_data.h" |
1569 | #include "test_service.h" |
1570 | |
1571 | +#include <core/testing/cross_process_sync.h> |
1572 | +#include <core/testing/fork_and_run.h> |
1573 | + |
1574 | #include <gtest/gtest.h> |
1575 | |
1576 | #include <thread> |
1577 | @@ -38,108 +41,115 @@ |
1578 | |
1579 | namespace |
1580 | { |
1581 | -dbus::Bus::Ptr the_session_bus() |
1582 | -{ |
1583 | - dbus::Bus::Ptr session_bus = std::make_shared<dbus::Bus>(dbus::WellKnownBus::session); |
1584 | - return session_bus; |
1585 | -} |
1586 | -} |
1587 | - |
1588 | -TEST(Service, AccessingAnExistingServiceAndItsObjectsOnTheBusWorks) |
1589 | -{ |
1590 | - auto bus = the_session_bus(); |
1591 | +struct Service : public core::dbus::testing::Fixture |
1592 | +{ |
1593 | +}; |
1594 | + |
1595 | +auto session_bus_config_file = |
1596 | + core::dbus::testing::Fixture::default_session_bus_config_file() = |
1597 | + core::testing::session_bus_configuration_file(); |
1598 | + |
1599 | +auto system_bus_config_file = |
1600 | + core::dbus::testing::Fixture::default_system_bus_config_file() = |
1601 | + core::testing::system_bus_configuration_file(); |
1602 | +} |
1603 | + |
1604 | +TEST_F(Service, AccessingAnExistingServiceAndItsObjectsOnTheBusWorks) |
1605 | +{ |
1606 | + auto bus = session_bus(); |
1607 | auto names = dbus::DBus(bus).list_names(); |
1608 | |
1609 | ASSERT_GT(names.size(), std::size_t{0}); |
1610 | } |
1611 | |
1612 | -TEST(Service, AddingServiceAndObjectAndCallingIntoItSucceeds) |
1613 | +TEST_F(Service, AddingServiceAndObjectAndCallingIntoItSucceeds) |
1614 | { |
1615 | - test::CrossProcessSync cps1; |
1616 | - |
1617 | - const int64_t expected_value = 42; |
1618 | - |
1619 | - auto child = [expected_value, &cps1]() |
1620 | - { |
1621 | - auto bus = the_session_bus(); |
1622 | - bus->install_executor(core::dbus::asio::make_executor(bus)); |
1623 | - auto service = dbus::Service::add_service<test::Service>(bus); |
1624 | - auto skeleton = service->add_object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1625 | - auto signal = skeleton->get_signal<test::Service::Signals::Dummy>(); |
1626 | - auto writable_property = skeleton->get_property<test::Service::Properties::Dummy>(); |
1627 | - writable_property->set(expected_value); |
1628 | - |
1629 | - skeleton->install_method_handler<test::Service::Method>([bus, skeleton, expected_value](const dbus::Message::Ptr& msg) |
1630 | - { |
1631 | - std::cout << __PRETTY_FUNCTION__ << std::endl; |
1632 | - auto reply = dbus::Message::make_method_return(msg); |
1633 | - reply->writer() << expected_value; |
1634 | - bus->send(reply); |
1635 | - skeleton->emit_signal<test::Service::Signals::Dummy, int64_t>(expected_value); |
1636 | - }); |
1637 | - |
1638 | - std::thread t{[bus](){ bus->run(); }}; |
1639 | - cps1.signal_ready(); |
1640 | - if (t.joinable()) |
1641 | - t.join(); |
1642 | - }; |
1643 | - |
1644 | - auto parent = [expected_value, cps1]() |
1645 | - { |
1646 | - auto bus = the_session_bus(); |
1647 | - bus->install_executor(core::dbus::asio::make_executor(bus)); |
1648 | - std::thread t{[bus](){ bus->run(); }}; |
1649 | - cps1.wait_for_signal_ready(); |
1650 | - |
1651 | - auto stub_service = dbus::Service::use_service(bus, dbus::traits::Service<test::Service>::interface_name()); |
1652 | - auto stub = stub_service->object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1653 | - auto writable_property = stub->get_property<test::Service::Properties::Dummy>(); |
1654 | - writable_property->changed().connect([](double d) |
1655 | - { |
1656 | - std::cout << "Dummy property changed: " << d << std::endl; |
1657 | - }); |
1658 | - auto signal = stub->get_signal<test::Service::Signals::Dummy>(); |
1659 | - int64_t received_signal_value = -1; |
1660 | - signal->connect([bus, &received_signal_value](const int32_t& value) |
1661 | - { |
1662 | - received_signal_value = value; |
1663 | - bus->stop(); |
1664 | - }); |
1665 | - auto result = stub->invoke_method_synchronously<test::Service::Method, int64_t>(); |
1666 | - ASSERT_FALSE(result.is_error()); |
1667 | - ASSERT_EQ(expected_value, result.value()); |
1668 | - ASSERT_EQ(expected_value, writable_property->get()); |
1669 | - ASSERT_NO_THROW(writable_property->set(4242)); |
1670 | - ASSERT_EQ(4242, writable_property->get()); |
1671 | - |
1672 | - if (t.joinable()) |
1673 | - t.join(); |
1674 | - |
1675 | - EXPECT_EQ(expected_value, received_signal_value); |
1676 | - }; |
1677 | - |
1678 | - EXPECT_NO_FATAL_FAILURE(test::fork_and_run(child, parent)); |
1679 | + core::testing::CrossProcessSync cps1; |
1680 | + |
1681 | + const int64_t expected_value = 42; |
1682 | + |
1683 | + auto service = [this, expected_value, &cps1]() |
1684 | + { |
1685 | + auto bus = session_bus(); |
1686 | + bus->install_executor(core::dbus::asio::make_executor(bus)); |
1687 | + auto service = dbus::Service::add_service<test::Service>(bus); |
1688 | + auto skeleton = service->add_object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1689 | + auto signal = skeleton->get_signal<test::Service::Signals::Dummy>(); |
1690 | + auto writable_property = skeleton->get_property<test::Service::Properties::Dummy>(); |
1691 | + writable_property->set(expected_value); |
1692 | + |
1693 | + skeleton->install_method_handler<test::Service::Method>([bus, skeleton, expected_value](const dbus::Message::Ptr& msg) |
1694 | + { |
1695 | + auto reply = dbus::Message::make_method_return(msg); |
1696 | + reply->writer() << expected_value; |
1697 | + bus->send(reply); |
1698 | + skeleton->emit_signal<test::Service::Signals::Dummy, int64_t>(expected_value); |
1699 | + }); |
1700 | + |
1701 | + std::thread t{[bus](){ bus->run(); }}; |
1702 | + cps1.try_signal_ready_for(std::chrono::milliseconds{500}); |
1703 | + if (t.joinable()) |
1704 | + t.join(); |
1705 | + |
1706 | + return ::testing::Test::HasFailure() ? core::posix::exit::Status::failure : core::posix::exit::Status::success; |
1707 | + }; |
1708 | + |
1709 | + auto client = [this, expected_value, &cps1]() |
1710 | + { |
1711 | + auto bus = session_bus(); |
1712 | + bus->install_executor(core::dbus::asio::make_executor(bus)); |
1713 | + std::thread t{[bus](){ bus->run(); }}; |
1714 | + EXPECT_EQ(1, cps1.wait_for_signal_ready_for(std::chrono::milliseconds{500})); |
1715 | + |
1716 | + auto stub_service = dbus::Service::use_service(bus, dbus::traits::Service<test::Service>::interface_name()); |
1717 | + auto stub = stub_service->object_for_path(dbus::types::ObjectPath("/this/is/unlikely/to/exist/Service")); |
1718 | + auto writable_property = stub->get_property<test::Service::Properties::Dummy>(); |
1719 | + writable_property->changed().connect([](double d) |
1720 | + { |
1721 | + std::cout << "Dummy property changed: " << d << std::endl; |
1722 | + }); |
1723 | + auto signal = stub->get_signal<test::Service::Signals::Dummy>(); |
1724 | + int64_t received_signal_value = -1; |
1725 | + signal->connect([bus, &received_signal_value](const int32_t& value) |
1726 | + { |
1727 | + received_signal_value = value; |
1728 | + bus->stop(); |
1729 | + }); |
1730 | + auto result = stub->invoke_method_synchronously<test::Service::Method, int64_t>(); |
1731 | + EXPECT_FALSE(result.is_error()); |
1732 | + EXPECT_EQ(expected_value, result.value()); |
1733 | + EXPECT_EQ(expected_value, writable_property->get()); |
1734 | + EXPECT_NO_THROW(writable_property->set(4242)); |
1735 | + EXPECT_EQ(4242, writable_property->get()); |
1736 | + |
1737 | + if (t.joinable()) |
1738 | + t.join(); |
1739 | + |
1740 | + EXPECT_EQ(expected_value, received_signal_value); |
1741 | + |
1742 | + return ::testing::Test::HasFailure() ? core::posix::exit::Status::failure : core::posix::exit::Status::success; |
1743 | + }; |
1744 | + |
1745 | + EXPECT_NO_FATAL_FAILURE(core::testing::fork_and_run(service, client)); |
1746 | } |
1747 | |
1748 | -TEST(Service, AddingANonExistingServiceDoesNotThrow) |
1749 | +TEST_F(Service, AddingANonExistingServiceDoesNotThrow) |
1750 | { |
1751 | - auto bus = the_session_bus(); |
1752 | const std::string service_name |
1753 | { |
1754 | "very.unlikely.that.this.name.exists" |
1755 | }; |
1756 | - ASSERT_NO_THROW(auto service = dbus::Service::add_service<test::Service>(bus);); |
1757 | + ASSERT_NO_THROW(auto service = dbus::Service::add_service<test::Service>(session_bus());); |
1758 | } |
1759 | |
1760 | -TEST(Service, AddingAnExistingServiceThrowsForSpecificFlags) |
1761 | +TEST_F(Service, AddingAnExistingServiceThrowsForSpecificFlags) |
1762 | { |
1763 | - auto bus = the_session_bus(); |
1764 | const std::string service_name |
1765 | { |
1766 | "org.freedesktop.DBus" |
1767 | }; |
1768 | dbus::Bus::RequestNameFlag flags{dbus::Bus::RequestNameFlag::not_set}; |
1769 | - ASSERT_ANY_THROW(auto service = dbus::Service::add_service<dbus::DBus>(bus, flags);); |
1770 | + ASSERT_ANY_THROW(auto service = dbus::Service::add_service<dbus::DBus>(session_bus(), flags);); |
1771 | } |
1772 | |
1773 | TEST(VoidResult, DefaultConstructionYieldsANonErrorResult) |
1774 | |
1775 | === modified file 'tests/stl_codec_test.cpp' |
1776 | --- tests/stl_codec_test.cpp 2014-01-05 18:58:19 +0000 |
1777 | +++ tests/stl_codec_test.cpp 2014-01-13 07:51:24 +0000 |
1778 | @@ -17,7 +17,10 @@ |
1779 | */ |
1780 | |
1781 | #include <core/dbus/dbus.h> |
1782 | +#include <core/dbus/message_streaming_operators.h> |
1783 | + |
1784 | #include <core/dbus/types/stl/map.h> |
1785 | +#include <core/dbus/types/stl/string.h> |
1786 | #include <core/dbus/types/stl/tuple.h> |
1787 | |
1788 | #include <gtest/gtest.h> |
1789 | |
1790 | === modified file 'tests/test_data.h.in' |
1791 | --- tests/test_data.h.in 2013-10-27 18:18:38 +0000 |
1792 | +++ tests/test_data.h.in 2014-01-13 07:51:24 +0000 |
1793 | @@ -19,8 +19,21 @@ |
1794 | #ifndef TEST_DATA_H_ |
1795 | #define TEST_DATA_H_ |
1796 | |
1797 | +namespace core |
1798 | +{ |
1799 | namespace testing |
1800 | { |
1801 | + |
1802 | +const char* session_bus_configuration_file() |
1803 | +{ |
1804 | + return "@CMAKE_SOURCE_DIR@/data/session.conf"; |
1805 | +} |
1806 | + |
1807 | +const char* system_bus_configuration_file() |
1808 | +{ |
1809 | + return "@CMAKE_SOURCE_DIR@/data/system.conf"; |
1810 | +} |
1811 | + |
1812 | namespace com |
1813 | { |
1814 | namespace canonical |
1815 | @@ -92,5 +105,5 @@ |
1816 | } |
1817 | } |
1818 | } |
1819 | - |
1820 | +} |
1821 | #endif // TEST_DATA_H_ |
FAILED: Continuous integration, rev:24 jenkins. qa.ubuntu. com/job/ dbus-cpp- ci/49/ jenkins. qa.ubuntu. com/job/ dbus-cpp- trusty- amd64-ci/ 29 jenkins. qa.ubuntu. com/job/ dbus-cpp- trusty- armhf-ci/ 28 jenkins. qa.ubuntu. com/job/ dbus-cpp- trusty- armhf-ci/ 28/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ dbus-cpp- trusty- i386-ci/ 28/console
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
deb: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/dbus- cpp-ci/ 49/rebuild
http://