Browse Source

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.



git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@273323 91177308-0d34-0410-b5e6-96231b3b80d8
Eric Fiselier 9 years ago
parent
commit
374a33d1b9
2 changed files with 4 additions and 0 deletions
  1. 2 0
      test/libcxx/test/config.py
  2. 2 0
      test/support/filesystem_test_helper.hpp

+ 2 - 0
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]

+ 2 - 0
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 "