Commit Graph

85 Commits

Author SHA1 Message Date
Fabian Cenedese
a571a13d44 Fix bug in wxFileName::Normalize() with leading ".."
Don't discard initial ".." when there is more than one such component in
the beginning of the path.

Closes #18800.
2020-06-30 23:00:06 +02:00
Vadim Zeitlin
b714a3614b Update comments to remove mentions of 4KiB for /sys files
The actual size is the page size, so update the comments to match the
changes to the code in the previous commit.
2020-04-07 13:38:34 +02:00
Scott Talbert
b2b1b21bf2 Fix tests when run on ppc64le arch
Don't assume that files in /sys are 4KiB in size, their actual size is
equal to the kernel page size which varies depending on the architecture
and kernel build options.
2020-04-07 13:37:07 +02:00
Maarten Bent
2f78849d24 Fix build without precompiled headers 2018-11-26 23:51:40 +01:00
Maarten Bent
57180d68c8 Add wxOVERRIDE to test files
And cleanup some tailing spaces and tabs.
2018-07-29 12:08:53 +02:00
Vadim Zeitlin
a03ece4880 Remove st_blocks hack from wxFile::Length() under Linux
This reverts commit 41f6f17d01 ("return 0
(meaning the file is not seekable, as the docs now explain) instead of
4KB for the files in sysfs under Linux") as it seems to be wrong to
return a value different from what "ls -l" or "stat" return here and the
original problem was solved in a better way in the previous commit.

See #9965.

Closes #17818.
2017-12-15 18:46:22 +01:00
Dimitri Schoolwerth
3e945a0a5d Fix wxMSW test build in UTF-8 and ANSI build
Use wxString::t_str() with a function taking LPCTSTR (which is either
LPCWSTR or LPCSTR). And wxStrg::wc_str() for LPCOLESTR which,
ordinarily, is a wide string.
2017-06-22 02:04:50 +04:00
Vadim Zeitlin
ed09b7b6c0 Remove symlinks time comparison tests from wxFileName test
These tests don't seem to be sound, it's possible for one second or more to
pass between the two calls to GetTimes() and it's apparently possible for the
access time on the symlink to not change (due to /tmp being mounted with
"noatime" option perhaps?), resulting in Travis CI build failures.
2016-02-13 18:55:53 +01:00
Vadim Zeitlin
ef30f6fe63 Fix recently added wxFileName::MakeRelativeTo() unit test for non-Unix.
Don't hard code the use of slashes as path separators.
2015-05-30 03:38:03 +02:00
Vadim Zeitlin
fda09f917a Fix wxFileName::MakeRelativeTo() for directory relatively to itself.
The expected result in this case is ".", but the filename became empty instead
when wxPATH_NATIVE was used.

Fix this by examining GetFormat(format), which takes care of mapping
wxPATH_NATIVE to its real value, instead of wxPATH_NATIVE itself.

Also add a unit test verifying that this works as expected.

Closes #17010.
2015-05-29 16:23:17 +02:00
Dimitri Schoolwerth
8f8d58d193 Use wx-prefixed macros throughout the repository.
Change {DECLARE,IMPLEMENT}_*CLASS and {DECLARE,BEGIN,END}_EVENT_TABLE
occurrences to use the wx-prefixed version of the macros.
2015-04-23 22:00:35 +04:00
Vadim Zeitlin
614a0ef481 Don't change a shortcut file name when changing its path.
wxFileName::MakeRelativeTo() is only supposed to change the path of the file,
not its name, but it was doing the latter for the shortcuts as it implicitly
resolved them to the name of their target.

Fix this by ensuring we do not use wxPATH_NORM_SHORTCUT in MakeRelativeTo().

Closes #16239.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77509 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-08-29 23:22:05 +00:00
Vadim Zeitlin
f4b80e5337 Remove MSVC6 support.
Don't support this compiler any more, this allows to get rid of tons of
MSVC6-specific workarounds, in particular we can now use Bind() and natural
template functions calls in the library code.

Also remove MSVC6 project and solution files and don't generate them when
bakefile_gen is ran any more (removing the remaining occurrences of msvc6prj
from the bakefiles results in weird bake-time errors, so it's simpler to just
leave them there).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76532 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-05-15 22:32:17 +00:00
Vadim Zeitlin
747a681f61 Try to use /proc/self instead of /dev/core in the unit test.
/dev/core doesn't seem to exist on the machines running Travis CI builds,
check if /proc/self can work there.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@75331 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-12-02 16:50:22 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
Vadim Zeitlin
2d5efafe74 Disable test for setting the creation time under Unix.
Also document that this doesn't work there.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74424 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-06 19:14:20 +00:00
Vadim Zeitlin
55ab731681 Fix FILETIME <-> wxDateTime conversions while DST is in effect in wxMSW.
The result was (consistently, so the tests still passed) off by an hour when
the program was ran while DST was in effect. Fix this by avoiding the use of
FileTimeToLocalFileTime() and LocalFileTimeToFileTime() and just directly
converting FILETIME values to wxDateTime. Not only this is more correct but
it's also simpler and more efficient as well.

Also add a unit test for wxFileName::SetTimes() too.

Closes #13098.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74423 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-06 18:21:10 +00:00
Vadim Zeitlin
9ff99cb543 Fix filename test compilation with VC6.
Just disable tests resulting in an internal compiler error.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72941 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-10 12:21:46 +00:00
Jouk Jansen
67b09eacea Fix for specific filename syntax of OpenVMS
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-07 09:00:25 +00:00
Vadim Zeitlin
58263bb4c3 Make wxFILE_EXISTS_SYMLINK work on its own, without wxFILE_EXISTS_NO_FOLLOW.
Include the wxFILE_EXISTS_NO_FOLLOW bit in wxFILE_EXISTS_SYMLINK definition to
allow using just wxFileName::Exists(wxFILE_EXISTS_SYMLINK) which used to never
work because the link was followed.

Closes #14777.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-25 22:30:43 +00:00
Vadim Zeitlin
25db2c25bc Don't follow symlinks in wxFileName::Rmdir(wxPATH_RMDIR_RECURSIVE).
Following symlinks, possibly leading outside of the directory being removed,
is at best surprising and at worst dangerous, so don't do it and just mimic
the behaviour of "rm -rf", i.e. remove everything inside this directory,
including the symlinks themselves, but don't follow them.

Closes #14649.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-23 23:58:17 +00:00
Vadim Zeitlin
988f7eec77 Revert accidental incompatible change to wxFileName::DirExists().
The non-static version tests for the existence of the directory part of the
object only as is explicitly mentioned in the documentation, so do the test on
GetPath() and not GetFullPath() as we did since r72707.

Also add a unit test for this behaviour.

Closes #14771.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72718 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-22 15:51:26 +00:00
Vadim Zeitlin
4213fd51cc Fix tests compilation in STL build after r72707.
Add an explicit call to wxString::c_str() as there is no implicit conversion
in STL build.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72713 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-20 14:48:50 +00:00
Vadim Zeitlin
c50db84779 Allow testing for existence of specific file types in wxFileName.
Add "flags" parameter to wxFileName::Exists() to allow testing for the
existing of files of specific type: not only regular or directory but also
symlink, device, FIFO or socket.

And also to pass wxFILE_EXISTS_NO_FOLLOW flag inhibiting following the
symlinks without using DontFollowLink().

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72707 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-19 22:02:15 +00:00
Vadim Zeitlin
c063adebba Add support for symlinks to wxFileName.
Allow to work with the symlinks themselves and not the file they reference by
calling the new wxFileName::DontFollowLink().

Update Unix wxDir implementation to not treat symlinks to directories as
directories, this ensures that we don't recurse into the directories outside
of the original parent accidentally.

Closes #14542.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-15 01:09:01 +00:00
Vadim Zeitlin
fd78ef4715 Fix unit tests compilation in STL build.
Add missing c_str() calls forgotten by r70687.

Closes #14472.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-10 23:50:52 +00:00
Vadim Zeitlin
bb5a951418 Use __WINDOWS__ for OS checks and __WXMSW__ for GUI checks (round 2).
This is continuation of r70796 and serves the same purpose.

Closes #14065, #14066.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70808 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-04 20:31:42 +00:00
Vadim Zeitlin
7c9b6c9111 Compare file inodes if possible in wxFileName::SameAs().
This allows to correctly return when the two files with different names
actually refer to the same file system object.

Closes #910.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-25 23:49:35 +00:00
Vadim Zeitlin
41fec01fa9 Remove temporary files created by wxFileName unit test case.
Don't leave temporary files created by wxFileName::CreateTempFileName() lying
around.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70686 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-25 23:49:32 +00:00
Vadim Zeitlin
996d3fe3f8 Added wxFileName::Exists().
This function checks for existence of anything with the given name, not
necessarily just a file or a directory.

Extend the unit test to verify that it returns true for /dev/null on Unix
systems.

Closes #953.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 15:39:46 +00:00
Vadim Zeitlin
901504c383 Refactor wxFileName existence checking code.
Merge FileExists() and DirExists() together in a single
wxFileSystemObjectExists() helper in preparation for adding a function
checking for the existence of any kind of file system object.

There should be no changes for MSW/Unix but OS/2 file detection was changed
slightly to always use DosQueryPathInfo() instead of using it only for the
directories and stat() for files. Not sure if this is the right thing to do
there but it seems like the code should work.

Also add a simple unit test for these functions.

See #953.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70599 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 15:39:41 +00:00
Dimitri Schoolwerth
e3778b4d9c No code changes, fixed some typos.
Changed several occurrences of "it's" where "its" is meant, as well as a few other minor typos.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-04-30 10:57:04 +00:00
Vadim Zeitlin
f822acceee Don't consider extra ".." an error in wxFileName::Normalize().
The path being normalized could have come from user and there doesn't seem to
be any point in complaining about too many ".."s in it when we can handle them
correctly instead.

So simply ignore the extra ".."s for the absolute paths and keep them
unchanged for the relative ones instead of returning an error.

See #10960.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-20 23:53:28 +00:00
Francesco Montorsi
995202d020 small warning+PCH fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64680 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-21 21:46:29 +00:00
Francesco Montorsi
d6609db5a7 minor change: use a "positive" logic: use shouldSucceed instead of shouldFail and use more descriptive names for non-existing folders; add a few test cases
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64677 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-21 19:44:27 +00:00
Francesco Montorsi
701aa4d804 revert previous revision about localization of decimal points in GetHumanReadableSize() test strings: using CLocaleSetter is a better solution.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-06 18:52:28 +00:00
Francesco Montorsi
1fe1aecb87 Move a couple of wxFileName tests from the console sample to the existing FileNameTestCase.
Fix FileNameTestCase::TestGetHumanReadable to check the result against expected strings using the correct decimal point for the locale used on the test machine.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64512 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-06 15:41:09 +00:00
Vadim Zeitlin
a07526187a Rename the rest of wxSIZE_CONV_TRADIONAL to wxSIZE_CONV_TRADITIONAL.
Fix tests compilation after r63886.

See #10673.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-07 10:50:41 +00:00
Vadim Zeitlin
58271f42ce Attempt to correct mysterious MSVC6 compilation error.
For some reasons MSVC6 refuses to compile TestData struct initialization. Try
to work around it by not using wxULongLong as this looks like the only thing
which might be confusing it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63874 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-06 17:38:27 +00:00
Vadim Zeitlin
b2edb8f3c5 Add support for IEC and SI size units to wxFileName::GetHumanReadableSize().
Allow choosing the multiplier to use (1000 or 1024) and the names of the units
(SI or IEC). By default, still use traditional convention, i.e. multiplier of
1024 but SI unit names. This will probably need to be changed to use IEC units
in the future.

Also added unit test for this function.

Closes #10673.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-06 14:53:04 +00:00
Vadim Zeitlin
e01a788ee0 Add support for MSW unique volume names to wxFileName.
Recognize the paths starting with "\\?\Volume{GUID}" under MSW and provide a
way to test for them.

Closes #8874.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-05 17:31:00 +00:00
Vadim Zeitlin
acaa833787 Fix unit test added in r62561 to work under Windows too.
The unit test checking that slashes were allowed in UNCs too didn't work under
Windows because GetPath() returned volume as part of the path there (and also
used backslashes by default), fix it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-09 18:20:05 +00:00
Vadim Zeitlin
7b611a3ae9 Recognize UNCs starting with forward slashes too in wxFileName.
Treat \\share\path and //share/path in the same way (for wxPATH_DOS paths).

Add a test for UNC parsing to the unit test.

Closes #11376.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-11-05 14:59:39 +00:00
Vadim Zeitlin
40152925d5 Extract operator<<(ostream, wxFileName) from filename test.
Putting this function in a header allows to reuse it in other tests, e.g. the
upcoming wxFileSystemWatcher one.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-22 11:34:43 +00:00
Vadim Zeitlin
60c4147a07 add more tests for wxFileName::Normalize(DOTS) (see #10960)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-03 22:07:22 +00:00
Vadim Zeitlin
be5be16a23 interpret ~ specially only when it is the first character of the path (closes #10948, see #10941)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61271 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-01 09:07:38 +00:00
Vadim Zeitlin
9630954d5d remove _T()s and wxChars from the test making it much more readable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61270 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-01 09:02:30 +00:00
Vadim Zeitlin
525711d7a3 don't run wxPATH_NORM_LONG test on systems where the short file names are disabled
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-01 21:49:47 +00:00
Vadim Zeitlin
07c4e84f7b always declare TestStrip(), it is now available even without 2.8 compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59879 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-26 23:00:14 +00:00
Vadim Zeitlin
181dd701fa implement deprecated wxStripExtension() in terms of new wxFileName::StripExtension() (closes #10634)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-26 15:55:01 +00:00