| // Check that the path of an imported modulemap file is not influenced by | 
 | // modules outside that module's dependency graph. Specifically, the "Foo" | 
 | // module below does not transitively import Mod via a symlink, so it should not | 
 | // see the symlinked path. | 
 |  | 
 | // REQUIRES: shell | 
 |  | 
 | // RUN: rm -rf %t | 
 | // RUN: split-file %s %t | 
 | // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json | 
 | // RUN: ln -s module %t/include/symlink-to-module | 
 |  | 
 | // RUN: clang-scan-deps -compilation-database %t/cdb.json -j 1 \ | 
 | // RUN:   -format experimental-full  -mode=preprocess-dependency-directives \ | 
 | // RUN:   -optimize-args=all -module-files-dir %t/build > %t/deps.json | 
 |  | 
 | // RUN: cat %t/deps.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t | 
 |  | 
 | // CHECK: "modules": [ | 
 | // CHECK:   { | 
 | // CHECK:     "command-line": [ | 
 | // CHECK-NOT: ] | 
 | // CHECK:       "-fmodule-map-file=[[PREFIX]]/include/module/module.modulemap" | 
 | // CHECK:     ] | 
 | // CHECK:     "name": "Foo" | 
 | // CHECK:   } | 
 |  | 
 | //--- cdb.json.in | 
 | [{ | 
 |   "directory": "DIR", | 
 |   "command": "clang -fsyntax-only DIR/test.c -F DIR/Frameworks -I DIR/include -fmodules -fimplicit-module-maps -fmodules-cache-path=DIR/module-cache", | 
 |   "file": "DIR/test.c" | 
 | }] | 
 |  | 
 | //--- include/module/module.modulemap | 
 | module Mod { header "mod.h" export * } | 
 |  | 
 | //--- include/module/mod.h | 
 |  | 
 | //--- include/module.modulemap | 
 | module Other { header "other.h" export * } | 
 |  | 
 | //--- include/other.h | 
 | #include "symlink-to-module/mod.h" | 
 | #include "module/mod.h" | 
 |  | 
 | //--- Frameworks/Foo.framework/Modules/module.modulemap | 
 | framework module Foo { header "Foo.h" export * } | 
 | //--- Frameworks/Foo.framework/Modules/module.private.modulemap | 
 | framework module Foo_Private { header "Priv.h" export * } | 
 |  | 
 | //--- Frameworks/Foo.framework/Headers/Foo.h | 
 | #include "module/mod.h" | 
 |  | 
 | //--- Frameworks/Foo.framework/PrivateHeaders/Priv.h | 
 | #include <Foo/Foo.h> | 
 | #include "other.h" | 
 |  | 
 | //--- module.modulemap | 
 | module Test { header "test.h" export * } | 
 |  | 
 | //--- test.h | 
 | #include <Foo/Priv.h> | 
 | #include <Foo/Foo.h> | 
 |  | 
 | //--- test.c | 
 | #include "test.h" |