test/node/test_farmers.rb in zold-0.16.30 vs test/node/test_farmers.rb in zold-0.17.0
- old
+ new
@@ -23,55 +23,68 @@
require 'minitest/autorun'
require 'time'
require 'zold/score'
require_relative '../test__helper'
require_relative '../../lib/zold/node/farmers'
+require_relative '../../lib/zold/verbose_thread'
class FarmersTest < Zold::Test
def test_calculates_next_score
before = Zold::Score.new(host: 'some-host', port: 9999, invoice: 'NOPREFIX4@ffffffffffffffff', strength: 3)
- farmer = Zold::Farmers::Spawn.new(log: test_log)
- after = farmer.up(before)
- assert_equal(1, after.value)
- assert(!after.expired?)
- assert_equal('some-host', after.host)
- assert_equal(9999, after.port)
+ [Zold::Farmers::Plain, Zold::Farmers::Spawn, Zold::Farmers::Fork].each do |farmer_class|
+ farmer = farmer_class.new(log: test_log)
+ after = farmer.up(before)
+ assert_equal(1, after.value)
+ assert(!after.expired?)
+ assert_equal('some-host', after.host)
+ assert_equal(9999, after.port)
+ end
end
def test_calculates_large_score
log = TestLogger.new(test_log)
thread = Thread.start do
- farmer = Zold::Farmers::Spawn.new(log: log)
- farmer.up(Zold::Score.new(host: 'a', port: 1, invoice: 'NOPREFIX4@ffffffffffffffff', strength: 20))
+ [Zold::Farmers::Spawn, Zold::Farmers::Fork].each do |farmer_class|
+ farmer = farmer_class.new(log: log)
+ farmer.up(Zold::Score.new(host: 'a', port: 1, invoice: 'NOPREFIX4@ffffffffffffffff', strength: 20))
+ end
end
assert_wait { !log.msgs.find { |m| m.include?('Scoring started') }.nil? }
thread.kill
thread.join
assert(log.msgs.find { |m| m.include?('killed') })
end
- def test_calculates_next_score_plain
- before = Zold::Score.new(host: 'some-host', port: 9999, invoice: 'NOPREFIX4@ffffffffffffffff', strength: 1)
- farmer = Zold::Farmers::Plain.new
- after = farmer.up(before)
- assert_equal(1, after.value)
- assert(!after.expired?)
- assert_equal('some-host', after.host)
- assert_equal(9999, after.port)
+ def test_kills_farmer
+ [Zold::Farmers::Plain, Zold::Farmers::Spawn, Zold::Farmers::Fork].each do |type|
+ farmer = type.new(log: test_log)
+ thread = Thread.start do
+ Zold::VerboseThread.new(test_log).run do
+ farmer.up(Zold::Score.new(host: 'some-host', invoice: 'NOPREFIX4@ffffffffffffffff', strength: 32))
+ end
+ end
+ sleep(1)
+ thread.kill
+ thread.join
+ end
end
def test_avoid_duplicate_processes
log = TestLogger.new(test_log)
time = Time.now
thread = Thread.start do
- farmer = Zold::Farmers::Spawn.new(log: log)
- farmer.up(Zold::Score.new(time: time, host: 'a', port: 1, invoice: 'prefixone@ffffffffffffffff', strength: 20))
+ [Zold::Farmers::Spawn, Zold::Farmers::Fork].each do |farmer_class|
+ farmer = farmer_class.new(log: log)
+ farmer.up(Zold::Score.new(time: time, host: 'a', port: 1, invoice: 'prefixone@ffffffffffffffff', strength: 20))
+ end
end
assert_wait { !log.msgs.find { |m| m.include?('Scoring started') }.nil? }
assert_raises do
- Zold::Farmers::Spawn.new(log: log).up(
- Zold::Score.new(time: time, host: 'a', port: 1, invoice: 'prefixtwo@ffffffffffffffff', strength: 20)
- )
+ [Zold::Farmers::Spawn, Zold::Farmers::Fork].each do |farmer_class|
+ farmer_class.new(log: log).up(
+ Zold::Score.new(time: time, host: 'a', port: 1, invoice: 'prefixtwo@ffffffffffffffff', strength: 20)
+ )
+ end
end
thread.kill
thread.join
end
end