Files
swift-mirror/test/ModuleInterface/loading-remarks.swift
2024-02-19 02:48:36 -10:00

60 lines
2.5 KiB
Swift

/// 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'