Add new instanced test runner
This will run the unit tests for each module in a separate Emacs instance. It's a fair bit slower, but much more useful for something as stateful as an Emacs config. Now I just need to push the rewritten tests.
This commit is contained in:
parent
44c694da47
commit
2122a31962
2 changed files with 36 additions and 0 deletions
1
bin/doom
1
bin/doom
|
@ -7,6 +7,7 @@
|
||||||
":"; [ "$1" = -d ] || [ "$1" = --debug ] && { shift; export DEBUG=1; }
|
":"; [ "$1" = -d ] || [ "$1" = --debug ] && { shift; export DEBUG=1; }
|
||||||
":"; [ "$1" = doc ] || [ "$1" = doctor ] && { cd "$DOOMBASE"; shift; exec $EMACS --script bin/doom-doctor "$@"; exit 0; }
|
":"; [ "$1" = doc ] || [ "$1" = doctor ] && { cd "$DOOMBASE"; shift; exec $EMACS --script bin/doom-doctor "$@"; exit 0; }
|
||||||
":"; [ "$1" = run ] && { cd "$DOOMBASE"; shift; exec $EMACS -q --no-splash -l bin/doom "$@"; exit 0; }
|
":"; [ "$1" = run ] && { cd "$DOOMBASE"; shift; exec $EMACS -q --no-splash -l bin/doom "$@"; exit 0; }
|
||||||
|
":"; [ "$1" = test ] && { cd "$DOOMBASE"; shift; exec bin/doom-test "$@"; }
|
||||||
":"; exec $EMACS --script "$0" -- "$@"
|
":"; exec $EMACS --script "$0" -- "$@"
|
||||||
":"; exit 0
|
":"; exit 0
|
||||||
|
|
||||||
|
|
35
bin/doom-test
Executable file
35
bin/doom-test
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Set up test config
|
||||||
|
export DOOMDIR=/tmp/doom/
|
||||||
|
export DOOMLOCALDIR=/tmp/doom/.local/
|
||||||
|
if [[ ! -d "$DOOMDIR" ]]; then
|
||||||
|
mkdir -p "$DOOMDIR"
|
||||||
|
ln -s ~/.emacs.d/init.test.el "$DOOMDIR"/init.el
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set up testing library
|
||||||
|
BUTTERCUPLIB="${DOOMLOCALDIR}buttercup"
|
||||||
|
EMACSBIN="emacs --batch -l ~/.emacs.d/init.el -L $BUTTERCUPLIB -l buttercup"
|
||||||
|
if [[ ! -d "$BUTTERCUPLIB" ]]; then
|
||||||
|
git clone https://github.com/jorgenschaefer/emacs-buttercup "$BUTTERCUPLIB"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Run the tests
|
||||||
|
if [[ ! -f $DOOMLOCALDIR/init || $1 == "-f" ]]; then
|
||||||
|
doom -y refresh
|
||||||
|
echo 1 > $DOOMLOCALDIR/init
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
error=
|
||||||
|
args=( $@ )
|
||||||
|
(( $# == 0 )) && args=( core modules/*/* )
|
||||||
|
for base in $args; do
|
||||||
|
if [[ -d "$base/test" ]]; then
|
||||||
|
echo Running $base
|
||||||
|
$EMACSBIN -f doom-run-tests "$base" || error=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
[[ $error ]] && exit 1
|
Loading…
Add table
Add a link
Reference in a new issue