#!/bin/bash # This is the top-level test script: # # - Build documentation for Rust code in 'src/tools/target/doc'. # - Run unit tests for all Rust crates. # - Make a debug build of all crates. # - Make a release build of cton-util. # - Run file-level tests with the release build of cton-util. # # All tests run by this script should be passing at all times. # Exit immediately on errors. set -e # Repository top-level directory. cd $(dirname "$0") topdir=$(pwd) PKGS="libcretonne libreader tools" echo ====== Rust unit tests and debug builds ====== for PKG in $PKGS do ( cd $topdir/src/$PKG cargo test cargo build ) done # Build cton-util for parser testing. echo ====== Rust release build and documentation ====== cd "$topdir/src/tools" cargo doc cargo build --release export CTONUTIL="$topdir/src/tools/target/release/cton-util" # Run the parser tests. echo ====== Parser tests ====== cd "$topdir/tests" parser/run.sh cfg/run.sh echo ====== OK ======