Skip to content

Commit 0244697

Browse files
committed
Add a test to prevent future regressions
1 parent 21dd6a2 commit 0244697

File tree

1 file changed

+38
-7
lines changed

1 file changed

+38
-7
lines changed

Tests/SwiftSDKGeneratorTests/Generator/SwiftSDKGenerator+MetadataTests.swift

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13+
#if canImport(FoundationEssentials)
14+
import FoundationEssentials
15+
#else
16+
import Foundation
17+
#endif
18+
1319
import Logging
1420
import SystemPackage
1521
import XCTest
@@ -54,19 +60,44 @@ final class SwiftSDKGeneratorMetadataTests: XCTestCase {
5460

5561
// Make sure the file exists
5662
let sdkSettingsFile = sdkDirPath.appending("SDKSettings.json")
57-
let fileExists = await sdk.doesFileExist(at: sdkSettingsFile)
63+
var fileExists = await sdk.doesFileExist(at: sdkSettingsFile)
5864
XCTAssertTrue(fileExists)
5965

6066
// Read back file, make sure it contains the expected data
61-
let data = String(data: try await sdk.readFile(at: sdkSettingsFile), encoding: .utf8)
62-
XCTAssertNotNil(data)
63-
XCTAssertTrue(data!.contains(testCase.bundleVersion))
64-
XCTAssertTrue(data!.contains("(\(testCase.targetTriple.archName))"))
65-
XCTAssertTrue(data!.contains(linuxDistribution.description))
66-
XCTAssertTrue(data!.contains(testCase.expectedCanonicalName))
67+
let maybeString = String(data: try await sdk.readFile(at: sdkSettingsFile), encoding: .utf8)
68+
let string = try XCTUnwrap(maybeString)
69+
XCTAssertTrue(string.contains(testCase.bundleVersion))
70+
XCTAssertTrue(string.contains("(\(testCase.targetTriple.archName))"))
71+
XCTAssertTrue(string.contains(linuxDistribution.description))
72+
XCTAssertTrue(string.contains(testCase.expectedCanonicalName))
6773

6874
// Cleanup
6975
try await sdk.removeFile(at: sdkSettingsFile)
76+
77+
try await sdk.createDirectoryIfNeeded(at: sdk.pathsConfiguration.artifactBundlePath)
78+
79+
// Generate bundle metadata
80+
try await sdk.generateArtifactBundleManifest(
81+
hostTriples: [sdk.targetTriple],
82+
artifacts: ["foo": sdk.pathsConfiguration.artifactBundlePath.appending("bar.json")]
83+
)
84+
85+
// Make sure the file exists
86+
let archiveMetadataFile = await sdk.pathsConfiguration.artifactBundlePath.appending("info.json")
87+
fileExists = await sdk.doesFileExist(at: archiveMetadataFile)
88+
XCTAssertTrue(fileExists)
89+
90+
// Read back file, make sure it contains the expected data
91+
let data = try await sdk.readFile(at: archiveMetadataFile)
92+
let decodedMetadata = try JSONDecoder().decode(ArtifactsArchiveMetadata.self, from: data)
93+
XCTAssertEqual(decodedMetadata.artifacts.count, 1)
94+
for (id, artifact) in decodedMetadata.artifacts {
95+
XCTAssertEqual(id, "foo")
96+
XCTAssertEqual(artifact.variants, [.init(path: "bar.json", supportedTriples: [testCase.targetTriple.triple])])
97+
}
98+
99+
// Cleanup
100+
try await sdk.removeFile(at: archiveMetadataFile)
70101
}
71102
}
72103
}

0 commit comments

Comments
 (0)