Skip to content

Commit 9711e4b

Browse files
committed
Missing files
1 parent 8085fb1 commit 9711e4b

File tree

5 files changed

+56
-317
lines changed

5 files changed

+56
-317
lines changed

Samples/SwiftJavaExtractFFMSampleApp/src/test/java/org/swift/swiftkitffm/MySwiftStructTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,19 @@ void testSubscript() {
4040
MySwiftStruct s = MySwiftStruct.init(1337, 42, arena);
4141
long currentValue = s.getSubscript();
4242
s.setSubscript(66);
43-
assertEquals(42, currentValue);
44-
assertEquals(66, s.getLength());
43+
assertEquals(0, currentValue);
44+
assertEquals(66, s.getSubscriptValue());
45+
}
46+
}
47+
48+
@Test
49+
void testSubscriptWithParams() {
50+
try (var arena = AllocatingSwiftArena.ofConfined()) {
51+
MySwiftStruct s = MySwiftStruct.init(1337, 42, arena);
52+
long currentValue = s.getSubscript(1);
53+
s.setSubscript(1, 66);
54+
assertEquals(20, currentValue);
55+
assertEquals(66, s.getSubscriptArrayValue(1));
4556
}
4657
}
4758
}

Samples/SwiftJavaExtractJNISampleApp/Sources/MySwiftLibrary/MySwiftStruct.swift

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,14 @@
1515
public struct MySwiftStruct {
1616
private var cap: Int64
1717
public var len: Int64
18+
private var subscriptValue: Int64
19+
private var subscriptArray: [Int64]
1820

1921
public init(cap: Int64, len: Int64) {
2022
self.cap = cap
2123
self.len = len
24+
self.subscriptValue = 0
25+
self.subscriptArray = [10, 20, 15, 75]
2226
}
2327

2428
public init?(doInit: Bool) {
@@ -39,8 +43,21 @@ public struct MySwiftStruct {
3943
return self.cap
4044
}
4145

46+
public func getSubscriptValue() -> Int64 {
47+
return self.subscriptValue
48+
}
49+
50+
public func getSubscriptArrayValue(index: Int64) -> Int64 {
51+
return self.subscriptArray[Int(index)]
52+
}
53+
4254
public subscript() -> Int64 {
43-
get { return len }
44-
set { len = newValue }
55+
get { return subscriptValue }
56+
set { subscriptValue = newValue }
57+
}
58+
59+
public subscript(index: Int64) -> Int64 {
60+
get { return subscriptArray[Int(index)] }
61+
set { subscriptArray[Int(index)] = newValue }
4562
}
4663
}

Samples/SwiftJavaExtractJNISampleApp/src/test/java/com/example/swift/MySwiftStructTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,19 @@ void testSubscript() {
6868
MySwiftStruct s = MySwiftStruct.init(1337, 42, arena);
6969
long currentValue = s.getSubscript();
7070
s.setSubscript(66);
71-
assertEquals(42, currentValue);
72-
assertEquals(66, s.getLen());
71+
assertEquals(0, currentValue);
72+
assertEquals(66, s.getSubscriptValue());
73+
}
74+
}
75+
76+
@Test
77+
void testSubscriptWithParams() {
78+
try (var arena = SwiftArena.ofConfined()) {
79+
MySwiftStruct s = MySwiftStruct.init(1337, 42, arena);
80+
long currentValue = s.getSubscript(1);
81+
s.setSubscript(1, 66);
82+
assertEquals(20, currentValue);
83+
assertEquals(66, s.getSubscriptArrayValue(1));
7384
}
7485
}
7586
}

Tests/JExtractSwiftTests/FFM/FFMSubscriptsTests.swift

