xli-dtr 0.0.5 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/CHANGES +7 -0
  2. data/README.rdoc +208 -0
  3. data/Rakefile +54 -63
  4. data/TODO +7 -16
  5. data/bin/dtr +26 -20
  6. data/dtr.gemspec +7 -10
  7. data/lib/dtr/agent/brain.rb +13 -22
  8. data/lib/dtr/agent/herald.rb +24 -14
  9. data/lib/dtr/agent/runner.rb +22 -35
  10. data/lib/dtr/agent/sync_codebase.rb +1 -1
  11. data/lib/dtr/agent/sync_logger.rb +38 -8
  12. data/lib/dtr/agent/test_case.rb +53 -0
  13. data/lib/dtr/agent/test_unit.rb +3 -5
  14. data/lib/dtr/agent/worker.rb +29 -32
  15. data/lib/dtr/agent/working_env_ext.rb +4 -2
  16. data/lib/dtr/agent.rb +2 -1
  17. data/lib/dtr/facade.rb +65 -0
  18. data/lib/dtr/master.rb +3 -3
  19. data/lib/dtr/monitor.rb +69 -11
  20. data/lib/dtr/raketasks.rb +91 -19
  21. data/lib/dtr/shared/adapter.rb +29 -26
  22. data/lib/dtr/shared/configuration.rb +39 -11
  23. data/lib/dtr/shared/message_decorator.rb +1 -1
  24. data/lib/dtr/shared/ruby_ext.rb +1 -25
  25. data/lib/dtr/shared/service/agent.rb +5 -1
  26. data/lib/dtr/shared/service/file.rb +1 -1
  27. data/lib/dtr/shared/service/rinda.rb +11 -3
  28. data/lib/dtr/shared/service/runner.rb +6 -5
  29. data/lib/dtr/shared/service/working_env.rb +1 -1
  30. data/lib/dtr/shared/service.rb +1 -1
  31. data/lib/dtr/shared/sync_codebase/{codebase.rb → copiable_package.rb} +13 -5
  32. data/lib/dtr/shared/sync_codebase/master_ext.rb +6 -18
  33. data/lib/dtr/shared/sync_codebase/package.rb +16 -2
  34. data/lib/dtr/shared/sync_codebase/sync_service.rb +7 -12
  35. data/lib/dtr/shared/sync_codebase.rb +2 -2
  36. data/lib/dtr/shared/sync_logger.rb +6 -14
  37. data/lib/dtr/shared/utils/cmd.rb +5 -5
  38. data/lib/dtr/shared/utils/env_store.rb +1 -1
  39. data/lib/dtr/shared/utils/logger.rb +33 -17
  40. data/lib/dtr/shared/utils.rb +1 -1
  41. data/lib/dtr/shared/working_env.rb +2 -2
  42. data/lib/dtr/shared.rb +1 -1
  43. data/lib/dtr/test_unit/drb_test_runner.rb +5 -14
  44. data/lib/dtr/test_unit/injection.rb +1 -2
  45. data/lib/dtr/test_unit/test_case_injection.rb +13 -13
  46. data/lib/dtr/test_unit/test_suite_injection.rb +24 -0
  47. data/lib/dtr/test_unit/testrunnermediator_injection.rb +11 -11
  48. data/lib/dtr/test_unit/thread_safe_test_result.rb +1 -3
  49. data/lib/dtr/test_unit/worker_club.rb +7 -7
  50. data/lib/dtr/test_unit.rb +2 -1
  51. data/lib/dtr/test_unit_injection.rb +1 -1
  52. data/lib/dtr.rb +5 -36
  53. data/test/acceptance/agent_working_env_test.rb +28 -34
  54. data/test/acceptance/dtr_package_task_test.rb +13 -3
  55. data/test/acceptance/general_test.rb +139 -83
  56. data/test/acceptance/raketasks_test.rb +23 -0
  57. data/test/acceptance/sync_codebase_test.rb +12 -13
  58. data/test/acceptance/sync_logger_test.rb +12 -21
  59. data/test/agent_helper.rb +8 -10
  60. data/test/logger_stub.rb +4 -0
  61. data/test/test_helper.rb +33 -5
  62. data/test/unit/adapter_test.rb +58 -16
  63. data/test/unit/configuration_test.rb +44 -0
  64. data/test/unit/facade_test.rb +41 -0
  65. data/test/unit/logger_test.rb +72 -0
  66. data/test/unit/test_unit_test.rb +0 -21
  67. data/testdata/Rakefile +1 -5
  68. data/testdata/hacked_run_method_test_case.rb +15 -0
  69. data/testdata/raketasks/Rakefile +7 -0
  70. data/testdata/raketasks/success_test_case.rb +6 -0
  71. data/testdata/sleep_3_secs_test_case.rb +9 -0
  72. 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
  73. metadata +33 -13
  74. data/README +0 -182
  75. data/install.rb +0 -88
  76. /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
@@ -2,18 +2,20 @@ require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
3
  include DTR::AgentHelper
4
4
 
5
- class AdapterTests < Test::Unit::TestCase
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.configuration.follower_listen_sleep_timeout = 1
13
+ DTR.logger('test.log')
14
+ DTR.configuration.follower_listen_heartbeat_timeout = 1
13
15
  end
14
16
 
15
17
  def teardown
16
- DTR.configuration.follower_listen_sleep_timeout = 15
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} #{Socket.gethostname}:4567")
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} #{Socket.gethostname}:4567")
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
- broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} hostname:1234")
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} hostname:4567")
65
+ broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE} 4567")
63
66
  #wakup message for keep it wakeup
64
- broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} hostname:1234")
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
- broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} xli.local:1234")
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
- broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE} dtr.remote:1234")
76
+ @host_ip = '192.168.1.1'
77
+ broadcast('address', "#{DTR::Adapter::SLEEP_MESSAGE} 1234")
73
78
  #wakup message for keep it wakeup
74
- broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} xli.local:1234")
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} hostname:4567")
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} xli.local:1234")
98
+ broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} 1234")
93
99
  assert wakeup?
94
- broadcast('address', "#{DTR::Adapter::WAKEUP_MESSAGE} dtr.remote:1234")
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
- @messages << msg
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
@@ -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 :dtr do |t|
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
+
@@ -0,0 +1,7 @@
1
+ $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../../lib')
2
+ require 'dtr/raketasks'
3
+ DTR.group = 'dtr acceptance tests'
4
+ DTR::TestTask.new do |t|
5
+ t.test_files = FileList['success_test_case.rb']
6
+ t.processes = 0
7
+ end
@@ -0,0 +1,6 @@
1
+ require 'test/unit'
2
+ class SuccessTestCase < Test::Unit::TestCase
3
+ def test_succeeded
4
+ assert true
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ require 'test/unit'
2
+
3
+ class Sleep3SecsTestCase < Test::Unit::TestCase
4
+
5
+ def test_sleep_3_sec
6
+ sleep(3)
7
+ end
8
+
9
+ end
@@ -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 'should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process', Dir.pwd.split('/').last
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.5
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-08-13 00:00:00 -07:00
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/codebase.rb
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
- has_rdoc: false
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/should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process
131
- - testdata/should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process/Rakefile
132
- - testdata/should_not_sync_codebase_and_setup_working_dir_when_agent_is_in_same_dir_with_master_process/verify_dir_pwd_test_case.rb
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