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
|