summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-06-21 21:54:23 +0000
committerEric Fiselier <eric@efcs.ca>2016-06-21 21:54:23 +0000
commit48bc85091726bdb1a34cb536eb684794ab4450b6 (patch)
treeb5c106c0129e4fe14c0fac85b96e049817fabb27
parent7b4ef068c6f5e1199f37b6f8a2881491b0cc09db (diff)
downloadbcm5719-llvm-48bc85091726bdb1a34cb536eb684794ab4450b6.tar.gz
bcm5719-llvm-48bc85091726bdb1a34cb536eb684794ab4450b6.zip
Allow the libc++ build/source paths to contain symlinks.
The filesystem tests were expecting the paths to the build/source directories did not contain any symlinks. This patch resolves those symlinks before running the test suite. llvm-svn: 273323
-rw-r--r--libcxx/test/libcxx/test/config.py2
-rw-r--r--libcxx/test/support/filesystem_test_helper.hpp2
2 files changed, 4 insertions, 0 deletions
diff --git a/libcxx/test/libcxx/test/config.py b/libcxx/test/libcxx/test/config.py
index 5632e535d4b..ded8036d2a1 100644
--- a/libcxx/test/libcxx/test/config.py
+++ b/libcxx/test/libcxx/test/config.py
@@ -439,11 +439,13 @@ class Configuration(object):
self.config.available_features.add('c++filesystem')
static_env = os.path.join(self.libcxx_src_root, 'test', 'std',
'experimental', 'filesystem', 'Inputs', 'static_test_env')
+ static_env = os.path.realpath(static_env)
assert os.path.isdir(static_env)
self.cxx.compile_flags += ['-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="%s"' % static_env]
dynamic_env = os.path.join(self.libcxx_obj_root, 'test',
'filesystem', 'Output', 'dynamic_env')
+ dynamic_env = os.path.realpath(dynamic_env)
if not os.path.isdir(dynamic_env):
os.makedirs(dynamic_env)
self.cxx.compile_flags += ['-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="%s"' % dynamic_env]
diff --git a/libcxx/test/support/filesystem_test_helper.hpp b/libcxx/test/support/filesystem_test_helper.hpp
index 7e3c7399a10..7150f79739b 100644
--- a/libcxx/test/support/filesystem_test_helper.hpp
+++ b/libcxx/test/support/filesystem_test_helper.hpp
@@ -20,6 +20,7 @@ namespace fs = std::experimental::filesystem;
namespace StaticEnv {
inline fs::path makePath(fs::path const& p) {
+ // env_path is expected not to contain symlinks.
static const fs::path env_path = LIBCXX_FILESYSTEM_STATIC_TEST_ROOT;
return env_path / p;
}
@@ -236,6 +237,7 @@ private:
}
static bool checkDynamicTestRoot() {
+ // LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT is expected not to contain symlinks.
char* fs_root = std::getenv("LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT");
if (!fs_root) {
std::printf("ERROR: LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT must be a defined "
OpenPOWER on IntegriCloud