@@ -207,6 +207,8 @@ def EMIT_STDOUT(val)
207207 # TEST 1, "ls /non/existing"
208208 # ```
209209 def TEST ( *args )
210+ caller_line = caller_locations . first
211+ line = "#{ caller_line . path } :#{ caller_line . lineno } "
210212 BinnacleTestsRunner . inc_counter
211213
212214 return "" if BinnacleTestsRunner . dry_run?
@@ -229,7 +231,7 @@ def TEST(*args)
229231 STDERR . puts "# #{ stderr_line } " unless stderr_line . nil?
230232
231233 unless ret . nil?
232- BinnacleTestsRunner . cmd_test_end ( cmd , ret , expect_ret )
234+ BinnacleTestsRunner . cmd_test_end ( cmd , ret : ret , expect_ret : expect_ret , line : line )
233235 exit if ( BinnacleTestsRunner . exit_on_not_ok? && ret != 0 )
234236 end
235237 end
@@ -243,6 +245,8 @@ def TEST(*args)
243245 # EXPECT 42, "echo 42"
244246 # ```
245247 def EXPECT ( expect_value , cmd )
248+ caller_line = caller_locations . first
249+ line = "#{ caller_line . path } :#{ caller_line . lineno } "
246250 BinnacleTestsRunner . inc_counter
247251
248252 return if BinnacleTestsRunner . dry_run?
@@ -257,31 +261,32 @@ def EXPECT(expect_value, cmd)
257261 STDERR . puts "# #{ stderr_line } " unless stderr_line . nil?
258262
259263 unless ret . nil?
260- BinnacleTestsRunner . cmd_test_end ( cmd , ret , 0 ) if ret != 0
264+ BinnacleTestsRunner . cmd_test_end ( cmd , ret : ret , expect_ret : 0 , line : line ) if ret != 0
261265 exit if ( BinnacleTestsRunner . exit_on_not_ok? && ret != 0 )
262266 end
263267 end
264268
265269 if "#{ expect_value } " == out . join
266- BinnacleTestsRunner . test_end ( cmd , ok = true )
270+ BinnacleTestsRunner . test_end ( cmd , ok : true , line : line )
267271 else
268272 BinnacleTestsRunner . test_end (
269273 cmd ,
270- ok = false ,
271- diagnostic = "Expected:\n --\n #{ expect_value } \n --\n Actual:\n --\n #{ out . join } \n --\n "
274+ ok : false ,
275+ diagnostic : "Expected:\n --\n #{ expect_value } \n --\n Actual:\n --\n #{ out . join } \n --\n " ,
276+ line : line
272277 )
273278 exit if BinnacleTestsRunner . exit_on_not_ok?
274279 end
275280 end
276281
277282 # If value is String then evaluate it else return as is
278- def value_from_expr ( value , title , fail_message )
283+ def value_from_expr ( value , title , fail_message , line = 0 )
279284 if value . is_a? String
280285 begin
281286 value = eval ( value )
282287 rescue Exception => ex
283288 fail_message += "\n #{ ex . message } "
284- BinnacleTestsRunner . test_end ( title , ok = false , diagnostic = fail_message )
289+ BinnacleTestsRunner . test_end ( title , ok : false , diagnostic : fail_message , line : line )
285290 return nil
286291 end
287292 end
@@ -299,18 +304,20 @@ def value_from_expr(value, title, fail_message)
299304 # TRUE "#{value} == 100", "Value is 100", "Actual: #{value}"
300305 # ```
301306 def TRUE ( value , title , fail_message = "" )
307+ caller_line = caller_locations . first
308+ line = "#{ caller_line . path } :#{ caller_line . lineno } "
302309 BinnacleTestsRunner . inc_counter
303310
304311 return if BinnacleTestsRunner . dry_run?
305312
306313 BinnacleTestsRunner . test_start
307- value = value_from_expr ( value , title , fail_message )
314+ value = value_from_expr ( value , title , fail_message , line )
308315 return if value . nil?
309316
310317 if value
311- BinnacleTestsRunner . test_end ( title , ok = true )
318+ BinnacleTestsRunner . test_end ( title , ok : true , line : line )
312319 else
313- BinnacleTestsRunner . test_end ( title , ok = false , diagnostic = fail_message )
320+ BinnacleTestsRunner . test_end ( title , ok : false , diagnostic : fail_message , line : line )
314321 exit if BinnacleTestsRunner . exit_on_not_ok?
315322 end
316323 end
@@ -325,6 +332,8 @@ def TRUE(value, title, fail_message = "")
325332 # FALSE "#{value} == 100", "Value is not 100", "Actual: #{value}"
326333 # ```
327334 def FALSE ( value , title , fail_message = "" )
335+ caller_line = caller_locations . first
336+ line = "#{ caller_line . path } :#{ caller_line . lineno } "
328337 BinnacleTestsRunner . inc_counter
329338
330339 return if BinnacleTestsRunner . dry_run?
@@ -334,9 +343,9 @@ def FALSE(value, title, fail_message = "")
334343 return if value . nil?
335344
336345 if !value
337- BinnacleTestsRunner . test_end ( title , ok = true )
346+ BinnacleTestsRunner . test_end ( title , ok : true , line : line )
338347 else
339- BinnacleTestsRunner . test_end ( title , ok = false , diagnostic = fail_message )
348+ BinnacleTestsRunner . test_end ( title , ok : false , diagnostic : fail_message , line : line )
340349 exit if BinnacleTestsRunner . exit_on_not_ok?
341350 end
342351 end
@@ -373,16 +382,18 @@ def RUN(cmd)
373382 # EQUAL var1, 100, "Value is 100"
374383 # ```
375384 def EQUAL ( value1 , value2 , title )
385+ caller_line = caller_locations . first
386+ line = "#{ caller_line . path } :#{ caller_line . lineno } "
376387 BinnacleTestsRunner . inc_counter
377388
378389 return if BinnacleTestsRunner . dry_run?
379390
380391 BinnacleTestsRunner . test_start
381392 if value1 == value2
382- BinnacleTestsRunner . test_end ( title , ok = true )
393+ BinnacleTestsRunner . test_end ( title , ok : true , line : line )
383394 else
384395 fail_message = "Value1:\n --\n #{ value1 } \n --\n \n Value2:\n --\n #{ value2 } \n --\n "
385- BinnacleTestsRunner . test_end ( title , ok = false , diagnostic = fail_message )
396+ BinnacleTestsRunner . test_end ( title , ok : false , diagnostic : fail_message , line : line )
386397 exit if BinnacleTestsRunner . exit_on_not_ok?
387398 end
388399 end
@@ -397,16 +408,18 @@ def EQUAL(value1, value2, title)
397408 # NOT_EQUAL var1, 100, "Value is 100"
398409 # ```
399410 def NOT_EQUAL ( value1 , value2 , title )
411+ caller_line = caller_locations . first
412+ line = "#{ caller_line . path } :#{ caller_line . lineno } "
400413 BinnacleTestsRunner . inc_counter
401414
402415 return if BinnacleTestsRunner . dry_run?
403416
404417 BinnacleTestsRunner . test_start
405418 if value1 != value2
406- BinnacleTestsRunner . test_end ( title , ok = true )
419+ BinnacleTestsRunner . test_end ( title , ok : true , line : line )
407420 else
408421 fail_message = "value1 and value2 are equal(value1: #{ value1 } )"
409- BinnacleTestsRunner . test_end ( title , ok = false , diagnostic = fail_message )
422+ BinnacleTestsRunner . test_end ( title , ok : false , diagnostic : fail_message , line : line )
410423 exit if BinnacleTestsRunner . exit_on_not_ok?
411424 end
412425 end
0 commit comments