Skip to content

Commit 5a02fde

Browse files
committed
[interop] separate out CLong and CUnsignedLong interop test into separate file to make it work on LP64 targets only
1 parent 81a9cad commit 5a02fde

File tree

4 files changed

+41
-8
lines changed

4 files changed

+41
-8
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-swift-frontend %s -typecheck -module-name Functions -clang-header-expose-public-decls -emit-clang-header-path %t/functions.h
3+
// RUN: %FileCheck %s < %t/functions.h
4+
5+
// RUN: %check-interop-c-header-in-clang(%t/functions.h)
6+
7+
// REQUIRES: OS=macosx || OS=linux-gnu
8+
9+
// CHECK: SWIFT_EXTERN long $s9Functions16passThroughCLongyS2iF(long x) SWIFT_NOEXCEPT SWIFT_CALL;
10+
// CHECK-NEXT: SWIFT_EXTERN unsigned long $s9Functions24passThroughCUnsignedLongyS2uF(unsigned long x) SWIFT_NOEXCEPT SWIFT_CALL;
11+
12+
public func passThroughCLong(_ x: CLong) -> CLong { return x }
13+
14+
public func passThroughCUnsignedLong(_ x: CUnsignedLong) -> CUnsignedLong { return x }

test/Interop/SwiftToC/functions/swift-primitive-functions-c-bridging.swift

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,10 @@
1212
// CHECK-NEXT: SWIFT_EXTERN char32_t $s9Functions18passThroughCChar32ys7UnicodeO6ScalarVAFF(char32_t x) SWIFT_NOEXCEPT SWIFT_CALL;
1313
// CHECK-NEXT: SWIFT_EXTERN double $s9Functions18passThroughCDoubleyS2dF(double x) SWIFT_NOEXCEPT SWIFT_CALL;
1414
// CHECK-NEXT: SWIFT_EXTERN int $s9Functions15passThroughCIntys5Int32VADF(int x) SWIFT_NOEXCEPT SWIFT_CALL;
15-
// CHECK-NEXT: SWIFT_EXTERN long $s9Functions16passThroughCLongyS2iF(long x) SWIFT_NOEXCEPT SWIFT_CALL;
1615
// CHECK-NEXT: SWIFT_EXTERN long long $s9Functions20passThroughCLongLongys5Int64VADF(long long x) SWIFT_NOEXCEPT SWIFT_CALL;
1716
// CHECK-NEXT: SWIFT_EXTERN short $s9Functions17passThroughCShortys5Int16VADF(short x) SWIFT_NOEXCEPT SWIFT_CALL;
1817
// CHECK-NEXT: SWIFT_EXTERN signed char $s9Functions22passThroughCSignedCharys4Int8VADF(signed char x) SWIFT_NOEXCEPT SWIFT_CALL;
1918
// CHECK-NEXT: SWIFT_EXTERN unsigned int $s9Functions23passThroughCUnsignedIntys6UInt32VADF(unsigned int x) SWIFT_NOEXCEPT SWIFT_CALL;
20-
// CHECK-NEXT: SWIFT_EXTERN unsigned long $s9Functions24passThroughCUnsignedLongyS2uF(unsigned long x) SWIFT_NOEXCEPT SWIFT_CALL;
2119
// CHECK-NEXT: SWIFT_EXTERN unsigned long long $s9Functions024passThroughCUnsignedLongE0ys6UInt64VADF(unsigned long long x) SWIFT_NOEXCEPT SWIFT_CALL;
2220
// CHECK-NEXT: SWIFT_EXTERN unsigned short $s9Functions25passThroughCUnsignedShortys6UInt16VADF(unsigned short x) SWIFT_NOEXCEPT SWIFT_CALL;
2321
// CHECK-NEXT: SWIFT_EXTERN unsigned char $s9Functions30passThroughCUnsignedSignedCharys5UInt8VADF(unsigned char x) SWIFT_NOEXCEPT SWIFT_CALL;
@@ -47,16 +45,16 @@ public func passThroughCWideChar(_ x: CWideChar) -> CWideChar { return x }
4745
public func passThroughCChar16(_ x: CChar16) -> CChar16 { return x }
4846
public func passThroughCChar32(_ x: CChar32) -> CChar32 { return x }
4947

