Skip to content

Commit

Permalink
Stub tests that test fallback not-shared functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
kyewei committed Nov 13, 2015
1 parent ace7741 commit bcb187d
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 2 deletions.
19 changes: 17 additions & 2 deletions lib/semian/sysv_shared_memory.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,21 @@ def self.sizeof(type)
size
end

def self.included(base)
def base.do_with_sync(*names)
names.each do |name|
new_name = "#{name}_inner".freeze.to_sym
alias_method new_name, name
private new_name
define_method(name) do |*args, &block|
synchronize do
method(new_name).call(*args, &block)
end
end
end
end
end

def semid
-1
end
Expand All @@ -15,9 +30,9 @@ def shmid
-1
end

def synchronize(&proc)
def synchronize(&block)
if respond_to?(:_synchronize) && @using_shared_memory
return _synchronize(&proc)
return _synchronize(&block)
else
yield if block_given?
end
Expand Down
16 changes: 16 additions & 0 deletions test/sysv_integer_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
require 'test_helper'

class TestSysVInteger < MiniTest::Unit::TestCase
CLASS = ::Semian::SysV::Integer

def setup
@integer = CLASS.new(name: 'TestSysVInteger', permissions: 0660)
@integer.reset
end

def teardown
@integer.destroy
end

include TestSimpleInteger::IntegerTestCases
end
22 changes: 22 additions & 0 deletions test/sysv_sliding_window_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
require 'test_helper'

class TestSysVSlidingWindow < MiniTest::Unit::TestCase
CLASS = ::Semian::SysV::SlidingWindow

def setup
@sliding_window = CLASS.new(max_size: 6,
name: 'TestSysVSlidingWindow',
permissions: 0660)
@sliding_window.clear
end

def teardown
@sliding_window.destroy
end

include TestSimpleSlidingWindow::SlidingWindowTestCases

private

include TestSimpleSlidingWindow::SlidingWindowUtilityMethods
end
35 changes: 35 additions & 0 deletions test/sysv_state_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
require 'test_helper'

class TestSysVState < MiniTest::Unit::TestCase
CLASS = ::Semian::SysV::State

def setup
@state = CLASS.new(name: 'TestSysVState',
permissions: 0660)
@state.reset
end

def teardown
@state.destroy
end

include TestSimpleState::StateTestCases

def test_will_throw_error_when_invalid_symbol_given
# May occur if underlying integer gets into bad state
integer = @state.instance_eval "@integer"
integer.value = 100
assert_raises ArgumentError do
@state.value
end
assert_raises ArgumentError do
@state.open?
end
assert_raises ArgumentError do
@state.half_open?
end
assert_raises ArgumentError do
@state.closed?
end
end
end

0 comments on commit bcb187d

Please sign in to comment.