Buckets:
localhost1978/localhost / LOCALHOST1978 /SSK_DocGen /Tests /SSK_DocGenTests /GenerateWorkspaceTests.swift
| import Foundation | |
| import Testing | |
| @testable import SSK_DocGen | |
| ("P0-2 workspace scan") | |
| struct GenerateWorkspaceTests { | |
| ("Only supported source roots are scanned in stable order") | |
| func supportedRootsAreScanned() throws { | |
| let root = FileManager.default.temporaryDirectory | |
| .appendingPathComponent("SSKDocGen-\(UUID().uuidString)", isDirectory: true) | |
| defer { try? FileManager.default.removeItem(at: root) } | |
| let moduleDirectory = root.appendingPathComponent("Modules/Zeta", isDirectory: true) | |
| let sourceDirectory = root.appendingPathComponent("SSK_DocGen/Sources/Alpha", isDirectory: true) | |
| let ignoredDirectory = root.appendingPathComponent("Other", isDirectory: true) | |
| try FileManager.default.createDirectory(at: moduleDirectory, withIntermediateDirectories: true) | |
| try FileManager.default.createDirectory(at: sourceDirectory, withIntermediateDirectories: true) | |
| try FileManager.default.createDirectory(at: ignoredDirectory, withIntermediateDirectories: true) | |
| try "struct Zeta {}".write(to: moduleDirectory.appendingPathComponent("Zeta.swift"), atomically: true, encoding: .utf8) | |
| try "struct Alpha {}".write(to: sourceDirectory.appendingPathComponent("Alpha.swift"), atomically: true, encoding: .utf8) | |
| try "struct Ignored {}".write(to: ignoredDirectory.appendingPathComponent("Ignored.swift"), atomically: true, encoding: .utf8) | |
| let files = try SSK_DocGen.collectSwiftSources(in: root) | |
| #expect(files.map(\.path) == files.map(\.path).sorted()) | |
| #expect(Set(files.map(\.lastPathComponent)) == Set(["Alpha.swift", "Zeta.swift"])) | |
| } | |
| ("A workspace without supported roots fails before generation") | |
| func missingSupportedRootsFail() throws { | |
| let root = FileManager.default.temporaryDirectory | |
| .appendingPathComponent("SSKDocGen-\(UUID().uuidString)", isDirectory: true) | |
| defer { try? FileManager.default.removeItem(at: root) } | |
| try FileManager.default.createDirectory(at: root, withIntermediateDirectories: true) | |
| #expect(throws: Error.self) { | |
| _ = try SSK_DocGen.collectSwiftSources(in: root) | |
| } | |
| } | |
| ("A symbolic link cannot escape the selected workspace") | |
| func symbolicLinkEscapeFails() throws { | |
| let testRoot = FileManager.default.temporaryDirectory | |
| .appendingPathComponent("SSKDocGen-\(UUID().uuidString)", isDirectory: true) | |
| defer { try? FileManager.default.removeItem(at: testRoot) } | |
| let workspace = testRoot.appendingPathComponent("workspace", isDirectory: true) | |
| let moduleDirectory = workspace.appendingPathComponent("Modules/Example", isDirectory: true) | |
| let outsideDirectory = testRoot.appendingPathComponent("outside", isDirectory: true) | |
| try FileManager.default.createDirectory(at: moduleDirectory, withIntermediateDirectories: true) | |
| try FileManager.default.createDirectory(at: outsideDirectory, withIntermediateDirectories: true) | |
| let outsideSource = outsideDirectory.appendingPathComponent("Escape.swift") | |
| try "struct Escape {}".write(to: outsideSource, atomically: true, encoding: .utf8) | |
| try FileManager.default.createSymbolicLink( | |
| at: moduleDirectory.appendingPathComponent("Escape.swift"), | |
| withDestinationURL: outsideSource | |
| ) | |
| #expect(throws: ApprovedPathValidationError.self) { | |
| _ = try SSK_DocGen.collectSwiftSources(in: workspace) | |
| } | |
| } | |
| } | |
Xet Storage Details
- Size:
- 3.53 kB
- Xet hash:
- 4a1824364dfed9a02f4dac59a9244d238e23729d215d15dd7db36f28a46b1c03
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.