test-unit-ruby-core 1.0.5 → 1.0.7
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/core_assertions.rb +17 -1
- data/lib/envutil.rb +26 -1
- metadata +18 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fbe8678b64c96aecfb825b2a2544e7089a681be164521d259880d07e5cf0589
|
4
|
+
data.tar.gz: 2726f59cb0cf549b49a1250d11324fe26f2eb93eb685740086bed65491b3f00f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3880a3106697e03f423822c456d1753755078378106d0e4bbfc7a2bbe7305a4860897aae9716dd77ab33a7b9503ef484beaa9a06bcdabd4bfa72f3036a191582
|
7
|
+
data.tar.gz: 9626368354be4eecb5c13a0d0fac687cd2c0ad8179315e899f1d27d564cd95b958ef07eea561d98102d362c56b49a08fac761c1e1dce7045afd7f84006aeddd3
|
data/lib/core_assertions.rb
CHANGED
@@ -74,6 +74,11 @@ module Test
|
|
74
74
|
module CoreAssertions
|
75
75
|
require_relative 'envutil'
|
76
76
|
require 'pp'
|
77
|
+
begin
|
78
|
+
require '-test-/asan'
|
79
|
+
rescue LoadError
|
80
|
+
end
|
81
|
+
|
77
82
|
nil.pretty_inspect
|
78
83
|
|
79
84
|
def mu_pp(obj) #:nodoc:
|
@@ -152,6 +157,9 @@ module Test
|
|
152
157
|
pend 'assert_no_memory_leak may consider RJIT memory usage as leak' if defined?(RubyVM::RJIT) && RubyVM::RJIT.enabled?
|
153
158
|
# For previous versions which implemented MJIT
|
154
159
|
pend 'assert_no_memory_leak may consider MJIT memory usage as leak' if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
|
160
|
+
# ASAN has the same problem - its shadow memory greatly increases memory usage
|
161
|
+
# (plus asan has better ways to detect memory leaks than this assertion)
|
162
|
+
pend 'assert_no_memory_leak may consider ASAN memory usage as leak' if defined?(Test::ASAN) && Test::ASAN.enabled?
|
155
163
|
|
156
164
|
require_relative 'memory_status'
|
157
165
|
raise Test::Unit::PendedError, "unsupported platform" unless defined?(Memory::Status)
|
@@ -363,6 +371,10 @@ eom
|
|
363
371
|
def assert_ractor(src, args: [], require: nil, require_relative: nil, file: nil, line: nil, ignore_stderr: nil, **opt)
|
364
372
|
return unless defined?(Ractor)
|
365
373
|
|
374
|
+
# https://bugs.ruby-lang.org/issues/21262
|
375
|
+
shim_value = "class Ractor; alias value take; end" unless Ractor.method_defined?(:value)
|
376
|
+
shim_join = "class Ractor; alias join take; end" unless Ractor.method_defined?(:join)
|
377
|
+
|
366
378
|
require = "require #{require.inspect}" if require
|
367
379
|
if require_relative
|
368
380
|
dir = File.dirname(caller_locations[0,1][0].absolute_path)
|
@@ -371,6 +383,8 @@ eom
|
|
371
383
|
end
|
372
384
|
|
373
385
|
assert_separately(args, file, line, <<~RUBY, ignore_stderr: ignore_stderr, **opt)
|
386
|
+
#{shim_value}
|
387
|
+
#{shim_join}
|
374
388
|
#{require}
|
375
389
|
previous_verbose = $VERBOSE
|
376
390
|
$VERBOSE = nil
|
@@ -817,7 +831,9 @@ eom
|
|
817
831
|
end
|
818
832
|
times.compact!
|
819
833
|
tmin, tmax = times.minmax
|
820
|
-
|
834
|
+
|
835
|
+
# safe_factor * tmax * rehearsal_time_variance_factor(equals to 1 when variance is small)
|
836
|
+
tbase = 10 * tmax * [(tmax / tmin) ** 2 / 4, 1].max
|
821
837
|
info = "(tmin: #{tmin}, tmax: #{tmax}, tbase: #{tbase})"
|
822
838
|
|
823
839
|
seq.each do |i|
|
data/lib/envutil.rb
CHANGED
@@ -52,7 +52,14 @@ module EnvUtil
|
|
52
52
|
@original_internal_encoding = Encoding.default_internal
|
53
53
|
@original_external_encoding = Encoding.default_external
|
54
54
|
@original_verbose = $VERBOSE
|
55
|
-
@original_warning =
|
55
|
+
@original_warning =
|
56
|
+
if defined?(Warning.categories)
|
57
|
+
Warning.categories.to_h {|i| [i, Warning[i]]}
|
58
|
+
elsif defined?(Warning.[]) # 2.7+
|
59
|
+
%i[deprecated experimental performance].to_h do |i|
|
60
|
+
[i, begin Warning[i]; rescue ArgumentError; end]
|
61
|
+
end.compact
|
62
|
+
end
|
56
63
|
end
|
57
64
|
end
|
58
65
|
|
@@ -245,6 +252,24 @@ module EnvUtil
|
|
245
252
|
end
|
246
253
|
module_function :under_gc_stress
|
247
254
|
|
255
|
+
def under_gc_compact_stress(val = :empty, &block)
|
256
|
+
raise "compaction doesn't work well on s390x. Omit the test in the caller." if RUBY_PLATFORM =~ /s390x/ # https://github.com/ruby/ruby/pull/5077
|
257
|
+
auto_compact = GC.auto_compact
|
258
|
+
GC.auto_compact = val
|
259
|
+
under_gc_stress(&block)
|
260
|
+
ensure
|
261
|
+
GC.auto_compact = auto_compact
|
262
|
+
end
|
263
|
+
module_function :under_gc_compact_stress
|
264
|
+
|
265
|
+
def without_gc
|
266
|
+
prev_disabled = GC.disable
|
267
|
+
yield
|
268
|
+
ensure
|
269
|
+
GC.enable unless prev_disabled
|
270
|
+
end
|
271
|
+
module_function :without_gc
|
272
|
+
|
248
273
|
def with_default_external(enc)
|
249
274
|
suppress_warning { Encoding.default_external = enc }
|
250
275
|
yield
|
metadata
CHANGED
@@ -1,16 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-unit-ruby-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroshi SHIBATA
|
8
8
|
- Nobu Nakada
|
9
|
-
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
dependencies:
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: test-unit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
14
27
|
description: Additional test assertions for Ruby standard libraries.
|
15
28
|
email:
|
16
29
|
- hsbt@ruby-lang.org
|
@@ -29,7 +42,6 @@ licenses:
|
|
29
42
|
metadata:
|
30
43
|
homepage_uri: https://github.com/ruby/test-unit-ruby-core
|
31
44
|
source_code_uri: https://github.com/ruby/test-unit-ruby-core
|
32
|
-
post_install_message:
|
33
45
|
rdoc_options: []
|
34
46
|
require_paths:
|
35
47
|
- lib
|
@@ -44,8 +56,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
56
|
- !ruby/object:Gem::Version
|
45
57
|
version: '0'
|
46
58
|
requirements: []
|
47
|
-
rubygems_version: 3.
|
48
|
-
signing_key:
|
59
|
+
rubygems_version: 3.7.0.dev
|
49
60
|
specification_version: 4
|
50
61
|
summary: Additional test assertions for Ruby standard libraries.
|
51
62
|
test_files: []
|