Lines changed: 0 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -44,57 +44,6 @@ struct FFMSubscriptsTests {
4444

4545
@Test("Test generation of JavaClass for subscript with no parameters")
4646
func generatesJavaClassForNoParams() throws {
47-
try assertOutput(
48-
input: noParamsSubscriptSource, .ffm, .java,
49-
expectedChunks: [
50-
"""
51-
// Generated by jextract-swift
52-
// Swift module: SwiftModule
53-
54-
package com.example.swift;
55-
56-
import org.swift.swiftkit.core.*;
57-
import org.swift.swiftkit.core.util.*;
58-
import org.swift.swiftkit.ffm.*;
59-
import org.swift.swiftkit.core.annotations.*;
60-
import java.lang.foreign.*;
61-
import java.lang.invoke.*;
62-
import java.util.*;
63-
import java.nio.charset.StandardCharsets;
64-
""",])
65-
try assertOutput(
66-
input: noParamsSubscriptSource, .ffm, .java,
67-
expectedChunks: [
68-
"""
69-
public final class MyStruct extends FFMSwiftInstance implements SwiftValue {
70-
static final String LIB_NAME = "SwiftModule";
71-
static final Arena LIBRARY_ARENA = Arena.ofAuto();
72-
@SuppressWarnings("unused")
73-
private static final boolean INITIALIZED_LIBS = initializeLibs();
74-
static boolean initializeLibs() {
75-
System.loadLibrary(SwiftLibraries.LIB_NAME_SWIFT_CORE);
76-
System.loadLibrary(SwiftLibraries.LIB_NAME_SWIFT_RUNTIME_FUNCTIONS);
77-
System.loadLibrary(LIB_NAME);
78-
return true;
79-
}
80-
""",
81-
"""
82-
public static final SwiftAnyType TYPE_METADATA =
83-
new SwiftAnyType(SwiftRuntime.swiftjava.getType("SwiftModule", "MyStruct"));
84-
public final SwiftAnyType $swiftType() {
85-
return TYPE_METADATA;
86-
}
87-
88-
public static final GroupLayout $LAYOUT = (GroupLayout) SwiftValueWitnessTable.layoutOfSwiftType(TYPE_METADATA.$memorySegment());
89-
public final GroupLayout $layout() {
90-
return $LAYOUT;
91-
}
92-
93-
private MyStruct(MemorySegment segment, AllocatingSwiftArena arena) {
94-
super(segment, arena);
95-
}
96-
"""
97-
])
9847
try assertOutput(input: noParamsSubscriptSource, .ffm, .java, expectedChunks: [
9948
"""
10049
private static class swiftjava_SwiftModule_MyStruct_subscript$get {
@@ -157,57 +106,6 @@ struct FFMSubscriptsTests {
157106

158107
@Test("Test generation of JavaClass for subscript with parameters")
159108
func generatesJavaClassForParameters() throws {
160-
try assertOutput(
161-
input: subscriptWithParamsSource, .ffm, .java,
162-
expectedChunks: [
163-
"""
164-
// Generated by jextract-swift
165-
// Swift module: SwiftModule
166-
167-
package com.example.swift;
168-
169-
import org.swift.swiftkit.core.*;
170-
import org.swift.swiftkit.core.util.*;
171-
import org.swift.swiftkit.ffm.*;
172-
import org.swift.swiftkit.core.annotations.*;
173-
import java.lang.foreign.*;
174-
import java.lang.invoke.*;
175-
import java.util.*;
176-
import java.nio.charset.StandardCharsets;
177-
""",])
178-
try assertOutput(
179-
input: noParamsSubscriptSource, .ffm, .java,
180-
expectedChunks: [
181-
"""
182-
public final class MyStruct extends FFMSwiftInstance implements SwiftValue {
183-
static final String LIB_NAME = "SwiftModule";
184-
static final Arena LIBRARY_ARENA = Arena.ofAuto();
185-
@SuppressWarnings("unused")
186-
private static final boolean INITIALIZED_LIBS = initializeLibs();
187-
static boolean initializeLibs() {
188-
System.loadLibrary(SwiftLibraries.LIB_NAME_SWIFT_CORE);
189-
System.loadLibrary(SwiftLibraries.LIB_NAME_SWIFT_RUNTIME_FUNCTIONS);
190-
System.loadLibrary(LIB_NAME);
191-
return true;
192-
}
193-
""",
194-
"""
195-
public static final SwiftAnyType TYPE_METADATA =
196-
new SwiftAnyType(SwiftRuntime.swiftjava.getType("SwiftModule", "MyStruct"));
197-
public final SwiftAnyType $swiftType() {
198-
return TYPE_METADATA;
199-
}
200-
201-
public static final GroupLayout $LAYOUT = (GroupLayout) SwiftValueWitnessTable.layoutOfSwiftType(TYPE_METADATA.$memorySegment());
202-
public final GroupLayout $layout() {
203-
return $LAYOUT;
204-
}
205-
206-
private MyStruct(MemorySegment segment, AllocatingSwiftArena arena) {
207-
super(segment, arena);
208-
}
209-
"""
210-
])
211109
try assertOutput(input: subscriptWithParamsSource, .ffm, .java, expectedChunks: [
212110
"""
213111
private static class swiftjava_SwiftModule_MyStruct_subscript$get {

0 commit comments

Comments
 (0)