Skip to content

Commit 31132cd

Browse files
committed
Dev: fix 32-bit support
1 parent 515897f commit 31132cd

File tree

6 files changed

+27
-8
lines changed

6 files changed

+27
-8
lines changed

sample/src/androidTest/java/com/readdle/swiftjava/sample/IntTests.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ public void testZero() {
2929
public void testMin() {
3030
try {
3131
Assert.assertEquals(IntTest.testMin(), Integer.MIN_VALUE);
32-
Assert.fail();
33-
}
34-
catch (Exception e) {
32+
if (SwiftEnvironment.is64BitArch()) {
33+
// Only on 64 bit arch there is not enough bytes to represent system Int.min
34+
Assert.fail();
35+
}
36+
} catch (Exception e) {
3537
Assert.assertTrue(e instanceof SwiftRuntimeError);
3638
Assert.assertEquals(e.getMessage(), "Invalid value \"" + Long.MIN_VALUE + "\": Not enough bits to represent Int []");
3739
}
@@ -41,7 +43,10 @@ public void testMin() {
4143
public void testMax() {
4244
try {
4345
Assert.assertEquals(IntTest.testMax(), Integer.MAX_VALUE);
44-
Assert.fail();
46+
if (SwiftEnvironment.is64BitArch()) {
47+
// Only on 64 bit arch there is not enough bytes to represent system Int.maxå
48+
Assert.fail();
49+
}
4550
}
4651
catch (Exception e) {
4752
Assert.assertTrue(e instanceof SwiftRuntimeError);

sample/src/androidTest/java/com/readdle/swiftjava/sample/UIntTests.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ public void testMin() {
3737
public void testMax() {
3838
try {
3939
Assert.assertEquals(UIntTest.testMax(), MAX_VALUE);
40-
Assert.fail();
40+
if (SwiftEnvironment.is64BitArch()) {
41+
// Only on 64 bit arch there is not enough bytes to represent system UInt.max
42+
Assert.fail();
43+
}
4144
}
4245
catch (Exception e) {
4346
Assert.assertTrue(e instanceof SwiftRuntimeError);

sample/src/main/java/com/readdle/swiftjava/sample/SwiftEnvironment.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ class SwiftEnvironment private constructor() {
1717

1818
@JvmStatic
1919
external fun initEnvironment()
20+
21+
@JvmStatic
22+
external fun is64BitArch(): Boolean
2023
}
2124

2225
}

sample/src/main/swift/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sample/src/main/swift/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ let package = Package(
5555
dependencies: [
5656
.package(url: "https://github.com/readdle/java_swift.git", .upToNextMinor(from: "2.1.8")),
5757
.package(url: "https://github.com/readdle/swift-java.git", .upToNextMinor(from: "0.2.2")),
58-
.package(url: "https://github.com/readdle/swift-java-coder.git", .branch("dev/kotlin-support")),
58+
.package(url: "https://github.com/readdle/swift-java-coder.git", .branch("dev/32-bit-support")),
5959
.package(url: "https://github.com/readdle/swift-anycodable.git", .upToNextMinor(from: "1.0.3")),
6060
],
6161
targets: addGenerated([

sample/src/main/swift/Sources/SampleAppCore/SwiftEnvironment.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,12 @@ public class SwiftEnvironment {
1515
AnyCodable.RegisterType(FourthChild.self)
1616
}
1717

18+
public static func is64BitArch() -> Bool {
19+
#if arch(x86_64) || arch(arm64)
20+
return true
21+
#else
22+
return false
23+
#endif
24+
}
25+
1826
}

0 commit comments

Comments
 (0)