libusb 0.6.3 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +4 -0
  3. data/.appveyor.yml +33 -0
  4. data/.github/workflows/ci.yml +185 -0
  5. data/.gitignore +1 -0
  6. data/.travis.yml +17 -10
  7. data/Gemfile +9 -1
  8. data/History.md +57 -0
  9. data/README.md +30 -5
  10. data/Rakefile +41 -12
  11. data/ext/extconf.rb +2 -1
  12. data/lib/libusb/bos.rb +85 -29
  13. data/lib/libusb/call.rb +192 -16
  14. data/lib/libusb/configuration.rb +3 -4
  15. data/lib/libusb/constants.rb +26 -16
  16. data/lib/libusb/context.rb +195 -45
  17. data/{test/test_libusb_capability.rb → lib/libusb/context_reference.rb} +20 -5
  18. data/lib/libusb/dependencies.rb +2 -2
  19. data/lib/libusb/dev_handle.rb +34 -24
  20. data/lib/libusb/device.rb +50 -8
  21. data/lib/libusb/endpoint.rb +3 -2
  22. data/lib/libusb/eventmachine.rb +8 -4
  23. data/lib/libusb/gem_helper.rb +8 -5
  24. data/lib/libusb/libusb_recipe.rb +2 -3
  25. data/lib/libusb/ss_companion.rb +9 -6
  26. data/lib/libusb/transfer.rb +48 -7
  27. data/lib/libusb/version_gem.rb +1 -1
  28. data/lib/libusb.rb +106 -18
  29. data/libusb.gemspec +2 -4
  30. data/ports/archives/libusb-1.0.27.tar.bz2 +0 -0
  31. data/test/{test_libusb_version.rb → test_libusb.rb} +12 -10
  32. data/test/test_libusb_bos.rb +22 -0
  33. data/test/test_libusb_bulk_stream_transfer.rb +23 -12
  34. data/test/test_libusb_context.rb +88 -0
  35. data/test/test_libusb_descriptors.rb +44 -11
  36. data/test/test_libusb_gc.rb +15 -0
  37. data/test/test_libusb_hotplug.rb +3 -1
  38. data/test/test_libusb_iso_transfer.rb +6 -0
  39. data/test/test_libusb_mass_storage.rb +6 -6
  40. data/test/test_libusb_structs.rb +32 -3
  41. data.tar.gz.sig +0 -0
  42. metadata +38 -56
  43. metadata.gz.sig +3 -0
  44. data/appveyor.yml +0 -37
  45. data/ports/archives/libusb-1.0.21.tar.bz2 +0 -0
@@ -26,7 +26,9 @@ class TestLibusbHotplug < Minitest::Test
26
26
  end
27
27
 
28
28
  def teardown
29
- @ctx.exit
29
+ # No need to release the LIBUSB::Context any longer.
30
+ # It is cleaned up by the GC.
31
+ # @ctx.exit
30
32
  end
31
33
 
32
34
  def test_enumerate
@@ -47,4 +47,10 @@ class TestLibusbIsoTransfer < Minitest::Test
47
47
  tr.submit!
48
48
  end
49
49
  end
50
+
51
+ def test_max_alt_packet_size
52
+ d = Context.new.devices[0]
53
+ size = d.max_alt_packet_size d.interfaces[0], d.settings[0], d.endpoints[0]
54
+ assert_operator 0, :<=, size
55
+ end
50
56
  end
@@ -61,7 +61,7 @@ class TestLibusbMassStorage < Minitest::Test
61
61
  dev.close if dev
62
62
  end
63
63
 
64
- def do_transfer(method, args)
64
+ def do_transfer(method, **args)
65
65
  if @asynchron
66
66
  stop = false
67
67
  transfer = dev.send(method, args) do |tr|
@@ -78,14 +78,14 @@ class TestLibusbMassStorage < Minitest::Test
78
78
  end
79
79
  transfer.result
80
80
  else
81
- dev.send(method, args)
81
+ dev.send(method, **args)
82
82
  end
83
83
  end
