12
12
# See https://github.com/haskell/cabal/issues/8049
13
13
HC=ghc
14
14
CABAL=cabal
15
+ CABALPLAN=cabal-plan
15
16
JOBS=4
16
17
LIBTESTS=true
17
18
CLITESTS=true
@@ -49,6 +50,7 @@ Available options:
49
50
--(no-)run-cli-suite Run cabal-testsuite with client
50
51
-w, --with-compiler HC With compiler
51
52
--with-cabal CABAL With cabal-install
53
+ --with-cabal-plan CABALPLAN With cabal-plan
52
54
--extra-hc HC Extra compiler to run test-suite with
53
55
--(no-)doctest Run doctest on library
54
56
--(no-)solver-benchmarks Build and trial run solver-benchmarks
@@ -194,6 +196,11 @@ while [ $# -gt 0 ]; do
194
196
shift
195
197
shift
196
198
;;
199
+ --with-cabal-plan)
200
+ CABALPLAN=$2
201
+ shift
202
+ shift
203
+ ;;
197
204
--extra-hc)
198
205
EXTRAHCS=" $EXTRAHCS $2 "
199
206
shift
@@ -308,7 +315,7 @@ BUILDDIR=dist-newstyle-validate-$BASEHC
308
315
CABAL_TESTSUITE_BDIR=" $( pwd) /$BUILDDIR /build/$ARCH /$BASEHC /cabal-testsuite-3"
309
316
310
317
CABALNEWBUILD=" ${CABAL} v2-build $JOBS -w $HC --builddir=$BUILDDIR --project-file=$PROJECTFILE "
311
- CABALLISTBIN =" ${CABAL } list-bin --builddir=$BUILDDIR --project-file= $PROJECTFILE "
318
+ CABALPLANLISTBIN =" ${CABALPLAN } list-bin --builddir=$BUILDDIR "
312
319
313
320
# header
314
321
# ######################################################################
@@ -320,6 +327,7 @@ cat <<EOF
320
327
compiler: $HC
321
328
runhaskell: $RUNHASKELL
322
329
cabal-install: $CABAL
330
+ cabal-plan: $CABALPLAN
323
331
jobs: $JOBS
324
332
Cabal tests: $LIBTESTS
325
333
cabal-install tests: $CLITESTS
@@ -339,6 +347,7 @@ print_header print-tool-versions
339
347
340
348
timed $HC --version
341
349
timed $CABAL --version
350
+ timed $CABALPLAN --version
342
351
343
352
for EXTRAHC in $EXTRAHCS ; do
344
353
timed $EXTRAHC --version
@@ -359,11 +368,8 @@ step_time_summary() {
359
368
360
369
step_build () {
361
370
print_header " build"
362
- print_header " Step Build: dry run"
363
371
timed $CABALNEWBUILD $TARGETS --dry-run || exit 1
364
- print_header " Step Build: full build plan (cached and to-be-built dependencies):"
365
- jq -r ' ."install-plan" | map(."pkg-name" + "-" + ."pkg-version" + " " + ."component-name") | join("\n")' " $BUILDDIR /cache/plan.json"
366
- print_header " Step Build: actual build"
372
+ $CABALPLAN topo --builddir=$BUILDDIR || exit 1
367
373
timed $CABALNEWBUILD $TARGETS || exit 1
368
374
}
369
375
@@ -380,22 +386,22 @@ timed doctest -package-env=doctest-Cabal --fast Cabal/Distribution Cabal/Languag
380
386
step_lib_tests () {
381
387
print_header " Cabal: tests"
382
388
383
- CMD=" $( $CABALLISTBIN Cabal-tests:test:unit-tests) $TESTSUITEJOBS --hide-successes --with-ghc=$HC "
389
+ CMD=" $( $CABALPLANLISTBIN Cabal-tests:test:unit-tests) $TESTSUITEJOBS --hide-successes --with-ghc=$HC "
384
390
(cd Cabal-tests && timed $CMD ) || exit 1
385
391
386
- CMD=" $( $CABALLISTBIN Cabal-tests:test:check-tests) $TESTSUITEJOBS --hide-successes"
392
+ CMD=" $( $CABALPLANLISTBIN Cabal-tests:test:check-tests) $TESTSUITEJOBS --hide-successes"
387
393
(cd Cabal-tests && timed $CMD ) || exit 1
388
394
389
- CMD=" $( $CABALLISTBIN Cabal-tests:test:parser-tests) $TESTSUITEJOBS --hide-successes"
395
+ CMD=" $( $CABALPLANLISTBIN Cabal-tests:test:parser-tests) $TESTSUITEJOBS --hide-successes"
390
396
(cd Cabal-tests && timed $CMD ) || exit 1
391
397
392
- CMD=" $( $CABALLISTBIN Cabal-tests:test:rpmvercmp) $TESTSUITEJOBS --hide-successes"
398
+ CMD=" $( $CABALPLANLISTBIN Cabal-tests:test:rpmvercmp) $TESTSUITEJOBS --hide-successes"
393
399
(cd Cabal-tests && timed $CMD ) || exit 1
394
400
395
- CMD=" $( $CABALLISTBIN Cabal-tests:test:no-thunks-test) $TESTSUITEJOBS --hide-successes"
401
+ CMD=" $( $CABALPLANLISTBIN Cabal-tests:test:no-thunks-test) $TESTSUITEJOBS --hide-successes"
396
402
(cd Cabal-tests && timed $CMD ) || exit 1
397
403
398
- CMD=$( $CABALLISTBIN Cabal-tests:test:hackage-tests)
404
+ CMD=$( $CABALPLANLISTBIN Cabal-tests:test:hackage-tests)
399
405
(cd Cabal-tests && timed $CMD read-fields) || exit 1
400
406
if $HACKAGETESTSALL ; then
401
407
(cd Cabal-tests && timed $CMD parsec) || exit 1
412
418
step_lib_suite () {
413
419
print_header " Cabal: cabal-testsuite"
414
420
415
- CMD=" $( $CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
421
+ CMD=" $( $CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
416
422
(cd cabal-testsuite && timed $CMD ) || exit 1
417
423
}
418
424
419
425
step_lib_suite_extras () {
420
426
for EXTRAHC in $EXTRAHCS ; do
421
427
422
- CMD=" $( $CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$EXTRAHC --hide-successes"
428
+ CMD=" $( $CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR $TESTSUITEJOBS --with-ghc=$EXTRAHC --hide-successes"
423
429
(cd cabal-testsuite && timed $CMD ) || exit 1
424
430
425
431
done
@@ -432,19 +438,19 @@ step_cli_tests() {
432
438
print_header " cabal-install: tests"
433
439
434
440
# this are sorted in asc time used, quicker tests first.
435
- CMD=" $( $CABALLISTBIN cabal-install:test:long-tests) $TESTSUITEJOBS --hide-successes"
441
+ CMD=" $( $CABALPLANLISTBIN cabal-install:test:long-tests) $TESTSUITEJOBS --hide-successes"
436
442
(cd cabal-install && timed $CMD ) || exit 1
437
443
438
444
# This doesn't work in parallel either
439
- CMD=" $( $CABALLISTBIN cabal-install:test:unit-tests) -j1 --hide-successes"
445
+ CMD=" $( $CABALPLANLISTBIN cabal-install:test:unit-tests) -j1 --hide-successes"
440
446
(cd cabal-install && timed $CMD ) || exit 1
441
447
442
448
# Only single job, otherwise we fail with "Heap exhausted"
443
- CMD=" $( $CABALLISTBIN cabal-install:test:mem-use-tests) -j1 --hide-successes"
449
+ CMD=" $( $CABALPLANLISTBIN cabal-install:test:mem-use-tests) -j1 --hide-successes"
444
450
(cd cabal-install && timed $CMD ) || exit 1
445
451
446
452
# This test-suite doesn't like concurrency
447
- CMD=" $( $CABALLISTBIN cabal-install:test:integration-tests2) -j1 --hide-successes --with-ghc=$HC "
453
+ CMD=" $( $CABALPLANLISTBIN cabal-install:test:integration-tests2) -j1 --hide-successes --with-ghc=$HC "
448
454
(cd cabal-install && timed $CMD ) || exit 1
449
455
}
450
456
@@ -454,7 +460,7 @@ CMD="$($CABALLISTBIN cabal-install:test:integration-tests2) -j1 --hide-successes
454
460
step_cli_suite () {
455
461
print_header " cabal-install: cabal-testsuite"
456
462
457
- CMD=" $( $CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR --with-cabal=$( $CABALLISTBIN cabal-install:exe:cabal) $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
463
+ CMD=" $( $CABALPLANLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUITE_BDIR --with-cabal=$( $CABALPLANLISTBIN cabal-install:exe:cabal) $TESTSUITEJOBS --with-ghc=$HC --hide-successes"
458
464
(cd cabal-testsuite && timed $CMD ) || exit 1
459
465
}
460
466
@@ -464,15 +470,15 @@ CMD="$($CABALLISTBIN cabal-testsuite:exe:cabal-tests) --builddir=$CABAL_TESTSUIT
464
470
step_solver_benchmarks_tests () {
465
471
print_header " solver-benchmarks: test"
466
472
467
- CMD=" $( $CABALLISTBIN solver-benchmarks:test:unit-tests) "
473
+ CMD=" $( $CABALPLANLISTBIN solver-benchmarks:test:unit-tests) "
468
474
(cd Cabal && timed $CMD ) || exit 1
469
475
}
470
476
471
477
step_solver_benchmarks_run () {
472
478
print_header " solver-benchmarks: run"
473
479
474
480
SOLVEPKG=Chart-diagrams
475
- CMD=" $( $CABALLISTBIN solver-benchmarks:exe:hackage-benchmark) --cabal1=$CABAL --cabal2=$( $CABALLISTBIN cabal-install:exe:cabal) --trials=5 --packages=$SOLVEPKG --print-trials"
481
+ CMD=" $( $CABALPLANLISTBIN solver-benchmarks:exe:hackage-benchmark) --cabal1=$CABAL --cabal2=$( $CABALPLANLISTBIN cabal-install:exe:cabal) --trials=5 --packages=$SOLVEPKG --print-trials"
476
482
(cd Cabal && timed $CMD ) || exit 1
477
483
}
478
484
0 commit comments