test/test_skynet_manager.rb in skynet-0.9.2 vs test/test_skynet_manager.rb in skynet-0.9.3
- old
+ new
@@ -1,29 +1,34 @@
require File.dirname(__FILE__) + '/test_helper.rb'
+require 'functor'
class SkynetManagerTest < Test::Unit::TestCase
PIDS = []
PIDFILE = []
def setup
+ connection = ActiveRecord::Base.establish_connection(
+ :adapter => "mysql",
+ :host => "localhost",
+ :username => "root",
+ :password => "",
+ :database => "skynet_test"
+ )
+
+ ActiveRecord::Base.connection.reconnect!
+
Skynet.configure(
:ENABLE => false,
# :SKYNET_PIDS_FILE => File.expand_path("#{RAILS_ROOT}/log/skynet_#{RAILS_ENV}.pids"),
:SKYNET_LOG_FILE => STDOUT,
:SKYNET_LOG_LEVEL => 4,
:MESSAGE_QUEUE_ADAPTER => "Skynet::MessageQueueAdapter::Mysql",
:MYSQL_TEMPERATURE_CHANGE_SLEEP => 1,
- :MYSQL_NEXT_TASK_TIMEOUT => 1
+ :MYSQL_NEXT_TASK_TIMEOUT => 1,
+ :MYSQL_QUEUE_DATABASE => nil
)
- ActiveRecord::Base.establish_connection(
- :adapter => "mysql",
- :host => "localhost",
- :username => "root",
- :password => "",
- :database => "skynet_test"
- )
mq.clear_outstanding_tasks
mq.clear_worker_status
@pids = []
@@ -60,10 +65,20 @@
worker_queue.delete_if {|w|w.process_id == options[:process_id] }.first
end
pids = @pids
hostname = @hostname
- @manager.define_method(:fork) do
+ Skynet.extend(Functor)
+ Skynet.define_method(:close_files) do
+ true
+ end
+
+ Skynet.define_method(:close_console) do
+ true
+ end
+
+
+ Skynet.define_method(:fork_and_exec) do |cmd|
newpid = pids.size + 1
pids << newpid
worker_info = {
:hostname => hostname,
:process_id => newpid,