deep_test 1.1.4 → 1.2.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.
Files changed (99) hide show
  1. data/CHANGELOG +15 -5
  2. data/README +149 -5
  3. data/Rakefile +131 -11
  4. data/bin/deep_test +15 -0
  5. data/lib/deep_test.rb +62 -4
  6. data/lib/deep_test/database/mysql_setup_listener.rb +109 -0
  7. data/lib/deep_test/database/setup_listener.rb +116 -0
  8. data/lib/deep_test/distributed/dispatch_controller.rb +53 -0
  9. data/lib/deep_test/distributed/drb_client_connection_info.rb +15 -0
  10. data/lib/deep_test/distributed/filename_resolver.rb +40 -0
  11. data/lib/deep_test/distributed/master_test_server.rb +52 -0
  12. data/lib/deep_test/distributed/multi_test_server_proxy.rb +44 -0
  13. data/lib/deep_test/distributed/null_work_unit.rb +12 -0
  14. data/lib/deep_test/distributed/remote_worker_client.rb +54 -0
  15. data/lib/deep_test/distributed/remote_worker_server.rb +82 -0
  16. data/lib/deep_test/distributed/rsync.rb +37 -0
  17. data/lib/deep_test/distributed/show_status.rhtml +41 -0
  18. data/lib/deep_test/distributed/test_server.rb +78 -0
  19. data/lib/deep_test/distributed/test_server_status.rb +9 -0
  20. data/lib/deep_test/distributed/test_server_workers.rb +24 -0
  21. data/lib/deep_test/distributed/throughput_runner.rb +42 -0
  22. data/lib/deep_test/distributed/throughput_statistics.rb +26 -0
  23. data/lib/deep_test/distributed/throughput_worker_client.rb +19 -0
  24. data/lib/deep_test/extensions/drb_extension.rb +34 -0
  25. data/lib/deep_test/extensions/object_extension.rb +8 -0
  26. data/lib/deep_test/listener_list.rb +17 -0
  27. data/lib/deep_test/local_workers.rb +55 -0
  28. data/lib/deep_test/logger.rb +10 -2
  29. data/lib/deep_test/marshallable_exception_wrapper.rb +44 -0
  30. data/lib/deep_test/metrics/gatherer.rb +67 -0
  31. data/lib/deep_test/metrics/queue_lock_wait_time_measurement.rb +133 -0
  32. data/lib/deep_test/null_worker_listener.rb +50 -0
  33. data/lib/deep_test/option.rb +60 -0
  34. data/lib/deep_test/options.rb +61 -24
  35. data/lib/deep_test/process_orchestrator.rb +31 -78
  36. data/lib/deep_test/rake_tasks.rb +3 -0
  37. data/lib/deep_test/result_reader.rb +36 -0
  38. data/lib/deep_test/rspec_detector.rb +15 -8
  39. data/lib/deep_test/server.rb +68 -4
  40. data/lib/deep_test/spec.rb +1 -0
  41. data/lib/deep_test/spec/extensions/example_group_methods.rb +37 -11
  42. data/lib/deep_test/spec/extensions/example_methods.rb +46 -0
  43. data/lib/deep_test/spec/extensions/options.rb +35 -3
  44. data/lib/deep_test/spec/runner.rb +19 -10
  45. data/lib/deep_test/spec/work_result.rb +12 -9
  46. data/lib/deep_test/spec/work_unit.rb +12 -7
  47. data/lib/deep_test/test.rb +1 -1
  48. data/lib/deep_test/test/extensions/error.rb +7 -7
  49. data/lib/deep_test/test/runner.rb +1 -6
  50. data/lib/deep_test/test/supervised_test_suite.rb +19 -16
  51. data/lib/deep_test/test/work_result.rb +34 -0
  52. data/lib/deep_test/test/work_unit.rb +6 -2
  53. data/lib/deep_test/test_task.rb +15 -35
  54. data/lib/deep_test/ui/console.rb +76 -0
  55. data/lib/deep_test/ui/null.rb +17 -0
  56. data/lib/deep_test/warlock.rb +92 -17
  57. data/lib/deep_test/worker.rb +38 -2
  58. data/script/internal/run_test_suite.rb +7 -0
  59. data/script/public/master_test_server.rb +24 -0
  60. data/script/public/test_server.rb +18 -0
  61. data/script/public/test_throughput.rb +29 -0
  62. data/test/deep_test/database/mysql_setup_listener_test.rb +14 -0
  63. data/test/deep_test/distributed/dispatch_controller_test.rb +209 -0
  64. data/test/deep_test/distributed/drb_client_connection_info_test.rb +42 -0
  65. data/test/deep_test/distributed/filename_resolver_test.rb +52 -0
  66. data/test/deep_test/distributed/master_test_server_test.rb +32 -0
  67. data/test/deep_test/distributed/multi_test_server_proxy_test.rb +96 -0
  68. data/test/deep_test/distributed/remote_worker_client_test.rb +180 -0
  69. data/test/deep_test/distributed/remote_worker_server_test.rb +99 -0
  70. data/test/deep_test/distributed/rsync_test.rb +67 -0
  71. data/test/deep_test/distributed/test_server_test.rb +94 -0
  72. data/test/deep_test/distributed/test_server_workers_test.rb +26 -0
  73. data/test/deep_test/distributed/throughput_runner_test.rb +68 -0
  74. data/test/deep_test/distributed/throughput_worker_client_test.rb +28 -0
  75. data/test/deep_test/listener_list_test.rb +20 -0
  76. data/test/deep_test/local_workers_test.rb +22 -0
  77. data/test/{logger_test.rb → deep_test/logger_test.rb} +2 -2
  78. data/test/deep_test/marshallable_exception_wrapper_test.rb +44 -0
  79. data/test/deep_test/metrics/gatherer_test.rb +66 -0
  80. data/test/deep_test/process_orchestrator_test.rb +11 -0
  81. data/test/deep_test/result_reader_test.rb +128 -0
  82. data/test/deep_test/server_test.rb +58 -0
  83. data/test/deep_test/test/extensions/error_test.rb +40 -0
  84. data/test/deep_test/test/supervised_test_suite_test.rb +19 -29
  85. data/test/deep_test/test/work_result_test.rb +81 -0
  86. data/test/deep_test/test/work_unit_test.rb +15 -4
  87. data/test/deep_test/test_task_test.rb +10 -0
  88. data/test/deep_test/ui/console_test.rb +9 -0
  89. data/test/deep_test/warlock_test.rb +17 -0
  90. data/test/deep_test/worker_test.rb +32 -0
  91. data/test/simple_test_blackboard.rb +2 -1
  92. data/test/test_helper.rb +1 -0
  93. metadata +117 -59
  94. data/lib/deep_test/rinda_blackboard.rb +0 -26
  95. data/lib/deep_test/test/extensions/test_result.rb +0 -17
  96. data/lib/deep_test/tuple_space_factory.rb +0 -12
  97. data/script/run_test_suite.rb +0 -5
  98. data/test/deep_test/rinda_blackboard_test.rb +0 -15
  99. data/test/deep_test/test/extensions/test_result_test.rb +0 -71
