Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: base/files/file_path.h

Issue 1139883004: Testing: Fixed printing FilePaths when a test fails comparing them. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bauerb-profiles-ephemeral
Patch Set: Remove BASE_EXPORT; see if this fixes Windows compile. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/files/file_path.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // FilePath is a container for pathnames stored in a platform's native string 5 // FilePath is a container for pathnames stored in a platform's native string
6 // type, providing containers for manipulation in according with the 6 // type, providing containers for manipulation in according with the
7 // platform's conventions for pathnames. It supports the following path 7 // platform's conventions for pathnames. It supports the following path
8 // types: 8 // types:
9 // 9 //
10 // POSIX Windows 10 // POSIX Windows
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 // FilePath treats c://, c:\\, //, and \\ all equivalently. 96 // FilePath treats c://, c:\\, //, and \\ all equivalently.
97 // Reference: 97 // Reference:
98 // The Old New Thing, "Why is a drive letter permitted in front of UNC 98 // The Old New Thing, "Why is a drive letter permitted in front of UNC
99 // paths (sometimes)?", available at: 99 // paths (sometimes)?", available at:
100 // http://blogs.msdn.com/oldnewthing/archive/2005/11/22/495740.aspx 100 // http://blogs.msdn.com/oldnewthing/archive/2005/11/22/495740.aspx
101 101
102 #ifndef BASE_FILES_FILE_PATH_H_ 102 #ifndef BASE_FILES_FILE_PATH_H_
103 #define BASE_FILES_FILE_PATH_H_ 103 #define BASE_FILES_FILE_PATH_H_
104 104
105 #include <stddef.h> 105 #include <stddef.h>
106
107 #include <iosfwd>
106 #include <string> 108 #include <string>
107 #include <vector> 109 #include <vector>
108 110
109 #include "base/base_export.h" 111 #include "base/base_export.h"
110 #include "base/compiler_specific.h" 112 #include "base/compiler_specific.h"
111 #include "base/containers/hash_tables.h" 113 #include "base/containers/hash_tables.h"
112 #include "base/strings/string16.h" 114 #include "base/strings/string16.h"
113 #include "base/strings/string_piece.h" // For implicit conversions. 115 #include "base/strings/string_piece.h" // For implicit conversions.
114 #include "build/build_config.h" 116 #include "build/build_config.h"
115 117
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 // Remove trailing separators from this object. If the path is absolute, it 428 // Remove trailing separators from this object. If the path is absolute, it
427 // will never be stripped any more than to refer to the absolute root 429 // will never be stripped any more than to refer to the absolute root
428 // directory, so "////" will become "/", not "". A leading pair of 430 // directory, so "////" will become "/", not "". A leading pair of
429 // separators is never stripped, to support alternate roots. This is used to 431 // separators is never stripped, to support alternate roots. This is used to
430 // support UNC paths on Windows. 432 // support UNC paths on Windows.
431 void StripTrailingSeparatorsInternal(); 433 void StripTrailingSeparatorsInternal();
432 434
433 StringType path_; 435 StringType path_;
434 }; 436 };
435 437
438 // This is required by googletest to print a readable output on test failures.
439 // This is declared here for use in gtest-based unit tests but is defined in
440 // the test_support_base target. Depend on that to use this in your unit test.
441 // This should not be used in production code - call ToString() instead.
442 void PrintTo(const FilePath& path, std::ostream* out);
443
436 } // namespace base 444 } // namespace base
437 445
438 // This is required by googletest to print a readable output on test failures.
439 BASE_EXPORT extern void PrintTo(const base::FilePath& path, std::ostream* out);
440
441 // Macros for string literal initialization of FilePath::CharType[], and for 446 // Macros for string literal initialization of FilePath::CharType[], and for
442 // using a FilePath::CharType[] in a printf-style format string. 447 // using a FilePath::CharType[] in a printf-style format string.
443 #if defined(OS_POSIX) 448 #if defined(OS_POSIX)
444 #define FILE_PATH_LITERAL(x) x 449 #define FILE_PATH_LITERAL(x) x
445 #define PRFilePath "s" 450 #define PRFilePath "s"
446 #elif defined(OS_WIN) 451 #elif defined(OS_WIN)
447 #define FILE_PATH_LITERAL(x) L ## x 452 #define FILE_PATH_LITERAL(x) L ## x
448 #define PRFilePath "ls" 453 #define PRFilePath "ls"
449 #endif // OS_WIN 454 #endif // OS_WIN
450 455
451 // Provide a hash function so that hash_sets and maps can contain FilePath 456 // Provide a hash function so that hash_sets and maps can contain FilePath
452 // objects. 457 // objects.
453 namespace BASE_HASH_NAMESPACE { 458 namespace BASE_HASH_NAMESPACE {
454 459
455 template<> 460 template<>
456 struct hash<base::FilePath> { 461 struct hash<base::FilePath> {
457 size_t operator()(const base::FilePath& f) const { 462 size_t operator()(const base::FilePath& f) const {
458 return hash<base::FilePath::StringType>()(f.value()); 463 return hash<base::FilePath::StringType>()(f.value());
459 } 464 }
460 }; 465 };
461 466
462 } // namespace BASE_HASH_NAMESPACE 467 } // namespace BASE_HASH_NAMESPACE
463 468
464 #endif // BASE_FILES_FILE_PATH_H_ 469 #endif // BASE_FILES_FILE_PATH_H_
OLDNEW
« no previous file with comments | « no previous file | base/files/file_path.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698