As of v1.7.0, the test suite consists of two parts:
- https://github.com/ocaml-community/cppo/tree/master/test, where
*.cppo is expected to produce *.ref.
- Limitation: Code/feature coverage not yet measured.
- CI that tests downstream dependants:
|
- name: Test dependants |
|
if: > |
|
(matrix.ocaml-version >= '4.05') && (matrix.os != 'windows-latest') |
|
run: | |
|
PACKAGES=`opam list -s --color=never --installable --depends-on cppo,cppo_ocamlbuild` |
|
echo "Dependants:" $PACKAGES |
|
for PACKAGE in $PACKAGES |
|
do |
|
echo $SKIP_BUILD | tr ' ' '\n' | grep ^$PACKAGE$ > /dev/null && |
|
echo Skip $PACKAGE && continue |
|
OPAMWITHTEST=true |
|
echo $SKIP_TEST | tr ' ' '\n' | grep ^$PACKAGE$ > /dev/null && |
|
OPAMWITHTEST=false |
|
([ $OPAMWITHTEST == false ] && |
|
echo ::group::Build $PACKAGE) || |
|
echo ::group::Build and test $PACKAGE |
|
DEPS_FAILED=false |
|
(opam depext $PACKAGE && |
|
opam install --deps-only $PACKAGE) || DEPS_FAILED=true |
|
[ $DEPS_FAILED == false ] && opam install $PACKAGE |
|
echo ::endgroup:: |
|
[ $DEPS_FAILED == false ] || echo Dependencies broken |
|
done |
- Limitation 1: Only checks compilation and package-specified test; might break the semantics of under-tested packages.
- Limitation 2: Skipping build/test for packages, for various reasons: Some packages are out of maintenance; others are failing in specific OCaml*OS versions.
Possible directions:
As of v1.7.0, the test suite consists of two parts:
*.cppois expected to produce*.ref.cppo/.github/workflows/build.yml
Lines 176 to 198 in 21f0586
Possible directions: