Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create an option to skip tests #119

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 50 additions & 33 deletions genbindings.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,18 @@ if [ ! -d "$1/lightning" -o "$2" != "true" -a "$2" != "false" ]; then
exit 1
fi

SKIP_TESTS_ARGUMENT=$3
RUN_CPP_TESTS=true

if [ ! -z "$SKIP_TESTS_ARGUMENT" ]; then
if [ "$SKIP_TESTS_ARGUMENT" != "skip-tests" ]; then
echo "To skip tests, usage must be: $0 path-to-rust-lightning allow-std skip-tests"
exit 1
else
RUN_CPP_TESTS=false
fi
fi

export LC_ALL=C

# On reasonable systems, we can use realpath here, but OSX is a diva with 20-year-old software.
Expand Down Expand Up @@ -317,40 +329,45 @@ export IFS="$OLD_IFS"
set -x
mv include/lightningpp_new.hpp include/lightningpp.hpp

# Finally, sanity-check the generated C and C++ bindings with demo apps:
# Naively run the C demo app:
gcc $LOCAL_CFLAGS -Wall -g -pthread demo.c target/debug/libldk.a -ldl -lm
./a.out
if $RUN_CPP_TESTS; then
# Finally, sanity-check the generated C and C++ bindings with demo apps:
# Naively run the C demo app:
gcc $LOCAL_CFLAGS -Wall -g -pthread demo.c target/debug/libldk.a -ldl -lm
./a.out

# And run the C++ demo app
if [ "$2" = "true" ]; then
g++ $LOCAL_CFLAGS -std=c++11 -Wall -g -pthread demo.cpp -Ltarget/debug/ -lldk -ldl
LD_LIBRARY_PATH=target/debug/ ./a.out > /dev/null
fi

# Finally, run the C++ demo app with our native networking library
# in valgrind to test memory model correctness and lack of leaks.
gcc $LOCAL_CFLAGS -fPIC -std=c99 -Wall -g -pthread -I../ldk-net ../ldk-net/ldk_net.c -c -o ldk_net.o
if [ "$2" = "true" ]; then
g++ $LOCAL_CFLAGS -std=c++11 -Wall -g -pthread -DREAL_NET -I../ldk-net ldk_net.o demo.cpp target/debug/libldk.a -ldl -lm
if [ -x "`which valgrind`" -a "$(uname -m)" != "ppc64le" ]; then
valgrind --error-exitcode=4 --memcheck:leak-check=full --show-leak-kinds=all ./a.out
echo
else
echo "WARNING: Please install valgrind for more testing"
./a.out
fi
fi


# Test a statically-linked C++ version, tracking the resulting binary size and runtime
# across debug, LTO, and cross-language LTO builds (using the same compiler each time).
if [ "$2" = "true" ]; then
clang++ $LOCAL_CFLAGS -std=c++11 demo.cpp target/debug/libldk.a -ldl
strip ./a.out
time ./a.out
echo " C++ Bin size and runtime w/o optimization:"
ls -lha a.out
fi

# And run the C++ demo app
if [ "$2" = "true" ]; then
g++ $LOCAL_CFLAGS -std=c++11 -Wall -g -pthread demo.cpp -Ltarget/debug/ -lldk -ldl
LD_LIBRARY_PATH=target/debug/ ./a.out > /dev/null
fi

# Finally, run the C++ demo app with our native networking library
# in valgrind to test memory model correctness and lack of leaks.
gcc $LOCAL_CFLAGS -fPIC -std=c99 -Wall -g -pthread -I../ldk-net ../ldk-net/ldk_net.c -c -o ldk_net.o
if [ "$2" = "true" ]; then
g++ $LOCAL_CFLAGS -std=c++11 -Wall -g -pthread -DREAL_NET -I../ldk-net ldk_net.o demo.cpp target/debug/libldk.a -ldl -lm
if [ -x "`which valgrind`" -a "$(uname -m)" != "ppc64le" ]; then
valgrind --error-exitcode=4 --memcheck:leak-check=full --show-leak-kinds=all ./a.out
echo
else
echo "WARNING: Please install valgrind for more testing"
./a.out
fi
fi


# Test a statically-linked C++ version, tracking the resulting binary size and runtime
# across debug, LTO, and cross-language LTO builds (using the same compiler each time).
if [ "$2" = "true" ]; then
clang++ $LOCAL_CFLAGS -std=c++11 demo.cpp target/debug/libldk.a -ldl
strip ./a.out
time ./a.out
echo " C++ Bin size and runtime w/o optimization:"
ls -lha a.out
else
echo "Skipping tests!"
fi

function REALLY_PIN_CC {
Expand Down
Loading