test_bench-output 2.1.1.2 → 3.0.0.0.pre.1
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 +4 -4
- data/lib/test_bench/output/comment_style.rb +61 -0
- data/lib/test_bench/output/controls/comment_style.rb +21 -0
- data/lib/test_bench/output/controls/event.rb +2 -2
- data/lib/test_bench/output/controls/events/aborted.rb +9 -0
- data/lib/test_bench/output/controls/events/commented.rb +21 -0
- data/lib/test_bench/output/controls/events/context_finished.rb +9 -0
- data/lib/test_bench/output/controls/events/context_started.rb +9 -0
- data/lib/test_bench/output/controls/events/detailed.rb +21 -0
- data/lib/test_bench/output/controls/events/failed.rb +9 -0
- data/lib/test_bench/output/controls/events/file_executed.rb +9 -0
- data/lib/test_bench/output/controls/events/file_not_found.rb +9 -0
- data/lib/test_bench/output/controls/events/file_queued.rb +9 -0
- data/lib/test_bench/output/controls/events/skipped.rb +9 -0
- data/lib/test_bench/output/controls/events/test_finished.rb +9 -0
- data/lib/test_bench/output/controls/events/test_started.rb +9 -0
- data/lib/test_bench/output/controls/random.rb +2 -2
- data/lib/test_bench/output/controls/session.rb +17 -0
- data/lib/test_bench/output/controls/status.rb +7 -0
- data/lib/test_bench/output/controls/style.rb +14 -6
- data/lib/test_bench/output/controls/text.rb +16 -4
- data/lib/test_bench/output/controls.rb +21 -5
- data/lib/test_bench/output/detail_policy.rb +44 -0
- data/lib/test_bench/output/device/null.rb +3 -3
- data/lib/test_bench/output/device/substitute.rb +19 -33
- data/lib/test_bench/output/device.rb +73 -0
- data/lib/test_bench/output/get.rb +30 -0
- data/lib/test_bench/output/level.rb +51 -0
- data/lib/test_bench/output/output.rb +540 -36
- data/lib/test_bench/output/writer/style.rb +5 -3
- data/lib/test_bench/output/writer/substitute.rb +10 -23
- data/lib/test_bench/output/writer.rb +54 -147
- data/lib/test_bench/output.rb +10 -4
- metadata +49 -21
- data/lib/test_bench/output/controls/data.rb +0 -49
- data/lib/test_bench/output/controls/device.rb +0 -27
- data/lib/test_bench/output/controls/output.rb +0 -34
- data/lib/test_bench/output/controls/styling.rb +0 -27
- data/lib/test_bench/output/digest.rb +0 -113
- data/lib/test_bench/output/writer/buffer.rb +0 -57
- data/lib/test_bench/output/writer/defaults.rb +0 -11
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
module TestBench
|
|
2
|
-
module Output
|
|
3
|
-
class Digest
|
|
4
|
-
def last_digest
|
|
5
|
-
@last_digest ||= 0
|
|
6
|
-
end
|
|
7
|
-
attr_writer :last_digest
|
|
8
|
-
|
|
9
|
-
def buffer
|
|
10
|
-
@buffer ||= String.new(encoding: 'BINARY', capacity: Defaults.size_bytes * 2)
|
|
11
|
-
end
|
|
12
|
-
attr_writer :buffer
|
|
13
|
-
|
|
14
|
-
def self.digest(data)
|
|
15
|
-
instance = new
|
|
16
|
-
instance.update(data)
|
|
17
|
-
instance.digest
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def self.configure(receiver, inert: nil, attr_name: nil)
|
|
21
|
-
attr_name ||= :digest
|
|
22
|
-
inert = true if inert.nil?
|
|
23
|
-
|
|
24
|
-
if inert
|
|
25
|
-
instance = Null.new
|
|
26
|
-
else
|
|
27
|
-
instance = self.new
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
receiver.public_send(:"#{attr_name}=", instance)
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def clone
|
|
34
|
-
cloned_digest = Digest.new
|
|
35
|
-
cloned_digest.last_digest = last_digest
|
|
36
|
-
cloned_digest.buffer << buffer
|
|
37
|
-
cloned_digest
|
|
38
|
-
end
|
|
39
|
-
|
|
40
|
-
def update(data)
|
|
41
|
-
digest_size_bytes = Defaults.size_bytes
|
|
42
|
-
|
|
43
|
-
(0..data.bytesize).step(digest_size_bytes).each do |position|
|
|
44
|
-
next_bytes = data.byteslice(position, digest_size_bytes)
|
|
45
|
-
next_bytes.force_encoding('BINARY')
|
|
46
|
-
|
|
47
|
-
buffer << next_bytes
|
|
48
|
-
|
|
49
|
-
if buffer.length >= digest_size_bytes
|
|
50
|
-
self.last_digest = digest
|
|
51
|
-
|
|
52
|
-
buffer.slice!(0, 8)
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
digest
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def digest
|
|
60
|
-
buffer_bytes = buffer.unpack('C*')[0...8]
|
|
61
|
-
|
|
62
|
-
buffer_int64 = buffer_bytes.reduce(0) do |int64, byte|
|
|
63
|
-
(int64 << 8) | byte
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
(last_digest + buffer_int64) % (256 ** Defaults.size_bytes - 1)
|
|
67
|
-
end
|
|
68
|
-
alias :value :digest
|
|
69
|
-
alias :to_i :digest
|
|
70
|
-
|
|
71
|
-
def digest?(data)
|
|
72
|
-
other_digest = self.class.digest(data)
|
|
73
|
-
|
|
74
|
-
digest == other_digest
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def format
|
|
78
|
-
self.class.format(value)
|
|
79
|
-
end
|
|
80
|
-
alias :to_s :format
|
|
81
|
-
|
|
82
|
-
def self.format(digest)
|
|
83
|
-
if digest < 0
|
|
84
|
-
# 0x8000...
|
|
85
|
-
sign_mask = 0x1 << (8 * Defaults.size_bytes - 1)
|
|
86
|
-
# 0x7FFF...
|
|
87
|
-
mask = (256 ** Defaults.size_bytes - 1) ^ sign_mask
|
|
88
|
-
|
|
89
|
-
digest_uint64 = ~digest & mask | sign_mask
|
|
90
|
-
else
|
|
91
|
-
digest_uint64 = digest
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
"0x%016X" % digest_uint64
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
class Null
|
|
98
|
-
def update(_data)
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
def digest?(_data)
|
|
102
|
-
false
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
module Defaults
|
|
107
|
-
def self.size_bytes
|
|
108
|
-
8
|
|
109
|
-
end
|
|
110
|
-
end
|
|
111
|
-
end
|
|
112
|
-
end
|
|
113
|
-
end
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
module TestBench
|
|
2
|
-
module Output
|
|
3
|
-
class Writer
|
|
4
|
-
class Buffer
|
|
5
|
-
attr_accessor :limit
|
|
6
|
-
|
|
7
|
-
def contents
|
|
8
|
-
@contents ||= String.new
|
|
9
|
-
end
|
|
10
|
-
attr_writer :contents
|
|
11
|
-
|
|
12
|
-
def self.build
|
|
13
|
-
instance = new
|
|
14
|
-
instance.limit = 0
|
|
15
|
-
instance
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def self.configure(receiver, attr_name: nil)
|
|
19
|
-
attr_name ||= :buffer
|
|
20
|
-
|
|
21
|
-
instance = build
|
|
22
|
-
receiver.public_send(:"#{attr_name}=", instance)
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def receive(data)
|
|
26
|
-
bytes = data.bytesize
|
|
27
|
-
|
|
28
|
-
if not limit.nil?
|
|
29
|
-
final_size = contents.bytesize + bytes
|
|
30
|
-
|
|
31
|
-
if final_size > limit
|
|
32
|
-
bytes = limit - contents.bytesize
|
|
33
|
-
|
|
34
|
-
data = data[0...bytes]
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
contents << data
|
|
39
|
-
|
|
40
|
-
bytes
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def limit?
|
|
44
|
-
!limit.nil?
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def flush(*devices)
|
|
48
|
-
devices.each do |device|
|
|
49
|
-
device.write(contents)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
contents.clear
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|