uuidtools 2.1.1 → 2.2.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.
@@ -1,33 +1,28 @@
1
+ # encoding:utf-8
1
2
  #--
2
- # UUIDTools, Copyright (c) 2005-2008 Bob Aman
3
+ # Copyright (C) 2005-2014 Bob Aman
3
4
  #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
11
8
  #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
9
+ # http://www.apache.org/licenses/LICENSE-2.0
14
10
  #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
22
16
  #++
23
17
 
18
+
24
19
  # Used to prevent the class/module from being loaded more than once
25
- unless defined? UUID::VERSION
26
- class UUID
20
+ unless defined? UUIDTools::VERSION
21
+ module UUIDTools
27
22
  module VERSION #:nodoc:
28
23
  MAJOR = 2
29
- MINOR = 1
30
- TINY = 1
24
+ MINOR = 2
25
+ TINY = 0
31
26
 
32
27
  STRING = [MAJOR, MINOR, TINY].join('.')
33
28
  end
@@ -1,3 +1,5 @@
1
+ $VERBOSE=true
2
+
1
3
  spec_dir = File.expand_path(File.dirname(__FILE__))
2
4
  lib_dir = File.expand_path(File.join(spec_dir, "../lib"))
3
5
 
@@ -1,4 +1,237 @@
1
- require File.join(File.dirname(__FILE__), "../spec_helper.rb")
1
+ require File.expand_path("../../spec_helper.rb", __FILE__)
2
+
3
+ def pending_if_root_required
4
+ if @mac_address == nil
5
+ output = `ifconfig -a 2>&1`
6
+ if output =~ /inet/ &&
7
+ output =~ /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/ &&
8
+ output =~ /Warning: cannot open/
9
+ pending("Cannot get MAC address without root?")
10
+ end
11
+ end
12
+ end
13
+
14
+ # ===========================================================================
15
+ #
16
+ # Samples of ifconfig -a output
17
+ #
18
+ # ===========================================================================
19
+
20
+ #
21
+ # solaris
22
+ #
23
+ solaris_sample = <<EOF
24
+ lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
25
+ inet 127.0.0.1 netmask ff000000
26
+ igb1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
27
+ inet 10.51.0.18 netmask ffffff00 broadcast 10.51.0.255
28
+ ether 0:21:28:fa:c6:65
29
+ igb2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
30
+ inet 10.99.0.12 netmask ffffff00 broadcast 10.99.0.255
31
+ ether 0:21:28:fa:c6:66
32
+ EOF
33
+
34
+ solaris_mac = "00:21:28:fa:c6:65"
35
+
36
+ #
37
+ # windows
38
+ #
39
+ windows_sample = <<EOF
40
+ Windows IP Configuration
41
+
42
+ Host Name . . . . . . . . . . . . : OFFICE
43
+ Primary Dns Suffix . . . . . . . :
44
+ Node Type . . . . . . . . . . . . : Unknown
45
+ IP Routing Enabled. . . . . . . . : No
46
+ WINS Proxy Enabled. . . . . . . . : No
47
+
48
+ Ethernet adapter Local Area Connection:
49
+
50
+ Connection-specific DNS Suffix . :
51
+ Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
52
+ Physical Address. . . . . . . . . : E0-CB-4E-5D-BC-E9
53
+ Dhcp Enabled. . . . . . . . . . . : No
54
+ IP Address. . . . . . . . . . . . : 192.168.1.10
55
+ Subnet Mask . . . . . . . . . . . : 255.255.255.0
56
+ Default Gateway . . . . . . . . . : 192.168.1.1
57
+ DNS Servers . . . . . . . . . . . : 192.168.1.1
58
+ 4.2.2.1
59
+ EOF
60
+
61
+ windows_mac = "e0:cb:4e:5d:bc:e9"
62
+
63
+ #
64
+ # linux
65
+ #
66
+ linux_sample = <<EOF
67
+ eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
68
+ inet 10.16.187.71 netmask 255.255.252.0 broadcast 10.16.187.255
69
+ inet6 fe80::226:2dff:fef6:b94 prefixlen 64 scopeid 0x20<link>
70
+ ether 00:26:2d:f6:0b:94 txqueuelen 1000 (Ethernet)
71
+ RX packets 172074 bytes 82784684 (78.9 MiB)
72
+ RX errors 0 dropped 0 overruns 0 frame 0
73
+ TX packets 99075 bytes 23551085 (22.4 MiB)
74
+ TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
75
+ device interrupt 20 memory 0xf2600000-f2620000
76
+
77
+ lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
78
+ inet 127.0.0.1 netmask 255.0.0.0
79
+ inet6 ::1 prefixlen 128 scopeid 0x10<host>
80
+ loop txqueuelen 0 (Local Loopback)
81
+ RX packets 20 bytes 2148 (2.0 KiB)
82
+ RX errors 0 dropped 0 overruns 0 frame 0
83
+ TX packets 20 bytes 2148 (2.0 KiB)
84
+ TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
85
+ EOF
86
+
87
+ linux_mac = "00:26:2d:f6:0b:94"
88
+
89
+ #
90
+ # alternate linux
91
+ #
92
+ linux_sample_2 = <<EOF
93
+ eth0 Link encap:Ethernet HWaddr 00:80:C8:F8:4A:51
94
+ inet addr:192.168.99.35 Bcast:192.168.99.255 Mask:255.255.255.0
95
+ UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
96
+ RX packets:190312 errors:0 dropped:0 overruns:0 frame:0
97
+ TX packets:86955 errors:0 dropped:0 overruns:0 carrier:0
98
+ collisions:0 txqueuelen:100
99
+ RX bytes:30701229 (29.2 Mb) TX bytes:7878951 (7.5 Mb)
100
+ Interrupt:9 Base address:0x5000
101
+
102
+ lo Link encap:Local Loopback
103
+ inet addr:127.0.0.1 Mask:255.0.0.0
104
+ UP LOOPBACK RUNNING MTU:16436 Metric:1
105
+ RX packets:306 errors:0 dropped:0 overruns:0 frame:0
106
+ TX packets:306 errors:0 dropped:0 overruns:0 carrier:0
107
+ collisions:0 txqueuelen:0
108
+ RX bytes:29504 (28.8 Kb) TX bytes:29504 (28.8 Kb)
109
+ EOF
110
+
111
+ linux_mac_2 = "00:80:c8:f8:4a:51"
112
+
113
+ linux_ip_sample = <<EOF
114
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
115
+ link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
116
+ inet 127.0.0.1/8 scope host lo
117
+ inet6 ::1/128 scope host
118
+ valid_lft forever preferred_lft forever
119
+ 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
120
+ link/ether 00:26:2d:f6:0b:94 brd ff:ff:ff:ff:ff:ff
121
+ inet 10.16.187.125/22 brd 10.16.187.255 scope global eth0
122
+ inet6 fe80::226:2dff:fef6:b94/64 scope link
123
+ valid_lft forever preferred_lft forever
124
+ 3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN qlen 1000
125
+ link/ether 00:26:c6:c6:1a:b4 brd ff:ff:ff:ff:ff:ff
126
+ 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
127
+ link/ether 52:54:00:e3:cf:d3 brd ff:ff:ff:ff:ff:ff
128
+ inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
129
+ 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
130
+ link/ether 52:54:00:e3:cf:d3 brd ff:ff:ff:ff:ff:ff
131
+ EOF
132
+
133
+ linux_ip_mac = "00:26:2d:f6:0b:94"
134
+
135
+ #
136
+ # freebsd
137
+ #
138
+ freebsd_sample = <<EOF
139
+ igb0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
140
+ options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
141
+ ether 00:25:90:2b:81:32
142
+ inet6 fe80::225:90ff:fe2b:8132%igb0 prefixlen 64 scopeid 0x1
143
+ nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
144
+ media: Ethernet autoselect (1000baseT <full-duplex>)
145
+ status: active
146
+ igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
147
+ options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
148
+ ether 00:25:90:2b:81:32
149
+ inet6 fe80::225:90ff:fe2b:8133%igb1 prefixlen 64 scopeid 0x2
150
+ nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
151
+ media: Ethernet autoselect (1000baseT <full-duplex>)
152
+ EOF
153
+
154
+ freebsd_mac = "00:25:90:2b:81:32"
155
+
156
+ #
157
+ # openbsd
158
+ #
159
+ openbsd_sample = <<EOF
160
+ lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33200
161
+ priority: 0
162
+ groups: lo
163
+ inet 127.0.0.1 netmask 0xff000000
164
+ inet6 ::1 prefixlen 128
165
+ inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
166
+ vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
167
+ lladdr 00:0d:b9:28:ab:44
168
+ priority: 0
169
+ media: Ethernet autoselect (100baseTX full-duplex)
170
+ status: active
171
+ inet 192.168.7.2 netmask 0xffffff00 broadcast 192.168.7.255
172
+ inet6 fe80::20d:b9ff:fe28:ab44%vr0 prefixlen 64 scopeid 0x1
173
+ EOF
174
+
175
+ openbsd_mac = "00:0d:b9:28:ab:44"
176
+
177
+ #
178
+ # MacOS 10
179
+ #
180
+ macos_sample = <<EOF
181
+ lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
182
+ options=3<RXCSUM,TXCSUM>
183
+ inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
184
+ inet 127.0.0.1 netmask 0xff000000
185
+ inet6 ::1 prefixlen 128
186
+ gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
187
+ stf0: flags=0<> mtu 1280
188
+ en0: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
189
+ options=27<RXCSUM,TXCSUM,VLAN_MTU,TSO4>
190
+ ether 58:b0:35:a4:cd:0c
191
+ inet6 fe80::5ab0:35ff:fea4:cd0c%en0 prefixlen 64 scopeid 0x4
192
+ inet 192.168.142.136 netmask 0xfffffff0 broadcast 192.168.142.143
193
+ media: autoselect (1000baseT <full-duplex,flow-control>)
194
+ status: active
195
+ en1: flags=8823<UP,BROADCAST,SMART,SIMPLEX,MULTICAST> mtu 1500
196
+ ether d8:30:62:51:dd:3d
197
+ media: autoselect (<unknown type>)
198
+ status: inactive
199
+ p2p0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 2304
200
+ ether 0a:30:62:51:dd:3d
201
+ media: autoselect
202
+ status: inactive
203
+ EOF
204
+
205
+ macos_mac = "58:b0:35:a4:cd:0c"
206
+
207
+ # Gather the samples and MAC addresses for simple access
208
+ samples = {
209
+ :macos => macos_sample,
210
+ :windows => windows_sample,
211
+ :solaris => solaris_sample,
212
+ :freebsd => freebsd_sample,
213
+ :openbsd => openbsd_sample,
214
+ :linux => linux_sample,
215
+ :linux2 => linux_sample_2,
216
+ :linuxip => linux_ip_sample
217
+ }
218
+
219
+ macs = {
220
+ :macos => macos_mac,
221
+ :windows => windows_mac,
222
+ :solaris => solaris_mac,
223
+ :freebsd => freebsd_mac,
224
+ :openbsd => openbsd_mac,
225
+ :linux => linux_mac,
226
+ :linux2 => linux_mac_2,
227
+ :linuxip => linux_ip_mac
228
+ }
229
+
230
+ # --------------------------------------------------------------------------
231
+ #
232
+ # TESTS
233
+ #
234
+ # --------------------------------------------------------------------------
2
235
 
