Saleem Abdulrasool
afc50b3ed4
support: add a utility function to normalise path separators
...
Add a utility function to convert the Windows path separator to Unix style path
separators. This is used by a subsequent change in clang to enable the use of
Windows SDK headers on Linux.
llvm-svn: 203611
2014-03-11 22:05:42 +00:00
Rafael Espindola
83f858e578
Cleanup the interface for creating soft or hard links.
...
Before this patch the unix code for creating hardlinks was unused. The code
for creating symbolic links was implemented in lib/Support/LockFileManager.cpp
and the code for creating hard links in lib/Support/*/Path.inc.
The only use we have for these is in LockFileManager.cpp and it can use both
soft and hard links. Just have a create_link function that creates one or the
other depending on the platform.
llvm-svn: 203596
2014-03-11 18:40:24 +00:00
Ahmed Charles
56440fd820
Replace OwningPtr<T> with std::unique_ptr<T>.
...
This compiles with no changes to clang/lld/lldb with MSVC and includes
overloads to various functions which are used by those projects and llvm
which have OwningPtr's as parameters. This should allow out of tree
projects some time to move. There are also no changes to libs/Target,
which should help out of tree targets have time to move, if necessary.
llvm-svn: 203083
2014-03-06 05:51:42 +00:00
Ben Langmuir
8d11639612
Fix an inconsistency in treatment of trailing / in path::const_iterator
...
When using a //net/ path, we were transforming the trailing / into a '.'
when the path was just the root path and we were iterating backwards.
Forwards iteration and other kinds of root path (C:\, /) were already
correct.
llvm-svn: 202999
2014-03-05 19:56:30 +00:00
Chandler Carruth
002da5db29
[C++11] Switch all uses of the llvm_move macro to use std::move
...
directly, and remove the macro.
llvm-svn: 202612
2014-03-02 04:08:41 +00:00
Chandler Carruth
667363b3e3
[C++11] Remove uses of LLVM_HAS_RVALUE_REFERENCES from the unittests.
...
llvm-svn: 202583
2014-03-01 09:36:06 +00:00
Rafael Espindola
90c7f1cc16
Replace the F_Binary flag with a F_Text one.
...
After this I will set the default back to F_None. The advantage is that
before this patch forgetting to set F_Binary would corrupt a file on windows.
Forgetting to set F_Text produces one that cannot be read in notepad, which
is a better failure mode :-)
llvm-svn: 202052
2014-02-24 18:20:12 +00:00
Rafael Espindola
83708e6585
Fix windows unittest I missed in the raw_fd_ostream constructor change.
...
llvm-svn: 202050
2014-02-24 16:40:34 +00:00
Rafael Espindola
5c20ac0134
Simplify remove, create_directory and create_directories.
...
Before this patch they would take an boolean argument to say if the path
already existed. This was redundant with the returned error_code which is able
to represent that. This allowed for callers to incorrectly check only the
existed flag instead of first checking the error code.
Instead, pass in a boolean flag to say if the previous (non-)existence should be
an error or not.
Callers of the of the old simple versions are not affected. They still ignore
the previous (non-)existence as they did before.
llvm-svn: 201979
2014-02-23 13:56:14 +00:00
Peter Collingbourne
f7d4101156
Introduce llvm::sys::path::home_directory.
...
This will be used by the line editor library to derive a default path to
the history file.
Differential Revision: http://llvm-reviews.chandlerc.com/D2199
llvm-svn: 200594
2014-01-31 23:46:06 +00:00
Rafael Espindola
78dcc03c37
Remove remove_all. A compiler has no need for recursively deleting a directory.
...
llvm-svn: 198955
2014-01-10 20:36:42 +00:00
Rui Ueyama
e448f9e418
Path: Recognize COFF import library file magic.
...
Summary: Make identify_magic to recognize COFF import file.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2165
llvm-svn: 194852
2013-11-15 21:22:02 +00:00
Rui Ueyama
829c4392e1
Recognize 0x0000 as a COFF file magic.
...
Summary:
Some machine-type-neutral object files containing only undefined symbols
actually do exist in the Windows standard library. Need to recognize them
as COFF files.
Reviewers: Bigcheese
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2164
llvm-svn: 194734
2013-11-14 22:09:08 +00:00
Rui Ueyama
5e3de7a7eb
Path: Add tests for existing file magics.
...
llvm-svn: 194607
2013-11-13 21:55:41 +00:00
Rui Ueyama
89d1bdb687
Whitespace.
...
llvm-svn: 194605
2013-11-13 20:31:21 +00:00
Rafael Espindola
e5bf24684f
Try to fix the build on windows.
...
llvm-svn: 193431
2013-10-25 19:47:55 +00:00
Tareq A. Siraj
73537eac3d
Fixes a bug when iterating on paths
...
This fixes the incorrect implementation of iterating on file/directory
paths.
Differential Review: http://llvm-reviews.chandlerc.com/D1277
llvm-svn: 188183
2013-08-12 17:10:49 +00:00
Rafael Espindola
107b74c6c3
Fix windows' implementation of status when a file doesn't exist.
...
The unix one was returning no_such_file_or_directory, but the windows one
was return success.
Update the one one caller that was depending on the old behavior.
llvm-svn: 187463
2013-07-31 00:10:25 +00:00
Rafael Espindola
a5932afef0
Implement getUniqueID for directories on windows.
...
llvm-svn: 187441
2013-07-30 20:25:53 +00:00
Rafael Espindola
7f822a9306
Include st_dev to make the result of getUniqueID actually unique.
...
This will let us use getUniqueID instead of st_dev directly on clang.
llvm-svn: 187378
2013-07-29 21:26:49 +00:00
Rafael Espindola
d3c89041c5
Don't end a file name with a dot. It looks odd.
...
llvm-svn: 187124
2013-07-25 15:00:17 +00:00
Rafael Espindola
84ab9b3b8f
Add a unit test for checking that we respect the F_Binary flag.
...
llvm-svn: 186676
2013-07-19 14:41:25 +00:00
Rafael Espindola
213c4cb18c
Remove dead code.
...
llvm-svn: 186561
2013-07-18 03:29:51 +00:00
Rafael Espindola
6d35481c94
Add a wrapper for open.
...
This centralizes the handling of O_BINARY and opens the way for hiding more
differences (like how open behaves with directories).
llvm-svn: 186447
2013-07-16 19:44:17 +00:00
Rafael Espindola
a8a9f1baf0
We now always create files with the correct permissions. Simplify the interface.
...
llvm-svn: 185834
2013-07-08 16:42:01 +00:00
Rafael Espindola
2eb1ae4f91
Fix windows build.
...
llvm-svn: 185730
2013-07-05 22:32:33 +00:00
Rafael Espindola
155cf0f3a6
Use sys::fs::createTemporaryFile.
...
llvm-svn: 185719
2013-07-05 20:14:52 +00:00
Rafael Espindola
7ffacc4992
Add a convenience createUniqueDirectory function.
...
There are a few valid situation where we care about the structure inside a
directory, but not about the directory itself. A simple example is for unit
testing directory traversal.
PathV1 had a function like this, add one to V2 and port existing users of the
created temp file and delete it hack to using it.
llvm-svn: 185059
2013-06-27 03:45:31 +00:00
Rafael Espindola
7cf7c51cc4
Rename fs::GetUniqueID to fs::getUniqueID to match the style guide.
...
llvm-svn: 184431
2013-06-20 15:06:35 +00:00
Aaron Ballman
9fbe530d74
Modified the implementation of fs::GetUniqueID on Windows such that it actually finds a unique identifier for a file. Also adds unit tests for GetUniqueID.
...
llvm-svn: 184351
2013-06-19 21:03:50 +00:00
Rafael Espindola
3bc8e71909
Move PathV2.h to Path.h
...
Most clients have already been moved from Path V1 to V2. The ones using V1
now include PathV1.h explicitly.
llvm-svn: 183801
2013-06-11 22:21:28 +00:00
Michael J. Spencer
b8055cbc9d
[Support][FileSystem] Fix identify_magic for big endian ELF.
...
llvm-svn: 178905
2013-04-05 20:10:04 +00:00
Aaron Ballman
fcdf9a8240
Test case for graceful handling of long file names on Windows. Patch thanks to Paul Robinson!
...
llvm-svn: 177223
2013-03-16 15:00:51 +00:00
Michael J. Spencer
01ac34e4c3
[Support][Test] Missed this in the API change.
...
llvm-svn: 176996
2013-03-14 00:33:37 +00:00
Chandler Carruth
130cec21b9
Sort the #include lines for unittest/...
...
llvm-svn: 169250
2012-12-04 10:23:08 +00:00
Chandler Carruth
f12e3a67db
Switch LLVM_USE_RVALUE_REFERENCES to LLVM_HAS_RVALUE_REFERENCES.
...
Rationale:
1) This was the name in the comment block. ;]
2) It matches Clang's __has_feature naming convention.
3) It matches other compiler-feature-test conventions.
Sorry for the noise. =]
I've also switch the comment block to use a \brief tag and not duplicate
the name.
llvm-svn: 168996
2012-11-30 11:45:22 +00:00
Michael J. Spencer
135611f7fc
Properly test the LLVM_USE_RVALUE_REFERENCES macro.
...
llvm-svn: 161979
2012-08-15 19:21:42 +00:00
Michael J. Spencer
ef2284fbad
[PathV2] Add mapped_file_region. Implementation for Windows and POSIX.
...
llvm-svn: 161976
2012-08-15 19:05:47 +00:00
NAKAMURA Takumi
c8919dd7fd
unittests/Support/Path.cpp: [Win32] Suppress FileSystemTest.FileMapping for now.
...
llvm-svn: 159099
2012-06-24 03:48:40 +00:00
NAKAMURA Takumi
787ea1f3cc
unittests/Support/Path.cpp: [Win32] Suppress FileSystemTest.Permissions for now.
...
llvm-svn: 159098
2012-06-24 03:48:34 +00:00
Nick Kledzik
18497e9242
Add permissions(), map_file_pages(), and unmap_file_pages() to llvm::sys::fs and add unit test. Unix is implemented. Windows side needs to be implemented.
...
llvm-svn: 158770
2012-06-20 00:28:54 +00:00
Chad Rosier
531042840d
Revert r146363 to allow buildbots to make forward progress.
...
Original commit message:
Support/FileSystem: Implement canonicalize.
llvm-svn: 146378
2011-12-12 17:58:31 +00:00
Michael J. Spencer
203d7807a8
Support/FileSystem: Implement bool equivalent(file_status A, file_status B);
...
llvm-svn: 146364
2011-12-12 06:04:28 +00:00
Michael J. Spencer
32ef4d2e1b
Support/FileSystem: Implement canonicalize.
...
llvm-svn: 146363
2011-12-12 06:04:01 +00:00
NAKAMURA Takumi
0cfb3675cb
unittests/Support/Path.cpp: [recursive_directory_iterator] Work around for end iterator.
...
FIXME: It should be more robust.
llvm-svn: 146294
2011-12-09 23:20:03 +00:00
Michael J. Spencer
9b54a3e297
unittests/SupportTests: Fix test. pop modifies the current entry, thus the
...
dontlookhere check must be after it.
llvm-svn: 146217
2011-12-09 01:14:41 +00:00
Michael J. Spencer
a5207b9407
unittests/SupportTests: Add some outs()'s to debug the issues on some bots.
...
I have run these tests under many configurations on the exact same OS as
the failures, and I can't reproduce them :(.
llvm-svn: 146214
2011-12-09 00:45:09 +00:00
Michael J. Spencer
0a7625d661
Support/FileSystem: Implement recursive_directory_iterator and make
...
directory_iterator preserve InputIterator semantics on copy.
llvm-svn: 146200
2011-12-08 22:50:09 +00:00
Zhanyong Wan
606bb1a2dc
Adds llvm::sys::path::is_separator() to test whether a char is a path separator
...
on the host OS. Reviewed by dgregor.
llvm-svn: 125406
2011-02-11 21:24:40 +00:00
Michael J. Spencer
b587180fa7
Unittests/Support/Path: Tweak test.
...
llvm-svn: 123546
2011-01-15 18:52:49 +00:00
Michael J. Spencer
1d3c4a7b94
UnitTests/Path: Add magical tests. This will also test identify_magic.
...
llvm-svn: 122948
2011-01-06 05:58:02 +00:00
Michael J. Spencer
1f06360002
UnitTests/Path: More ASSERT_NO_ERROR cleanup.
...
llvm-svn: 122947
2011-01-06 05:57:54 +00:00
Michael J. Spencer
42368cc15f
UnitTests/Path: Fix typo, add error number, and enable the directory cleanup code.
...
llvm-svn: 122885
2011-01-05 16:39:46 +00:00
Michael J. Spencer
346a13381a
UnitTests/PathV2: Setup a test fixture to make tracking created file system
...
entities easier.
llvm-svn: 122880
2011-01-05 16:39:05 +00:00
Michael J. Spencer
52714863db
Support/PathV2: Implement directory iteration on POSIX.
...
llvm-svn: 122879
2011-01-05 16:38:57 +00:00
Michael J. Spencer
3b264ba91a
UnitTests/Path: Produce useful diagnostics on error.
...
llvm-svn: 122812
2011-01-04 17:00:18 +00:00
Michael J. Spencer
f616b218c8
Support/PathV2: Change most functions in the path namespace to return their work
...
via their return value instead of an out parameter.
llvm-svn: 121149
2010-12-07 17:04:04 +00:00
Michael J. Spencer
1e090f0b8f
Support/PathV2: Remove the error_code return type from all functions in the path
...
namespace. None of them return anything except for success anyway. These will be
converted to returning their result soon.
llvm-svn: 121109
2010-12-07 03:57:37 +00:00
Michael J. Spencer
92903a3339
Support/PathV2: Move make_absolute from path to fs.
...
llvm-svn: 121108
2010-12-07 03:57:17 +00:00
Michael J. Spencer
7ecd94cc0b
Support/FileSystem: Add directory_iterator implementation.
...
llvm-svn: 120989
2010-12-06 04:28:42 +00:00
Michael J. Spencer
4fb115d2f3
Unittests/Support/PathV2: Add FileSystem tests.
...
llvm-svn: 120888
2010-12-04 03:18:42 +00:00
Michael J. Spencer
6e74e11c85
Support/FileSystem: Add remove implementation.
...
llvm-svn: 120817
2010-12-03 17:53:43 +00:00
Benjamin Kramer
23e6bdf1ae
unittests/Support/PathV2: remove(3) requires a terminated string.
...
llvm-svn: 120803
2010-12-03 12:33:32 +00:00
Michael J. Spencer
b5ca6447bb
Unittests/Support/PathV2: Cleanup and remove output.
...
llvm-svn: 120785
2010-12-03 02:22:34 +00:00
Michael J. Spencer
ab16054770
unittests/Support/PathV2: Comment out test because some systems are saying that
...
a file exists when it shouldn't.
llvm-svn: 120784
2010-12-03 02:10:30 +00:00
Michael J. Spencer
4571040ea1
Support/FileSystem: Add unique_file and exists implementations.
...
llvm-svn: 120776
2010-12-03 01:21:28 +00:00
Michael J. Spencer
75942f9d93
Make valgrind happy.
...
llvm-svn: 120616
2010-12-01 22:28:42 +00:00
Michael J. Spencer
9ceae88ffc
unittests/Support/PathV2: Fix -pedantic warning.
...
llvm-svn: 120590
2010-12-01 19:23:49 +00:00
Michael J. Spencer
a72df5fae8
Support/PathV2: Add is_{absolute,relative} implementation.
...
llvm-svn: 120560
2010-12-01 06:21:53 +00:00
Michael J. Spencer
112a769379
Support/PathV2: Add has_{root_path,root_name,root_directory,parent_path,filename,stem,extension} implementation.
...
llvm-svn: 120559
2010-12-01 06:03:50 +00:00
Michael J. Spencer
4d0c6fdda6
unittests/Support/PathV2: Make tests much shorter; although harder to understand.
...
I'm going to replace this all anyway with a proper table and separated tests
when done.
llvm-svn: 120558
2010-12-01 06:03:33 +00:00
Michael J. Spencer
87106c59ed
Support/PathV2: Add extension implementation.
...
llvm-svn: 120550
2010-12-01 03:37:41 +00:00
Michael J. Spencer
956955ed8b
Support/PathV2: Add stem implementation.
...
llvm-svn: 120547
2010-12-01 03:18:33 +00:00
Michael J. Spencer
142692006b
Support/PathV2: Add filename implementation.
...
llvm-svn: 120546
2010-12-01 03:18:17 +00:00
Michael J. Spencer
8002500ee1
Support/PathV2: Add native implementation.
...
llvm-svn: 120539
2010-12-01 02:48:27 +00:00
Michael J. Spencer
fb3a95d8e2
Support/PathV2: Add replace_extension implementation.
...
llvm-svn: 120514
2010-12-01 00:52:55 +00:00
Michael J. Spencer
9c594095a6
Support/PathV2: Add remove_filename implementation.
...
llvm-svn: 120513
2010-12-01 00:52:28 +00:00
Michael J. Spencer
545cbdf063
Support/PathV2: Implement reverse iteration and parent_path.
...
llvm-svn: 120496
2010-11-30 23:28:07 +00:00
Michael J. Spencer
b775d0b3ad
Support/PathV2: Fix 80 col.
...
llvm-svn: 120349
2010-11-29 23:35:49 +00:00
Michael J. Spencer
3ef91c5593
unittests: Merge SystemTests back into SupportTests.
...
llvm-svn: 120330
2010-11-29 22:29:04 +00:00