1d77588dfSJan Svoboda // This test checks that VFS-mapped module map path has the correct spelling 2d77588dfSJan Svoboda // after canonicalization, even if it was first accessed using different case. 3d77588dfSJan Svoboda 4d77588dfSJan Svoboda // RUN: rm -rf %t 5d77588dfSJan Svoboda // RUN: split-file %s %t 6d77588dfSJan Svoboda 7d77588dfSJan Svoboda //--- actual/One.h 8d77588dfSJan Svoboda #import <FW/Two.h> 9d77588dfSJan Svoboda //--- actual/Two.h 10d77588dfSJan Svoboda // empty 11d77588dfSJan Svoboda //--- frameworks/FW.framework/Modules/module.modulemap 12d77588dfSJan Svoboda framework module FW { 13d77588dfSJan Svoboda header "One.h" 14d77588dfSJan Svoboda header "Two.h" 15d77588dfSJan Svoboda } 16d77588dfSJan Svoboda //--- tu.m 17d77588dfSJan Svoboda #import <fw/One.h> 18d77588dfSJan Svoboda 19d77588dfSJan Svoboda //--- overlay.json.in 20d77588dfSJan Svoboda { 21d77588dfSJan Svoboda "version": 0, 22d77588dfSJan Svoboda "case-sensitive": "false", 23d77588dfSJan Svoboda "roots": [ 24d77588dfSJan Svoboda { 25d77588dfSJan Svoboda "contents": [ 26d77588dfSJan Svoboda { 27d77588dfSJan Svoboda "external-contents": "DIR/actual/One.h", 28d77588dfSJan Svoboda "name": "One.h", 29d77588dfSJan Svoboda "type": "file" 30d77588dfSJan Svoboda }, 31d77588dfSJan Svoboda { 32d77588dfSJan Svoboda "external-contents": "DIR/actual/Two.h", 33d77588dfSJan Svoboda "name": "Two.h", 34d77588dfSJan Svoboda "type": "file" 35d77588dfSJan Svoboda } 36d77588dfSJan Svoboda ], 37d77588dfSJan Svoboda "name": "DIR/frameworks/FW.framework/Headers", 38d77588dfSJan Svoboda "type": "directory" 39d77588dfSJan Svoboda } 40d77588dfSJan Svoboda ] 41d77588dfSJan Svoboda } 42d77588dfSJan Svoboda 43d77588dfSJan Svoboda //--- cdb.json.in 44d77588dfSJan Svoboda [{ 45d77588dfSJan Svoboda "directory": "DIR", 46d77588dfSJan Svoboda "file": "DIR/tu.m", 47d77588dfSJan Svoboda "command": "clang -fmodules -fmodules-cache-path=DIR/cache -ivfsoverlay DIR/overlay.json -F DIR/frameworks -c DIR/tu.m -o DIR/tu.o" 48d77588dfSJan Svoboda }] 49d77588dfSJan Svoboda 50d77588dfSJan Svoboda // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json 51d77588dfSJan Svoboda // RUN: sed -e "s|DIR|%/t|g" %t/overlay.json.in > %t/overlay.json 52d77588dfSJan Svoboda // RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full > %t/result.json 53d77588dfSJan Svoboda // RUN: cat %t/result.json | sed 's:\\\\\?:/:g' | FileCheck %s -DPREFIX=%/t 54d77588dfSJan Svoboda 55d77588dfSJan Svoboda // CHECK: { 56d77588dfSJan Svoboda // CHECK-NEXT: "modules": [ 57d77588dfSJan Svoboda // CHECK-NEXT: { 58d77588dfSJan Svoboda // CHECK-NEXT: "clang-module-deps": [], 59d77588dfSJan Svoboda // CHECK-NEXT: "clang-modulemap-file": "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap", 60d77588dfSJan Svoboda // CHECK-NEXT: "command-line": [ 61d77588dfSJan Svoboda // CHECK: "-x" 62d77588dfSJan Svoboda // CHECK-NEXT: "objective-c" 63d77588dfSJan Svoboda // CHECK-NEXT: "[[PREFIX]]/frameworks/FW.framework/Modules/module.modulemap" 64d77588dfSJan Svoboda // CHECK: ], 65d77588dfSJan Svoboda // CHECK-NEXT: "context-hash": "{{.*}}", 66d77588dfSJan Svoboda // CHECK-NEXT: "file-deps": [ 67d77588dfSJan Svoboda // CHECK: ], 68*68eb3b20SArtem Chikin // CHECK-NEXT: "link-libraries": [ 69*68eb3b20SArtem Chikin // CHECK-NEXT: { 70*68eb3b20SArtem Chikin // CHECK-NEXT: "isFramework": true, 71*68eb3b20SArtem Chikin // CHECK-NEXT: "link-name": "FW" 72*68eb3b20SArtem Chikin // CHECK-NEXT: } 73*68eb3b20SArtem Chikin // CHECK-NEXT: ], 74d77588dfSJan Svoboda // CHECK-NEXT: "name": "FW" 75d77588dfSJan Svoboda // CHECK-NEXT: } 76d77588dfSJan Svoboda // CHECK-NEXT: ] 77d77588dfSJan Svoboda // CHECK: } 78