3
236
  describe UUIDTools::UUID, "when obtaining a MAC address" do
4
237
  before do
@@ -6,10 +239,216 @@ describe UUIDTools::UUID, "when obtaining a MAC address" do
6
239
  end
7
240
 
8
241
  it "should obtain a MAC address" do
9
- @mac_address.should_not be_nil
242
+ pending_if_root_required()
243
+ expect(@mac_address).not_to be_nil
10
244
  end
11
245
 
12
246
  it "should cache the MAC address" do
13
- @mac_address.object_id.should == UUIDTools::UUID.mac_address.object_id
247
+ pending_if_root_required()
248
+ expect(@mac_address.object_id).to eql(UUIDTools::UUID.mac_address.object_id)
249
+ end
250
+ end
251
+
252
+ describe UUIDTools::UUID, "before obtaining a MAC address" do
253
+
254
+ before do
255
+ module UUIDTools
256
+ class UUID
257
+ remove_class_variable(:@@mac_address) if defined?(@@mac_address)
258
+ end
259
+ end
260
+ end
261
+
262
+ it "should parse windows MAC addresses" do
263
+ # mock ifconfig() to return the windows sample
264
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:windows] }
265
+ mac = UUIDTools::UUID.mac_address
266
+ expect(mac).to eql(macs[:windows])
267
+ end
268
+
269
+ it "should parse solaris MAC addresses" do
270
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:solaris] }
271
+ mac = UUIDTools::UUID.mac_address
272
+ expect(mac).to eql(macs[:solaris])
273
+ end
274
+
275
+ it "should parse freebsd MAC addresses" do
276
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:freebsd] }
277
+ mac = UUIDTools::UUID.mac_address
278
+ expect(mac).to eql(macs[:freebsd])
279
+ end
280
+
281
+ it "should parse openbsd MAC addresses" do
282
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:openbsd] }
283
+ mac = UUIDTools::UUID.mac_address
284
+ expect(mac).to eql(macs[:openbsd])
285
+ end
286
+
287
+ it "should parse linux MAC addresses with ifconfig" do
288
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:linux] }
289
+ mac = UUIDTools::UUID.mac_address
290
+ expect(mac).to eql(macs[:linux])
291
+ end
292
+
293
+ it "should parse a linux HWaddr address with ifconfig" do
294
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:linux2] }
295
+ mac = UUIDTools::UUID.mac_address
296
+ expect(mac).to eql(macs[:linux2])
297
+ end
298
+
299
+ it "should parse macos MAC addresses with ifconfig" do
300
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:macos] }
301
+ mac = UUIDTools::UUID.mac_address
302
+ expect(mac).to eql(macs[:macos])
303
+ end
304
+
305
+ it "should parse linux MAC addresses with ip" do
306
+ allow(UUIDTools::UUID).to receive(:ifconfig) { samples[:linuxip] }
307
+ mac = UUIDTools::UUID.mac_address
308
+ expect(mac).to eql(macs[:linuxip])
309
+ end
310
+
311
+ it "should identify the default os classes" do
312
+ module RbConfig
313
+ CONFIG['target_os'] = nil
314
+ end
315
+
316
+ os_class = UUIDTools::UUID.os_class
317
+ expect(os_class).to be_nil
318
+
319
+ RbConfig::CONFIG['target_os'] = 'linux'
320
+ os_class = UUIDTools::UUID.os_class
321
+ expect(os_class).to be_nil
322
+
323
+ RbConfig::CONFIG['target_os'] = 'darwin'
324
+ os_class = UUIDTools::UUID.os_class
325
+ expect(os_class).to be_nil
326
+ end
327
+
328
+ it "should identify the solaris os classes" do
329
+ module RbConfig
330
+ CONFIG['target_os'] = "solaris"
331
+ end
332
+
333
+ os_class = UUIDTools::UUID.os_class
334
+ expect(os_class).to eql(:solaris)
335
+ end
336
+
337
+ it "should identify the BSD os classes" do
338
+ module RbConfig
339
+ CONFIG['target_os'] = "netbsd"
340
+ end
341
+
342
+ os_class = UUIDTools::UUID.os_class
343
+ expect(os_class).to eql(:netbsd)
344
+
345
+ RbConfig::CONFIG['target_os'] = "openbsd"
346
+ os_class = UUIDTools::UUID.os_class
347
+ expect(os_class).to eql(:openbsd)
348
+
349
+ end
350
+
351
+ it "should identify the Windows os classes" do
352
+ module RbConfig
353
+ CONFIG['target_os'] = "win"
354
+ end
355
+ os_class = UUIDTools::UUID.os_class
356
+ expect(os_class).to eql(:windows)
357
+
358
+ RbConfig::CONFIG['target_os'] = "w32"
359
+ os_class = UUIDTools::UUID.os_class
360
+ expect(os_class).to eql(:windows)
361
+
362
+ RbConfig::CONFIG['target_os'] = "darwin"
363
+ os_class = UUIDTools::UUID.os_class
364
+ expect(os_class).to be_nil
365
+
366
+ end
367
+
368
+ it "should find the ifconfig program" do
369
+ save_ifconfig_command = UUIDTools::UUID.ifconfig_command
370
+ save_ifconfig_path = UUIDTools::UUID.ifconfig_path_default
371
+
372
+ # this should always exist
373
+ UUIDTools::UUID.ifconfig_command="sh"
374
+ UUIDTools::UUID.ifconfig_path_default="notfound"
375
+ ifconfig_path = UUIDTools::UUID.ifconfig_path
376
+ # expect(ifconfig_path).to eql("/usr/bin/sh")
377
+
378
+ # Test what happens if it does not
379
+ UUIDTools::UUID.ifconfig_command="nosuchthing"
380
+ UUIDTools::UUID.ifconfig_path_default="default"
381
+
382
+ # ifconfig_path checks if the IFCONFIG_PATH command file exists
383
+ allow(File).to receive(:exist?) { true }
384
+
385
+ ifconfig_path = UUIDTools::UUID.ifconfig_path
386
+ # expect(ifconfig_path).to eql("default")
387
+
388
+ UUIDTools::UUID.ifconfig_command=save_ifconfig_command
389
+ UUIDTools::UUID.ifconfig_path_default=save_ifconfig_path
390
+
391
+ end
392
+
393
+ it "should find the ip program" do
394
+ save_ip_command = UUIDTools::UUID.ip_command
395
+ save_ip_path = UUIDTools::UUID.ip_path_default
396
+
397
+ # this should always exist
398
+ UUIDTools::UUID.ip_command="sh"
399
+ UUIDTools::UUID.ip_path_default="notfound"
400
+ ip_path = UUIDTools::UUID.ip_path
401
+ # expect(ip_path).to eql("/usr/bin/sh")
402
+
403
+ # Test what happens if it does not
404
+ UUIDTools::UUID.ip_command="nosuchthing"
405
+ UUIDTools::UUID.ip_path_default="default"
406
+
407
+ # ifconfig_path checks if the IP_PATH command file exists
408
+ allow(File).to receive(:exist?) { true }
409
+
410
+ ifconfig_path = UUIDTools::UUID.ip_path
411
+ # expect(ifconfig_path).to eql("default")
412
+
413
+ UUIDTools::UUID.ip_command=save_ip_command
414
+ UUIDTools::UUID.ip_path_default=save_ip_path
415
+ end
416
+
417
+ it "should be able to parse windows ipconfig output" do
418
+ mac = UUIDTools::UUID.first_mac samples[:windows]
419
+ expect(mac).to eql(macs[:windows])
420
+ end
421
+
422
+ it "should be able to parse solaris ifconfig output" do
423
+ mac = UUIDTools::UUID.first_mac samples[:solaris]
424
+ expect(mac).to eql(macs[:solaris])
425
+ end
426
+
427
+ it "should be able to parse freebsd ifconfig output" do
428
+ mac = UUIDTools::UUID.first_mac samples[:freebsd]
429
+ expect(mac).to eql(macs[:freebsd])
430
+ end
431
+
432
+ it "should be able to parse openbsd ifconfig output" do
433
+ mac = UUIDTools::UUID.first_mac samples[:openbsd]
434
+ expect(mac).to eql(macs[:openbsd])
435
+ end
436
+
437
+ it "should be able to parse linux ifconfig output" do
438
+ mac = UUIDTools::UUID.first_mac samples[:linux]
439
+ expect(mac).to eql(macs[:linux])
440
+
441
+ mac2 = UUIDTools::UUID.first_mac samples[:linux2]
442
+ expect(mac2).to eql(macs[:linux2])
443
+ end
444
+
445
+ it "should be able to parse macos ifconfig output" do
446
+ mac = UUIDTools::UUID.first_mac samples[:macos]
447
+ expect(mac).to eql(macs[:macos])
448
+ end
449
+
450
+ it "should be able to parse ip addr output" do
451
+ mac = UUIDTools::UUID.first_mac samples[:linuxip]
452
+ expect(mac).to eql(macs[:linuxip])
14
453
  end
15
454
  end