Skip to content

Commit d059e70

Browse files
committedMay 18, 2020
Merge branch 'master' into fluent-gm
2 parents a198480 + 549d5a5 commit d059e70

File tree

2 files changed

+59
-25
lines changed

2 files changed

+59
-25
lines changed
 

‎.github/workflows/test.yml

+45-22
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,49 @@
1-
name: test
2-
on:
3-
- pull_request
1+
name: Test Matrix
2+
on: ['pull_request']
43
jobs:
5-
fluent-sqlite-driver_macos:
6-
runs-on: macos-latest
7-
steps:
8-
- run: sudo xcode-select -s /Applications/Xcode_11.4.app/Contents/Developer
9-
- uses: actions/checkout@v2
10-
- run: xcrun swift test --enable-test-discovery --sanitize=thread
11-
fluent-sqlite-driver_bionic:
12-
container:
13-
image: vapor/swift:5.2-bionic-ci
4+
PR-tests-linux:
5+
strategy:
6+
fail-fast: false
7+
matrix:
8+
runner: [
9+
'swift:5.2-xenial', 'swift:5.2-bionic',
10+
'swiftlang/swift:nightly-5.2-xenial', 'swiftlang/swift:nightly-5.2-bionic',
11+
'swiftlang/swift:nightly-5.3-xenial', 'swiftlang/swift:nightly-5.3-bionic',
12+
'swiftlang/swift:nightly-master-xenial', 'swiftlang/swift:nightly-master-bionic',
13+
'swiftlang/swift:nightly-master-focal',
14+
'swiftlang/swift:nightly-master-centos8',
15+
'swiftlang/swift:nightly-master-amazonlinux2'
16+
]
17+
include:
18+
- installcmd: 'apt-get -q update && apt-get -q install -y libsqlite3-dev'
19+
- { 'runner': 'swiftlang/swift:nightly-master-centos8', 'installcmd': 'dnf install -y zlib-devel sqlite-devel' }
20+
- { 'runner': 'swiftlang/swift:nightly-master-amazonlinux2', 'installcmd': 'yum install -y zlib-devel sqlite-devel' }
21+
container: ${{ matrix.runner }}
1422
runs-on: ubuntu-latest
1523
steps:
16-
- run: apt update -y; apt install -y libsqlite3-dev
17-
- uses: actions/checkout@v2
18-
- run: swift test --enable-test-discovery --sanitize=thread
19-
fluent-sqlite-driver_xenial:
20-
container:
21-
image: vapor/swift:5.2-xenial-ci
22-
runs-on: ubuntu-latest
24+
- name: Install dependencies
25+
run: ${{ matrix.installcmd }}
26+
- name: Update AmazonLinux2's too-old SQLite
27+
if: ${{ endsWith(matrix.runner, 'amazonlinux2') }}
28+
working-directory: /root
29+
# Cribbed from the Fedora RPM, leaves out a lot. System's Tcl is too old to run SQLite's tests.
30+
run: |
31+
yum install -y file tcl-devel make
32+
curl -L 'https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=release' | tar xz && cd sqlite
33+
export CFLAGS="-DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_SECURE_DELETE=1"
34+
./configure --prefix=/usr --libdir=/usr/lib64 --enable-fts3 --enable-all --with-tcl=/usr/lib64
35+
make all install
36+
- name: Check out code
37+
uses: actions/checkout@v2
38+
- name: Run tests with Thread Sanitizer
39+
run: swift test --enable-test-discovery --sanitize=thread
40+
PR-tests-macos:
41+
runs-on: macos-latest
2342
steps:
24-
- run: apt update -y; apt install -y libsqlite3-dev
25-
- uses: actions/checkout@v2
26-
- run: swift test --enable-test-discovery --sanitize=thread
43+
- name: Select latest available Xcode
44+
uses: maxim-lobanov/setup-xcode@1.0
45+
with: { 'xcode-version': 'latest' }
46+
- name: Check out code
47+
uses: actions/checkout@v2
48+
- name: Run tests with Thread Sanitizer
49+
run: swift test --enable-test-discovery --sanitize=thread

‎Tests/FluentSQLiteDriverTests/FluentSQLiteDriverTests.swift

+14-3
Original file line numberDiff line numberDiff line change
@@ -78,15 +78,18 @@ final class FluentSQLiteDriverTests: XCTestCase {
7878
var eventLoopGroup: EventLoopGroup!
7979
var dbs: Databases!
8080

81+
let benchmarkPath = FileManager.default.temporaryDirectory.appendingPathComponent("benchmark.sqlite").absoluteString
82+
8183
override func setUpWithError() throws {
8284
try super.setUpWithError()
83-
85+
8486
XCTAssert(isLoggingConfigured)
8587
self.eventLoopGroup = MultiThreadedEventLoopGroup(numberOfThreads: 1)
8688
self.threadPool = .init(numberOfThreads: 2)
8789
self.threadPool.start()
8890
self.dbs = Databases(threadPool: self.threadPool, on: self.eventLoopGroup)
8991
self.dbs.use(.sqlite(.memory), as: .sqlite)
92+
self.dbs.use(.sqlite(.file(self.benchmarkPath)), as: .benchmark)
9093
}
9194

9295
override func tearDownWithError() throws {
@@ -96,16 +99,24 @@ final class FluentSQLiteDriverTests: XCTestCase {
9699
self.threadPool = nil
97100
try self.eventLoopGroup.syncShutdownGracefully()
98101
self.eventLoopGroup = nil
99-
102+
100103
try super.tearDownWithError()
101104
}
102105
}
103106

107+
func env(_ name: String) -> String? {
108+
return ProcessInfo.processInfo.environment[name]
109+
}
110+
104111
let isLoggingConfigured: Bool = {
105112
LoggingSystem.bootstrap { label in
106113
var handler = StreamLogHandler.standardOutput(label: label)
107-
handler.logLevel = .debug
114+
handler.logLevel = env("LOG_LEVEL").flatMap { Logger.Level(rawValue: $0) } ?? .debug
108115
return handler
109116
}
110117
return true
111118
}()
119+
120+
extension DatabaseID {
121+
static let benchmark = DatabaseID(string: "benchmark")
122+
}

0 commit comments

Comments
 (0)
Please sign in to comment.