84
- def control_transfer(args)
85
- do_transfer(:control_transfer, args)
84
+ def control_transfer(**args)
85
+ do_transfer(:control_transfer, **args)
86
86
  end
87
- def bulk_transfer(args)
88
- do_transfer(:bulk_transfer, args)
87
+ def bulk_transfer(**args)
88
+ do_transfer(:bulk_transfer, **args)
89
89
  end
90
90
 
91
91
  def send_mass_storage_command(cdb, data_length, direction=ENDPOINT_IN)
@@ -43,16 +43,45 @@ class TestLibusbStructs < Minitest::Test
43
43
  assert_equal 0, s[:completed]
44
44
  end
45
45
 
46
- def test_Transfer
46
+ def test_Transfer_buffer
47
47
  t = LIBUSB::InterruptTransfer.new allow_device_memory: true
48
48
  assert_equal :TRANSFER_COMPLETED, t.status
49
49
  assert_equal true, t.allow_device_memory
50
- assert_equal nil, t.memory_type
50
+ assert_nil t.memory_type
51
51
 
52
52
  t.alloc_buffer(10)
53
53
  assert_equal :user_space, t.memory_type, "no device assigned -> should use memory from user space"
54
54
 
55
55
  t.free_buffer
56
- assert_equal nil, t.memory_type
56
+ assert_nil t.memory_type
57
+ end
58
+
59
+ def test_Transfer_new
60
+ assert_raises(NoMethodError){ LIBUSB::Transfer.new }
61
+ LIBUSB::BulkStreamTransfer.new
62
+ LIBUSB::BulkTransfer.new
63
+ LIBUSB::ControlTransfer.new
64
+ LIBUSB::InterruptTransfer.new
65
+ LIBUSB::IsochronousTransfer.new(0)
66
+ end
67
+
68
+ def test_ControlTransfer_attributes
69
+ t = LIBUSB::ControlTransfer.new
70
+ t.timeout = 123
71
+ assert_equal 123, t.timeout
72
+ t.allow_device_memory = true
73
+ assert_equal true, t.allow_device_memory
74
+ assert_nil t.dev_handle
75
+ end
76
+
77
+ def test_ControlTransfer_new_args
78
+ t = LIBUSB::ControlTransfer.new allow_device_memory: false, timeout: 444
79
+ assert_equal false, t.allow_device_memory
80
+ assert_equal 444, t.timeout
81
+ end
82
+
83
+ def test_Transfer_no_dev_handle
84
+ t = LIBUSB::ControlTransfer.new
85
+ assert_raises(ArgumentError){ t.submit_and_wait }
57
86
  end
58
87
  end
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,14 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libusb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.3
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Kanis
8
- autorequire:
9
8
  bindir: bin
