Files
swift-mirror/test/CAS/module_deps_clang_extras.swift
Steven Wu cd07d532af [CAS] Use IncludeTreeFileList instead of full CASFS for caching
Use IncludeTreeFileList instead of full feature CASFS for swift
dependency filesystem. This allows smaller CAS based VFS that is smaller
and faster. This is enabled by the CAS enabled compilation does not
need to iterate file system.

rdar://136787368
2024-09-30 16:01:33 -07:00

50 lines
1.4 KiB
Swift

// REQUIRES: objc_interop
// RUN: %empty-directory(%t)
// RUN: mkdir -p %t/clang-module-cache
// RUN: mkdir -p %t/cas
// RUN: split-file %s %t
// RUN: %hmaptool write %t/hmap.json %t/empty.hmap
// RUN: %target-swift-frontend -scan-dependencies -module-cache-path %t/clang-module-cache \
// RUN: %t/Test.swift -o %t/deps.json -cache-compile-job -cas-path %t/cas \
// RUN: -Xcc -fmodule-map-file=%t/module.modulemap -Xcc -ivfsoverlay -Xcc %t/empty.yaml \
// RUN: -Xcc -I%t/empty.hmap
// RUN: %validate-json %t/deps.json &>/dev/null
// RUN: %{python} %S/Inputs/SwiftDepsExtractor.py %t/deps.json deps casFSRootID > %t/fs.casid
// RUN: %cache-tool -cas-path %t/cas -cache-tool-action print-include-tree-list @%t/fs.casid | %FileCheck %s -DDIR=%basename_t -check-prefix FS_ROOT
// RUN: %{python} %S/Inputs/SwiftDepsExtractor.py %t/deps.json clang:Dummy clangIncludeTree > %t/tree.casid
// RUN: clang-cas-test --cas %t/cas --print-include-tree @%t/tree.casid | %FileCheck %s -DDIR=%basename_t -check-prefix INCLUDE_TREE
// FS_ROOT: [[DIR]].tmp/empty.hmap
// FS_ROOT: [[DIR]].tmp/empty.yaml
// INCLUDE_TREE: [[DIR]].tmp/Dummy.h
//--- Test.swift
import Dummy
func test() {}
//--- module.modulemap
module Dummy {
umbrella header "Dummy.h"
}
//--- Dummy.h
void dummy(void);
//--- hmap.json
{
"mappings": {}
}
//--- empty.yaml
{
"version": 0,
"case-sensitive": "false",
"use-external-names": true,
"roots": []
}