-
Notifications
You must be signed in to change notification settings - Fork 0
/
diagnostic_test.rb
68 lines (61 loc) · 1.49 KB
/
diagnostic_test.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require File.dirname(__FILE__) + '/quix_test_base'
require "stringio"
require "quix/diagnostic"
class TestDiagnostic < Test::Unit::TestCase
include Quix::Diagnostic
def test_diagnostic_1
out = StringIO.new
desc = "zzz"
a = 33
previous = $VERBOSE
$VERBOSE = false
begin
show(desc, out) {%{a}}
ensure
$VERBOSE = previous
end
lines = out.string.split("\n").map { |t| t.chomp }
assert_equal desc, lines[0]
assert_match %r!\A\s*a\s+=>\s*#{a}\s*\Z!, lines[1]
end
def test_diagnostic_2
out = StringIO.new
a = 33
show(nil, out) {%{a}}
assert_match %r!\A\s*a\s+=>\s*#{a}\s*\Z!, out.string
end
def test_diagnostic_3
prev_debug = $DEBUG
prev_stderr = $stderr
begin
$stderr = StringIO.new
a = 33
$DEBUG = false
memo = Array.new
debug { memo.push :data }
assert_equal 0, memo.size
assert_equal false, debugging?
trace {%{a}}
assert_equal "", $stderr.string
trace(nil) {%{a}}
assert_equal "", $stderr.string
$DEBUG = true
memo = Array.new
debug { memo.push :data }
assert_equal 1, memo.size
assert_equal :data, memo.first
assert_equal true, debugging?
previous = $VERBOSE
$VERBOSE = false
begin
trace {%{a}}
ensure
$VERBOSE = previous
end
assert_match %r!\A\s*a\s+=>\s*#{a}\s*\Z!, $stderr.string
ensure
$DEBUG = prev_debug
$stderr = prev_stderr
end
end
end