diff --git a/packages/swift-sdk/SwiftExampleApp/SwiftExampleAppTests/CrashDebugTests.swift b/packages/swift-sdk/SwiftExampleApp/SwiftExampleAppTests/CrashDebugTests.swift deleted file mode 100644 index 7961dacbf73..00000000000 --- a/packages/swift-sdk/SwiftExampleApp/SwiftExampleAppTests/CrashDebugTests.swift +++ /dev/null @@ -1,121 +0,0 @@ -import DashSDKFFI -import SwiftDashSDK -import XCTest - -@testable import SwiftExampleApp - -final class CrashDebugTests: XCTestCase { - - func testCatchCrash() async throws { - print("=== Starting crash debug test ===") - - // Install exception handler (without capturing context) - let handler = NSGetUncaughtExceptionHandler() - NSSetUncaughtExceptionHandler { exception in - print("!!! Caught exception: \(exception)") - print("!!! Reason: \(exception.reason ?? "unknown")") - print("!!! User info: \(exception.userInfo ?? [:])") - print("!!! Call stack: \(exception.callStackSymbols)") - } - - defer { - NSSetUncaughtExceptionHandler(handler) - } - - // Try the problematic code - do { - print("Initializing SDK...") - SDK.initialize() - - print("Creating SDK instance...") - let sdk = try SDK(network: DashSDKNetwork(rawValue: 1)) - - print("SDK created, checking methods...") - - // Try to call the method with minimal setup - _ = "test" // fromId - let toId = "test2" - let amount: UInt64 = 1 - let key = Data(repeating: 0, count: 32) - - print("Creating identity and signer...") - - // Create a dummy identity - let identity = DPPIdentity( - id: Data(repeating: 0, count: 32), - publicKeys: [:], - balance: 0, - revision: 0 - ) - - // Create signer from private key - let signerResult = key.withUnsafeBytes { keyBytes in - dash_sdk_signer_create_from_private_key( - keyBytes.bindMemory(to: UInt8.self).baseAddress!, - UInt(key.count) - ) - } - - guard signerResult.error == nil, - let signer = signerResult.data - else { - print("Failed to create signer") - return - } - - defer { - dash_sdk_signer_destroy(signer.assumingMemoryBound(to: SignerHandle.self)) - } - - print("Calling transferCredits...") - _ = try await sdk.transferCredits( - from: identity, - toIdentityId: toId, - amount: amount, - signer: OpaquePointer(signer) - ) - - print("Method call completed") - } catch { - print("Caught error: \(error)") - print("Error type: \(type(of: error))") - print("Error localized: \(error.localizedDescription)") - - let nsError = error as NSError - print("NSError domain: \(nsError.domain)") - print("NSError code: \(nsError.code)") - print("NSError userInfo: \(nsError.userInfo)") - } - - print("=== Crash debug test completed ===") - } - - func testMethodExistence() { - print("=== Testing method existence ===") - - // Check if the SDK has the method we're trying to call - let sdkClass: AnyClass? = NSClassFromString("SwiftDashSDK.SDK") - print("SDK class: \(String(describing: sdkClass))") - - if let cls = sdkClass { - // List all methods - var methodCount: UInt32 = 0 - let methods = class_copyMethodList(cls, &methodCount) - - print("Found \(methodCount) methods in SDK class:") - if let methods = methods { - for i in 0.. diff --git a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/DataContractTests.swift b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/DataContractTests.swift index 903c0b58b21..e494906c67f 100644 --- a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/DataContractTests.swift +++ b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/DataContractTests.swift @@ -118,9 +118,6 @@ class DataContractTests: XCTestCase { // Clean up swift_dash_string_free(jsonString) - } else { - // No history is also valid for test vectors - XCTAssertTrue(true, "Contract history may return nil if no history exists") } } diff --git a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/IdentityTests.swift b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/IdentityTests.swift index fe5f565bb65..442909af303 100644 --- a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/IdentityTests.swift +++ b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/IdentityTests.swift @@ -135,6 +135,7 @@ class IdentityTests: XCTestCase { } let result = swift_dash_identity_resolve_name(sdk, "dash") + XCTAssertNotNil(result, "Should resolve existing alias") if let jsonString = result { let jsonStr = String(cString: jsonString) @@ -157,9 +158,6 @@ class IdentityTests: XCTestCase { // Clean up swift_dash_string_free(jsonString) - } else { - // Name not found is also valid for test vectors - XCTAssertTrue(true, "Name resolution may return nil if not found in test vectors") } } @@ -312,4 +310,4 @@ class IdentityTests: XCTestCase { swift_dash_error_free(error) } } -} \ No newline at end of file +} diff --git a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/MemoryManagementTests.swift b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/MemoryManagementTests.swift index 9691d02546c..788d7355220 100644 --- a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/MemoryManagementTests.swift +++ b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/MemoryManagementTests.swift @@ -26,7 +26,6 @@ class MemoryManagementTests: XCTestCase { func testStringFreeWithNullPointer() { // Should not crash swift_dash_string_free(nil) - XCTAssertTrue(true, "String free with null pointer should not crash") } func testStringFreeWithValidPointer() { @@ -44,7 +43,6 @@ class MemoryManagementTests: XCTestCase { swift_dash_string_free(version) } - XCTAssertTrue(true, "String free with valid pointer should not crash") } // MARK: - Error Memory Management Tests @@ -52,7 +50,6 @@ class MemoryManagementTests: XCTestCase { func testErrorFreeWithNullPointer() { // Should not crash swift_dash_error_free(nil) - XCTAssertTrue(true, "Error free with null pointer should not crash") } func testErrorFreeWithValidPointer() { @@ -71,7 +68,6 @@ class MemoryManagementTests: XCTestCase { swift_dash_error_free(error) } - XCTAssertTrue(true, "Error free with valid pointer should not crash") } // MARK: - Binary Data Memory Management Tests @@ -79,7 +75,6 @@ class MemoryManagementTests: XCTestCase { func testBinaryDataFreeWithNullPointer() { // Should not crash swift_dash_binary_data_free(nil) - XCTAssertTrue(true, "Binary data free with null pointer should not crash") } // MARK: - Info Structure Memory Management Tests @@ -87,31 +82,26 @@ class MemoryManagementTests: XCTestCase { func testIdentityInfoFreeWithNullPointer() { // Should not crash swift_dash_identity_info_free(nil) - XCTAssertTrue(true, "Identity info free with null pointer should not crash") } func testDataContractInfoFreeWithNullPointer() { // Should not crash swift_dash_data_contract_info_free(nil) - XCTAssertTrue(true, "Data contract info free with null pointer should not crash") } func testDocumentInfoFreeWithNullPointer() { // Should not crash swift_dash_document_info_free(nil) - XCTAssertTrue(true, "Document info free with null pointer should not crash") } func testTransferCreditsResultFreeWithNullPointer() { // Should not crash swift_dash_transfer_credits_result_free(nil) - XCTAssertTrue(true, "Transfer credits result free with null pointer should not crash") } func testTokenInfoFreeWithNullPointer() { // Should not crash swift_dash_token_info_free(nil) - XCTAssertTrue(true, "Token info free with null pointer should not crash") } // MARK: - Signer Memory Management Tests @@ -119,7 +109,6 @@ class MemoryManagementTests: XCTestCase { func testSignerFreeWithNullPointer() { // Should not crash swift_dash_signer_free(nil) - XCTAssertTrue(true, "Signer free with null pointer should not crash") } func testSignerCreateAndFree() { @@ -142,7 +131,6 @@ class MemoryManagementTests: XCTestCase { swift_dash_signer_free(signer) } - XCTAssertTrue(true, "Signer create and free should not crash") } // MARK: - Bytes Memory Management Tests @@ -150,7 +138,6 @@ class MemoryManagementTests: XCTestCase { func testBytesFreeWithNullPointer() { // Should not crash swift_dash_bytes_free(nil, 0) - XCTAssertTrue(true, "Bytes free with null pointer should not crash") } func testBytesFreeWithValidPointer() { @@ -169,7 +156,6 @@ class MemoryManagementTests: XCTestCase { swift_dash_bytes_free(bytes, size) } - XCTAssertTrue(true, "Bytes free with valid pointer should not crash") } // MARK: - SDK Handle Memory Management Tests @@ -177,7 +163,6 @@ class MemoryManagementTests: XCTestCase { func testSDKDestroyWithNullHandle() { // Should not crash swift_dash_sdk_destroy(nil) - XCTAssertTrue(true, "SDK destroy with null handle should not crash") } func testMultipleSDKCreateAndDestroy() { @@ -199,7 +184,6 @@ class MemoryManagementTests: XCTestCase { swift_dash_sdk_destroy(sdk) } - XCTAssertTrue(true, "Multiple SDK create and destroy should not crash") } // MARK: - Memory Leak Prevention Tests @@ -236,7 +220,6 @@ class MemoryManagementTests: XCTestCase { } } - XCTAssertTrue(true, "Memory leak prevention tests completed") } // MARK: - Double Free Protection Tests @@ -252,6 +235,5 @@ class MemoryManagementTests: XCTestCase { swift_dash_string_free(version) } - XCTAssertTrue(true, "Double free protection test completed") } } \ No newline at end of file diff --git a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/SDKTests.swift b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/SDKTests.swift index def7e05e9b9..edafd0b458e 100644 --- a/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/SDKTests.swift +++ b/packages/swift-sdk/SwiftTests/Tests/SwiftDashSDKTests/SDKTests.swift @@ -12,9 +12,11 @@ class SDKTests: XCTestCase { // MARK: - Initialization Tests func testSDKInitialization() { - // SDK should be initialized in setUp - // If we get here without crashing, initialization worked - XCTAssertTrue(true, "SDK initialized successfully") + let version = swift_dash_sdk_get_version() + XCTAssertNotNil(version, "SDK should provide a version after initialization") + if let version = version { + swift_dash_string_free(version) + } } func testSDKVersion() { @@ -24,7 +26,11 @@ class SDKTests: XCTestCase { if let version = version { let versionString = String(cString: version) XCTAssertFalse(versionString.isEmpty) - XCTAssertTrue(versionString.contains("2.0.0")) + XCTAssertTrue( + versionString.range(of: #"^\d+\.\d+\.\d+(?:[-+][A-Za-z0-9.-]+)?$"#, options: .regularExpression) != nil, + "Version should match semantic version format" + ) + swift_dash_string_free(version) } } @@ -95,7 +101,6 @@ class SDKTests: XCTestCase { func testSDKDestroyNullHandle() { // Should not crash swift_dash_sdk_destroy(nil) - XCTAssertTrue(true, "Destroying null handle should not crash") } func testGetNetworkWithNullHandle() { @@ -121,4 +126,4 @@ class SDKTests: XCTestCase { XCTAssertTrue(settings.ban_failed_address) XCTAssertEqual(settings.user_fee_increase, 10) } -} \ No newline at end of file +}