Use swift package manager
This commit is contained in:
5
Blockchain/.gitignore
vendored
Normal file
5
Blockchain/.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
.DS_Store
|
||||
/.build
|
||||
/Packages
|
||||
/*.xcodeproj
|
||||
xcuserdata/
|
||||
22
Blockchain/Package.swift
Normal file
22
Blockchain/Package.swift
Normal file
@@ -0,0 +1,22 @@
|
||||
// swift-tools-version:5.1
|
||||
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
||||
|
||||
import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: "Blockchain",
|
||||
dependencies: [
|
||||
// Dependencies declare other packages that this package depends on.
|
||||
// .package(url: /* package url */, from: "1.0.0"),
|
||||
],
|
||||
targets: [
|
||||
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
|
||||
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
|
||||
.target(
|
||||
name: "Blockchain",
|
||||
dependencies: []),
|
||||
.testTarget(
|
||||
name: "BlockchainTests",
|
||||
dependencies: ["Blockchain"]),
|
||||
]
|
||||
)
|
||||
3
Blockchain/README.md
Normal file
3
Blockchain/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Blockchain
|
||||
|
||||
A description of this package.
|
||||
@@ -7,7 +7,6 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import CryptoKit
|
||||
|
||||
class Block {
|
||||
var hash: String!
|
||||
@@ -16,10 +15,6 @@ class Block {
|
||||
var index: Int!
|
||||
|
||||
func generateHash() -> String {
|
||||
if let hashData = data.data(using: .utf8) {
|
||||
_ = SHA256.hash(data: hashData)
|
||||
}
|
||||
|
||||
return NSUUID().uuidString.replacingOccurrences(of: "-", with: "")
|
||||
}
|
||||
}
|
||||
@@ -24,7 +24,7 @@ repeat {
|
||||
}
|
||||
|
||||
if command == "spam" {
|
||||
for _ in 1...1000000 {
|
||||
for _ in 1...1000 {
|
||||
blockchain.createBlock(data: "\((blockchain.chain.last?.index ?? 0)+1)")
|
||||
}
|
||||
}
|
||||
47
Blockchain/Tests/BlockchainTests/BlockchainTests.swift
Normal file
47
Blockchain/Tests/BlockchainTests/BlockchainTests.swift
Normal file
@@ -0,0 +1,47 @@
|
||||
import XCTest
|
||||
import class Foundation.Bundle
|
||||
|
||||
final class BlockchainTests: XCTestCase {
|
||||
func testExample() throws {
|
||||
// This is an example of a functional test case.
|
||||
// Use XCTAssert and related functions to verify your tests produce the correct
|
||||
// results.
|
||||
|
||||
// Some of the APIs that we use below are available in macOS 10.13 and above.
|
||||
guard #available(macOS 10.13, *) else {
|
||||
return
|
||||
}
|
||||
|
||||
let fooBinary = productsDirectory.appendingPathComponent("Blockchain")
|
||||
|
||||
let process = Process()
|
||||
process.executableURL = fooBinary
|
||||
|
||||
let pipe = Pipe()
|
||||
process.standardOutput = pipe
|
||||
|
||||
try process.run()
|
||||
process.waitUntilExit()
|
||||
|
||||
let data = pipe.fileHandleForReading.readDataToEndOfFile()
|
||||
let output = String(data: data, encoding: .utf8)
|
||||
|
||||
XCTAssertEqual(output, "Hello, world!\n")
|
||||
}
|
||||
|
||||
/// Returns path to the built products directory.
|
||||
var productsDirectory: URL {
|
||||
#if os(macOS)
|
||||
for bundle in Bundle.allBundles where bundle.bundlePath.hasSuffix(".xctest") {
|
||||
return bundle.bundleURL.deletingLastPathComponent()
|
||||
}
|
||||
fatalError("couldn't find the products directory")
|
||||
#else
|
||||
return Bundle.main.bundleURL
|
||||
#endif
|
||||
}
|
||||
|
||||
static var allTests = [
|
||||
("testExample", testExample),
|
||||
]
|
||||
}
|
||||
9
Blockchain/Tests/BlockchainTests/XCTestManifests.swift
Normal file
9
Blockchain/Tests/BlockchainTests/XCTestManifests.swift
Normal file
@@ -0,0 +1,9 @@
|
||||
import XCTest
|
||||
|
||||
#if !canImport(ObjectiveC)
|
||||
public func allTests() -> [XCTestCaseEntry] {
|
||||
return [
|
||||
testCase(BlockchainTests.allTests),
|
||||
]
|
||||
}
|
||||
#endif
|
||||
7
Blockchain/Tests/LinuxMain.swift
Normal file
7
Blockchain/Tests/LinuxMain.swift
Normal file
@@ -0,0 +1,7 @@
|
||||
import XCTest
|
||||
|
||||
import BlockchainTests
|
||||
|
||||
var tests = [XCTestCaseEntry]()
|
||||
tests += BlockchainTests.allTests()
|
||||
XCTMain(tests)
|
||||
Reference in New Issue
Block a user