3cea79a122
- allow compiling/running html tests without compiling main crate tests (useful when e.g. making type changes to events but html unaffected) - avoid need for future flags in main crate
40 lines
1,005 B
Makefile
40 lines
1,005 B
Makefile
.POSIX:
|
|
|
|
TEST_DJ=$(shell find . -name '*.dj' | sort)
|
|
TEST=${TEST_DJ:.dj=}
|
|
|
|
DJOT_JS=../../modules/djot.js
|
|
DJOT_JS_SRC=$(shell find ${DJOT_JS}/src -name '.ts')
|
|
|
|
ref.rs: ${TEST_DJ} html
|
|
echo "use crate::compare;" > $@
|
|
for name in ${TEST}; do \
|
|
name_snake=$$(basename -a $$name); \
|
|
skip_reason=$$(grep -E "^$${name_snake}:" skip | cut -d: -f2); \
|
|
[ -n "$$skip_reason" ] && echo "#[ignore = \"$${skip_reason}\"]"; \
|
|
echo "#[test]"; \
|
|
echo "fn $$name_snake() {"; \
|
|
printf ' let src = r###"'; \
|
|
cat $$name.dj; \
|
|
echo '"###;'; \
|
|
printf ' let expected = "%s";' "$$name.html"; \
|
|
echo " compare!(src, expected);"; \
|
|
echo "}"; \
|
|
done >> $@
|
|
|
|
html: djot-js ${TEST_DJ}
|
|
echo ${TEST}
|
|
for name in ${TEST}; do cat $$name.dj | ./djot-js > $$name.html; done
|
|
touch $@
|
|
|
|
djot-js: ${DJOT_JS_SRC}
|
|
(cd "${DJOT_JS}" && npm install && npm run build)
|
|
echo "#!/bin/sh" > $@
|
|
echo 'node ${DJOT_JS}/lib/cli.js "$$@"' >> $@
|
|
chmod +x $@
|
|
|
|
clean:
|
|
rm -f ref.rs
|
|
rm -f *.html
|
|
rm -f html
|
|
rm -f djot-js
|