File: multicoretests.sh

package info (click to toggle)
ocaml 5.4.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 44,372 kB
  • sloc: ml: 370,196; ansic: 52,820; sh: 27,396; asm: 5,462; makefile: 3,679; python: 974; awk: 278; javascript: 273; perl: 59; fortran: 21; cs: 9
file content (89 lines) | stat: -rwxr-xr-x 2,171 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env bash
#**************************************************************************
#*                                                                        *
#*                                 OCaml                                  *
#*                                                                        *
#*                           Samuel Hym, Tarides                          *
#*                                                                        *
#*   Copyright 2024 Tarides                                               *
#*                                                                        *
#*   All rights reserved.  This file is distributed under the terms of    *
#*   the GNU Lesser General Public License version 2.1, with the          *
#*   special exception on linking described in the file LICENSE.          *
#*                                                                        *
#**************************************************************************

set -e

OCAMLDIR=ocaml
DUNEDIR=dune
MULTICORETESTSDIR=multicoretests

export PREFIX="$HOME/local"
export PATH="$PREFIX/bin:$PATH"

fatal() {
  printf %s "$1"
  exit 1
}

build_ocaml() {
  # We let build.yml test for warnings
  cd "$OCAMLDIR"
  if ! ./configure --disable-warn-error --disable-stdlib-manpages \
      --disable-ocamltest --disable-ocamldoc --prefix="$PREFIX" ; then
    echo
    echo "::group::config.log content ($(wc -l config.log) lines)"
    cat config.log
    echo '::endgroup::'
    exit 1
  fi

  make -j
  make install
}

build_dune() {
  cd "$DUNEDIR"
  make release
  make install PREFIX="$PREFIX"
}

show_config() {
  set -x
  ocamlc -config
  dune --version
}

build_testsuite() {
  cd "$MULTICORETESTSDIR"
  dune build
}

run_testsuite() {
  export QCHECK_MSG_INTERVAL=60
  cd "$MULTICORETESTSDIR"
  dune build @ci -j1 --no-buffer --display=quiet --cache=disabled \
    --error-reporting=twice
}

case "$1" in
  ocaml)
    build_ocaml
    ;;
  dune)
    build_dune
    ;;
  show_config)
    show_config
    ;;
  build)
    build_testsuite
    ;;
  testsuite)
    run_testsuite
    ;;
  *)
    fatal "Unknown command '$1'"
    ;;
esac