Skip to content

Commit b6e23b2

Browse files
committed
Compile and run tests in parallel (-j)
1 parent e5e6a46 commit b6e23b2

File tree

2 files changed

+34
-26
lines changed

2 files changed

+34
-26
lines changed

.circleci/config.yml

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,32 @@ executors:
77
- image: gcc:7
88
environment:
99
CXX: g++
10+
BUILD_FLAGS: -j
11+
CTEST_FLAGS: -j --output-on-failure
1012

1113
gcc8:
1214
docker:
1315
- image: gcc:8
1416
environment:
1517
CXX: g++
18+
BUILD_FLAGS: -j
19+
CTEST_FLAGS: -j --output-on-failure
1620

1721
gcc9:
1822
docker:
1923
- image: gcc:9
2024
environment:
2125
CXX: g++
26+
BUILD_FLAGS: -j
27+
CTEST_FLAGS: -j --output-on-failure
2228

2329
clang6:
2430
docker:
2531
- image: ubuntu:18.04
2632
environment:
2733
CXX: clang++-6.0
34+
BUILD_FLAGS: -j
35+
CTEST_FLAGS: -j --output-on-failure
2836

2937
# Reusable test commands (and initializer for clang 6)
3038
commands:
@@ -36,7 +44,7 @@ commands:
3644
make_test:
3745
steps:
3846
- checkout
39-
- run: make
47+
- run: make $BUILD_FLAGS
4048
- run: ./json2json -h # Print out the implementation we're using on this hardware
4149
- run: make amalgamate
4250
- run: make test
@@ -51,24 +59,24 @@ commands:
5159
cmake_build:
5260
steps:
5361
- cmake_prep
54-
- run: cmake $CMAKE_FLAGS $CMAKE_IMPLEMENTATION_FLAGS -DCMAKE_INSTALL_PREFIX:PATH=destination .
55-
- run: make all
62+
- run: cmake $CMAKE_FLAGS -DCMAKE_INSTALL_PREFIX:PATH=destination .
63+
- run: make $BUILD_FLAGS all
5664
- run: tools/json2json -h # Print out the implementation we're using on this hardware
5765

5866
cmake_test:
5967
steps:
6068
- cmake_build
61-
- run: ctest --output-on-failure -L acceptance
62-
- run: ctest --output-on-failure -LE acceptance
69+
- run: ctest $CTEST_FLAGS -L acceptance
70+
- run: ctest $CTEST_FLAGS -LE acceptance
6371

6472
cmake_test_all:
6573
steps:
6674
- cmake_build
67-
- run: ctest --output-on-failure -L acceptance -LE per_implementation
68-
- run: SIMDJSON_FORCE_IMPLEMENTATION=haswell ctest --output-on-failure -L per_implementation
69-
- run: SIMDJSON_FORCE_IMPLEMENTATION=westmere ctest --output-on-failure -L per_implementation
70-
- run: SIMDJSON_FORCE_IMPLEMENTATION=fallback ctest --output-on-failure -L per_implementation
71-
- run: ctest --output-on-failure -LE "acceptance|per_implementation" # Everything we haven't run yet, run now.
75+
- run: ctest $CTEST_FLAGS -L acceptance -LE per_implementation
76+
- run: SIMDJSON_FORCE_IMPLEMENTATION=haswell ctest $CTEST_FLAGS -L per_implementation
77+
- run: SIMDJSON_FORCE_IMPLEMENTATION=westmere ctest $CTEST_FLAGS -L per_implementation
78+
- run: SIMDJSON_FORCE_IMPLEMENTATION=fallback ctest $CTEST_FLAGS -L per_implementation
79+
- run: ctest $CTEST_FLAGS -LE "acceptance|per_implementation" # Everything we haven't run yet, run now.
7280

7381
# we not only want cmake to build and run tests, but we want also a successful installation from which we can build, link and run programs
7482
cmake_install_test: # this version builds, install, test and then verify from the installation
@@ -94,7 +102,7 @@ jobs:
94102
sanitize-gcc7:
95103
description: Build and run tests on GCC 7 and AVX 2 with a cmake sanitize build
96104
executor: gcc7
97-
environment: { CMAKE_FLAGS: -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON }
105+
environment: { CMAKE_FLAGS: -DSIMDJSON_BUILD_STATIC=OFF -DSIMDJSON_SANITIZE=ON, BUILD_FLAGS: "" } # gcc sanitize seems to have bugs with -j :(
98106
steps: [ cmake_test_all ]
99107
sanitize-clang6:
100108
description: Build and run tests on clang 6 and AVX 2 with a cmake sanitize build

.drone.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ steps:
231231
- mkdir build && cd build
232232
- cmake $CMAKE_FLAGS ..
233233
- make -j
234-
- ctest --output-on-failure
234+
- ctest -j --output-on-failure
235235
---
236236
kind: pipeline
237237
name: amd64_clang_cmake_no_exceptions
@@ -254,7 +254,7 @@ steps:
254254
- mkdir build && cd build
255255
- cmake $CMAKE_FLAGS ..
256256
- make -j
257-
- ctest --output-on-failure
257+
- ctest -j --output-on-failure
258258
---
259259
kind: pipeline
260260
name: amd64_clang_cmake_static
@@ -277,7 +277,7 @@ steps:
277277
- mkdir build && cd build
278278
- cmake $CMAKE_FLAGS ..
279279
- make -j
280-
- ctest --output-on-failure
280+
- ctest -j --output-on-failure
281281
---
282282
kind: pipeline
283283
name: amd64_gcc_cmake_static
@@ -300,7 +300,7 @@ steps:
300300
- mkdir build && cd build
301301
- cmake $CMAKE_FLAGS ..
302302
- make -j
303-
- ctest --output-on-failure
303+
- ctest -j --output-on-failure
304304
---
305305
kind: pipeline
306306
name: amd64_gcc_cmake_dynamic
@@ -323,7 +323,7 @@ steps:
323323
- mkdir build && cd build
324324
- cmake $CMAKE_FLAGS ..
325325
- make -j
326-
- ctest --output-on-failure
326+
- ctest -j --output-on-failure
327327
---
328328
kind: pipeline
329329
name: arm64_clang_cmake_dynamic
@@ -346,7 +346,7 @@ steps:
346346
- mkdir build && cd build
347347
- cmake $CMAKE_FLAGS ..
348348
- make -j
349-
- ctest --output-on-failure
349+
- ctest -j --output-on-failure
350350
---
351351
kind: pipeline
352352
name: arm64_gcc_cmake_dynamic
@@ -369,7 +369,7 @@ steps:
369369
- mkdir build && cd build
370370
- cmake $CMAKE_FLAGS ..
371371
- make -j
372-
- ctest --output-on-failure
372+
- ctest -j --output-on-failure
373373
---
374374
kind: pipeline
375375
name: arm64_clang_cmake_static
@@ -392,7 +392,7 @@ steps:
392392
- mkdir build && cd build
393393
- cmake $CMAKE_FLAGS ..
394394
- make -j
395-
- ctest --output-on-failure
395+
- ctest -j --output-on-failure
396396
---
397397
kind: pipeline
398398
name: arm64_gcc_cmake_static
@@ -415,7 +415,7 @@ steps:
415415
- mkdir build && cd build
416416
- cmake $CMAKE_FLAGS ..
417417
- make -j
418-
- ctest --output-on-failure
418+
- ctest -j --output-on-failure
419419

420420
---
421421
kind: pipeline
@@ -439,7 +439,7 @@ steps:
439439
- mkdir build && cd build
440440
- cmake $CMAKE_FLAGS ..
441441
- make -j
442-
- ASAN_OPTIONS="detect_leaks=0" ctest --output-on-failure
442+
- ASAN_OPTIONS="detect_leaks=0" ctest -j --output-on-failure
443443
---
444444
kind: pipeline
445445
name: arm64_gcc_cmake_sanitize
@@ -462,7 +462,7 @@ steps:
462462
- mkdir build && cd build
463463
- cmake $CMAKE_FLAGS ..
464464
- make -j
465-
- ASAN_OPTIONS="detect_leaks=0" ctest --output-on-failure
465+
- ASAN_OPTIONS="detect_leaks=0" ctest -j --output-on-failure
466466

467467
---
468468
kind: pipeline
@@ -486,7 +486,7 @@ steps:
486486
- mkdir build && cd build
487487
- cmake $CMAKE_FLAGS ..
488488
- make -j
489-
- ASAN_OPTIONS="detect_leaks=0" ctest --output-on-failure
489+
- ASAN_OPTIONS="detect_leaks=0" ctest -j --output-on-failure
490490
---
491491
kind: pipeline
492492
name: amd64_gcc_cmake_sanitize
@@ -509,7 +509,7 @@ steps:
509509
- mkdir build && cd build
510510
- cmake $CMAKE_FLAGS ..
511511
- make -j
512-
- ASAN_OPTIONS="detect_leaks=0" ctest --output-on-failure
512+
- ASAN_OPTIONS="detect_leaks=0" ctest -j --output-on-failure
513513

514514
---
515515
kind: pipeline
@@ -533,7 +533,7 @@ steps:
533533
- mkdir build && cd build
534534
- cmake $CMAKE_FLAGS ..
535535
- make -j
536-
- ASAN_OPTIONS="detect_leaks=0" ctest --output-on-failure
536+
- ASAN_OPTIONS="detect_leaks=0" ctest -j --output-on-failure
537537
---
538538
kind: pipeline
539539
name: amd64_gcc_cmake_sanitize_noavx
@@ -556,4 +556,4 @@ steps:
556556
- mkdir build && cd build
557557
- cmake $CMAKE_FLAGS ..
558558
- make -j
559-
- ASAN_OPTIONS="detect_leaks=0" ctest --output-on-failure
559+
- ASAN_OPTIONS="detect_leaks=0" ctest -j --output-on-failure

0 commit comments

Comments
 (0)