1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/// Test the -Rmodule-loading flag.
// RUN: %empty-directory(%t)
// RUN: %empty-directory(%t/cache)
// RUN: split-file %s %t
/// Create Swift modules to import.
// RUN: %target-swift-emit-module-interface(%t/SwiftDependency.swiftinterface) \
// RUN: %t/SwiftDependency.swift
// RUN: %target-swift-frontend -emit-module -o %t/SwiftNonResilientDependency.swiftmodule \
// RUN: -module-name SwiftNonResilientDependency %t/SwiftDependency.swift
// RUN: %target-swift-emit-module-interface(%t/IndirectMixedDependency.swiftinterface) \
// RUN: %t/IndirectMixedDependency.swift -I %t
/// Use -Rmodule-loading in a client and look for the diagnostics output.
// RUN: %target-swift-frontend -typecheck %t/Client.swift -Rmodule-loading \
// RUN: -I %t -module-cache-path %t/cache 2>&1 | %FileCheck %s
//--- module.modulemap
module IndirectMixedDependency {
header "IndirectMixedDependency.h"
}
module DirectMixedDependency {
header "DirectMixedDependency.h"
export *
}
//--- IndirectMixedDependency.h
//--- IndirectMixedDependency.swift
@_exported import IndirectMixedDependency
//--- DirectMixedDependency.h
#include "IndirectMixedDependency.h"
//--- DirectMixedDependency.swift
@_exported import DirectMixedDependency
//--- SwiftDependency.swift
public func publicFunction() {}
//--- Client.swift
import SwiftDependency
import SwiftNonResilientDependency
import DirectMixedDependency
// CHECK: remark: 'Swift' has a required transitive dependency on 'SwiftShims'
// CHECK: remark: loaded module 'SwiftShims'; source: '{{.*}}module.modulemap', loaded: '{{.*}}SwiftShims-{{.*}}.pcm'
// CHECK: remark: loaded module 'Swift'; source: '{{.*}}Swift.swiftmodule{{.*}}.swiftinterface', loaded: '{{.*}}Swift.swiftmodule{{.*}}.swiftmodule'
// CHECK: remark: 'SwiftDependency' has a required transitive dependency on 'Swift'
// CHECK: remark: loaded module 'SwiftDependency'; source: '{{.*}}SwiftDependency.swiftinterface', loaded: '{{.*}}SwiftDependency-{{.*}}.swiftmodule'
// CHECK-DAG: remark: loaded module 'SwiftNonResilientDependency'; source: '{{.*}}SwiftNonResilientDependency.swiftmodule', loaded: '{{.*}}SwiftNonResilientDependency.swiftmodule'
// CHECK-DAG: remark: loaded module 'IndirectMixedDependency' (overlay for a clang dependency); source: '{{.*}}IndirectMixedDependency.swiftinterface', loaded: '{{.*}}IndirectMixedDependency-{{.*}}.swiftmodule'
// CHECK-DAG: remark: loaded module 'DirectMixedDependency'; source: '{{.*}}module.modulemap', loaded: '{{.*}}DirectMixedDependency-{{.*}}.pcm'
|