@@ -18,4 +18,21 @@ unit_tests do
18
18
  Process.stubs(:kill).raises(Exception)
19
19
  assert_equal true, warlock.running?(:pid)
20
20
  end
21
+
22
+ test "demon_count is 0 initially" do
23
+ assert_equal 0, DeepTest::Warlock.new.demon_count
24
+ end
25
+
26
+ test "add_demon increases demon_count by 1" do
27
+ warlock = DeepTest::Warlock.new
28
+ warlock.send(:add_demon, "name", 1)
29
+ assert_equal 1, warlock.demon_count
30
+ end
31
+
32
+ test "remove_demon increases demon_count by 1" do
33
+ warlock = DeepTest::Warlock.new
34
+ warlock.send(:add_demon, "name", 1)
35
+ warlock.send(:remove_demon, "name", 1)
36
+ assert_equal 0, warlock.demon_count
37
+ end
21
38
  end
@@ -52,6 +52,38 @@ unit_tests do
52
52
  worker.run
53
53
  end
54
54
 
55
+ test "exception raised by work unit gives in Worker::Error" do
56
+ blackboard = DeepTest::SimpleTestBlackboard.new
57
+ work_unit = mock
58
+ work_unit.expects(:run).raises(exception = RuntimeError.new)
59
+ blackboard.write_work work_unit
60
+
61
+ DeepTest::Worker.new(0, blackboard, stub_everything).run
62
+
63
+ assert_equal DeepTest::Worker::Error.new(work_unit, exception),
64
+ blackboard.take_result
65
+ end
66
+
67
+ test "requests work until it finds some" do
68
+ blackboard = mock
69
+ blackboard.expects(:take_work).times(3).
70
+ raises(DeepTest::Server::NoWorkUnitsAvailableError).
71
+ returns(work_unit = mock(:run => nil)).
72
+ returns(nil)
73
+
74
+ blackboard.expects(:write_result)
75
+
76
+ DeepTest::Worker.new(0, blackboard, stub_everything).run
77
+ end
78
+
79
+ test "finishes running when no more work units are remaining" do
80
+ blackboard = mock
81
+ blackboard.expects(:take_work).
82
+ raises(DeepTest::Server::NoWorkUnitsRemainingError)
83
+
84
+ DeepTest::Worker.new(0, blackboard, stub_everything).run
85
+ end
86
+
55
87
  test "number is available to indentify worker" do