48+
// Don't test CLong as it's platform specific. See long-lp64 test instead.
5049
public func passThroughCSignedChar(_ x: CSignedChar) -> CSignedChar { return x }
5150
public func passThroughCShort(_ x: CShort) -> CShort { return x }
5251
public func passThroughCInt(_ x: CInt) -> CInt { return x }
53-
public func passThroughCLong(_ x: CLong) -> CLong { return x }
5452
public func passThroughCLongLong(_ x: CLongLong) -> CLongLong { return x }
5553

54+
// Don't test CUnsignedLong as it's platform specific. See long-lp64 test instead.
5655
public func passThroughCUnsignedSignedChar(_ x: CUnsignedChar) -> CUnsignedChar { return x }
5756
public func passThroughCUnsignedShort(_ x: CUnsignedShort) -> CUnsignedShort { return x }
5857
public func passThroughCUnsignedInt(_ x: CUnsignedInt) -> CUnsignedInt { return x }
59-
public func passThroughCUnsignedLong(_ x: CUnsignedLong) -> CUnsignedLong { return x }
6058
public func passThroughCUnsignedLongLong(_ x: CUnsignedLongLong) -> CUnsignedLongLong { return x }
6159

6260
public func passThrougCFloat(_ x: CFloat) -> CFloat { return x }
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// RUN: %empty-directory(%t)
2+
3+
// RUN: %target-swift-frontend %S/swift-primitive-functions-c-bridging-long-lp64.swift -typecheck -module-name Functions -clang-header-expose-public-decls -emit-clang-header-path %t/functions.h
4+
5+
// RUN: %target-interop-build-clang -c %s -I %t -o %t/swift-functions-execution.o
6+
// RUN: %target-interop-build-swift %S/swift-primitive-functions-c-bridging-long-lp64.swift -o %t/swift-functions-execution -Xlinker %t/swift-functions-execution.o -module-name Functions -Xfrontend -entry-point-function-name -Xfrontend swiftMain
7+
8+
// RUN: %target-codesign %t/swift-functions-execution
9+
// RUN: %target-run %t/swift-functions-execution
10+
11+
// REQUIRES: OS=macosx || OS=linux-gnu
12+
// REQUIRES: executable_test
13+
14+
#include <assert.h>
15+
#include "functions.h"
16+
17+
#define VERIFY_PASSTHROUGH_VALUE(function, value) assert(function(value) == (value));
18+
19+
int main() {
20+
// passThroughCLong
21+
VERIFY_PASSTHROUGH_VALUE($s9Functions16passThroughCLongyS2iF, -999999);
22+
23+
// passThroughCUnsignedLong
24+
VERIFY_PASSTHROUGH_VALUE($s9Functions24passThroughCUnsignedLongyS2uF, 0xFFFFFFFF);
25+
}

test/Interop/SwiftToC/functions/swift-primitive-functions-execution.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ int main() {
3434
VERIFY_PASSTHROUGH_VALUE($s9Functions17passThroughCShortys5Int16VADF, -512);
3535
// passThroughCInt
3636
VERIFY_PASSTHROUGH_VALUE($s9Functions15passThroughCIntys5Int32VADF, -999999);
37-
// passThroughCLong
38-
VERIFY_PASSTHROUGH_VALUE($s9Functions16passThroughCLongyS2iF, -999999);
3937
// passThroughCLongLong
4038
VERIFY_PASSTHROUGH_VALUE($s9Functions20passThroughCLongLongys5Int64VADF, -999998);
4139

@@ -45,8 +43,6 @@ int main() {
4543
VERIFY_PASSTHROUGH_VALUE($s9Functions25passThroughCUnsignedShortys6UInt16VADF, 0xFFFF);
4644
// passThroughCUnsignedInt
4745
VERIFY_PASSTHROUGH_VALUE($s9Functions23passThroughCUnsignedIntys6UInt32VADF, 0xFFFFFFFF);
48-
// passThroughCUnsignedLong
49-
VERIFY_PASSTHROUGH_VALUE($s9Functions24passThroughCUnsignedLongyS2uF, 0xFFFFFFFF);
5046
// passThroughCUnsignedLongLong
5147
VERIFY_PASSTHROUGH_VALUE($s9Functions024passThroughCUnsignedLongE0ys6UInt64VADF, 0xFFFFFFFF);
5248

0 commit comments

Comments
 (0)