#!/bin/bash # Repeatedly stop building until successive layers, and run all tests built. # # Assumes .subx files all come after .cc files. set -e cd `dirname $0` # add C++ files one at a time for f in [0-9]*cc do echo "=== bootstrap $f" ./build_and_test_until $f done # build everything one last time ./clean ./build # build optimized since we'll be running it repeatedly below # test pure-SubX files (without syntax sugar) one at a time using bootstrap for f in [012]*.subx do echo "=== bootstrap $f" ./bootstrap translate init.linux $(tools/enumerate --until $f |grep '\.subx$') -o a.elf ./bootstrap run a.elf test echo test `uname` = 'Linux' && { chmod +x a.elf ./a.elf test echo } || true done # test all SubX files one at a time using the self-hosted translator for f in [0-9]*.subx do echo "=== self-hosted $f" ./translate_subx init.linux $(tools/enumerate --until $f |grep '\.subx$') ./bootstrap run a.elf test echo test `uname` = 'Linux' && { chmod +x a.elf ./a.elf test echo } || true done # test all Mu files one at a time using the self-hosted translator for f in [0-9]*.mu do echo "=== self-hosted $f" cat $(tools/enumerate --until $f |grep '\.mu$') |apps/mu > a.subx ./translate_subx init.linux [0-9]*.subx a.subx ./bootstrap run a.elf test echo test `uname` = 'Linux' && { chmod +x a.elf ./a.elf test echo } || true done