56
88
  assert_equal 1, DeepTest::Worker.new(1, nil, nil).number
57
89
  end
@@ -1,6 +1,6 @@
1
1
  module DeepTest
2
2
  class SimpleTestBlackboard
3
- attr_accessor :debug
3
+ attr_accessor :debug, :simulate_result_overdue_error
4
4
 
5
5
  def initialize
6
6
  @work_units = []
@@ -9,6 +9,7 @@ module DeepTest
9
9
  end
10
10
 
11
11
  def take_result
12
+ raise DeepTest::Server::ResultOverdueError if @simulate_result_overdue_error
12
13
  @semaphore.synchronize do
13
14
  log_and_return "take_result", @test_results.shift
14
15
  end
@@ -4,6 +4,7 @@ require 'dust'
4
4
  require 'mocha'
5
5
  $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + "/../lib")
6
6
  require "deep_test"
7
+ require 'set'
7
8
 
8
9
  require File.dirname(__FILE__) + "/fake_deadlock_error"
9
10
  require File.dirname(__FILE__) + "/simple_test_blackboard"
metadata CHANGED
@@ -1,101 +1,159 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.4
3
- specification_version: 1
4
2
  name: deep_test
5
3
  version: !ruby/object:Gem::Version
6
- version: 1.1.4
7
- date: 2008-03-11 00:00:00 -04:00
8
- summary: DeepTest runs tests in multiple processes.
9
- require_paths:
10
- - lib
11
- email: daniel.manges@gmail.com
12
- homepage: http://deep-test.rubyforge.org
13
- rubyforge_project: deep-test
14
- description: DeepTest runs tests in multiple processes.
15
- autorequire: deep_test
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 1.2.0
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
7
  - anonymous z, Dan Manges, David Vollbracht
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-29 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: DeepTest runs tests in multiple processes.
17
+ email: daniel.manges@gmail.com
18
+ executables:
19
+ - deep_test
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ - CHANGELOG
31
25
  files:
32
- - lib/deep_test.rb
26
+ - lib/deep_test/database/mysql_setup_listener.rb
27
+ - lib/deep_test/database/setup_listener.rb
33
28
  - lib/deep_test/deadlock_detector.rb
29
+ - lib/deep_test/distributed/dispatch_controller.rb
30
+ - lib/deep_test/distributed/drb_client_connection_info.rb
31
+ - lib/deep_test/distributed/filename_resolver.rb
32
+ - lib/deep_test/distributed/master_test_server.rb
33
+ - lib/deep_test/distributed/multi_test_server_proxy.rb
34
+ - lib/deep_test/distributed/null_work_unit.rb
35
+ - lib/deep_test/distributed/remote_worker_client.rb
36
+ - lib/deep_test/distributed/remote_worker_server.rb
37
+ - lib/deep_test/distributed/rsync.rb
38
+ - lib/deep_test/distributed/test_server.rb
39
+ - lib/deep_test/distributed/test_server_status.rb
40
+ - lib/deep_test/distributed/test_server_workers.rb
41
+ - lib/deep_test/distributed/throughput_runner.rb
42
+ - lib/deep_test/distributed/throughput_statistics.rb
43
+ - lib/deep_test/distributed/throughput_worker_client.rb
44
+ - lib/deep_test/extensions/drb_extension.rb
45
+ - lib/deep_test/extensions/object_extension.rb
46
+ - lib/deep_test/listener_list.rb
47
+ - lib/deep_test/local_workers.rb
34
48
  - lib/deep_test/logger.rb
