Skip to content

Commit 7bda2b3

Browse files
authored
Merge pull request #75474 from swiftlang/susmonteiro/cxx-span-tests
[cxx-interop] Test: initialize std::span in C++ from Swift array
2 parents e012979 + 2541735 commit 7bda2b3

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

test/Interop/Cxx/stdlib/Inputs/std-span.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ inline Span initSpan() {
5050
return Span(a);
5151
}
5252

53+
inline Span initSpan(int arr[], size_t size) {
54+
return Span(arr, size);
55+
}
56+
5357
inline struct SpanBox getStructSpanBox() { return {iarray, iarray, sarray, sarray}; }
5458

5559
#endif // TEST_INTEROP_CXX_STDLIB_INPUTS_STD_SPAN_H

test/Interop/Cxx/stdlib/use-std-span.swift

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,18 @@ StdSpanTestSuite.test("Init SpanOfInt") {
176176
expectFalse(cs.empty())
177177
}
178178

179+
StdSpanTestSuite.test("Init SpanOfInt from Swift array") {
180+
var arr: [Int32] = [1, 2, 3]
181+
arr.withUnsafeMutableBufferPointer{ ubpointer in
182+
let s = initSpan(ubpointer.baseAddress!, ubpointer.count)
183+
expectEqual(s.size(), 3)
184+
expectFalse(s.empty())
185+
expectEqual(s[0], 1)
186+
expectEqual(s[1], 2)
187+
expectEqual(s[2], 3)
188+
}
189+
}
190+
179191
StdSpanTestSuite.test("Access static SpanOfInt") {
180192
expectEqual(icspan.size(), 3)
181193
expectFalse(icspan.empty())

0 commit comments

Comments
 (0)