diff --git a/lib/dynamo-local-ruby/dynamo_db_local.rb b/lib/dynamo-local-ruby/dynamo_db_local.rb index 1cf6f02..9c6f75d 100644 --- a/lib/dynamo-local-ruby/dynamo_db_local.rb +++ b/lib/dynamo-local-ruby/dynamo_db_local.rb @@ -22,6 +22,7 @@ def up pid = spawn("java -Djava.library.path=#{lib_path} -jar #{jar_path} "\ "-sharedDb -inMemory -port #{PORT}") @instance = DynamoDBLocal.new(pid) + at_exit { teardown(pid) } test_connection @@ -42,12 +43,18 @@ def test_connection end end end + + private + def teardown(pid) + Process.kill('SIGINT', pid) + Process.waitpid2(pid) + rescue Errno::ESRCH + end end def down return unless @pid - Process.kill('SIGINT', @pid) - Process.waitpid2(@pid) + self.class.teardown(@pid) @pid = nil end end diff --git a/spec/dynamo-local-ruby/dynamo_db_local_spec.rb b/spec/dynamo-local-ruby/dynamo_db_local_spec.rb index 030a618..09c5d59 100644 --- a/spec/dynamo-local-ruby/dynamo_db_local_spec.rb +++ b/spec/dynamo-local-ruby/dynamo_db_local_spec.rb @@ -9,6 +9,10 @@ end describe '.up' do + describe 'exit teardown' do + + end + after(:each) do described_class.down end