xli-dtr 0.0.5 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +7 -0
- data/README.rdoc +208 -0
- data/Rakefile +54 -63
- data/TODO +7 -16
- data/bin/dtr +26 -20
- data/dtr.gemspec +7 -10
- data/lib/dtr/agent/brain.rb +13 -22
- data/lib/dtr/agent/herald.rb +24 -14
- data/lib/dtr/agent/runner.rb +22 -35
- data/lib/dtr/agent/sync_codebase.rb +1 -1
- data/lib/dtr/agent/sync_logger.rb +38 -8
- data/lib/dtr/agent/test_case.rb +53 -0
- data/lib/dtr/agent/test_unit.rb +3 -5
- data/lib/dtr/agent/worker.rb +29 -32
- data/lib/dtr/agent/working_env_ext.rb +4 -2
- data/lib/dtr/agent.rb +2 -1
- data/lib/dtr/facade.rb +65 -0
- data/lib/dtr/master.rb +3 -3
- data/lib/dtr/monitor.rb +69 -11
- data/lib/dtr/raketasks.rb +91 -19
- data/lib/dtr/shared/adapter.rb +29 -26
- data/lib/dtr/shared/configuration.rb +39 -11
- data/lib/dtr/shared/message_decorator.rb +1 -1
- data/lib/dtr/shared/ruby_ext.rb +1 -25
- data/lib/dtr/shared/service/agent.rb +5 -1
- data/lib/dtr/shared/service/file.rb +1 -1
- data/lib/dtr/shared/service/rinda.rb +11 -3
- data/lib/dtr/shared/service/runner.rb +6 -5
- data/lib/dtr/shared/service/working_env.rb +1 -1
- data/lib/dtr/shared/service.rb +1 -1
- data/lib/dtr/shared/sync_codebase/{codebase.rb → copiable_package.rb} +13 -5
- data/lib/dtr/shared/sync_codebase/master_ext.rb +6 -18
- data/lib/dtr/shared/sync_codebase/package.rb +16 -2
- data/lib/dtr/shared/sync_codebase/sync_service.rb +7 -12
- data/lib/dtr/shared/sync_codebase.rb +2 -2
- data/lib/dtr/shared/sync_logger.rb +6 -14
- data/lib/dtr/shared/utils/cmd.rb +5 -5
- data/lib/dtr/shared/utils/env_store.rb +1 -1
- data/lib/dtr/shared/utils/logger.rb +33 -17
- data/lib/dtr/shared/utils.rb +1 -1
- data/lib/dtr/shared/working_env.rb +2 -2
- data/lib/dtr/shared.rb +1 -1
- data/lib/dtr/test_unit/drb_test_runner.rb +5 -14
- data/lib/dtr/test_unit/injection.rb +1 -2
- data/lib/dtr/test_unit/test_case_injection.rb +13 -13
- data/lib/dtr/test_unit/test_suite_injection.rb +24 -0
- data/lib/dtr/test_unit/testrunnermediator_injection.rb +11 -11
- data/lib/dtr/test_unit/thread_safe_test_result.rb +1 -3
- data/lib/dtr/test_unit/worker_club.rb +7 -7
- data/lib/dtr/test_unit.rb +2 -1
- data/lib/dtr/test_unit_injection.rb +1 -1
- data/lib/dtr.rb +5 -36
- data/test/acceptance/agent_working_env_test.rb +28 -34
- data/test/acceptance/dtr_package_task_test.rb +13 -3
- data/test/acceptance/general_test.rb +139 -83
- data/test/acceptance/raketasks_test.rb +23 -0
- data/test/acceptance/sync_codebase_test.rb +12 -13
- data/test/acceptance/sync_logger_test.rb +12 -21
- data/test/agent_helper.rb +8 -10
- data/test/logger_stub.rb +4 -0
- data/test/test_helper.rb +33 -5
- data/test/unit/adapter_test.rb +58 -16
- data/test/unit/configuration_test.rb +44 -0
- data/test/unit/facade_test.rb +41 -0
- data/test/unit/logger_test.rb +72 -0
- data/test/unit/test_unit_test.rb +0 -21
- data/testdata/Rakefile +1 -5
- data/testdata/hacked_run_method_test_case.rb +15 -0
- data/testdata/raketasks/Rakefile +7 -0
- data/testdata/raketasks/success_test_case.rb +6 -0
- data/testdata/sleep_3_secs_test_case.rb +9 -0
- data/testdata/{should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process → verify_dir_pwd}/verify_dir_pwd_test_case.rb +1 -1
- metadata +33 -13
- data/README +0 -182
- data/install.rb +0 -88
- /data/testdata/{should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process → verify_dir_pwd}/Rakefile +0 -0
data/test/unit/adapter_test.rb
CHANGED
@@ -2,18 +2,20 @@ require File.dirname(__FILE__) + '/../test_helper'
|
|
2
2
|
|
3
3
|
include DTR::AgentHelper
|
4
4
|
|
5
|
-
class
|
5
|
+
class AdapterTest < Test::Unit::TestCase
|
6
6
|
include DTR::Adapter::Master
|
7
7
|
include DTR::Adapter::Follower
|
8
8
|
|
9
9
|
def setup
|
10
|
+
@host_ip = nil
|
10
11
|
@timeout = false
|
11
12
|
@messages = []
|
12
|
-
DTR.
|
13
|
+
DTR.logger('test.log')
|
14
|
+
DTR.configuration.follower_listen_heartbeat_timeout = 1
|
13
15
|
end
|
14
16
|
|
15
17
|
def teardown
|
16
|
-
|
18
|
+
clear_configuration
|
17
19
|
end
|
18
20
|
|
19
21
|
def test_should_be_sleep_if_never_wakeup
|
@@ -28,12 +30,12 @@ class AdapterTests < Test::Unit::TestCase
|
|
28
30
|
|
29
31
|
def test_wakeup_by_broadcast_message
|
30
32
|
assert !wakeup?
|
31
|
-
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE}
|
33
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 4567")
|
32
34
|
assert wakeup?
|
33
35
|
end
|
34
36
|
|
35
37
|
def test_should_be_sleep_after_hypnotized_waked_up_agents
|
36
|
-
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE}
|
38
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 4567")
|
37
39
|
assert wakeup?
|
38
40
|
hypnotize_agents
|
39
41
|
assert sleep?
|
@@ -56,27 +58,31 @@ class AdapterTests < Test::Unit::TestCase
|
|
56
58
|
end
|
57
59
|
|
58
60
|
def test_should_not_be_sleep_when_sleep_message_is_sent_from_different_port_with_wakeup_message
|
59
|
-
|
61
|
+
@host_ip = '10.18.1.1'
|
62
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
60
63
|
assert wakeup?
|
61
64
|
#sleep message should be ignored
|
62
|
-
broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE}
|
65
|
+
broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE} 4567")
|
63
66
|
#wakup message for keep it wakeup
|
64
|
-
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE}
|
67
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
65
68
|
assert !sleep?
|
66
69
|
end
|
67
70
|
|
68
71
|
def test_should_not_be_sleep_when_sleep_message_is_sent_from_different_hostname_with_wakeup_message
|
69
|
-
|
72
|
+
@host_ip = '10.18.1.1'
|
73
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
70
74
|
assert wakeup?
|
71
75
|
#sleep message should be ignored
|
72
|
-
|
76
|
+
@host_ip = '192.168.1.1'
|
77
|
+
broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE} 1234")
|
73
78
|
#wakup message for keep it wakeup
|
74
|
-
|
79
|
+
@host_ip = '10.18.1.1'
|
80
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
75
81
|
assert !sleep?
|
76
82
|
end
|
77
83
|
|
78
84
|
def test_should_update_rinda_server_port_parsed_from_wakeup_message
|
79
|
-
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE}
|
85
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 4567")
|
80
86
|
assert wakeup?
|
81
87
|
assert_equal 4567, DTR.configuration.rinda_server_port
|
82
88
|
end
|
@@ -89,19 +95,55 @@ class AdapterTests < Test::Unit::TestCase
|
|
89
95
|
end
|
90
96
|
|
91
97
|
def test_should_be_sleep_when_timeout_on_listen_to_host_sending_wakeup_message
|
92
|
-
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE}
|
98
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
93
99
|
assert wakeup?
|
94
|
-
|
100
|
+
@host_ip = 'dtr.remote'
|
101
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
95
102
|
sleep(2)
|
96
103
|
assert sleep?
|
97
104
|
end
|
98
105
|
|
106
|
+
def test_should_match_group_configured_when_receive_wakeup_cmd
|
107
|
+
DTR.configuration.group = 'mingle'
|
108
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
109
|
+
assert !wakeup?
|
110
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234 mingle")
|
111
|
+
assert wakeup?
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_should_not_need_match_group_configured_when_receive_sleep_cmd
|
115
|
+
DTR.configuration.group = 'mingle'
|
116
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234 mingle")
|
117
|
+
assert wakeup?
|
118
|
+
broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE} 1234")
|
119
|
+
assert sleep?
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_do_wakeup_agents_should_include_group_configured
|
123
|
+
DTR.configuration.group = 'mingle'
|
124
|
+
do_wakeup_agents
|
125
|
+
assert wakeup?
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_should_reset_broadcast_configuration_as_master_process_ip
|
129
|
+
@host_ip = '10.18.1.1'
|
130
|
+
broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
|
131
|
+
assert wakeup?
|
132
|
+
assert_equal ['10.18.1.1'], DTR.configuration.broadcast_list
|
133
|
+
end
|
134
|
+
|
99
135
|
def listen
|
100
136
|
raise Timeout::Error.new('timeout') if @timeout
|
101
|
-
@messages.shift.to_s.split
|
137
|
+
cmd, port, group, host_ip = @messages.shift.to_s.split
|
138
|
+
if host_ip.nil?
|
139
|
+
host_ip = group
|
140
|
+
group = nil
|
141
|
+
end
|
142
|
+
[cmd, "#{host_ip}:#{port}", group]
|
102
143
|
end
|
103
144
|
|
104
145
|
def broadcast(it, msg)
|
105
|
-
@
|
146
|
+
host_ip = @host_ip || Socket.gethostname
|
147
|
+
@messages << "#{msg} #{host_ip}"
|
106
148
|
end
|
107
149
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
class ConfigurationTest < Test::Unit::TestCase
|
4
|
+
def teardown
|
5
|
+
clear_configuration
|
6
|
+
end
|
7
|
+
|
8
|
+
def test_should_not_save_rinda_server_port
|
9
|
+
DTR.configuration.rinda_server_port = '3456'
|
10
|
+
assert_equal '3456', DTR.configuration.rinda_server_port
|
11
|
+
assert_nil DTR::EnvStore.new[:rinda_server_port]
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_group_defualt_is_dangerous_group
|
15
|
+
assert_nil DTR.configuration.group
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_group
|
19
|
+
DTR.configuration.group = 'mingle'
|
20
|
+
assert_equal 'mingle', DTR.configuration.group
|
21
|
+
DTR.configuration.save
|
22
|
+
assert_equal 'mingle', DTR::EnvStore.new[:group]
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_should_save_as_nil_when_group_is_blank
|
26
|
+
DTR.configuration.group = ''
|
27
|
+
assert_nil DTR.configuration.group
|
28
|
+
DTR.configuration.save
|
29
|
+
assert_nil DTR::EnvStore.new[:group]
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_shoul_convert_space_in_group_name_to_underscore
|
33
|
+
DTR.configuration.group = 'mingle group'
|
34
|
+
assert_equal 'mingle_group', DTR.configuration.group
|
35
|
+
DTR.configuration.save
|
36
|
+
assert_equal 'mingle_group', DTR::EnvStore.new[:group]
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_load
|
40
|
+
DTR::EnvStore.new[:group] = 'new group'
|
41
|
+
DTR.configuration.load
|
42
|
+
assert_equal 'new group', DTR.configuration.group
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
require 'dtr/facade'
|
3
|
+
|
4
|
+
class FacadeTest < Test::Unit::TestCase
|
5
|
+
include DTR::Facade
|
6
|
+
|
7
|
+
def teardown
|
8
|
+
clear_configuration
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_lib_path
|
12
|
+
expected = File.expand_path(File.dirname(__FILE__) + '/../../lib')
|
13
|
+
assert_equal expected, lib_path
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_save_broadcast_list
|
17
|
+
self.broadcast_list = ['10.18.255.255']
|
18
|
+
assert_equal ['10.18.255.255'], DTR::EnvStore.new[:broadcast_list]
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_save_group
|
22
|
+
self.group = 'mingle'
|
23
|
+
assert_equal 'mingle', DTR::EnvStore.new[:group]
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_save_agent_listen_port
|
27
|
+
self.agent_listen_port = '7890'
|
28
|
+
assert_equal '7890', DTR::EnvStore.new[:agent_listen_port]
|
29
|
+
end
|
30
|
+
|
31
|
+
def fork_and_kill_process
|
32
|
+
pid = fork_process do
|
33
|
+
loop do
|
34
|
+
end
|
35
|
+
end
|
36
|
+
kill_process pid
|
37
|
+
Timeout.timeout(1) do
|
38
|
+
Process.waitall
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
+
|
3
|
+
require 'dtr/agent/sync_logger'
|
4
|
+
require 'stringio'
|
5
|
+
#logger related unit test, including sync_logger
|
6
|
+
class LoggerTest < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@msg = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
DTR.logger = DTR.create_default_logger(nil)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_should_not_send_message_when_message_logger_level_is_not_enough
|
16
|
+
DTR.logger = DTR::SyncLogger::MessageDecoratedLogger.new(self)
|
17
|
+
@msg = nil
|
18
|
+
DTR.debug('debug msg')
|
19
|
+
assert_nil @msg
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_send_message
|
23
|
+
DTR.logger = DTR::SyncLogger::MessageDecoratedLogger.new(self)
|
24
|
+
DTR.info('info msg')
|
25
|
+
assert_equal "From #{Socket.gethostname}: info msg", @msg
|
26
|
+
DTR.info('error msg')
|
27
|
+
assert_equal "From #{Socket.gethostname}: error msg", @msg
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_send_message_by_block_should_be_sent_as_string_msg
|
31
|
+
DTR.logger = DTR::SyncLogger::MessageDecoratedLogger.new(self)
|
32
|
+
DTR.info { 'info msg' }
|
33
|
+
assert_equal "From #{Socket.gethostname}: info msg", @msg
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_should_output_error_into_stderr
|
37
|
+
logs = catch_stderr_output do
|
38
|
+
DTR.debug {'debug info'}
|
39
|
+
DTR.info {'info info'}
|
40
|
+
DTR.error {'error info'}
|
41
|
+
end
|
42
|
+
assert(/error info/ =~ logs)
|
43
|
+
assert(/info info/ !~ logs)
|
44
|
+
assert(/debug info/ !~ logs)
|
45
|
+
end
|
46
|
+
|
47
|
+
def catch_stderr_output
|
48
|
+
stderr = $stderr
|
49
|
+
$stderr = StringIO.new
|
50
|
+
yield
|
51
|
+
$stderr.rewind
|
52
|
+
$stderr.read
|
53
|
+
ensure
|
54
|
+
$stderr = stderr
|
55
|
+
end
|
56
|
+
|
57
|
+
def level
|
58
|
+
Logger::INFO
|
59
|
+
end
|
60
|
+
|
61
|
+
def debug(msg)
|
62
|
+
@msg = msg
|
63
|
+
end
|
64
|
+
|
65
|
+
def error(msg)
|
66
|
+
@msg = msg
|
67
|
+
end
|
68
|
+
|
69
|
+
def info(msg)
|
70
|
+
@msg = msg
|
71
|
+
end
|
72
|
+
end
|
data/test/unit/test_unit_test.rb
CHANGED
@@ -13,33 +13,12 @@ class TestUnitTest < Test::Unit::TestCase
|
|
13
13
|
assert Test::Unit::UI::TestRunnerMediator.respond_to?(:reject_dtr)
|
14
14
|
assert Test::Unit::UI::TestRunnerMediator.method_defined?(:run_suite_without_dtr_injection)
|
15
15
|
assert Test::Unit::UI::TestRunnerMediator.private_method_defined?(:create_result_without_thread_safe)
|
16
|
-
assert !Test::Unit::TestCase.respond_to?(:reject_dtr)
|
17
|
-
assert !Test::Unit::TestCase.method_defined?(:run_without_dtr_injection)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_inject_testcase
|
21
|
-
Test::Unit::TestCase.send(:include, DTR::TestUnit::TestCaseInjection)
|
22
|
-
begin
|
23
|
-
assert Test::Unit::TestCase.respond_to?(:reject_dtr)
|
24
|
-
assert Test::Unit::TestCase.method_defined?(:run_without_dtr_injection)
|
25
|
-
ensure
|
26
|
-
Test::Unit::TestCase.reject_dtr
|
27
|
-
end
|
28
|
-
assert !Test::Unit::TestCase.respond_to?(:reject_dtr)
|
29
|
-
assert !Test::Unit::TestCase.method_defined?(:run_without_dtr_injection)
|
30
16
|
end
|
31
17
|
|
32
18
|
def test_reject
|
33
19
|
DTR.inject
|
34
20
|
DTR.reject
|
35
|
-
test_case = Test::Unit::TestCase.new('name')
|
36
|
-
assert_false test_case.respond_to?(:run_without_dtr_injection)
|
37
|
-
assert test_case.respond_to?(:run)
|
38
|
-
|
39
|
-
assert !Test::Unit::TestCase.respond_to?(:reject_dtr)
|
40
21
|
assert !Test::Unit::UI::TestRunnerMediator.respond_to?(:reject_dtr)
|
41
|
-
|
42
|
-
assert !Test::Unit::TestCase.method_defined?(:run_without_dtr_injection)
|
43
22
|
assert !Test::Unit::UI::TestRunnerMediator.method_defined?(:run_suite_without_dtr_injection)
|
44
23
|
assert !Test::Unit::UI::TestRunnerMediator.private_method_defined?(:create_result_without_thread_safe)
|
45
24
|
end
|
data/testdata/Rakefile
CHANGED
@@ -5,11 +5,7 @@ require 'rake/testtask'
|
|
5
5
|
desc "Default Task"
|
6
6
|
task :default => :dtr
|
7
7
|
|
8
|
-
DTR::TestTask.new
|
8
|
+
DTR::TestTask.new do |t|
|
9
9
|
t.test_files = FileList['*test_case.rb']
|
10
10
|
t.processes = 2
|
11
11
|
end
|
12
|
-
|
13
|
-
DTR::PackageTask.new do |p|
|
14
|
-
p.package_files.include("**/*")
|
15
|
-
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
|
3
|
+
class HackedRunMethodTestCase < Test::Unit::TestCase
|
4
|
+
|
5
|
+
alias_method :run_without_hack, :run
|
6
|
+
def run(*args, &block)
|
7
|
+
UDPSocket.open.bind('', 9999)
|
8
|
+
run_without_hack(*args, &block)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_succeeded
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
@@ -3,7 +3,7 @@ require 'test/unit'
|
|
3
3
|
class VerifyDirPwdTestCase < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def test_should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process
|
6
|
-
assert_equal '
|
6
|
+
assert_equal 'verify_dir_pwd', Dir.pwd.split('/').last
|
7
7
|
end
|
8
8
|
|
9
9
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xli-dtr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Li Xiao
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-10-09 00:00:00 -07:00
|
13
13
|
default_executable: dtr
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -19,18 +19,23 @@ executables:
|
|
19
19
|
- dtr
|
20
20
|
extensions: []
|
21
21
|
|
22
|
-
extra_rdoc_files:
|
23
|
-
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.rdoc
|
24
|
+
- LICENSE.txt
|
25
|
+
- TODO
|
26
|
+
- CHANGES
|
24
27
|
files:
|
25
28
|
- lib/dtr/agent/brain.rb
|
26
29
|
- lib/dtr/agent/herald.rb
|
27
30
|
- lib/dtr/agent/runner.rb
|
28
31
|
- lib/dtr/agent/sync_codebase.rb
|
29
32
|
- lib/dtr/agent/sync_logger.rb
|
33
|
+
- lib/dtr/agent/test_case.rb
|
30
34
|
- lib/dtr/agent/test_unit.rb
|
31
35
|
- lib/dtr/agent/worker.rb
|
32
36
|
- lib/dtr/agent/working_env_ext.rb
|
33
37
|
- lib/dtr/agent.rb
|
38
|
+
- lib/dtr/facade.rb
|
34
39
|
- lib/dtr/master.rb
|
35
40
|
- lib/dtr/monitor.rb
|
36
41
|
- lib/dtr/raketasks.rb
|
@@ -44,7 +49,7 @@ files:
|
|
44
49
|
- lib/dtr/shared/service/runner.rb
|
45
50
|
- lib/dtr/shared/service/working_env.rb
|
46
51
|
- lib/dtr/shared/service.rb
|
47
|
-
- lib/dtr/shared/sync_codebase/
|
52
|
+
- lib/dtr/shared/sync_codebase/copiable_package.rb
|
48
53
|
- lib/dtr/shared/sync_codebase/master_ext.rb
|
49
54
|
- lib/dtr/shared/sync_codebase/package.rb
|
50
55
|
- lib/dtr/shared/sync_codebase/sync_service.rb
|
@@ -59,6 +64,7 @@ files:
|
|
59
64
|
- lib/dtr/test_unit/drb_test_runner.rb
|
60
65
|
- lib/dtr/test_unit/injection.rb
|
61
66
|
- lib/dtr/test_unit/test_case_injection.rb
|
67
|
+
- lib/dtr/test_unit/test_suite_injection.rb
|
62
68
|
- lib/dtr/test_unit/testrunnermediator_injection.rb
|
63
69
|
- lib/dtr/test_unit/thread_safe_test_result.rb
|
64
70
|
- lib/dtr/test_unit/worker_club.rb
|
@@ -68,17 +74,22 @@ files:
|
|
68
74
|
- bin/dtr
|
69
75
|
- CHANGES
|
70
76
|
- dtr.gemspec
|
71
|
-
- install.rb
|
72
77
|
- lib
|
73
78
|
- LICENSE.TXT
|
74
79
|
- Rakefile
|
75
|
-
- README
|
80
|
+
- README.rdoc
|
76
81
|
- TODO
|
77
|
-
|
82
|
+
- LICENSE.txt
|
83
|
+
has_rdoc: true
|
78
84
|
homepage: http://github.com/xli/dtr/tree/master
|
79
85
|
post_install_message:
|
80
|
-
rdoc_options:
|
81
|
-
|
86
|
+
rdoc_options:
|
87
|
+
- --line-numbers
|
88
|
+
- --inline-source
|
89
|
+
- --main
|
90
|
+
- README.rdoc
|
91
|
+
- --title
|
92
|
+
- "\"DTR -- Distributed Test Runner"
|
82
93
|
require_paths:
|
83
94
|
- lib
|
84
95
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -104,12 +115,16 @@ test_files:
|
|
104
115
|
- test/acceptance/agent_working_env_test.rb
|
105
116
|
- test/acceptance/dtr_package_task_test.rb
|
106
117
|
- test/acceptance/general_test.rb
|
118
|
+
- test/acceptance/raketasks_test.rb
|
107
119
|
- test/acceptance/sync_codebase_test.rb
|
108
120
|
- test/acceptance/sync_logger_test.rb
|
109
121
|
- test/agent_helper.rb
|
110
122
|
- test/logger_stub.rb
|
111
123
|
- test/test_helper.rb
|
112
124
|
- test/unit/adapter_test.rb
|
125
|
+
- test/unit/configuration_test.rb
|
126
|
+
- test/unit/facade_test.rb
|
127
|
+
- test/unit/logger_test.rb
|
113
128
|
- test/unit/test_unit_test.rb
|
114
129
|
- test/unit/working_env_test.rb
|
115
130
|
- testdata/a_failed_test_case.rb
|
@@ -120,13 +135,18 @@ test_files:
|
|
120
135
|
- testdata/another_project
|
121
136
|
- testdata/another_project/passed_test_case.rb
|
122
137
|
- testdata/another_project/Rakefile
|
138
|
+
- testdata/hacked_run_method_test_case.rb
|
123
139
|
- testdata/is_required_by_a_test.rb
|
124
140
|
- testdata/lib
|
125
141
|
- testdata/lib/lib_test_case.rb
|
126
142
|
- testdata/package_task_test_rakefile
|
127
143
|
- testdata/Rakefile
|
144
|
+
- testdata/raketasks
|
145
|
+
- testdata/raketasks/Rakefile
|
146
|
+
- testdata/raketasks/success_test_case.rb
|
128
147
|
- testdata/scenario_test_case.rb
|
129
148
|
- testdata/setup_agent_env_test_case.rb
|
130
|
-
- testdata/
|
131
|
-
- testdata/
|
132
|
-
- testdata/
|
149
|
+
- testdata/sleep_3_secs_test_case.rb
|
150
|
+
- testdata/verify_dir_pwd
|
151
|
+
- testdata/verify_dir_pwd/Rakefile
|
152
|
+
- testdata/verify_dir_pwd/verify_dir_pwd_test_case.rb
|