49
+ - lib/deep_test/marshallable_exception_wrapper.rb
50
+ - lib/deep_test/metrics/gatherer.rb
51
+ - lib/deep_test/metrics/queue_lock_wait_time_measurement.rb
35
52
  - lib/deep_test/null_worker_listener.rb
53
+ - lib/deep_test/option.rb
36
54
  - lib/deep_test/options.rb
37
55
  - lib/deep_test/process_orchestrator.rb
38
56
  - lib/deep_test/rake_tasks.rb
39
- - lib/deep_test/rinda_blackboard.rb
57
+ - lib/deep_test/result_reader.rb
40
58
  - lib/deep_test/rspec_detector.rb
41
59
  - lib/deep_test/server.rb
42
- - lib/deep_test/spec.rb
43
- - lib/deep_test/test.rb
44
- - lib/deep_test/test_task.rb
45
- - lib/deep_test/tuple_space_factory.rb
46
- - lib/deep_test/warlock.rb
47
- - lib/deep_test/worker.rb
48
- - lib/deep_test/extensions/object_extension.rb
49
- - lib/deep_test/spec/runner.rb
50
- - lib/deep_test/spec/work_result.rb
51
- - lib/deep_test/spec/work_unit.rb
52
60
  - lib/deep_test/spec/extensions/example_group_methods.rb
61
+ - lib/deep_test/spec/extensions/example_methods.rb
53
62
  - lib/deep_test/spec/extensions/options.rb
54
63
  - lib/deep_test/spec/extensions/reporter.rb
55
64
  - lib/deep_test/spec/extensions/spec_task.rb
65
+ - lib/deep_test/spec/runner.rb
66
+ - lib/deep_test/spec/work_result.rb
67
+ - lib/deep_test/spec/work_unit.rb
68
+ - lib/deep_test/spec.rb
69
+ - lib/deep_test/test/extensions/error.rb
56
70
  - lib/deep_test/test/runner.rb
57
71
  - lib/deep_test/test/supervised_test_suite.rb
72
+ - lib/deep_test/test/work_result.rb
58
73
  - lib/deep_test/test/work_unit.rb
59
- - lib/deep_test/test/extensions/error.rb
60
- - lib/deep_test/test/extensions/test_result.rb
61
- - script/run_test_suite.rb
74
+ - lib/deep_test/test.rb
75
+ - lib/deep_test/test_task.rb
76
+ - lib/deep_test/ui/console.rb
77
+ - lib/deep_test/ui/null.rb
78
+ - lib/deep_test/warlock.rb
79
+ - lib/deep_test/worker.rb
80
+ - lib/deep_test.rb
81
+ - lib/deep_test/distributed/show_status.rhtml
82
+ - script/internal/run_test_suite.rb
83
+ - script/public/master_test_server.rb
84
+ - script/public/test_server.rb
85
+ - script/public/test_throughput.rb
86
+ - test/deep_test/database/mysql_setup_listener_test.rb
87
+ - test/deep_test/distributed/dispatch_controller_test.rb
88
+ - test/deep_test/distributed/drb_client_connection_info_test.rb
89
+ - test/deep_test/distributed/filename_resolver_test.rb
90
+ - test/deep_test/distributed/master_test_server_test.rb
91
+ - test/deep_test/distributed/multi_test_server_proxy_test.rb
92
+ - test/deep_test/distributed/remote_worker_client_test.rb
93
+ - test/deep_test/distributed/remote_worker_server_test.rb
94
+ - test/deep_test/distributed/rsync_test.rb
95
+ - test/deep_test/distributed/test_server_test.rb
96
+ - test/deep_test/distributed/test_server_workers_test.rb
97
+ - test/deep_test/distributed/throughput_runner_test.rb
98
+ - test/deep_test/distributed/throughput_worker_client_test.rb
99
+ - test/deep_test/extensions/object_extension_test.rb
100
+ - test/deep_test/listener_list_test.rb
101
+ - test/deep_test/local_workers_test.rb
102
+ - test/deep_test/logger_test.rb
103
+ - test/deep_test/marshallable_exception_wrapper_test.rb
104
+ - test/deep_test/metrics/gatherer_test.rb
105
+ - test/deep_test/process_orchestrator_test.rb
106
+ - test/deep_test/result_reader_test.rb
107
+ - test/deep_test/server_test.rb
108
+ - test/deep_test/test/extensions/error_test.rb
109
+ - test/deep_test/test/runner_test.rb
110
+ - test/deep_test/test/supervised_test_suite_test.rb
111
+ - test/deep_test/test/work_result_test.rb
112
+ - test/deep_test/test/work_unit_test.rb
113
+ - test/deep_test/test_task_test.rb
114
+ - test/deep_test/ui/console_test.rb
115
+ - test/deep_test/warlock_test.rb
116
+ - test/deep_test/worker_test.rb
62
117
  - test/failing.rb
