mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This replaces the `process_fine_grained_swiftdeps_with_fingerprints` helper with a python script that mimics the shell behaviour. Adjust the generated interface diffs to use unified formats. This allows us to enable these tests on Windows.
53 lines
2.3 KiB
Swift
53 lines
2.3 KiB
Swift
// When adding a private protocol method, the interface hash should stay the same
|
|
// The per-type fingerprint should change
|
|
|
|
// RUN: %empty-directory(%t)
|
|
// RUN: %{python} %utils/split_file.py -o %t %s
|
|
// RUN: cp %t/{a,x}.swift
|
|
// RUN: %target-swift-frontend -typecheck -primary-file %t/x.swift -emit-reference-dependencies-path %t/x.swiftdeps -module-name main
|
|
// RUN: %{python} %S/../Inputs/process_fine_grained_swiftdeps_with_fingerprints.py %swift-dependency-tool %t/x.swiftdeps > %t/a-processed.swiftdeps
|
|
// RUN: cp %t/{b,x}.swift
|
|
// RUN: %target-swift-frontend -typecheck -primary-file %t/x.swift -emit-reference-dependencies-path %t/x.swiftdeps -module-name main
|
|
// RUN: %{python} %S/../Inputs/process_fine_grained_swiftdeps_with_fingerprints.py %swift-dependency-tool %t/x.swiftdeps > %t/b-processed.swiftdeps
|
|
|
|
// RUN: not diff -u %t/a-processed.swiftdeps %t/b-processed.swiftdeps > %t/diffs
|
|
|
|
// BEGIN a.swift
|
|
private struct S {
|
|
func f2() -> Int {
|
|
return 0
|
|
}
|
|
|
|
var y: Int = 0
|
|
}
|
|
|
|
// BEGIN b.swift
|
|
private struct S {
|
|
func f2() -> Int {
|
|
return 0
|
|
}
|
|
|
|
var x: Int = 0
|
|
var y: Int = 0
|
|
}
|
|
|
|
// RUN: %FileCheck %s <%t/diffs -check-prefix=CHECK-SAME-INTERFACE-HASH
|
|
// RUN: %FileCheck %s <%t/diffs -check-prefix=CHECK-DIFFERENT-TYPE-FINGERPRINT
|
|
|
|
// CHECK-SAME-INTERFACE-HASH-NOT: sourceFileProvides
|
|
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: -topLevel implementation '' S true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: -topLevel interface '' S true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: +topLevel implementation '' S true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: +topLevel interface '' S true
|
|
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: -nominal implementation 4main1S{{[^ ]+}} '' true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: -nominal interface 4main1S{{[^ ]+}} '' true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: +nominal implementation 4main1S{{[^ ]+}} '' true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: +nominal interface 4main1S{{[^ ]+}} '' true
|
|
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: -potentialMember implementation 4main1S{{[^ ]+}} '' true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: -potentialMember interface 4main1S{{[^ ]+}} '' true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: +potentialMember implementation 4main1S{{[^ ]+}} '' true
|
|
// CHECK-DIFFERENT-TYPE-FINGERPRINT-DAG: +potentialMember interface 4main1S{{[^ ]+}} '' true
|