ruby-dbus 0.22.0 → 0.23.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/NEWS.md +20 -0
  3. data/VERSION +1 -1
  4. data/doc/Reference.md +4 -4
  5. data/examples/service/complex-property.rb +2 -2
  6. data/examples/service/service_newapi.rb +2 -2
  7. data/lib/dbus/bus.rb +50 -302
  8. data/lib/dbus/logger.rb +3 -2
  9. data/lib/dbus/main.rb +66 -0
  10. data/lib/dbus/message.rb +6 -8
  11. data/lib/dbus/node_tree.rb +105 -0
  12. data/lib/dbus/object.rb +16 -7
  13. data/lib/dbus/object_manager.rb +2 -3
  14. data/lib/dbus/object_server.rb +119 -0
  15. data/lib/dbus/proxy_object.rb +4 -4
  16. data/lib/dbus/proxy_service.rb +95 -0
  17. data/lib/dbus.rb +9 -8
  18. data/spec/bus_connection_spec.rb +81 -0
  19. data/spec/coverage_helper.rb +39 -0
  20. data/spec/main_loop_spec.rb +14 -0
  21. data/spec/message_spec.rb +21 -0
  22. data/spec/mock-service/cockpit-dbustests.rb +29 -0
  23. data/spec/mock-service/com.redhat.Cockpit.DBusTests.xml +180 -0
  24. data/spec/mock-service/org.ruby.service.service +4 -0
  25. data/spec/mock-service/org.rubygems.ruby_dbus.DBusTests.service +4 -0
  26. data/spec/{service_newapi.rb → mock-service/spaghetti-monster.rb} +22 -10
  27. data/spec/node_spec.rb +1 -5
  28. data/spec/object_server_spec.rb +104 -0
  29. data/spec/object_spec.rb +30 -0
  30. data/spec/{bus_driver_spec.rb → proxy_service_spec.rb} +1 -1
  31. data/spec/spec_helper.rb +9 -45
  32. data/spec/thread_safety_spec.rb +9 -11
  33. data/spec/tools/dbus-launch-simple +4 -1
  34. data/spec/tools/dbus-limited-session.conf +3 -0
  35. data/spec/tools/test_env +26 -6
  36. metadata +18 -9
  37. data/spec/server_spec.rb +0 -55
  38. data/spec/service_spec.rb +0 -18
  39. data/spec/tools/test_server +0 -39
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-dbus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruby DBus Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-08 00:00:00.000000000 Z
11
+ date: 2023-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rexml
@@ -147,17 +147,21 @@ files:
147
147
  - lib/dbus/error.rb
148
148
  - lib/dbus/introspect.rb
149
149
  - lib/dbus/logger.rb
150
+ - lib/dbus/main.rb
150
151
  - lib/dbus/marshall.rb
151
152
  - lib/dbus/matchrule.rb
152
153
  - lib/dbus/message.rb
153
154
  - lib/dbus/message_queue.rb
155
+ - lib/dbus/node_tree.rb
154
156
  - lib/dbus/object.rb
155
157
  - lib/dbus/object_manager.rb
156
158
  - lib/dbus/object_path.rb
159
+ - lib/dbus/object_server.rb
157
160
  - lib/dbus/platform.rb
158
161
  - lib/dbus/proxy_object.rb
159
162
  - lib/dbus/proxy_object_factory.rb
160
163
  - lib/dbus/proxy_object_interface.rb
164
+ - lib/dbus/proxy_service.rb
161
165
  - lib/dbus/raw_message.rb
162
166
  - lib/dbus/type.rb
163
167
  - lib/dbus/xml.rb
@@ -166,11 +170,12 @@ files:
166
170
  - spec/auth_spec.rb
167
171
  - spec/binding_spec.rb
168
172
  - spec/bus_and_xml_backend_spec.rb
169
- - spec/bus_driver_spec.rb
173
+ - spec/bus_connection_spec.rb
170
174
  - spec/bus_name_spec.rb
171
175
  - spec/bus_spec.rb
172
176
  - spec/byte_array_spec.rb
173
177
  - spec/client_robustness_spec.rb
178
+ - spec/coverage_helper.rb
174
179
  - spec/data/marshall.yaml
175
180
  - spec/data_spec.rb
176
181
  - spec/emits_changed_signal_spec.rb
@@ -178,9 +183,16 @@ files:
178
183
  - spec/introspect_xml_parser_spec.rb
179
184
  - spec/introspection_spec.rb
180
185
  - spec/main_loop_spec.rb
186
+ - spec/message_spec.rb
187
+ - spec/mock-service/cockpit-dbustests.rb
188
+ - spec/mock-service/com.redhat.Cockpit.DBusTests.xml
189
+ - spec/mock-service/org.ruby.service.service
190
+ - spec/mock-service/org.rubygems.ruby_dbus.DBusTests.service
191
+ - spec/mock-service/spaghetti-monster.rb
181
192
  - spec/node_spec.rb
182
193
  - spec/object_manager_spec.rb
183
194
  - spec/object_path_spec.rb
195
+ - spec/object_server_spec.rb
184
196
  - spec/object_spec.rb
185
197
  - spec/packet_marshaller_spec.rb
186
198
  - spec/packet_unmarshaller_spec.rb
@@ -188,11 +200,9 @@ files:
188
200
  - spec/property_spec.rb