63
118
  - test/fake_deadlock_error.rb
64
- - test/logger_test.rb
65
119
  - test/simple_test_blackboard.rb
66
120
  - test/simple_test_blackboard_test.rb
67
121
  - test/test_factory.rb
68
122
  - test/test_helper.rb
69
123
  - test/test_task_test.rb
70
- - test/deep_test/rinda_blackboard_test.rb
71
- - test/deep_test/test_task_test.rb
72
- - test/deep_test/warlock_test.rb
73
- - test/deep_test/worker_test.rb
74
- - test/deep_test/extensions/object_extension_test.rb
75
- - test/deep_test/test/runner_test.rb
76
- - test/deep_test/test/supervised_test_suite_test.rb
77
- - test/deep_test/test/work_unit_test.rb
78
- - test/deep_test/test/extensions/test_result_test.rb
79
124
  - test/failing.rake
80
125
  - README
81
126
  - CHANGELOG
82
127
  - Rakefile
83
- test_files: []
84
-
128
+ has_rdoc: true
129
+ homepage: http://deep-test.rubyforge.org
130
+ post_install_message:
85
131
  rdoc_options:
86
132
  - --title
87
133
  - DeepTest
88
134
  - --main
89
135
  - README
90
136
  - --line-numbers
91
- extra_rdoc_files:
92
- - README
93
- - CHANGELOG
94
- executables: []
95
-
96
- extensions: []
97
-
137
+ require_paths:
138
+ - lib
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: "0"
144
+ version:
145
+ required_rubygems_version: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: "0"
150
+ version:
98
151
  requirements: []
99
152
 
100
- dependencies: []
153
+ rubyforge_project: deep-test
154
+ rubygems_version: 1.0.1
155
+ signing_key:
156
+ specification_version: 2
157
+ summary: DeepTest runs tests in multiple processes.
158
+ test_files: []
101
159
 