10
- cert_chain: []
11
- date: 2017-08-20 00:00:00.000000000 Z
9
+ cert_chain:
10
+ - |
11
+ -----BEGIN CERTIFICATE-----
12
+ MIIEBDCCAmygAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
13
+ L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yNDAyMjgxOTMxNDdaFw0yNTAy
14
+ MjcxOTMxNDdaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
15
+ PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwum6Y1KznfpzXOT/
16
+ mZgJTBbxZuuZF49Fq3K0WA67YBzNlDv95qzSp7V/7Ek3NCcnT7G+2kSuhNo1FhdN
17
+ eSDO/moYebZNAcu3iqLsuzuULXPLuoU0GsMnVMqV9DZPh7cQHE5EBZ7hlzDBK7k/
18
+ 8nBMvR0mHo77kIkapHc26UzVq/G0nKLfDsIHXVylto3PjzOumjG6GhmFN4r3cP6e
19
+ SDfl1FSeRYVpt4kmQULz/zdSaOH3AjAq7PM2Z91iGwQvoUXMANH2v89OWjQO/NHe
20
+ JMNDFsmHK/6Ji4Kk48Z3TyscHQnipAID5GhS1oD21/WePdj7GhmbF5gBzkV5uepd
21
+ eJQPgWGwrQW/Z2oPjRuJrRofzWfrMWqbOahj9uth6WSxhNexUtbjk6P8emmXOJi5
22
+ chQPnWX+N3Gj+jjYxqTFdwT7Mj3pv1VHa+aNUbqSPpvJeDyxRIuo9hvzDaBHb/Cg
23
+ 9qRVcm8a96n4t7y2lrX1oookY6bkBaxWOMtWlqIprq8JZXM9AgMBAAGjOTA3MAkG
24
+ A1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQ4h1tIyvdUWtMI739xMzTR
25
+ 7EfMFzANBgkqhkiG9w0BAQsFAAOCAYEArBmHSfnUyNWf3R1Fx0mMHloWGdcKn2D2
26
+ BsqTApXU2nADiyppIqRq4b9e7hw342uzadSLkoQcEFOxThLRhAcijoWfQVBcsbV/
27
+ ZsCY1qlUTIJuSWxaSyS4efUX+N4eMNyPM9oW/sphlWFo0DgI34Y9WB6HDzH+O71y
28
+ R7PARke3f4kYnRJf5yRQLPDrH9UYt9KlBQm6l7XMtr5EMnQt0EfcmZEi9H4t/vS2
29
+ haxvpFMdAKo4H46GBYNO96r6b74t++vgQSBTg/AFVwvRZwNSrPPcBfb4xxeEAhRR
30
+ x+LU7feIH7lZ//3buiyD03gLAEtHXai0Y+/VfuWIpwYJAl2BO/tU7FS/dtbJq9oc
31
+ dI36Yyzy+BrCM0WT4oCsagePNb97FaNhl4F6sM5JEPT0ZPxRx0i3G4TNNIYziVos
32
+ 5wFER6XhvvLDFAMh/jMg+s7Wd5SbSHgHNSUaUGVtdWkVPOer6oF0aLdZUR3CETkn
33
+ 5nWXZma/BUd3YgYA/Xumc6QQqIS4p7mr
34
+ -----END CERTIFICATE-----
35
+ date: 2024-04-18 00:00:00.000000000 Z
12
36
  dependencies:
13
37
  - !ruby/object:Gem::Dependency
14
38
  name: ffi
@@ -38,48 +62,6 @@ dependencies:
38
62
  - - "~>"
39
63
  - !ruby/object:Gem::Version
40
64
  version: '2.1'
41
- - !ruby/object:Gem::Dependency
42
- name: rake-compiler
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.0'
55
- - !ruby/object:Gem::Dependency
56
- name: rake-compiler-dock
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.2'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.2'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.0'
83
65
  description: LIBUSB is a Ruby binding that gives Ruby programmers access to arbitrary
84
66
  USB devices
85
67
  email:
@@ -89,6 +71,8 @@ extensions:
89
71
  - ext/extconf.rb
90
72
  extra_rdoc_files: []
91
73
  files:
74
+ - ".appveyor.yml"
75
+ - ".github/workflows/ci.yml"
92
76
  - ".gitignore"
93
77
  - ".travis.yml"
94
78
  - ".yardopts"
@@ -97,7 +81,6 @@ files:
97
81
  - History.md
98
82
  - README.md
99
83
  - Rakefile
100
- - appveyor.yml
101
84
  - ext/extconf.rb
102
85
  - lib/libusb.rb
103
86
  - lib/libusb/bos.rb
@@ -106,6 +89,7 @@ files:
106
89
  - lib/libusb/configuration.rb
107
90
  - lib/libusb/constants.rb
108
91
  - lib/libusb/context.rb
92
+ - lib/libusb/context_reference.rb
109
93
  - lib/libusb/dependencies.rb
110
94
  - lib/libusb/dev_handle.rb
111
95
  - lib/libusb/device.rb
@@ -121,12 +105,13 @@ files:
121
105
  - lib/libusb/version_gem.rb
122
106
  - lib/libusb/version_struct.rb
123
107
  - libusb.gemspec
