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 <mohammad.anwar@yahoo.com>
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