@@ -22,6 +22,130 @@ def setup
2222 @exe = File . expand_path ( '../../../exe/minitest-queue' , __FILE__ )
2323 end
2424
25+ <<<<<<< HEAD
26+ =======
27+ def test_default_reporter
28+ out , err = capture_subprocess_io do
29+ system (
30+ { 'BUILDKITE' => '1' } ,
31+ @exe , 'run' ,
32+ '--queue' , @redis_url ,
33+ '--seed' , 'foobar' ,
34+ '--build' , '1' ,
35+ '--worker' , '1' ,
36+ '--timeout' , '1' ,
37+ '--max-requeues' , '1' ,
38+ '--requeue-tolerance' , '1' ,
39+ '-Itest' ,
40+ 'test/dummy_test.rb' ,
41+ chdir : 'test/fixtures/' ,
42+ )
43+ end
44+
45+ assert_empty err
46+ assert_match ( /Expected false to be truthy/ , normalize ( out ) ) # failure output
47+ result = normalize ( out . lines . last . strip )
48+ assert_equal '--- Ran 11 tests, 8 assertions, 2 failures, 1 errors, 1 skips, 4 requeues in X.XXs' , result
49+ end
50+
51+ def test_lost_test_with_heartbeat_monitor
52+ _ , err = capture_subprocess_io do
53+ 2 . times . map do |i |
54+ Thread . start do
55+ system (
56+ { 'BUILDKITE' => '1' } ,
57+ @exe , 'run' ,
58+ '--queue' , @redis_url ,
59+ '--seed' , 'foobar' ,
60+ '--build' , '1' ,
61+ '--worker' , i . to_s ,
62+ '--timeout' , '1' ,
63+ '--max-requeues' , '1' ,
64+ '--requeue-tolerance' , '1' ,
65+ '--heartbeat' , '1' ,
66+ '-Itest' ,
67+ 'test/lost_test.rb' ,
68+ chdir : 'test/fixtures/' ,
69+ )
70+ end
71+ end . each ( &:join )
72+ end
73+
74+ assert_empty err
75+
76+ Tempfile . open ( 'warnings' ) do |warnings_file |
77+ out , err = capture_subprocess_io do
78+ system (
79+ @exe , 'report' ,
80+ '--queue' , @redis_url ,
81+ '--build' , '1' ,
82+ '--timeout' , '1' ,
83+ '--warnings-file' , warnings_file . path ,
84+ '--heartbeat' ,
85+ chdir : 'test/fixtures/' ,
86+ )
87+ end
88+
89+ assert_empty err
90+ result = normalize ( out . lines [ 1 ] . strip )
91+ assert_equal "Ran 1 tests, 0 assertions, 0 failures, 0 errors, 0 skips, 0 requeues in X.XXs (aggregated)" , result
92+ warnings = JSON . parse ( warnings_file . read )
93+ assert_equal 1 , warnings . size
94+ end
95+ end
96+
97+ def test_verbose_reporter
98+ out , err = capture_subprocess_io do
99+ system (
100+ { 'BUILDKITE' => '1' } ,
101+ @exe , 'run' ,
102+ '--queue' , @redis_url ,
103+ '--seed' , 'foobar' ,
104+ '--build' , '1' ,
105+ '--worker' , '1' ,
106+ '--timeout' , '1' ,
107+ '--max-requeues' , '1' ,
108+ '--requeue-tolerance' , '1' ,
109+ '-Itest' ,
110+ 'test/dummy_test.rb' ,
111+ '-v' ,
112+ chdir : 'test/fixtures/' ,
113+ )
114+ end
115+
116+ assert_empty err
117+ assert_match ( /ATest#test_foo \d +\. \d + = S/ , normalize ( out ) ) # verbose test ouptut
118+ result = normalize ( out . lines . last . strip )
119+ assert_equal '--- Ran 11 tests, 8 assertions, 2 failures, 1 errors, 1 skips, 4 requeues in X.XXs' , result
120+ end
121+
122+ def test_debug_log
123+ Tempfile . open ( 'debug_log' ) do |log_file |
124+ out , err = capture_subprocess_io do
125+ system (
126+ { 'BUILDKITE' => '1' } ,
127+ @exe , 'run' ,
128+ '--queue' , @redis_url ,
129+ '--seed' , 'foobar' ,
130+ '--build' , '1' ,
131+ '--worker' , '1' ,
132+ '--timeout' , '1' ,
133+ '--max-requeues' , '1' ,
134+ '--requeue-tolerance' , '1' ,
135+ '-Itest' ,
136+ 'test/dummy_test.rb' ,
137+ '--debug-log' , log_file . path ,
138+ chdir : 'test/fixtures/' ,
139+ )
140+ end
141+
142+ assert_includes File . read ( log_file . path ) , 'INFO -- : Finished \'["exists", "b:c4ca4238:w:1:q"]\': 0'
143+ assert_empty err
144+ result = normalize ( out . lines . last . strip )
145+ assert_equal '--- Ran 11 tests, 8 assertions, 2 failures, 1 errors, 1 skips, 4 requeues in X.XXs' , result
146+ end
147+ end
148+
25149 def test_buildkite_output
26150 out , err = capture_subprocess_io do
27151 system (
@@ -240,7 +364,7 @@ def test_retry_fails_when_test_run_is_expired
240364 assert_equal 'Ran 100 tests, 100 assertions, 0 failures, 0 errors, 0 skips, 0 requeues in X.XXs' , output
241365
242366 one_day = 60 * 60 * 24
243- key = [ 'build' , "1" , "created-at" ] . join ( ':' )
367+ key = CI :: Queue :: Redis :: KeyShortener . key ( "1" , "created-at" )
244368 @redis . set ( key , Time . now - one_day )
245369
246370 out , err = capture_subprocess_io do
0 commit comments