Revision history for Overload-FileCheck 0.015 2026-04-26 09:46:08+02:00 Europe/Vienna [New features] - feat: add mock_file_check_guard() for scope-based cleanup - feat: add stat_as_fifo() helper for named pipe mocking - feat: support CHECK_IS_NULL return from mock callbacks (treats target as non-existent) [Bug fixes - errno preservation] - fix: preserve errno through XS scope cleanup in stat/file-check paths - fix: preserve errno through pp_overload_ft_int (-s handler) - fix: preserve errno through pp_overload_ft_nv (-M, -A, -C handlers) - fix: auto-set errno (ENOENT) for int ops returning CHECK_IS_FALSE [Bug fixes - operator behavior] - fix: enable -T, -B and other uppercase file-test operators - fix: eliminate -B double-dispatch through the mock system - fix: return CHECK_IS_NULL for -B/-T on non-existent mock files to avoid double-dispatch - fix: restore @stat guard in -B handler to prevent undef warning - fix: correct -e false negative for stat results with mode 0 - fix: use stat (not lstat) for -p/-S/-b/-c in _check_from_stat - fix: use stat (not lstat) for -u, -g, -k in mock_all_from_stat - fix: resolve -1 sentinel collision for NV ops (-M, -C, -A) - fix: handle non-numeric SV types in pp_overload_ft_nv - fix: CHECK_IS_FALSE now returns a defined false value instead of undef [Bug fixes - input validation / API hardening] - fix: croak on trailing dash-option without CODE ref in import list - fix: croak on unknown options in stat_as_* helpers - fix: croak on unknown user/group names in stat helpers - fix: accept bare (non-st_) keys in hash stat mocks - fix: accept string-encoded numbers in stat array validation - fix: add missing dev/ino/nlink/rdev defaults to stat_as_* helpers - fix: preserve original key when looking up stat slot in _stat_for - refactor: use Carp::croak instead of die in public API [Bug fixes - thread / re-entrancy safety] - fix: isolate gl_overload_ft per interpreter via MY_CXT for ithreads safety - fix: make _check() re-entrant safe for nested mock callbacks - fix: replace assert() with runtime croak for gl_overload_ft null checks - fix: release SV refcount in pp_overload_ft_nv before all return paths - fix: save original count before drain loop in _overload_ft_ops_nv croak [Internals / cleanup] - refactor: extract LEAVE_PRESERVING_ERRNO macro for errno-safe scope exits - refactor: extract _resolve_check / _normalize_and_validate_check helpers - refactor: replace _check_from_stat if/elsif chain with a dispatch table - refactor: build %REVERSE_MAP eagerly at module load - cleanup: remove debug printfs, dead code, and stale TODOs from XS - cleanup: remove unused offset field from OverloadFTOps struct - refactor: update stale GitHub URLs from CpanelInc to cpan-authors - fix: remove stale docs and fix POD typo 0.014 2026-02-22 10:19:05-07:00 America/Denver - fix: prevent filehandle reference leak in $_last_call_for - fix: spelling typos 0.013 2022-02-23 08:36:12-07:00 America/Denver - Fix a PL_statcache bug when checking: -l $f || -e _ - Add some extra test coverage for 'mock_all_from_stat' 0.012 2022-01-20 19:00:46-07:00 America/Denver - Fix regression from previous release when checking PL_statcache 0.011 2022-01-10 09:17:19-07:00 America/Denver - Better handling of nonexistent stat() values - Sawyer X - Fix macOS when running tests privileged - FGasper 0.010 2020-08-10 17:19:58-06:00 America/Denver - update ppport.h to version 3.59 - adjust -e and other check for Perl <= 5.14 - fix -e: now returns 'undef' when false and not '' - fix unit tests failures on darwin - fix compilation warning on darwin - external link is clickable in POD - Mohammad S Anwar 0.009 2019-01-24 14:01:45-07:00 America/Denver 0.008 2018-12-26 14:11:45-07:00 America/Denver 0.007 2018-12-21 17:33:15-06:00 America/Chicago Fix stack corruption: Bizarre copy of ARRAY in list assignment 0.006 2018-10-29 10:59:05-05:00 America/Chicago fallback to Perl OP when filecheck is called with _ or *_ (use statcache) 0.005 2018-10-25 12:58:55-05:00 America/Chicago improve POD and Markdown documentation 0.004 2018-10-24 14:18:10-05:00 America/Chicago - fix XS compilation issue on some systems 0.003 2018-10-24 12:55:07-05:00 America/Chicago - fix t/mock-setting-errno.t on server not using english as locale - adjust several checks to use stat instead of lstat 0.002 2018-10-23 17:12:06-05:00 America/Chicago - mock_stat can handle empty array ref return - fix unclosed C comment in FileCheck.xs - avoid issues with test files and case insensitive file systems - use stat instead of lstat when possible - hide the second call to lstat (GH #4) - add helpers for stat: stat_as_file, stat_as_directory... 0.001 2018-10-19 16:58:00-05:00 America/Chicago First version, this is a very alpha state use it at your own risk