1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
Revision history for Test-MockFile
0.037 4/15/2025
- Fix unit test broken in perl 5.41.4
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
|