@@ -1,26 +0,0 @@
1
- module DeepTest
2
- class RindaBlackboard
3
- def initialize(options, tuple_space = TupleSpaceFactory.tuple_space(options))
4
- @options = options
5
- @tuple_space = tuple_space
6
- end
7
-
8
- def take_result
9
- result = @tuple_space.take ["test_result", nil], @options.timeout_in_seconds
10
- result[1]
11
- end
12
-
13
- def take_work
14
- tuple = @tuple_space.take ["deep_work", nil], @options.timeout_in_seconds
15
- tuple[1]
16
- end
17
-
18
- def write_result(result)
19
- @tuple_space.write ["test_result", result]
20
- end
21
-
22
- def write_work(work_unit)
23
- @tuple_space.write ["deep_work", work_unit]
24
- end
25
- end
26
- end
@@ -1,17 +0,0 @@
1
- module Test
2
- module Unit
3
- class TestResult
4
- attr_accessor :output
5
- def add_to(result)
6
- @failures.each {|e| result.add_failure(e)}
7
- @errors.each {|e| result.add_error(e)}
8
- assertion_count.times {result.add_assertion}
9
- run_count.times {result.add_run}
10
- end
11
-
12
- def failed_due_to_deadlock?
13
- @errors.any? && DeepTest::DeadlockDetector.due_to_deadlock?(@errors.last)
14
- end
15
- end
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- module DeepTest
2
- class TupleSpaceFactory
3
- def self.tuple_space(options)
4
- require "rinda/ring"
5
- require "socket"
6
- DRb.start_service
7
- ts = Rinda::RingFinger.new([Socket.gethostname],options.server_port).lookup_ring_any
8
- DeepTest.logger.debug "Connected to DeepTest server at #{ts.__drburi}"
9
- Rinda::TupleSpaceProxy.new ts
10
- end
11
- end
12
- end
@@ -1,5 +0,0 @@
1
- require File.dirname(__FILE__) + "/../lib/deep_test"
2
- options = DeepTest::Options.from_command_line(ARGV[0])
3
- runner = DeepTest::Test::Runner.new(options)
4
- runner.load_files
5
- DeepTest::ProcessOrchestrator.run(options, runner)
@@ -1,15 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
-
3
- unit_tests do
4
- test "take result waits 30 seconds before timing out" do
5
- blackboard = DeepTest::RindaBlackboard.new(DeepTest::Options.new({}), tuple_space = stub)
6
- tuple_space.expects(:take).with(["test_result", nil], 30).returns([])
7
- blackboard.take_result
8
- end
9
-
10
- test "take test waits 30 seconds before timing out" do
11
- blackboard = DeepTest::RindaBlackboard.new(DeepTest::Options.new({}), tuple_space = stub)
12
- tuple_space.expects(:take).with(["deep_work", nil], 30).returns([nil, "String"])
13
- blackboard.take_work
14
- end
15
- end
@@ -1,71 +0,0 @@
1
- require File.dirname(__FILE__) + "/../../../test_helper"
2
-
3
- unit_tests do
4
- test "add_to adds correct run_count" do
5
- result_1 = Test::Unit::TestResult.new
6
- result_1.add_run
7
- result_1.add_run
8
-
9
- result_2 = Test::Unit::TestResult.new
10
- result_1.add_to result_2
11
-
12
- assert_equal 2, result_2.run_count
13
- end
14
-
15
- test "add_to adds correct assertion_count" do
16
- result_1 = Test::Unit::TestResult.new
17
- result_1.add_assertion
18
- result_1.add_assertion
19
-
20
- result_2 = Test::Unit::TestResult.new
21
- result_1.add_to result_2
22
-
23
- assert_equal 2, result_2.assertion_count
24
- end
25
-
26
- test "add_to adds correct errors" do
27
- result_1 = Test::Unit::TestResult.new
28
- result_1.add_error(:error)
29
-
30
- result_2 = Test::Unit::TestResult.new
31
- result_1.add_to result_2
32
-
33
- assert_equal [:error], result_2.instance_variable_get(:@errors)
34
- end
35
-
36
-
37
- test "add_to adds correct failures" do
38
- result_1 = Test::Unit::TestResult.new
39
- result_1.add_failure(:failure)
40
-
41
- result_2 = Test::Unit::TestResult.new
42
- result_1.add_to result_2
43
-
44
- assert_equal [:failure], result_2.instance_variable_get(:@failures)
45
- end
46
-
47
- test "wraps exceptions" do
48
- result = Test::Unit::TestResult.new
49
- begin
50
- raise SomeCustomException.new("the exception message")
51
- rescue => ex
52
- result.add_error Test::Unit::Error.new("test_wraps_exceptions", ex)
53
- end
54
- error = result.instance_variable_get("@errors").last
55
- # TODO: add this assertion
56
- # assert_equal "SomeCustomException: the exception message", error.message
57
- assert_equal "SomeCustomException: the exception message", error.exception.message
58
- assert_equal Exception, error.exception.class
59
- assert_equal ex.backtrace, error.exception.backtrace
60
- end
61
-
62
- test "failed due to deadlock" do
63
- result = Test::Unit::TestResult.new
64
- begin
65
- raise FakeDeadlockError.new
66
- rescue => ex
67
- result.add_error Test::Unit::Error.new("test_", ex)
68
- end
69
- assert_equal true, result.failed_due_to_deadlock?
70
- end
71
- end