Revision history for Test-MockFile
0.036 7/26/2023
- GH #181 - Detect incorrect usage of add_strict_rule_for_command
0.035 11/30/2022
- GH #180 - Prevent open() and sysopen() from opening GLOB(..)-like paths.
0.034 4/25/2022
- GH #176: Add file handle support for BINMODE. This does nothing at this
time but at least it doesn't die.
- support for ~/foo and ~user/foo in mocking and access (globs)
0.033 3/7/2022
- Request last Overload::FileCheck release - 0.013
- Correct chown parameter position for file name
- Fixup Plugin for File::Temp tempfile in scalar context logic.
- Track File::Temp version in unit tests.
0.032 2/24/2022
- Less strict mode - Don't complain about commands not opening or directly interacting with a file.
0.031 2/24/2022
- Fix for Plugin::FileTemp when calling tempfile in scalar context
0.030 2/22/2022
- Simplify _strict_mode_violation
- Introduce new_dir() to allow older dir() syntax.
- Provide a mechanism to setup custom strict rules
- Make is_strict_mode a helper
- Do not call _get_file_object when all we're trying to determine is if the file is mocked or not.
- Add Test::MockFile::Plugins
- We support "undef" as filename in strict rules to ignore filenames
- Block Plugin::FileTemp < 5.28
- Update MANIFEST
0.029 2/16/2022
- Fix broken link to small test documentation
- Ensure strict mode is enabled by default and prevent import conflicts.
- Fix warnings during global destruction
- Additional rules for _abs_path_to_file
- GH #103 - Update eg/example.pl:
- Add rmdir, mkdir and unlink default position
- Postpone file arg check during strict mode analysis
- Fixup hook args and teach for mkdir filename pos
- Perltidy policy changes.
- Use carp in filename and readlink
- Fix broken link to small test documentation
0.028 2/12/2022
- Update test for our FreeBSD results
- GH #122 - Support two-arg open, read/write, and understand pipes
- Add strict guards for additional keywords: readdir, telldir, rewinddir,
seekdir, closedir, readlink, mkdir, rmdir
- Revert to old symbol resolution technique.
0.027 2/10/2022
- GH #75 - Strict mode is now on by default
- GH #45 - Provide a helpful error message and document fileno unsupported.
- GH #90 - Normalize forward slashes.
- GH #126 - Document using debugger under strict mode.
- Do not hard-code values of $!
- Try to get more data when t/runtime-bareword-filehandles.t fails on cpan testers.
- GH #64 - Do not overwrite the error code when checking for Docker
- GH #63 - FreeBSD's readlink() returns EINVAL for readlink(undef):
- Add more data for debugging test failures on OpenBSD
0.026 2/3/2022
- Fix support for mocking the top-level directory.
- Symlinks should appear in readdir
- Fix directory instantiation when creating a symlink.
- GH #105: Show directories in readdir
- Improve relative path management
- Don't let stat() get confused with trailing forward slash
- GH #118: Do not get confused by inner directory files.
- GH #85: Do not corrupt blessed handles.
0.025 1/26/2022
- Fix typo in chmod mock. Was accidentally calling chown.
- Fix dependency on Text::Glob. It is now a runtime requirement.
0.024 1/24/2022
- Prefer Carp::confess to die
- Do not use "$!" in tests as it's not consistent across platforms
- GH #78: Do not allow rmdir on a populated directory.
- GH #73: Prefer the term ->path to ->filename as it is more clear between file/dir
- chown $fh now works.
- Only warn about mixed files when using mocked files
0.024_01
- GH #83: Get Solaris testers passing.
- Remove all use of "$!" in tests as this has tranlation problems.
0.023 1/14/2022
- GH #58: Fix synopsis typos
- GH #65: Fix typos in the typo fixes.
- GH #34: Support open() with barewords
- GH #59: Detect and reject common path mistakes when mocking
- GH #69: Redesigned dir() (and some file()) interface <--- breaks previous interface
- GH #40: Support glob()
- GH #15: Implement chown/chmod
0.022 12/27/2021
- GH #47: Manage bareword filehandles in runtime:
0.021 1/30/2020
- Emit ENOTDIR on opendir when appropriate
- Switch to github actions for CI testing
0.020 10/14/2019
- GH #51 - Basic introduction of file ownership. Set default uid/gid to current user when not set
- GH #49 - Make sysseek return position when called while allowing seek to return a true value.
0.19 5/21/2019
- Fix POD for stat example in POD.
- Allow scalar file handles on open. We don't care about those
- Provide better guidance about keeping your mocks in scope in examples
- Disable Test::CheckManifest due to break in Test-CheckManifest
- Fix seek bug in sysopen(... O_APPEND)
0.018 1/24/2019
- Properly handle open and sysopen file handles going out of scope.
- Provide a helper method to mock objects to determine the file name. GH #31
- Do not throw a file access hook when statting a file handle that is not under MockFile control. GH #30
- Read multiple lines via readline when wantarray is true. GH #29
0.017 1/2/2019
- Require a newer Test2::Bundle::Extended (0.000084) to support named isa_ok
0.016 1/2/2019
- Bump Overload::FileCheck to 0.007 to address stack bug
- Try to get EISDIR handling for BSD working. Apparently something changed in perl 5.20?
- Do not do access hooks on filehandle interactions.
0.015 12/21/2018
- Remove errant debug messages from open
- Pass 3 to fix t/touch.t on BSD.
0.014 12/20/2018
- Re-factor _find_file_or_fh to handle symlink following logic better. GH #26
- Make more standard use of _get_file_object when looking up a file path so we
properly handle abs path and symlink following
0.013 12/20/2018
- Add a helper to determine if goto can be used. Where it's available is complicated
- First pass at bareword file handles for opendir and friends
- Fix errant docs for making a symlink mock
- Follow links for stat but not lstat
- Add support for readlink
- Try 2 to fix BSD issues with GH #20
0.012 11/16/2018
- Fix for #21 - length undef on perl 5.10
- GH #20 - Add EPERM support for freebsd when unlinking directories
- Fix for print $fh undef throwing a warning
- Remove faulty OS level test of readdir after opendir.
0.011 11/08/2018
- Fix for my $file_contents = do { local $/; <$fh> };
- Mock CORE::GLOBAL::unlink and support directories for unlink
- Mock CORE::GLOBAL::mkdir
- Mock CORE::GLOBAL::rmdir
- MockFile->symlink now follows the symlink norm of ($target, $file), not the reverse.
- New mock helper 'exists' to check if the file is there.
- New mock helper 'permissions' tells you the current permissions of the mocked file.
0.010 10/31/2018
- Add .perltidyrc policy
- When reporting strict mode violations, be sure to report the a stack location outside of our modules.
- Report a stack trace for strict mode violations to determine the source of the problem.
- Add an ignore hash for modules (like DynaLoader) which are allowed to open files.
- Ignore STDIN/STDERR/STDOUT since tests often have to manipulate them and that's not really IO.
- Autovivify a sysread where the buffer passed in is undef.
0.009 10/29/2018
- Add unlink and touch as helpers when testing
- Depend on new Overload::FileCheck 0.006 which does not call MockFile to determine _ stats
0.008 10/26/2018
- Depend on newest Overload::FileCheck version. Depending on older
versions was breaking unit tests.
0.007 10/25/2018
- More POD fixups
- Support for unmocked file access hooks.
- Implement strict mode to error any time an unmocked file access happens.
0.006 10/25/2018
- Fix for Locale-dependent failures on perl < 5.22
https://github.com/CpanelInc/Test-MockFile/issues/10
- Minor pod fixups.
0.005 10/24/2018
- Complete basic documentation for all public methods.
0.004 10/24/2018
- Raise the Test::More requirement to address an issue with Test2::Formatter::TAP
Fixes https://github.com/CpanelInc/Test-MockFile/issues/6
0.003 10/24/2018
- Correct bug in use constant statement. 0.002 was broken on release.
- Changes to code to give basic support for Perl 5.10+. Ideally you should be on
perl 5.16 to run this code but it'll mostly work below that.
0.002 10/24/2018
- Set bug tracker to github
- Fix Fcntl bug when you use unsupported constants.
0.001 10/23/2018
- First release with basic support for open/sysopen/opendir
- Support is limited to Perl 5.20 until we address this error:
Error: Invalid CODE attribute: prototype(*;$@) at lib/Test/MockFile.pm