Skip to content

Commit 8ed08b9

Browse files
authored
Add Line number in Test result (#34)
Signed-off-by: Aravinda Vishwanathapura <[email protected]>
1 parent a79597b commit 8ed08b9

File tree

2 files changed

+34
-20
lines changed

2 files changed

+34
-20
lines changed

src/plugins.rb

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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--\nActual:\n--\n#{out.join}\n--\n"
274+
ok: false,
275+
diagnostic: "Expected:\n--\n#{expect_value}\n--\nActual:\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\nValue2:\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

src/runner.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,12 @@ def self.test_start
162162
puts "==="
163163
end
164164

165-
def self.test_end(cmd, ok=nil, diagnostic=nil, ret=nil, expect_ret=0)
165+
def self.test_end(cmd, ok: nil, diagnostic: nil, ret: nil, expect_ret: 0, line: 0)
166166
duration = Time.now - @@start_time
167-
out_desc = "duration=%.2fs node=%s cmd=\"%s %s\"" % [
167+
out_desc = "duration=%.2fs node=%s line=%s cmd=\"%s %s\"" % [
168168
duration,
169169
@@node,
170+
line,
170171
@@test_name,
171172
cmd
172173
]
@@ -183,8 +184,8 @@ def self.test_end(cmd, ok=nil, diagnostic=nil, ret=nil, expect_ret=0)
183184
self.print_test_state(ok_msg, self.tests_count, out_desc)
184185
end
185186

186-
def self.cmd_test_end(cmd, ret, expect_ret=0, diagnostic=nil)
187-
test_end(cmd, nil, diagnostic, ret, expect_ret)
187+
def self.cmd_test_end(cmd, ret:, expect_ret: 0, diagnostic: nil, line: 0)
188+
test_end(cmd, ok: nil, diagnostic: diagnostic, ret: ret, expect_ret: expect_ret, line: line)
188189
end
189190

190191
def self.print_test_state(ok_msg, test_id, msg)

0 commit comments

Comments
 (0)