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