124
- - ports/archives/libusb-1.0.21.tar.bz2
108
+ - ports/archives/libusb-1.0.27.tar.bz2
109
+ - test/test_libusb.rb
125
110
  - test/test_libusb_bos.rb
126
111
  - test/test_libusb_bulk_stream_transfer.rb
127
- - test/test_libusb_capability.rb
128
112
  - test/test_libusb_compat.rb
129
113
  - test/test_libusb_compat_mass_storage.rb
114
+ - test/test_libusb_context.rb
130
115
  - test/test_libusb_descriptors.rb
131
116
  - test/test_libusb_event_machine.rb
132
117
  - test/test_libusb_gc.rb
@@ -136,13 +121,12 @@ files:
136
121
  - test/test_libusb_mass_storage2.rb
137
122
  - test/test_libusb_structs.rb
138
123
  - test/test_libusb_threads.rb
139
- - test/test_libusb_version.rb
140
124
  - wireshark-usb-sniffer.png
141
125
  homepage: http://github.com/larskanis/libusb
142
126
  licenses:
143
127
  - LGPL-3.0
144
- metadata: {}
145
- post_install_message:
128
+ metadata:
129
+ yard.run: yri
146
130
  rdoc_options:
147
131
  - "--main"
148
132
  - README.md
@@ -153,16 +137,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
137
  requirements:
154
138
  - - ">="
155
139
  - !ruby/object:Gem::Version
156
- version: 1.9.3
140
+ version: 2.5.0
157
141
  required_rubygems_version: !ruby/object:Gem::Requirement
158
142
  requirements:
159
143
  - - ">="
160
144
  - !ruby/object:Gem::Version
161
145
  version: '0'
162
146
  requirements: []
163
- rubyforge_project:
164
- rubygems_version: 2.6.12
165
- signing_key:
147
+ rubygems_version: 3.6.0.dev
166
148
  specification_version: 4
167
149
  summary: Access USB devices from Ruby via libusb-1.0
168
150
  test_files: []
metadata.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ ���14;�0���-c����m��+`�sU��bC{Ed��o��f�lkX�Ÿ�Vž�}���ψL���S�
2
+ 쿩˓�A�}��|���رL$��m��H��b7�����4�oa�ȯ���>RBv֍Z�"�횮qp�����_��}{�"&/��x��P�����edg?cJj %N���'���*k}ӷ���KKt����6R[2&4�S�t%��ѱY������v�
3
+ #f @Nle8]�Q��O�=�?,�:���orա�
data/appveyor.yml DELETED
@@ -1,37 +0,0 @@
1
- init:
2
- - SET PATH=C:/Ruby%ruby_version%/bin;%PATH%
3
- - SET RAKEOPT=-rdevkit
4
- install:
5
- - ruby --version
6
- - gem --version
7
- - ps: |
8
- if ($env:BROKEN_SSL -eq "true") {
9
- $(New-Object Net.WebClient).DownloadFile('https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt', "$env:TMP/ca-bundle.crt")
10
- $env:SSL_CERT_FILE = "$env:TMP/ca-bundle.crt"
11
- Write-Host "Using SSL CA list $env:SSL_CERT_FILE" -foreground Green
12
- }
13
- - bundle install
14
- build_script:
15
- - bundle exec rake compile
16
- test_script:
17
- - bundle exec rake travis
18
- environment:
19
- matrix:
20
- - ruby_version: "24-x64"
21
- - ruby_version: "200"
22
- BROKEN_SSL: true
23
- - ruby_version: "200-x64"
24
- BROKEN_SSL: true
25
- - ruby_version: "21"
26
- BROKEN_SSL: true
27
- - ruby_version: "21-x64"
28
- BROKEN_SSL: true
29
- - ruby_version: "22"
30
- BROKEN_SSL: true
31
- - ruby_version: "22-x64"
32
- BROKEN_SSL: true
33
- - ruby_version: "23"
34
- BROKEN_SSL: true
35
- - ruby_version: "23-x64"
36
- BROKEN_SSL: true
37
- - ruby_version: "24"
Binary file