test-unit-ruby-core 1.0.8 → 1.0.9
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/envutil.rb +2 -1
- data/lib/memory_status.rb +60 -40
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c827aeceb3fd1980fbc22e68e631c888f61852201f5a71d222137dccec7813e
|
4
|
+
data.tar.gz: f39f342ed03b29005052935840fca12eef139092dc6a9f30d53621e3947fa8d4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38241758387cdd981ea6864ecab402c39d725ad38aea3b27835f73037c856a9a6c4b0792f671696d07f4ec9bfcf909d5c53a3dca31cd3076eb166d74d66e633d
|
7
|
+
data.tar.gz: 03e2d05f411ba5ccd86b1a82cb0aead6766ad13150a51c7d543d9a7fe266931c7744a562cce85f12a6c9c90317e481fdba70f7fd8a9d1a3ab30a815db5c85adb
|
data/lib/envutil.rb
CHANGED
@@ -225,7 +225,8 @@ module EnvUtil
|
|
225
225
|
|
226
226
|
args = [args] if args.kind_of?(String)
|
227
227
|
# use the same parser as current ruby
|
228
|
-
if args.none? { |arg| arg.start_with?("--parser=") }
|
228
|
+
if (args.none? { |arg| arg.start_with?("--parser=") } and
|
229
|
+
/^ +--parser=/ =~ IO.popen([rubybin, "--help"], &:read))
|
229
230
|
args = ["--parser=#{current_parser}"] + args
|
230
231
|
end
|
231
232
|
pid = spawn(child_env, *precommand, rubybin, *args, opt)
|
data/lib/memory_status.rb
CHANGED
@@ -20,48 +20,68 @@ module Memory
|
|
20
20
|
data.scan(pat) {|k, v| keys << k.downcase.intern}
|
21
21
|
|
22
22
|
when /mswin|mingw/ =~ RUBY_PLATFORM
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
23
|
+
keys.push(:size, :rss, :peak)
|
24
|
+
|
25
|
+
begin
|
26
|
+
require 'fiddle/import'
|
27
|
+
require 'fiddle/types'
|
28
|
+
rescue LoadError
|
29
|
+
# Fallback to PowerShell command to get memory information for current process
|
30
|
+
def self.read_status
|
31
|
+
cmd = [
|
32
|
+
"powershell.exe", "-NoProfile", "-Command",
|
33
|
+
"Get-Process -Id #{$$} | " \
|
34
|
+
"% { Write-Output $_.PagedMemorySize64 $_.WorkingSet64 $_.PeakWorkingSet64 }"
|
35
|
+
]
|
36
|
+
|
37
|
+
IO.popen(cmd, "r", err: [:child, :out]) do |out|
|
38
|
+
if /^(\d+)\n(\d+)\n(\d+)$/ =~ out.read
|
39
|
+
yield :size, $1.to_i
|
40
|
+
yield :rss, $2.to_i
|
41
|
+
yield :peak, $3.to_i
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
else
|
46
|
+
module Win32
|
47
|
+
extend Fiddle::Importer
|
48
|
+
dlload "kernel32.dll", "psapi.dll"
|
49
|
+
include Fiddle::Win32Types
|
50
|
+
typealias "SIZE_T", "size_t"
|
51
|
+
|
52
|
+
PROCESS_MEMORY_COUNTERS = struct [
|
53
|
+
"DWORD cb",
|
54
|
+
"DWORD PageFaultCount",
|
55
|
+
"SIZE_T PeakWorkingSetSize",
|
56
|
+
"SIZE_T WorkingSetSize",
|
57
|
+
"SIZE_T QuotaPeakPagedPoolUsage",
|
58
|
+
"SIZE_T QuotaPagedPoolUsage",
|
59
|
+
"SIZE_T QuotaPeakNonPagedPoolUsage",
|
60
|
+
"SIZE_T QuotaNonPagedPoolUsage",
|
61
|
+
"SIZE_T PagefileUsage",
|
62
|
+
"SIZE_T PeakPagefileUsage",
|
63
|
+
]
|
64
|
+
|
65
|
+
typealias "PPROCESS_MEMORY_COUNTERS", "PROCESS_MEMORY_COUNTERS*"
|
66
|
+
|
67
|
+
extern "HANDLE GetCurrentProcess()", :stdcall
|
68
|
+
extern "BOOL GetProcessMemoryInfo(HANDLE, PPROCESS_MEMORY_COUNTERS, DWORD)", :stdcall
|
69
|
+
|
70
|
+
module_function
|
71
|
+
def memory_info
|
72
|
+
size = PROCESS_MEMORY_COUNTERS.size
|
73
|
+
data = PROCESS_MEMORY_COUNTERS.malloc
|
74
|
+
data.cb = size
|
75
|
+
data if GetProcessMemoryInfo(GetCurrentProcess(), data, size)
|
76
|
+
end
|
56
77
|
end
|
57
|
-
end
|
58
78
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
79
|
+
def self.read_status
|
80
|
+
if info = Win32.memory_info
|
81
|
+
yield :size, info.PagefileUsage
|
82
|
+
yield :rss, info.WorkingSetSize
|
83
|
+
yield :peak, info.PeakWorkingSetSize
|
84
|
+
end
|
65
85
|
end
|
66
86
|
end
|
67
87
|
when (require_relative 'find_executable'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
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.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroshi SHIBATA
|
8
8
|
- Nobu Nakada
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-10-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-unit
|
@@ -57,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
57
|
- !ruby/object:Gem::Version
|
58
58
|
version: '0'
|
59
59
|
requirements: []
|
60
|
-
rubygems_version: 3.
|
60
|
+
rubygems_version: 3.6.7
|
61
61
|
specification_version: 4
|
62
62
|
summary: Additional test assertions for Ruby standard libraries.
|
63
63
|
test_files: []
|