0.002006 2026-04-28 22:09:45-07:00 America/Los_Angeles
- Add [PruneCruft] to dist.ini so blib/ and pm_to_blib are excluded
from the released tarball (GH #1)
- Drop the "< 100 GB sanity" upper bound on rss/size in t/ps.t real
collect subtest; macOS reports virtual size well above 100 GB,
causing spurious failures (GH #3)
0.002005 2026-04-26 01:49:37-07:00 America/Los_Angeles
- Replace defined-or (//) operator with explicit defined() checks so
the module loads on the declared MIN_PERL_VERSION 5.008009
- Use 'ps -o rss= -o vsz= -p $$' instead of 'ps -o rss=,vsz= -p $$'
so FreeBSD's ps parses the format string correctly (it treated
the comma as part of the rss= header)
- Force the linux _collect_proc collector inside t/memusage.t so
the mocked t/procfile drives the assertions on every host (the
previous mock was ignored on *BSD/Solaris/MSWin32, which used
their native collectors and produced unrelated values)
- Skip the real-* subtests in t/ps.t when ps exits non-zero or
returns output our parser cannot match (covers BusyBox/Alpine
and FreeBSD ps differences)
- Skip the real-* subtests in t/proc.t on non-Linux hosts; Solaris
/proc/PID/status is a binary pstatus_t struct, not the Linux
text format
- Guard t/win32.t real-* subtests with defined() checks on
GetProcessMemoryInfo and short-circuit after a failed lives
check so a single broken Win32::Process::Memory install does
not cascade into multiple failures
0.002004 2026-04-25 07:18:08-07:00 America/Los_Angeles
- Fix broken grep filter in send_mem_event that referenced @_ of
the outer sub instead of the grep iterator
- Match \s+ instead of a literal space between value and unit in
the Vm* regexes
- Warn instead of die when opening or closing the procfile fails,
so the exit callback does not abort the test process
- Use -e instead of -f when checking for the procfile, so non-Linux
procfs implementations are not rejected
- Add raw numeric value and units to harness_job_fields entries
under a 'data' hash so consumers can sort and aggregate without
reparsing the display string
- Refactor memory collection into a $^O-keyed dispatcher with a
reusable _collect_proc backend (no behavior change on Linux)
- Add darwin and *BSD support via 'ps -o rss=,vsz= -p $$' (peak
remains NA there unless BSD::Resource is available)
- Add MSWin32 support via Win32::Process::Memory (recommended,
not required) and recommend it in dist.ini
- Add BSD::Resource getrusage(RUSAGE_SELF) fallback that fills
peak RSS when the primary collector did not provide one and
acts as a last-resort collector on platforms with no native
backend; recommend BSD::Resource in dist.ini. Also document
the platform support matrix in POD
- Add t/dispatch.t covering _collector_for_os table, _augment_peak
fill / preserve / no-fallback, collect_mem with no collector
and no fallback, and send_mem_event short-circuits for empty
and all-NA cases
- Add t/proc.t covering _collect_proc happy path, missing procfile,
empty procfile, files without Vm* lines, tab-separated values,
and partial Vm* presence
- Add t/ps.t covering _collect_ps via stubbed ps_command (happy /
empty / unparseable) plus an opportunistic real-ps subtest;
skips on MSWin32 and any host without a usable shell echo
- Add t/win32.t covering _collect_win32 via a fake
Win32::Process::Memory injected into %INC, exercising byte-to-kB
conversion, undef return, exception in the underlying call, and
partial-info handling
- Add t/getrusage.t covering _maxrss_kb (linux kB pass-through,
darwin byte conversion, zero / empty getrusage), the collect_mem
last-resort path when no native collector matched, and the
augment_peak chain end to end against a fake BSD::Resource
- Extend t/memusage.t to assert that calling import() a second
time does not register a duplicate exit callback
- Add Solaris, AIX, and HP-UX support by routing them through the
existing _collect_ps backend (their POSIX ps accepts
'ps -o rss=,vsz= -p $$' and reports kilobytes); peak still
benefits from the BSD::Resource fallback when installed
- Add real-system subtests to t/proc.t that verify the host's
/proc/PID/status matches the shape our mocks assume and that
_collect_proc returns numeric, positive, sanely-ranged values;
both subtests skip when /proc is unavailable
- Add real-system subtests to t/ps.t that verify the host's
'ps -o rss=,vsz= -p $$' exits 0 with parseable output, and that
_collect_ps returns numeric/positive/in-range values with kB
units; both subtests skip when ps is missing (exit 127 / fork
failure) and fail when ps is present but misbehaves
- Add real-system subtests to t/win32.t that verify the real
Win32::Process::Memory returns the hash shape we assume and
that _collect_win32 returns meaningful values; the fake module
injection is now conditional so the real module is preferred
when installed, and both new subtests skip off-MSWin32 or when
Win32::Process::Memory is not installed
- Add real-system subtests to t/getrusage.t that verify the real
BSD::Resource::getrusage returns at least 3 fields with a
numeric ru_maxrss and that _maxrss_kb returns a meaningful
value; the fake module injection is now conditional so the
real module is preferred when installed
0.002003 2020-02-26 08:09:20-08:00 America/Los_Angeles
- Avoid warnings when info is missing
0.002002 2019-08-19 10:57:16-07:00 America/Los_Angeles
- Add harness_job_fields
0.002001 2019-08-16 15:28:36-07:00 America/Los_Angeles
- Initial Import