1*7806a928SJan Svoboda// This test checks that the module map paths we're reporting are the as-requested 2*7806a928SJan Svoboda// paths (as opposed to the paths files resolve to after going through VFS overlays). 3*7806a928SJan Svoboda 4*7806a928SJan Svoboda// RUN: rm -rf %t 5*7806a928SJan Svoboda// RUN: split-file %s %t 6*7806a928SJan Svoboda 7*7806a928SJan Svoboda//--- real/module.modulemap 8*7806a928SJan Svobodaframework module FW { header "Header.h" } 9*7806a928SJan Svoboda//--- real/Header.h 10*7806a928SJan Svoboda//--- overlay.json.template 11*7806a928SJan Svoboda{ 12*7806a928SJan Svoboda "case-sensitive": "false", 13*7806a928SJan Svoboda "version": "0", 14*7806a928SJan Svoboda "roots": [ 15*7806a928SJan Svoboda { 16*7806a928SJan Svoboda "contents": [ 17*7806a928SJan Svoboda { 18*7806a928SJan Svoboda "external-contents" : "DIR/real/Header.h", 19*7806a928SJan Svoboda "name" : "Header.h", 20*7806a928SJan Svoboda "type" : "file" 21*7806a928SJan Svoboda } 22*7806a928SJan Svoboda ], 23*7806a928SJan Svoboda "name": "DIR/frameworks/FW.framework/Headers", 24*7806a928SJan Svoboda "type": "directory" 25*7806a928SJan Svoboda }, 26*7806a928SJan Svoboda { 27*7806a928SJan Svoboda "contents": [ 28*7806a928SJan Svoboda { 29*7806a928SJan Svoboda "external-contents": "DIR/real/module.modulemap", 30*7806a928SJan Svoboda "name": "module.modulemap", 31*7806a928SJan Svoboda "type": "file" 32*7806a928SJan Svoboda } 33*7806a928SJan Svoboda ], 34*7806a928SJan Svoboda "name": "DIR/frameworks/FW.framework/Modules", 35*7806a928SJan Svoboda "type": "directory" 36*7806a928SJan Svoboda } 37*7806a928SJan Svoboda ] 38*7806a928SJan Svoboda} 39*7806a928SJan Svoboda 40*7806a928SJan Svoboda//--- modules/module.modulemap 41*7806a928SJan Svobodamodule Importer { header "header.h" } 42*7806a928SJan Svoboda//--- modules/header.h 43*7806a928SJan Svoboda#include <FW/Header.h> 44*7806a928SJan Svoboda 45*7806a928SJan Svoboda//--- cdb.json.template 46*7806a928SJan Svoboda[{ 47*7806a928SJan Svoboda "file": "DIR/tu.m", 48*7806a928SJan Svoboda "directory": "DIR", 49*7806a928SJan Svoboda "command": "clang -fmodules -fmodules-cache-path=DIR/cache -Werror=non-modular-include-in-module -ivfsoverlay DIR/overlay.json -F DIR/frameworks -I DIR/modules -c DIR/tu.m -o DIR/tu.o" 50*7806a928SJan Svoboda}] 51*7806a928SJan Svoboda 52*7806a928SJan Svoboda//--- tu.m 53*7806a928SJan Svoboda@import Importer; 54*7806a928SJan Svoboda 55*7806a928SJan Svoboda// RUN: sed -e "s|DIR|%/t|g" %t/overlay.json.template > %t/overlay.json 56*7806a928SJan Svoboda// RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.template > %t/cdb.json 57*7806a928SJan Svoboda// RUN: clang-scan-deps -compilation-database %t/cdb.json -format experimental-full > %t/result.json 58*7806a928SJan Svoboda 59*7806a928SJan Svoboda// RUN: %deps-to-rsp %t/result.json --module-name=FW > %t/FW.cc1.rsp 60*7806a928SJan Svoboda// RUN: %deps-to-rsp %t/result.json --module-name=Importer > %t/Importer.cc1.rsp 61*7806a928SJan Svoboda// RUN: %deps-to-rsp %t/result.json --tu-index=0 > %t/tu.rsp 62*7806a928SJan Svoboda// RUN: %clang @%t/FW.cc1.rsp 63*7806a928SJan Svoboda// RUN: %clang @%t/Importer.cc1.rsp 64*7806a928SJan Svoboda// RUN: %clang @%t/tu.rsp 65