deep_test 1.1.4 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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