pantheios-ruby 0.22.0.2 → 0.22.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/AUTHORS.md +21 -0
- data/CHANGES.md +337 -0
- data/CONTRIBUTING.md +36 -0
- data/EXAMPLES.md +11 -0
- data/FAQ.md +28 -0
- data/INSTALL.md +43 -0
- data/LICENSE +21 -20
- data/NEWS.md +65 -0
- data/README.md +134 -2
- data/Rakefile +21 -0
- data/SECURITY.md +23 -0
- data/TODO.md +29 -0
- data/examples/coloured_console_log_service.rb +1 -1
- data/examples/multiple_modules.md +1 -1
- data/examples/multiple_modules.rb +36 -36
- data/examples/simple_logging.md +1 -1
- data/examples/simple_logging.rb +1 -1
- data/examples/threshold_front_end.rb +1 -1
- data/lib/pantheios/api.rb +156 -155
- data/lib/pantheios/application_layer/param_name_list.rb +1 -0
- data/lib/pantheios/application_layer/stock_severity_levels.rb +110 -111
- data/lib/pantheios/application_layer.rb +6 -5
- data/lib/pantheios/core.rb +416 -415
- data/lib/pantheios/front_ends/threshold_front_end.rb +81 -81
- data/lib/pantheios/globals.rb +45 -45
- data/lib/pantheios/services/coloured_console_log_service.rb +96 -96
- data/lib/pantheios/services/common/console.rb +58 -57
- data/lib/pantheios/services/multiplexing_log_service.rb +151 -150
- data/lib/pantheios/services/null_log_service.rb +11 -11
- data/lib/pantheios/services/simple_console_log_service.rb +20 -20
- data/lib/pantheios/services/simple_file_log_service.rb +112 -113
- data/lib/pantheios/services/standard_log_service_adapter.rb +119 -119
- data/lib/pantheios/services.rb +1 -0
- data/lib/pantheios/util/process_util.rb +25 -24
- data/lib/pantheios/util/reflection_util.rb +14 -13
- data/lib/pantheios/util/thread_util.rb +50 -49
- data/lib/pantheios/util/version_util.rb +34 -33
- data/lib/pantheios/util.rb +1 -0
- data/lib/pantheios/version.rb +19 -19
- data/lib/pantheios.rb +12 -12
- data/test/performance/test_perf_simple_statements.rb +58 -58
- data/test/performance/test_perf_trace_variants.rb +43 -57
- data/test/scratch/log_rolling_by_period_daily.rb +3 -3
- data/test/scratch/log_rolling_by_size_and_depth.rb +3 -3
- data/test/scratch/log_using_blocks.rb +12 -12
- data/test/scratch/multiplexing_log_service.rb +32 -32
- data/test/unit/application_layer/tc_param_name_list.rb +13 -13
- data/test/unit/application_layer/tc_stock_severity_levels.rb +102 -102
- data/test/unit/core/tc_core_1.rb +24 -24
- data/test/unit/front_ends/tc_threshold_front_end.rb +65 -65
- data/test/unit/services/tc_multiplexing_log_service.rb +79 -79
- data/test/unit/services/tc_null_log_service.rb +42 -42
- data/test/unit/services/tc_simple_console_log_service.rb +70 -70
- data/test/unit/services/tc_simple_file_log_service.rb +146 -146
- data/test/unit/services/tc_standard_log_service_adapter.rb +94 -96
- data/test/unit/util/tc_process_util.rb +6 -6
- data/test/unit/util/tc_reflection_util.rb +20 -20
- data/test/unit/util/tc_thread_util.rb +46 -46
- data/test/unit/util/tc_version_util.rb +47 -47
- metadata +33 -12
|
@@ -10,161 +10,161 @@ require 'test/unit'
|
|
|
10
10
|
|
|
11
11
|
class Test_StockSeverityLevels < Test::Unit::TestCase
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
include ::Pantheios::ApplicationLayer
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
EXPECTED_LEVELS_PRIME = %w{
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
violation
|
|
18
|
+
alert
|
|
19
|
+
critical
|
|
20
|
+
failure
|
|
21
|
+
warning
|
|
22
|
+
notice
|
|
23
|
+
informational
|
|
24
|
+
debug0
|
|
25
|
+
debug1
|
|
26
|
+
debug2
|
|
27
|
+
debug3
|
|
28
|
+
debug4
|
|
29
|
+
debug5
|
|
30
|
+
trace
|
|
31
|
+
benchmark
|
|
32
|
+
}.map { |s| s.to_sym }
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
EXPECTED_LEVELS = %w{
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
emergency
|
|
37
|
+
fail
|
|
38
|
+
info
|
|
39
|
+
warn
|
|
40
|
+
}.map { |s| s.to_sym } + EXPECTED_LEVELS_PRIME
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
def test_StockSeverityLevels_type_exists
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
assert defined? StockSeverityLevels
|
|
45
|
+
end
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
def test_StockSeverityLevels_type_is_a_module
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
assert_kind_of(::Module, StockSeverityLevels) if defined?(StockSeverityLevels)
|
|
50
|
+
end
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
def test_StockSeverityLevels_has_constants
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
if defined? StockSeverityLevels
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
assert StockSeverityLevels.const_defined?(:STOCK_SEVERITY_LEVELS)
|
|
57
|
+
assert StockSeverityLevels.const_defined?(:STOCK_SEVERITY_LEVELS_PRIME)
|
|
58
|
+
assert StockSeverityLevels.const_defined?(:STOCK_SEVERITY_LEVEL_VALUES)
|
|
59
|
+
assert StockSeverityLevels.const_defined?(:STOCK_SEVERITY_LEVEL_STRINGS)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
def test_StockSeverityLevels_expected_levels
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
# all the ones that we expect exist
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
EXPECTED_LEVELS.each do |sev|
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
assert(StockSeverityLevels::STOCK_SEVERITY_LEVELS.include?(sev), "did not find level #{::Symbol === sev ? ':' : ''}#{sev} in #{StockSeverityLevels}::STOCK_SEVERITY_LEVELS")
|
|
70
|
+
end
|
|
71
71
|
|
|
72
|
-
|
|
72
|
+
# we expect all the ones that exist
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
StockSeverityLevels::STOCK_SEVERITY_LEVELS.each do |sev|
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
assert(EXPECTED_LEVELS.include?(sev), "found unexpected level #{::Symbol === sev ? ':' : ''}#{sev} in #{StockSeverityLevels}::STOCK_SEVERITY_LEVELS")
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
def test_StockSeverityLevels_expected_prime_levels
|
|
81
81
|
|
|
82
|
-
|
|
82
|
+
# all the ones that we expect exist
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
EXPECTED_LEVELS_PRIME.each do |sev|
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
assert(StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME.include?(sev), "did not find level #{::Symbol === sev ? ':' : ''}#{sev} in #{StockSeverityLevels}::STOCK_SEVERITY_LEVELS")
|
|
87
|
+
end
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
# we expect all the ones that exist
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
StockSeverityLevels::STOCK_SEVERITY_LEVELS_PRIME.each do |sev|
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
93
|
+
assert(EXPECTED_LEVELS_PRIME.include?(sev), "found unexpected level #{::Symbol === sev ? ':' : ''}#{sev} in #{StockSeverityLevels}::STOCK_SEVERITY_LEVELS")
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
def test_StockSeverityLevels_expected_prime_levels_have_distinct_values
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
values = {}
|
|
100
100
|
|
|
101
|
-
|
|
101
|
+
EXPECTED_LEVELS_PRIME.each do |sev|
|
|
102
102
|
|
|
103
|
-
|
|
103
|
+
value = StockSeverityLevels::STOCK_SEVERITY_LEVEL_VALUES[sev]
|
|
104
104
|
|
|
105
|
-
|
|
105
|
+
assert(false, "value #{value} for severity '#{sev}' is not unique") if values.has_key?(value)
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
values[value] = value
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
def test_StockSeverityLevels_expected_prime_levels_have_distinct_strings
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
strings = {}
|
|
114
114
|
|
|
115
|
-
|
|
115
|
+
EXPECTED_LEVELS_PRIME.each do |sev|
|
|
116
116
|
|
|
117
|
-
|
|
117
|
+
string = StockSeverityLevels::STOCK_SEVERITY_LEVEL_STRINGS[sev]
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
assert(false, "string '#{string}' for severity '#{sev}' is not unique") if strings.has_key?(string)
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
strings[string] = string
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
def test_StockSeverityLevels_aliases
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
aliases = StockSeverityLevels::STOCK_SEVERITY_LEVEL_ALIASES
|
|
128
128
|
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
assert_equal :violation, aliases[:violation]
|
|
130
|
+
assert_equal :violation, aliases[:emergency]
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
assert_equal :alert, aliases[:alert]
|
|
133
133
|
|
|
134
|
-
|
|
134
|
+
assert_equal :critical, aliases[:critical]
|
|
135
135
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
assert_equal :failure, aliases[:failure]
|
|
137
|
+
assert_equal :failure, aliases[:fail]
|
|
138
|
+
#assert_equal :failure, aliases[:error]
|
|
139
139
|
|
|
140
|
-
|
|
141
|
-
|
|
140
|
+
assert_equal :warning, aliases[:warning]
|
|
141
|
+
assert_equal :warning, aliases[:warn]
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
assert_equal :notice, aliases[:notice]
|
|
144
144
|
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
assert_equal :informational, aliases[:informational]
|
|
146
|
+
assert_equal :informational, aliases[:info]
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
%i{ debug0 debug1 debug2 debug3 debug4 debug5 }.each do |sev|
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
|
|
150
|
+
assert_equal sev, aliases[sev]
|
|
151
|
+
end
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
assert_equal :trace, aliases[:trace]
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
155
|
+
assert_equal :benchmark, aliases[:benchmark]
|
|
156
|
+
end
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
def test_StockSeverityLevels_recognised_values_are_nil
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
EXPECTED_LEVELS.each do |sev|
|
|
161
161
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
assert_not_nil StockSeverityLevels::STOCK_SEVERITY_LEVEL_VALUES[sev]
|
|
163
|
+
assert_nil StockSeverityLevels::STOCK_SEVERITY_LEVEL_VALUES[sev.to_s]
|
|
164
|
+
end
|
|
165
165
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
assert_nil StockSeverityLevels::STOCK_SEVERITY_LEVEL_VALUES[nil]
|
|
167
|
+
assert_nil StockSeverityLevels::STOCK_SEVERITY_LEVEL_VALUES['failure']
|
|
168
|
+
end
|
|
169
169
|
end
|
|
170
170
|
|
data/test/unit/core/tc_core_1.rb
CHANGED
|
@@ -10,45 +10,45 @@ require 'test/unit'
|
|
|
10
10
|
|
|
11
11
|
class Test_Core_set_process_name < Test::Unit::TestCase
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Core = ::Pantheios::Core
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
def test_derive_process_name_obtains_the_same_results_but_different_instances
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
begin
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Core.process_name = nil
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
n_1 = Core.process_name
|
|
22
|
+
n_2 = Core.process_name
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
assert_equal n_1, n_2
|
|
25
|
+
assert_same n_1, n_2
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Core.process_name = nil
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
n_3 = Core.process_name
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
assert_equal n_1, n_3
|
|
33
|
+
assert_not_same n_1, n_3
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
ensure
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
Core.process_name = nil
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
def test_derive_process_name_accepts_custom_value
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
begin
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
Core.process_name = 'abc'
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
assert_equal 'abc', Core.process_name
|
|
48
|
+
ensure
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
Core.process_name = nil
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -8,93 +8,93 @@ require 'test/unit'
|
|
|
8
8
|
|
|
9
9
|
class Test_FrontEnds_ThresholdFrontEnd < Test::Unit::TestCase
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
include ::Pantheios::FrontEnds
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
def test_SimpleConsoleLogService_type_exists
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
assert defined? ThresholdFrontEnd
|
|
16
|
+
end
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
def test_construct_with_invalid_parameters
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
assert_raise(::TypeError) { ThresholdFrontEnd.new('notice') }
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
assert_raise_with_message(::ArgumentError, /unknown threshold severity level.*something_else.*Symbol/) { ThresholdFrontEnd.new(:something_else) }
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
ThresholdFrontEnd.new(:notice)
|
|
25
|
+
ThresholdFrontEnd.new(:notice, value_lookup_map: Hash.new)
|
|
26
|
+
assert_raise_with_message(::TypeError, /:value_lookup_map must be.*Hash/) { ThresholdFrontEnd.new(:notice, value_lookup_map: Array.new) }
|
|
27
|
+
end
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
def test_default_construct
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
fe = ThresholdFrontEnd.new(:notice)
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
assert_equal :notice, fe.threshold
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
35
|
+
assert_true fe.severity_logged?(:violation)
|
|
36
|
+
assert_true fe.severity_logged?(:alert)
|
|
37
|
+
assert_true fe.severity_logged?(:critical)
|
|
38
|
+
assert_true fe.severity_logged?(:failure)
|
|
39
|
+
assert_true fe.severity_logged?(:warning)
|
|
40
|
+
assert_true fe.severity_logged?(:notice)
|
|
41
|
+
assert_false fe.severity_logged?(:informational)
|
|
42
|
+
assert_false fe.severity_logged?(:debug0)
|
|
43
|
+
assert_false fe.severity_logged?(:debug1)
|
|
44
|
+
assert_false fe.severity_logged?(:debug2)
|
|
45
|
+
assert_false fe.severity_logged?(:debug3)
|
|
46
|
+
assert_false fe.severity_logged?(:debug4)
|
|
47
|
+
assert_false fe.severity_logged?(:debug5)
|
|
48
|
+
assert_false fe.severity_logged?(:trace)
|
|
49
|
+
end
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
def test_default_construct_and_change_threshold
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
fe = ThresholdFrontEnd.new(:notice)
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
assert_equal :notice, fe.threshold
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
fe.threshold = :failure
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
assert_equal :failure, fe.threshold
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
61
|
+
assert_true fe.severity_logged?(:violation)
|
|
62
|
+
assert_true fe.severity_logged?(:alert)
|
|
63
|
+
assert_true fe.severity_logged?(:critical)
|
|
64
|
+
assert_true fe.severity_logged?(:failure)
|
|
65
|
+
assert_false fe.severity_logged?(:warning)
|
|
66
|
+
assert_false fe.severity_logged?(:notice)
|
|
67
|
+
assert_false fe.severity_logged?(:informational)
|
|
68
|
+
assert_false fe.severity_logged?(:debug0)
|
|
69
|
+
assert_false fe.severity_logged?(:debug1)
|
|
70
|
+
assert_false fe.severity_logged?(:debug2)
|
|
71
|
+
assert_false fe.severity_logged?(:debug3)
|
|
72
|
+
assert_false fe.severity_logged?(:debug4)
|
|
73
|
+
assert_false fe.severity_logged?(:debug5)
|
|
74
|
+
assert_false fe.severity_logged?(:trace)
|
|
75
|
+
end
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
def test_use_custom_thresholds
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
value_lookup_map = {
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
81
|
+
FATAL: 1,
|
|
82
|
+
ERROR: 2,
|
|
83
|
+
WARN: 3,
|
|
84
|
+
INFO: 4,
|
|
85
|
+
DEBUG: 5,
|
|
86
|
+
}
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
fe = ThresholdFrontEnd.new(:INFO, value_lookup_map: value_lookup_map)
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
assert_equal :INFO, fe.threshold
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
assert_true fe.severity_logged?(:FATAL)
|
|
93
|
+
assert_true fe.severity_logged?(:ERROR)
|
|
94
|
+
assert_true fe.severity_logged?(:WARN)
|
|
95
|
+
assert_true fe.severity_logged?(:INFO)
|
|
96
|
+
assert_false fe.severity_logged?(:DEBUG)
|
|
97
|
+
end
|
|
98
98
|
end
|
|
99
99
|
|
|
100
100
|
# ############################## end of file ############################# #
|