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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench/output/comment_style.rb +61 -0
  3. data/lib/test_bench/output/controls/comment_style.rb +21 -0
  4. data/lib/test_bench/output/controls/event.rb +2 -2
  5. data/lib/test_bench/output/controls/events/aborted.rb +9 -0
  6. data/lib/test_bench/output/controls/events/commented.rb +21 -0
  7. data/lib/test_bench/output/controls/events/context_finished.rb +9 -0
  8. data/lib/test_bench/output/controls/events/context_started.rb +9 -0
  9. data/lib/test_bench/output/controls/events/detailed.rb +21 -0
  10. data/lib/test_bench/output/controls/events/failed.rb +9 -0
  11. data/lib/test_bench/output/controls/events/file_executed.rb +9 -0
  12. data/lib/test_bench/output/controls/events/file_not_found.rb +9 -0
  13. data/lib/test_bench/output/controls/events/file_queued.rb +9 -0
  14. data/lib/test_bench/output/controls/events/skipped.rb +9 -0
  15. data/lib/test_bench/output/controls/events/test_finished.rb +9 -0
  16. data/lib/test_bench/output/controls/events/test_started.rb +9 -0
  17. data/lib/test_bench/output/controls/random.rb +2 -2
  18. data/lib/test_bench/output/controls/session.rb +17 -0
  19. data/lib/test_bench/output/controls/status.rb +7 -0
  20. data/lib/test_bench/output/controls/style.rb +14 -6
  21. data/lib/test_bench/output/controls/text.rb +16 -4
  22. data/lib/test_bench/output/controls.rb +21 -5
  23. data/lib/test_bench/output/detail_policy.rb +44 -0
  24. data/lib/test_bench/output/device/null.rb +3 -3
  25. data/lib/test_bench/output/device/substitute.rb +19 -33
  26. data/lib/test_bench/output/device.rb +73 -0
  27. data/lib/test_bench/output/get.rb +30 -0
  28. data/lib/test_bench/output/level.rb +51 -0
  29. data/lib/test_bench/output/output.rb +540 -36
  30. data/lib/test_bench/output/writer/style.rb +5 -3
  31. data/lib/test_bench/output/writer/substitute.rb +10 -23
  32. data/lib/test_bench/output/writer.rb +54 -147
  33. data/lib/test_bench/output.rb +10 -4
  34. metadata +49 -21
  35. data/lib/test_bench/output/controls/data.rb +0 -49
  36. data/lib/test_bench/output/controls/device.rb +0 -27
  37. data/lib/test_bench/output/controls/output.rb +0 -34
  38. data/lib/test_bench/output/controls/styling.rb +0 -27
  39. data/lib/test_bench/output/digest.rb +0 -113
  40. data/lib/test_bench/output/writer/buffer.rb +0 -57
  41. 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
@@ -1,11 +0,0 @@
1
- module TestBench
2
- module Output
3
- class Writer
4
- module Defaults
5
- def self.device
6
- STDOUT
7
- end
8
- end
9
- end
10
- end
11
- end