grntest 1.7.4 → 1.7.6
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/doc/text/news.md +16 -0
- data/lib/grntest/executors/base-executor.rb +67 -18
- data/lib/grntest/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06a66bab760554a0f1a4ba6698d87c9702ed6abd0fa0d0301634eabd28668c0f
|
4
|
+
data.tar.gz: 5ed8466037e39813ffe988dff011cefca9ce3abf688e2f63fd99c2e111daa257
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92e1bcf1a86c228069020bd5453f8ff90e79f7103b83950ca6eeaa8d4b6f7609430a549bf2dd4e224ae474a2e25c4765ce859a0ae74d60fe3c08cfd54f2a1095
|
7
|
+
data.tar.gz: ede6349f7555fd317abebf1d5ae7c513a62b12a121f118288d23c62a5564d6b2a18e1f2cbadf478e4516f3130e931196e2b7b1bd51f1a80fb671cf501a8467f1
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 1.7.6: 2024-09-25
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* `#@require-os`: Added to run tests only when Groonga is built for
|
8
|
+
the given OS.
|
9
|
+
|
10
|
+
## 1.7.5: 2024-04-12
|
11
|
+
|
12
|
+
### Improvements
|
13
|
+
|
14
|
+
* `#@generate-series`: Improved performance.
|
15
|
+
|
16
|
+
* `#@require-env`: Added to run tests only when the given
|
17
|
+
environment variable is defined.
|
18
|
+
|
3
19
|
## 1.7.4: 2024-04-05
|
4
20
|
|
5
21
|
### Improvements
|
@@ -308,28 +308,43 @@ module Grntest
|
|
308
308
|
@context.collect_query_log = (options[0] == "true")
|
309
309
|
end
|
310
310
|
|
311
|
+
def each_generated_series_chunk(evaluator, start, stop)
|
312
|
+
max_chunk_size = 1 * 1024 * 1024 # 1MiB
|
313
|
+
chunk_size = 0
|
314
|
+
records = []
|
315
|
+
(Integer(start)..Integer(stop)).each do |i|
|
316
|
+
record = evaluator.evaluate(i: i).to_json
|
317
|
+
records << record
|
318
|
+
chunk_size += record.bytesize
|
319
|
+
if chunk_size > max_chunk_size
|
320
|
+
yield(records)
|
321
|
+
records.clear
|
322
|
+
chunk_size = 0
|
323
|
+
end
|
324
|
+
end
|
325
|
+
yield(records) unless records.empty?
|
326
|
+
end
|
327
|
+
|
311
328
|
def execute_directive_generate_series(parser, line, content, options)
|
312
329
|
start, stop, table, template, = options
|
313
330
|
evaluator = TemplateEvaluator.new(template.force_encoding("UTF-8"))
|
314
|
-
(
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
end
|
325
|
-
record << "\n"
|
326
|
-
record << evaluator.evaluate(i: i).to_json
|
327
|
-
before = Time.now
|
328
|
-
parser << record
|
329
|
-
elapsed = Time.now - before
|
330
|
-
Thread.pass if elapsed > 1.0
|
331
|
+
each_generated_series_chunk(evaluator,
|
332
|
+
Integer(start),
|
333
|
+
Integer(stop)) do |records|
|
334
|
+
source = "load --table #{table}\n"
|
335
|
+
values_part_start_position = source.size
|
336
|
+
source << "["
|
337
|
+
records.each_with_index do |record, i|
|
338
|
+
source << "," unless i.zero?
|
339
|
+
source << "\n"
|
340
|
+
source << record
|
331
341
|
end
|
332
|
-
|
342
|
+
source << "\n]"
|
343
|
+
values = source[values_part_start_position..-1]
|
344
|
+
command = Groonga::Command::Load.new(table: table, values: values)
|
345
|
+
command.original_source = source
|
346
|
+
execute_command(command)
|
347
|
+
Thread.pass
|
333
348
|
end
|
334
349
|
end
|
335
350
|
|
@@ -534,6 +549,36 @@ module Grntest
|
|
534
549
|
@benchmark_result = @noop_benchmark_result
|
535
550
|
end
|
536
551
|
|
552
|
+
def execute_directive_require_env(line, content, options)
|
553
|
+
env, = options
|
554
|
+
if env.start_with?("!")
|
555
|
+
if ENV[env[1..-1]]
|
556
|
+
omit("require env: #{env}")
|
557
|
+
end
|
558
|
+
else
|
559
|
+
unless ENV[env]
|
560
|
+
omit("require env: #{env}")
|
561
|
+
end
|
562
|
+
end
|
563
|
+
end
|
564
|
+
|
565
|
+
def os
|
566
|
+
status_response["os"]
|
567
|
+
end
|
568
|
+
|
569
|
+
def execute_directive_require_os(line, content, options)
|
570
|
+
required_os, = options
|
571
|
+
if required_os.start_with?("!")
|
572
|
+
if required_os[1..-1] == os
|
573
|
+
omit("require OS: #{required_os} (#{os})")
|
574
|
+
end
|
575
|
+
else
|
576
|
+
unless required_os == os
|
577
|
+
omit("require OS: #{required_os} (#{os})")
|
578
|
+
end
|
579
|
+
end
|
580
|
+
end
|
581
|
+
|
537
582
|
def execute_directive(parser, line, content)
|
538
583
|
command, *options = Shellwords.split(content)
|
539
584
|
case command
|
@@ -597,6 +642,10 @@ module Grntest
|
|
597
642
|
execute_directive_start_benchmark(line, content, options)
|
598
643
|
when "finish-benchmark"
|
599
644
|
execute_directive_finish_benchmark(line, content, options)
|
645
|
+
when "require-env"
|
646
|
+
execute_directive_require_env(line, content, options)
|
647
|
+
when "require-os"
|
648
|
+
execute_directive_require_os(line, content, options)
|
600
649
|
else
|
601
650
|
log_input(line)
|
602
651
|
log_error("#|e| unknown directive: <#{command}>")
|
data/lib/grntest/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grntest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
8
8
|
- Haruka Yoshihara
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: diff-lcs
|