OSSSwiftDemo/OSSSwiftDemoTests/OSSSwiftDemoTests.swift (66 lines of code) (raw):
//
// OSSSwiftDemoTests.swift
// OSSSwiftDemoTests
//
// Created by huaixu on 2018/1/11.
// Copyright © 2018年 aliyun. All rights reserved.
//
import XCTest
import AliyunOSSiOS
import AliyunOSSSwiftSDK
class OSSSwiftDemoTests: XCTestCase {
var client: OSSClient!
let fileNames: [String] = ["file1k", "file10k", "file100k", "file1m", "file5m", "file10m", "fileDirA/", "fileDirB/"]
let fileSizes: [NSNumber] = [NSNumber.init(value: 1024),
NSNumber.init(value: 10240),
NSNumber.init(value: 102400),
NSNumber.init(value: 1048576),
NSNumber.init(value: 5242880),
NSNumber.init(value: 10485760),
NSNumber.init(value: 1024),
NSNumber.init(value: 1024)]
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first;
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
OSSLog.enable()
setupClient()
setupLocalFiles()
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func setupClient() -> Void {
let configuration = OSSClientConfiguration()
let provider = OSSAuthCredentialProvider.init(authServerUrl: OSS_STSTOKEN_URL)
client = OSSClient.init(endpoint: OSS_ENDPOINT,
credentialProvider: provider,
clientConfiguration: configuration)
}
func setupLocalFiles() -> Void {
let fm = FileManager.default
for i in 0...7
{
let baseData = NSMutableData.init(capacity: 1024)
for index in 1...256 {
let stride = MemoryLayout<Int>.stride
let alignment = MemoryLayout<Int>.alignment
do {
let pointer = UnsafeMutableRawPointer.allocate(bytes: stride, alignedTo: alignment)
defer {
pointer.deallocate(bytes: stride, alignedTo: alignment)
}
pointer.storeBytes(of: index, as: Int.self)
baseData?.append(UnsafeRawPointer(pointer), length: 4)
}
}
let fileName = fileNames[i]
let fileSize = Int64.init(exactly: fileSizes[i])
let filePath = (documentDirectory! as NSString).appendingPathComponent(fileName)
print("filePath: \(filePath)")
if fm.fileExists(atPath: filePath) {
continue
}
fm.createFile(atPath: filePath, contents: nil, attributes: nil)
let handler = FileHandle.init(forWritingAtPath: filePath)
let unitLength: Int64 = 1024
let maxium = fileSize!/unitLength
for _ in 0...(maxium - 1) {
handler?.write(baseData! as Data)
}
handler?.closeFile()
}
}
}