add iOS
This commit is contained in:
+100
@@ -0,0 +1,100 @@
|
||||
import XCTest
|
||||
import GRDB
|
||||
#if GRDB_COMPARE
|
||||
import SQLite
|
||||
#endif
|
||||
|
||||
private let expectedRowCount = 200_000
|
||||
|
||||
/// Here we test the extraction of row values by column name.
|
||||
class FetchNamedValuesTests: XCTestCase {
|
||||
|
||||
func testGRDB() throws {
|
||||
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("GRDBPerformanceTests.sqlite")
|
||||
try generateSQLiteDatabaseIfMissing(at: url, insertedRowCount: expectedRowCount)
|
||||
let dbQueue = try DatabaseQueue(path: url.path)
|
||||
|
||||
measure {
|
||||
var count = 0
|
||||
|
||||
try! dbQueue.inDatabase { db in
|
||||
let rows = try Row.fetchCursor(db, sql: "SELECT * FROM item")
|
||||
while let row = try rows.next() {
|
||||
_ = row["i0"] as Int
|
||||
_ = row["i1"] as Int
|
||||
_ = row["i2"] as Int
|
||||
_ = row["i3"] as Int
|
||||
_ = row["i4"] as Int
|
||||
_ = row["i5"] as Int
|
||||
_ = row["i6"] as Int
|
||||
_ = row["i7"] as Int
|
||||
_ = row["i8"] as Int
|
||||
_ = row["i9"] as Int
|
||||
|
||||
count += 1
|
||||
}
|
||||
}
|
||||
|
||||
XCTAssertEqual(count, expectedRowCount)
|
||||
}
|
||||
}
|
||||
|
||||
#if GRDB_COMPARE
|
||||
func testFMDB() throws {
|
||||
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("GRDBPerformanceTests.sqlite")
|
||||
try generateSQLiteDatabaseIfMissing(at: url, insertedRowCount: expectedRowCount)
|
||||
let dbQueue = FMDatabaseQueue(path: url.path)!
|
||||
|
||||
measure {
|
||||
var count = 0
|
||||
|
||||
dbQueue.inDatabase { db in
|
||||
let rs = try! db.executeQuery("SELECT * FROM item", values: nil)
|
||||
while rs.next() {
|
||||
_ = rs.long(forColumn: "i0")
|
||||
_ = rs.long(forColumn: "i1")
|
||||
_ = rs.long(forColumn: "i2")
|
||||
_ = rs.long(forColumn: "i3")
|
||||
_ = rs.long(forColumn: "i4")
|
||||
_ = rs.long(forColumn: "i5")
|
||||
_ = rs.long(forColumn: "i6")
|
||||
_ = rs.long(forColumn: "i7")
|
||||
_ = rs.long(forColumn: "i8")
|
||||
_ = rs.long(forColumn: "i9")
|
||||
|
||||
count += 1
|
||||
}
|
||||
}
|
||||
|
||||
XCTAssertEqual(count, expectedRowCount)
|
||||
}
|
||||
}
|
||||
|
||||
func testSQLiteSwift() throws {
|
||||
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("GRDBPerformanceTests.sqlite")
|
||||
try generateSQLiteDatabaseIfMissing(at: url, insertedRowCount: expectedRowCount)
|
||||
let db = try Connection(url.path)
|
||||
|
||||
measure {
|
||||
var count = 0
|
||||
|
||||
for row in try! db.prepare(itemTable) {
|
||||
_ = row[i0Column]
|
||||
_ = row[i1Column]
|
||||
_ = row[i2Column]
|
||||
_ = row[i3Column]
|
||||
_ = row[i4Column]
|
||||
_ = row[i5Column]
|
||||
_ = row[i6Column]
|
||||
_ = row[i7Column]
|
||||
_ = row[i8Column]
|
||||
_ = row[i9Column]
|
||||
|
||||
count += 1
|
||||
}
|
||||
|
||||
XCTAssertEqual(count, expectedRowCount)
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user