grntest 1.2.9 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/text/news.md +12 -0
- data/lib/grntest/executors/base-executor.rb +13 -3
- data/lib/grntest/tester.rb +9 -1
- data/lib/grntest/version.rb +1 -1
- data/lib/grntest/worker.rb +32 -7
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c55e0bf4a89cc29c33e5081c6380c2652844e33a
|
4
|
+
data.tar.gz: 0d469e06c4bdb6b18761d40342d0d6d436f4d6fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95563f90d0b1d93ec3568d5996a4c43a9d3617db4ead96f843b2b13f1009702c974511caee8d1638a26b90cd1fb3dc51625e39c97903d4e7120983bc8fc13f2f
|
7
|
+
data.tar.gz: aee7784eac1c012ee42ea39faba590f74044abbee1dee52ecf21d42008bdc38f3d698ce56eeb144d80ffebb7b62680f8288c2a4365277456483a434be2bf8458
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,17 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 1.3.0: 2018-11-16
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* Improved to force logging backtrace on crash.
|
8
|
+
|
9
|
+
* Added `--n-retries` option.
|
10
|
+
|
11
|
+
### Fixes
|
12
|
+
|
13
|
+
* Fixed encoding error on error report.
|
14
|
+
|
3
15
|
## 1.2.9: 2018-01-18
|
4
16
|
|
5
17
|
### Improvements
|
@@ -58,11 +58,11 @@ module Grntest
|
|
58
58
|
parser << line
|
59
59
|
rescue Error, Groonga::Command::Parser::Error
|
60
60
|
line_info = "#{script_path}:#{script_file.lineno}:#{line.chomp}"
|
61
|
-
log_error("#{line_info}: #{$!.message}")
|
61
|
+
log_error("#{line_info}: #{$!.message.b}")
|
62
62
|
if $!.is_a?(Groonga::Command::Parser::Error)
|
63
63
|
@context.abort
|
64
64
|
else
|
65
|
-
log_error("#{line_info}: #{$!.message}")
|
65
|
+
log_error("#{line_info}: #{$!.message.b}")
|
66
66
|
raise unless @context.top_level?
|
67
67
|
end
|
68
68
|
end
|
@@ -426,10 +426,20 @@ module Grntest
|
|
426
426
|
def extract_important_messages(log)
|
427
427
|
important_messages = []
|
428
428
|
parser = LogParser.new
|
429
|
+
in_crash = false
|
429
430
|
parser.parse(log) do |entry|
|
431
|
+
if entry.log_level == "C"
|
432
|
+
case entry.message
|
433
|
+
when "-- CRASHED!!! --"
|
434
|
+
in_crash = true
|
435
|
+
when "----------------"
|
436
|
+
in_crash = false
|
437
|
+
end
|
438
|
+
end
|
439
|
+
|
430
440
|
next unless important_log_level?(entry.log_level)
|
431
441
|
if @context.suppress_backtrace?
|
432
|
-
next if backtrace_log_message?(entry.message)
|
442
|
+
next if !in_crash and backtrace_log_message?(entry.message)
|
433
443
|
end
|
434
444
|
next if thread_log_message?(entry.message)
|
435
445
|
important_messages << "\#|#{entry.log_level}| #{entry.message}"
|
data/lib/grntest/tester.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2012-
|
1
|
+
# Copyright (C) 2012-2018 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This program is free software: you can redistribute it and/or modify
|
4
4
|
# it under the terms of the GNU General Public License as published by
|
@@ -230,6 +230,12 @@ module Grntest
|
|
230
230
|
tester.debug = debug
|
231
231
|
end
|
232
232
|
|
233
|
+
parser.on("--n-retries=N", Integer,
|
234
|
+
"Retry N times on failure",
|
235
|
+
"(#{tester.n_retries})") do |n|
|
236
|
+
tester.n_retries = n
|
237
|
+
end
|
238
|
+
|
233
239
|
parser.on("--version",
|
234
240
|
"Show version and exit") do
|
235
241
|
puts(VERSION)
|
@@ -281,6 +287,7 @@ module Grntest
|
|
281
287
|
attr_writer :debug
|
282
288
|
attr_reader :test_patterns, :test_suite_patterns
|
283
289
|
attr_reader :exclude_test_patterns, :exclude_test_suite_patterns
|
290
|
+
attr_accessor :n_retries
|
284
291
|
def initialize
|
285
292
|
@groonga = "groonga"
|
286
293
|
@groonga_httpd = "groonga-httpd"
|
@@ -311,6 +318,7 @@ module Grntest
|
|
311
318
|
initialize_memory_checkers
|
312
319
|
@timeout = 5
|
313
320
|
@read_timeout = 3
|
321
|
+
@n_retries = 0
|
314
322
|
end
|
315
323
|
|
316
324
|
def run(*targets)
|
data/lib/grntest/version.rb
CHANGED
data/lib/grntest/worker.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2012-
|
1
|
+
# Copyright (C) 2012-2018 Kouhei Sutou <kou@clear-code.com>
|
2
2
|
#
|
3
3
|
# This program is free software: you can redistribute it and/or modify
|
4
4
|
# it under the terms of the GNU General Public License as published by
|
@@ -99,12 +99,13 @@ module Grntest
|
|
99
99
|
@suite_name = suite_name
|
100
100
|
@reporter.on_suite_start(self)
|
101
101
|
end
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
102
|
+
|
103
|
+
unless run_test(test_script_path, test_name)
|
104
|
+
succeeded = false
|
105
|
+
end
|
106
106
|
|
107
107
|
break if interruptted?
|
108
|
+
|
108
109
|
if @tester.stop_on_failure? and @test_suites_result.have_failure?
|
109
110
|
break
|
110
111
|
end
|
@@ -162,8 +163,32 @@ module Grntest
|
|
162
163
|
def on_test_finish(result)
|
163
164
|
@result.on_test_finish
|
164
165
|
@reporter.on_test_finish(self, result)
|
165
|
-
|
166
|
-
|
166
|
+
end
|
167
|
+
|
168
|
+
private
|
169
|
+
def run_test(test_script_path, test_name)
|
170
|
+
begin
|
171
|
+
@test_script_path = test_script_path
|
172
|
+
@test_name = test_name
|
173
|
+
|
174
|
+
n = -1
|
175
|
+
loop do
|
176
|
+
n += 1
|
177
|
+
|
178
|
+
runner = TestRunner.new(@tester, self)
|
179
|
+
return true if runner.run
|
180
|
+
|
181
|
+
if n < @tester.n_retries and not interruptted?
|
182
|
+
@test_suites_result.n_total_tests += 1
|
183
|
+
next
|
184
|
+
end
|
185
|
+
|
186
|
+
return false
|
187
|
+
end
|
188
|
+
ensure
|
189
|
+
@test_script_path = nil
|
190
|
+
@test_name = nil
|
191
|
+
end
|
167
192
|
end
|
168
193
|
end
|
169
194
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grntest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-11-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -219,13 +219,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
219
219
|
version: '0'
|
220
220
|
requirements: []
|
221
221
|
rubyforge_project:
|
222
|
-
rubygems_version: 2.5.2.
|
222
|
+
rubygems_version: 2.5.2.1
|
223
223
|
signing_key:
|
224
224
|
specification_version: 4
|
225
225
|
summary: Grntest is a testing framework for Groonga. You can write a test for Groonga
|
226
226
|
by writing Groonga commands and expected result.
|
227
227
|
test_files:
|
228
|
-
- test/run-test.rb
|
229
228
|
- test/executors/test-base-executor.rb
|
230
229
|
- test/executors/test-standard-io-executor.rb
|
230
|
+
- test/run-test.rb
|
231
231
|
- test/test-log-parser.rb
|