aboutsummaryrefslogtreecommitdiffstats
path: root/spec/mspec/lib/mspec/guards/block_device.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/mspec/lib/mspec/guards/block_device.rb')
-rw-r--r--spec/mspec/lib/mspec/guards/block_device.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/spec/mspec/lib/mspec/guards/block_device.rb b/spec/mspec/lib/mspec/guards/block_device.rb
new file mode 100644
index 0000000000..327f6e564e
--- /dev/null
+++ b/spec/mspec/lib/mspec/guards/block_device.rb
@@ -0,0 +1,18 @@
+require 'mspec/guards/guard'
+
+class BlockDeviceGuard < SpecGuard
+ def match?
+ platform_is_not :freebsd, :windows, :opal do
+ block = `find /dev /devices -type b 2> /dev/null`
+ return !(block.nil? || block.empty?)
+ end
+
+ false
+ end
+end
+
+class Object
+ def with_block_device(&block)
+ BlockDeviceGuard.new.run_if(:with_block_device, &block)
+ end
+end