189
201
  - spec/proxy_object_interface_spec.rb
190
202
  - spec/proxy_object_spec.rb
203
+ - spec/proxy_service_spec.rb
191
204
  - spec/raw_message_spec.rb
192
205
  - spec/server_robustness_spec.rb
193
- - spec/server_spec.rb
194
- - spec/service_newapi.rb
195
- - spec/service_spec.rb
196
206
  - spec/session_bus_spec.rb
197
207
  - spec/session_bus_spec_manual.rb
198
208
  - spec/signal_spec.rb
@@ -201,7 +211,6 @@ files:
201
211
  - spec/tools/dbus-launch-simple
202
212
  - spec/tools/dbus-limited-session.conf
203
213
  - spec/tools/test_env
204
- - spec/tools/test_server
205
214
  - spec/type_spec.rb
206
215
  - spec/value_spec.rb
207
216
  - spec/variant_spec.rb
@@ -221,9 +230,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
221
230
  version: 2.4.0
222
231
  required_rubygems_version: !ruby/object:Gem::Requirement
223
232
  requirements:
224
- - - ">="
233
+ - - ">"
225
234
  - !ruby/object:Gem::Version
226
- version: '0'
235
+ version: 1.3.1
227
236
  requirements: []
228
237
  rubygems_version: 3.3.26
229
238
  signing_key:
data/spec/server_spec.rb DELETED
@@ -1,55 +0,0 @@
1
- #!/usr/bin/env rspec
2
- # frozen_string_literal: true
3
-
4
- # Test that a server survives various error cases
5
- require_relative "spec_helper"
6
- require "dbus"
7
-
8
- class Foo < DBus::Object
9
- dbus_interface "org.ruby.ServerTest" do
10
- dbus_signal :signal_without_arguments
11
- dbus_signal :signal_with_argument, "epsilon:d"
12
- end
13
-
14
- dbus_signal :signal_without_interface
15
- rescue DBus::Object::UndefinedInterface
16
- # raised by the preceding signal declaration
17
- end
18
-
19
- class Bar < DBus::Object
20
- dbus_interface "org.ruby.ServerTest" do
21
- # a valid Ruby symbol but an invalid DBus name; Ticket#38
22
- dbus_signal :signal_with_a_bang!
23
- end
24
- rescue DBus::InvalidMethodName
25
- # raised by the preceding signal declaration
26
- end
27
-
28
- describe "ServerTest" do
29
- before(:each) do
30
- @bus = DBus::ASessionBus.new
31
- @svc = @bus.request_service "org.ruby.server-test"
32
- end
33
-
34
- after(:each) do
35
- @bus.proxy.ReleaseName "org.ruby.server-test"
36
- end
37
-
38
- it "tests unexporting an object" do
39
- obj = Foo.new "/org/ruby/Foo"
40
- @svc.export obj
41
- expect(@svc.unexport(obj)).to be_a DBus::Object
42
- end
43
-
44
- it "tests unexporting an object not exported" do
45
- obj = Foo.new "/org/ruby/Foo"
46
- expect(@svc.unexport(obj)).to be false
47
- end
48
-
49
- it "tests emiting signals" do
50
- obj = Foo.new "/org/ruby/Foo"
51
- @svc.export obj
52
- obj.signal_without_arguments
53
- obj.signal_with_argument(-0.1)
54
- end
55
- end
data/spec/service_spec.rb DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env rspec
2
- # frozen_string_literal: true
3
-
4
- require_relative "spec_helper"
5
- require "dbus"
6
-
7
- describe "DBus::Service (server role)" do
8
- let(:bus) { DBus::ASessionBus.new }
9
- # This is the client role, but the server role API is bad
10
- # and for the one test there is no difference
11
- let(:service) { bus["org.ruby.service"] }
12
-
13
- describe "#descendants_for" do
14
- it "raises for not existing path" do
15
- expect { service.descendants_for("/notthere") }.to raise_error(ArgumentError)
16
- end
17
- end
18
- end
@@ -1,39 +0,0 @@
1
- #! /bin/sh
2
- # A wrapper for DBus tests
3
- # Run a server (directly or by dbus activation) and then the test
4
- # $0 server [args...] -- test [args...]
5
- set -o errexit
6
-
7
- while [ "$1" != "--" ]; do
8
- SERVER="$SERVER $1"
9
- shift
10
- done
11
- shift # --
12
-
13
- setup_activation () {
14
- SDIR=$XDG_DATA_DIRS/dbus-1/services
15
- mkdir -p $SDIR
16
- # FIXME Name is hardcoded
17
- cat <<EOF > $SDIR/test.service
18
- [D-BUS Service]
19
- Name=org.ruby.service
20
- Exec=$SERVER
21
- EOF
22
- }
23
-
24
- run_server () {
25
- echo -n "Hey, server, get on da bus... "
26
- # start the server
27
- $SERVER & sleep 3
28
- echo "off we go!"
29
- }
30
-
31
- export XDG_DATA_DIRS=`mktemp -d dbus.activation.XXXXXX`
32
- RM_FILES="$RM_FILES $XDG_DATA_DIRS"
33
- setup_activation
34
- #run_server
35
-
36
- # Clean up at exit.
37
- trap "rm -rf \$RM_FILES" EXIT TERM INT
38
-
39
- "$@"