Skip to content

Commit 09b308f

Browse files
authored
tests: switch to GitHub actions (#56)
- Removes Travis in favour of GitHub Actions - Drops hiredis (doesn't compile above Node.js v10.x) - Add testing of Node.js v12 & v13 - Add benchmark scripts
1 parent 138ce9f commit 09b308f

File tree

9 files changed

+74
-188
lines changed

9 files changed

+74
-188
lines changed

Diff for: .codeclimate.yml

-6
This file was deleted.

Diff for: .github/workflows/benchmarks.yml

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Benchmarking
2+
3+
on: [push]
4+
5+
jobs:
6+
benchmark:
7+
name: Benchmark
8+
runs-on: ubuntu-latest
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
node-version: [6.x, 8.x, 10.x, 12.x, 13.x]
13+
14+
steps:
15+
- uses: actions/checkout@v1
16+
with:
17+
fetch-depth: 1
18+
19+
- name: Use Node.js ${{ matrix.node-version }}
20+
uses: actions/setup-node@v1
21+
with:
22+
node-version: ${{ matrix.node-version }}
23+
24+
- run: npm i --no-audit --prefer-offline
25+
- name: Run Benchmark
26+
run: npm run benchmark

Diff for: .github/workflows/tests.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Tests
2+
3+
on: [push]
4+
5+
jobs:
6+
testing:
7+
name: Test
8+
runs-on: ubuntu-latest
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
node-version: [6.x, 8.x, 10.x, 12.x, 13.x]
13+
14+
steps:
15+
- uses: actions/checkout@v1
16+
with:
17+
fetch-depth: 1
18+
19+
- name: Use Node.js ${{ matrix.node-version }}
20+
uses: actions/setup-node@v1
21+
with:
22+
node-version: ${{ matrix.node-version }}
23+
24+
- name: Install Packages
25+
run: npm i --no-audit --prefer-offline
26+
27+
- name: Run Tests
28+
run: npm test
29+
30+
- name: Submit Coverage
31+
run: npm run coveralls
32+
env:
33+
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
34+
35+
- name: Upload Coverage Report
36+
uses: actions/upload-artifact@v1
37+
with:
38+
name: coverage
39+
path: coverage

Diff for: .gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ logs
33
coverage
44
node_modules
55
.idea
6-
.vscode
6+
.vscode
7+
.github

Diff for: .travis.yml

-21
This file was deleted.

Diff for: benchmark/index.js

-85
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ const Benchmark = require('benchmark')
66
const suite = new Benchmark.Suite()
77
const Parser = require('./../')
88
const Buffer = require('buffer').Buffer
9-
const HiredisParser = require('../test/hiredis')
109

1110
function returnError (error) {}
1211
function checkReply (error, res) {}
@@ -64,26 +63,16 @@ const options = {
6463
returnFatalError: returnError
6564
}
6665
const parser = new Parser(options)
67-
const parserHiRedis = new HiredisParser(options)
6866

6967
options.returnBuffers = true
7068
const parserBuffer = new Parser(options)
71-
const parserHiRedisBuffer = new HiredisParser(options)
7269

7370
delete options.returnBuffers
7471
options.stringNumbers = true
7572
const parserStr = new Parser(options)
7673

7774
// BULK STRINGS
7875

79-
suite.add('HIREDIS: $ multiple chunks in a bulk string', function () {
80-
parserHiRedis.execute(startBuffer)
81-
parserHiRedis.execute(chunkBuffer)
82-
parserHiRedis.execute(chunkBuffer)
83-
parserHiRedis.execute(chunkBuffer)
84-
parserHiRedis.execute(endBuffer)
85-
})
86-
8776
suite.add('JS PARSER: $ multiple chunks in a bulk string', function () {
8877
parser.execute(startBuffer)
8978
parser.execute(chunkBuffer)
@@ -92,14 +81,6 @@ suite.add('JS PARSER: $ multiple chunks in a bulk string', function () {
9281
parser.execute(endBuffer)
9382
})
9483

95-
suite.add('HIREDIS BUF: $ multiple chunks in a bulk string', function () {
96-
parserHiRedisBuffer.execute(startBuffer)
97-
parserHiRedisBuffer.execute(chunkBuffer)
98-
parserHiRedisBuffer.execute(chunkBuffer)
99-
parserHiRedisBuffer.execute(chunkBuffer)
100-
parserHiRedisBuffer.execute(endBuffer)
101-
})
102-
10384
suite.add('JS PARSER BUF: $ multiple chunks in a bulk string', function () {
10485
parserBuffer.execute(startBuffer)
10586
parserBuffer.execute(chunkBuffer)
@@ -110,36 +91,18 @@ suite.add('JS PARSER BUF: $ multiple chunks in a bulk string', function () {
11091

11192
// CHUNKED STRINGS
11293

113-
suite.add('\nHIREDIS: + multiple chunks in a string', function () {
114-
parserHiRedis.execute(chunkedStringPart1)
115-
parserHiRedis.execute(chunkedStringPart2)
116-
})
117-
11894
suite.add('JS PARSER: + multiple chunks in a string', function () {
11995
parser.execute(chunkedStringPart1)
12096
parser.execute(chunkedStringPart2)
12197
})
12298

123-
suite.add('HIREDIS BUF: + multiple chunks in a string', function () {
124-
parserHiRedisBuffer.execute(chunkedStringPart1)
125-
parserHiRedisBuffer.execute(chunkedStringPart2)
126-
})
127-
12899
suite.add('JS PARSER BUF: + multiple chunks in a string', function () {
129100
parserBuffer.execute(chunkedStringPart1)
130101
parserBuffer.execute(chunkedStringPart2)
131102
})
132103

133104
// BIG BULK STRING
134105

135-
suite.add('\nHIREDIS: $ 4mb bulk string', function () {
136-
parserHiRedis.execute(startBigBuffer)
137-
for (var i = 0; i < 64; i++) {
138-
parserHiRedis.execute(chunks[i])
139-
}
140-
parserHiRedis.execute(endBuffer)
141-
})
142-
143106
suite.add('JS PARSER: $ 4mb bulk string', function () {
144107
parser.execute(startBigBuffer)
145108
for (var i = 0; i < 64; i++) {
@@ -148,14 +111,6 @@ suite.add('JS PARSER: $ 4mb bulk string', function () {
148111
parser.execute(endBuffer)
149112
})
150113

151-
suite.add('HIREDIS BUF: $ 4mb bulk string', function () {
152-
parserHiRedisBuffer.execute(startBigBuffer)
153-
for (var i = 0; i < 64; i++) {
154-
parserHiRedisBuffer.execute(chunks[i])
155-
}
156-
parserHiRedisBuffer.execute(endBuffer)
157-
})
158-
159114
suite.add('JS PARSER BUF: $ 4mb bulk string', function () {
160115
parserBuffer.execute(startBigBuffer)
161116
for (var i = 0; i < 64; i++) {
@@ -166,28 +121,16 @@ suite.add('JS PARSER BUF: $ 4mb bulk string', function () {
166121

167122
// STRINGS
168123

169-
suite.add('\nHIREDIS: + simple string', function () {
170-
parserHiRedis.execute(stringBuffer)
171-
})
172-
173124
suite.add('JS PARSER: + simple string', function () {
174125
parser.execute(stringBuffer)
175126
})
176127

177-
suite.add('HIREDIS BUF: + simple string', function () {
178-
parserHiRedisBuffer.execute(stringBuffer)
179-
})
180-
181128
suite.add('JS PARSER BUF: + simple string', function () {
182129
parserBuffer.execute(stringBuffer)
183130
})
184131

185132
// INTEGERS
186133

187-
suite.add('\nHIREDIS: : integer', function () {
188-
parserHiRedis.execute(integerBuffer)
189-
})
190-
191134
suite.add('JS PARSER: : integer', function () {
192135
parser.execute(integerBuffer)
193136
})
@@ -198,10 +141,6 @@ suite.add('JS PARSER STR: : integer', function () {
198141

199142
// BIG INTEGER
200143

201-
suite.add('\nHIREDIS: : big integer', function () {
202-
parserHiRedis.execute(bigIntegerBuffer)
203-
})
204-
205144
suite.add('JS PARSER: : big integer', function () {
206145
parser.execute(bigIntegerBuffer)
207146
})
@@ -212,42 +151,22 @@ suite.add('JS PARSER STR: : big integer', function () {
212151

213152
// ARRAYS
214153

215-
suite.add('\nHIREDIS: * array', function () {
216-
parserHiRedis.execute(arrayBuffer)
217-
})
218-
219154
suite.add('JS PARSER: * array', function () {
220155
parser.execute(arrayBuffer)
221156
})
222157

223-
suite.add('HIREDIS BUF: * array', function () {
224-
parserHiRedisBuffer.execute(arrayBuffer)
225-
})
226-
227158
suite.add('JS PARSER BUF: * array', function () {
228159
parserBuffer.execute(arrayBuffer)
229160
})
230161

231162
// BIG NESTED ARRAYS
232163

233-
suite.add('\nHIREDIS: * big nested array', function () {
234-
for (var i = 0; i < bigArrayChunks.length; i++) {
235-
parserHiRedis.execute(bigArrayChunks[i])
236-
}
237-
})
238-
239164
suite.add('JS PARSER: * big nested array', function () {
240165
for (var i = 0; i < bigArrayChunks.length; i++) {
241166
parser.execute(bigArrayChunks[i])
242167
}
243168
})
244169

245-
suite.add('HIREDIS BUF: * big nested array', function () {
246-
for (var i = 0; i < bigArrayChunks.length; i++) {
247-
parserHiRedisBuffer.execute(bigArrayChunks[i])
248-
}
249-
})
250-
251170
suite.add('JS PARSER BUF: * big nested array', function () {
252171
for (var i = 0; i < bigArrayChunks.length; i++) {
253172
parserBuffer.execute(bigArrayChunks[i])
@@ -256,10 +175,6 @@ suite.add('JS PARSER BUF: * big nested array', function () {
256175

257176
// ERRORS
258177

259-
suite.add('\nHIREDIS: - error', function () {
260-
parserHiRedis.execute(errorBuffer)
261-
})
262-
263178
suite.add('JS PARSER: - error', function () {
264179
parser.execute(errorBuffer)
265180
})

Diff for: package.json

+6-8
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
"description": "Javascript Redis protocol (RESP) parser",
55
"main": "index.js",
66
"scripts": {
7-
"test": "npm run coverage",
7+
"test": "nyc --cache --preserve-comments mocha -- -R spec && nyc report --reporter=html",
88
"benchmark": "node ./benchmark",
99
"lint": "standard --fix",
1010
"posttest": "npm run lint && npm run coverage:check",
11-
"coverage": "node ./node_modules/istanbul/lib/cli.js cover --preserve-comments ./node_modules/mocha/bin/_mocha -- -R spec",
12-
"coverage:check": "node ./node_modules/istanbul/lib/cli.js check-coverage --branch 100 --statement 100"
11+
"coveralls": "nyc report --reporter=text-lcov | coveralls",
12+
"coverage:check": "nyc check-coverage --branch 100 --statement 100"
1313
},
1414
"repository": {
1515
"type": "git",
@@ -23,8 +23,7 @@
2323
"javascript",
2424
"node",
2525
"nodejs",
26-
"resp",
27-
"hiredis"
26+
"resp"
2827
],
2928
"files": [
3029
"index.js",
@@ -38,9 +37,8 @@
3837
},
3938
"devDependencies": {
4039
"benchmark": "^2.1.0",
41-
"codeclimate-test-reporter": "^0.5.0",
42-
"hiredis": "^0.5.0",
43-
"istanbul": "^0.4.0",
40+
"coveralls": "^2.13.3",
41+
"nyc": "^14.1.1",
4442
"mocha": "^6.1.1",
4543
"standard": "^11.0.1"
4644
},

0 commit comments

Comments
 (0)