test(doc/lua): add script for validating examples in the Lua API documentation

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2013-11-18 12:49:57 -08:00
parent 972721006e
commit 88b2feff6f
2 changed files with 30 additions and 0 deletions

26
doc/lua/test.sh Executable file
View file

@ -0,0 +1,26 @@
#!/bin/sh
# Test is all examples in the .md files are working
if [ $# -ne 1 ]; then
echo "Usage: test.sh [leanlua-executable-path]"
exit 1
fi
ulimit -s unlimited
LEANLUA=$1
NUM_ERRORS=0
for f in `ls *.md`; do
echo "-- testing $f"
awk 'BEGIN{ in_block = 0 } !/```/{ if (in_block == 1) print $0; else print "" } /```/{ in_block = 0; print "" } /```lua/{ in_block = 1; print "" }' $f > $f.lua
if $LEANLUA $f.lua > $f.produced.out; then
echo "-- worked"
else
echo "ERROR executing $f.lua, produced output is at $f.produced.out"
NUM_ERRORS=$(($NUM_ERRORS+1))
fi
done
if [ $NUM_ERRORS -gt 0 ]; then
echo "-- Number of errors: $NUM_ERRORS"
exit 1
else
echo "-- Passed"
exit 0
fi

View file

@ -4,6 +4,10 @@ add_test(NAME leanluatests
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lua"
COMMAND "./test.sh" "${CMAKE_CURRENT_BINARY_DIR}/leanlua")
add_test(NAME leanluadocs
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../doc/lua"
COMMAND "./test.sh" "${CMAKE_CURRENT_BINARY_DIR}/leanlua")
if((${CYGWIN} EQUAL "1") OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux"))
if (NOT (${CMAKE_CXX_COMPILER} MATCHES "clang"))
add_test(NAME leanluathreadtests