Skip to content

Commit 2ba2950

Browse files
committed
show loadavg if the test fails
to survey the following failure: ``` 1) Failure: TestFile#test_stat [/tmp/ruby/src/trunk-repeat20/test/ruby/test_file.rb:412]: Expected |1770056232.744032 - 1770056230.6465776| (2.097454309463501) to be <= 1. ``` BTW I found that `test/ruby/test_file.rb:412` `assert_in_delta atime, stat.atime.to_f, delta` only fails (mtime, ctime doesn't fail on 100 days).
1 parent 2dc4e87 commit 2ba2950

2 files changed

Lines changed: 14 additions & 5 deletions

File tree

tool/lib/test/unit/assertions.rb

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,16 @@ def assert_empty obj, msg = nil
128128

129129
def assert_in_delta exp, act, delta = 0.001, msg = nil
130130
n = (exp - act).abs
131+
loadavg = begin
132+
if File.readable?("/proc/loadavg")
133+
" (/proc/loadavg=#{File.read("/proc/loadavg").strip})"
134+
end
135+
rescue StandardError
136+
nil
137+
end
138+
loadavg ||= ""
131139
msg = message(msg) {
132-
"Expected |#{exp} - #{act}| (#{n}) to be <= #{delta}"
140+
"Expected |#{exp} - #{act}| (#{n}) to be <= #{delta}#{loadavg}"
133141
}
134142
assert delta >= n, msg
135143
end

tool/test/testunit/test_minitest_unit.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,7 @@ def test_delta_consistency
646646

647647
def test_assert_in_delta_triggered
648648
x = "1.0e-06"
649-
util_assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= #{x}." do
649+
util_assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= #{x}.", strip: /\s+\(\/proc\/loadavg=.*\)/ do
650650
@tc.assert_in_delta 0.0, 1.0 / 1000, 0.000001
651651
end
652652
end
@@ -678,15 +678,15 @@ def test_epsilon_consistency
678678
end
679679

680680
def test_assert_in_epsilon_triggered
681-
util_assert_triggered 'Expected |10000 - 9990| (10) to be <= 9.99.' do
681+
util_assert_triggered 'Expected |10000 - 9990| (10) to be <= 9.99.', strip: /\s+\(\/proc\/loadavg=.*\)/ do
682682
@tc.assert_in_epsilon 10000, 9990
683683
end
684684
end
685685

686686
def test_assert_in_epsilon_triggered_negative_case
687687
x = "0.100000xxx"
688688
y = "0.1"
689-
util_assert_triggered "Expected |-1.1 - -1| (#{x}) to be <= #{y}." do
689+
util_assert_triggered "Expected |-1.1 - -1| (#{x}) to be <= #{y}.", strip: /\s+\(\/proc\/loadavg=.*\)/ do
690690
@tc.assert_in_epsilon(-1.1, -1, 0.1)
691691
end
692692
end
@@ -1352,14 +1352,15 @@ def test_test3; assert "does not matter" end
13521352
assert_equal expected, sample_test_case.test_methods.sort
13531353
end
13541354

1355-
def assert_triggered expected, klass = Test::Unit::AssertionFailedError
1355+
def assert_triggered expected, klass = Test::Unit::AssertionFailedError, strip: nil
13561356
e = assert_raise klass do
13571357
yield
13581358
end
13591359

13601360
msg = e.message.sub(/(---Backtrace---).*/m, '\1')
13611361
msg.gsub!(/\(oid=[-0-9]+\)/, '(oid=N)')
13621362
msg.gsub!(/(\d\.\d{6})\d+/, '\1xxx') # normalize: ruby version, impl, platform
1363+
msg.gsub!(strip, '') if strip
13631364

13641365
assert_equal expected, msg
13651366
end

0 commit comments

Comments
 (0)