test script modifications

This commit is contained in:
Joseph Henry
2016-08-29 17:00:22 -07:00
parent 30fff57b2f
commit a8262fd6c0
4 changed files with 49 additions and 19 deletions

View File

@@ -78,14 +78,21 @@ android_jni_lib:
mv -f $(INT)/android/android_jni_lib/java/libs/* $(BUILD)/android_jni_lib mv -f $(INT)/android/android_jni_lib/java/libs/* $(BUILD)/android_jni_lib
cp -R $(BUILD)/android_jni_lib/* $(INT)/android/example_app/app/src/main/jniLibs cp -R $(BUILD)/android_jni_lib/* $(INT)/android/example_app/app/src/main/jniLibs
lwip:
make -f make-liblwip.mk $(LWIP_FLAGS)
# Builds libztlinux.so (full bundle)
linux_shared_lib:
linux_intercept:
# Use gcc not clang to build standalone intercept library since gcc is typically used for libc and we want to ensure maximal ABI compatibility
cd src ; gcc $(DEFS) -O2 -Wall -std=c99 -fPIC -DVERBOSE -D_GNU_SOURCE -DSDK_INTERCEPT -I. -I../$(ZT1)/node -nostdlib -shared -o ../$(BUILD)/libztintercept.so SDK_Sockets.c SDK_Intercept.c SDK_Debug.c SDK_RPC.c -ldl
# Build a dynamically-loadable library # Build a dynamically-loadable library
linux_shared_lib: $(OBJS) linux_service_and_intercept: lwip linux_intercept $(OBJS)
mkdir -p $(BUILD)/linux_shared_lib mkdir -p $(BUILD)/linux_intercept
$(CXX) $(CXXFLAGS) $(LDFLAGS) $(DEFS) -DSDK -DZT_ONE_NO_ROOT_CHECK -Iext/lwip/src/include -Iext/lwip/src/include/ipv4 -Iext/lwip/src/include/ipv6 -I$(ZT1)/osdep -I$(ZT1)/node -Isrc -o $(BUILD)/zerotier-sdk-service $(OBJS) $(ZT1)/service/OneService.cpp src/SDK_EthernetTap.cpp src/SDK_Proxy.cpp $(ZT1)/one.cpp -x c src/SDK_RPC.c $(LDLIBS) -ldl $(CXX) $(CXXFLAGS) $(LDFLAGS) $(DEFS) -DSDK -DZT_ONE_NO_ROOT_CHECK -Iext/lwip/src/include -Iext/lwip/src/include/ipv4 -Iext/lwip/src/include/ipv6 -I$(ZT1)/osdep -I$(ZT1)/node -Isrc -o $(BUILD)/zerotier-sdk-service $(OBJS) $(ZT1)/service/OneService.cpp src/SDK_EthernetTap.cpp src/SDK_Proxy.cpp $(ZT1)/one.cpp -x c src/SDK_RPC.c $(LDLIBS) -ldl
# Build liblwip.so which must be placed in ZT home for zerotier-netcon-service to work # Build liblwip.so which must be placed in ZT home for zerotier-netcon-service to work
make -f make-liblwip.mk $(LWIP_FLAGS)
# Use gcc not clang to build standalone intercept library since gcc is typically used for libc and we want to ensure maximal ABI compatibility
cd src ; gcc $(DEFS) -O2 -Wall -std=c99 -fPIC -DVERBOSE -D_GNU_SOURCE -DSDK_INTERCEPT -I. -I../$(ZT1)/node -nostdlib -shared -o ../$(BUILD)/linux_shared_lib/libztintercept.so SDK_Sockets.c SDK_Intercept.c SDK_Debug.c SDK_RPC.c -ldl
ln -sf zerotier-sdk-service $(BUILD)/zerotier-cli ln -sf zerotier-sdk-service $(BUILD)/zerotier-cli
ln -sf zerotier-sdk-service $(BUILD)/zerotier-idtool ln -sf zerotier-sdk-service $(BUILD)/zerotier-idtool
@@ -144,10 +151,10 @@ check:
# Tests # Tests
TEST_OBJDIR := $(BUILD)/tests TEST_OBJDIR := $(BUILD)/tests
TEST_SOURCES := $(wildcard tests/*.c) TEST_SOURCES := $(wildcard tests/api_test/*.c)
TEST_TARGETS := $(addprefix $(BUILD)/tests/$(OSTYPE).,$(notdir $(TEST_SOURCES:.c=.out))) TEST_TARGETS := $(addprefix $(BUILD)/tests/$(OSTYPE).,$(notdir $(TEST_SOURCES:.c=.out)))
$(BUILD)/tests/$(OSTYPE).%.out: tests/%.c $(BUILD)/tests/$(OSTYPE).%.out: tests/api_test/%.c
-$(CC) $(CC_FLAGS) -o $@ $< -$(CC) $(CC_FLAGS) -o $@ $<
$(TEST_OBJDIR): $(TEST_OBJDIR):
@@ -156,12 +163,31 @@ $(TEST_OBJDIR):
tests: $(TEST_OBJDIR) $(TEST_TARGETS) tests: $(TEST_OBJDIR) $(TEST_TARGETS)
mkdir -p $(BUILD)/tests; mkdir -p $(BUILD)/tests;
clean: tests: $(TEST_OBJDIR) $(TEST_TARGETS) linux_service_and_intercept
mkdir -p $(BUILD)/tests;
mkdir -p build/tests/zerotier
cp tests/api_test/test.sh $(BUILD)/tests/test.sh
cp tests/api_test/servers.sh $(BUILD)/tests/servers.sh
cp tests/api_test/clients.sh $(BUILD)/tests/clients.sh
cp tests/cleanup.sh $(BUILD)/tests/cleanup.sh
cp $(BUILD)/lwip/liblwip.so $(BUILD)/tests/zerotier/liblwip.so
clean_android:
# android JNI lib project
test -s /usr/bin/javac || { echo "Javac not found"; exit 1; }
-cd $(INT)/android/android_jni_lib/proj; ./gradlew clean
-rm -rf $(INT)/android/android_jni_lib/proj/build
# example android app project
-cd $(INT)/android/example_app; ./gradlew clean
clean_basic:
-rm -rf $(BUILD)/* -rm -rf $(BUILD)/*
-rm -rf $(INT)/Unity3D/Assets/Plugins/* -rm -rf $(INT)/Unity3D/Assets/Plugins/*
-rm -rf zerotier-cli zerotier-idtool -rm -rf zerotier-cli zerotier-idtool
-find . -type f \( -name 'zerotier-one' -o -name 'zerotier-sdk-service' \) -delete -find . -type f \( -name 'zerotier-one' -o -name 'zerotier-sdk-service' \) -delete
-find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' \) -delete -find . -type f \( -name '*.o' -o -name '*.so' -o -name '*.o.d' -o -name '*.out' -o -name '*.log' -o -name '*.dSYM' \) -delete
# Remove junk generated by Android builds
-cd $(INT)/android/android_jni_lib/proj; ./gradlew clean clean: clean_basic clean_android
-rm -rf $(INT)/android/android_jni_lib/proj/build
clean_for_production:
-find . -type f \( -name '*.identity'\) -delete

View File

@@ -113,7 +113,7 @@ int (*realclose)(CLOSE_SIG);
// This is used when you're dynamically-linking our library into your application at runtime // This is used when you're dynamically-linking our library into your application at runtime
if (!api_netpath) { if (!api_netpath) {
api_netpath = getenv("ZT_NC_NETWORK"); api_netpath = getenv("ZT_NC_NETWORK");
dwr(MSG_DEBUG, "$ZT_NC_NETWORK = %s\n", api_netpath); dwr(MSG_DEBUG, "$ZT_NC_NETWORK(len=%d) = %s\n", strlen(api_netpath), api_netpath);
} }
#endif #endif
dwr(MSG_DEBUG_EXTRA, "zt_init_rpc(): api_netpath = %s\n", api_netpath); dwr(MSG_DEBUG_EXTRA, "zt_init_rpc(): api_netpath = %s\n", api_netpath);
@@ -567,6 +567,7 @@ int (*realclose)(CLOSE_SIG);
rpc_st.sockfd = sockfd; rpc_st.sockfd = sockfd;
#if defined(__linux__) #if defined(__linux__)
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
// TODO: Candidate for removal
rpc_st.__tid = 5;//syscall(SYS_gettid); rpc_st.__tid = 5;//syscall(SYS_gettid);
#else #else
rpc_st.__tid = gettid(); // dummy value rpc_st.__tid = gettid(); // dummy value

View File

@@ -4,17 +4,20 @@ echo "\n\n\n\nStarting server(s)"
# test.sh [udp|tcp|all] [nwid] # test.sh [udp|tcp|all] [nwid]
TEST_EXECUTABLE_PATH="build/tests" TEST_EXECUTABLE_PATH="build/tests"
LIB_PATH="./build/libztintercept.so"
PLATFORM="Linux"
protocol=$1 protocol=$1
NWID=$2 NWID=$2
ZT_HOME_PATH=$3
HOME_DIR=$(pwd)/$TEST_EXECUTABLE_PATH HOME_DIR=$(pwd)/$TEST_EXECUTABLE_PATH
ZT_HOME_PATH=$(pwd)/$TEST_EXECUTABLE_PATH/zerotier
BUILD_PATH=$(pwd)/build BUILD_PATH=$(pwd)/build
TEST_PATH=$(pwd)/build/tests TEST_PATH=$(pwd)/build/tests
localAddr="127.0.0.1" localAddr="127.0.0.1"
export ZT_NC_NETWORK=$ZT_HOME_PATH/nc_$NWID export ZT_NC_NETWORK=$ZT_HOME_PATH/nc_$NWID
export DYLD_LIBRARY_PATH=.$HOME_DIR/libztintercept.so export LD_PRELOAD=$LIB_PATH
echo "network = " $NWID echo "network = " $NWID
echo "protocol = " $protocol echo "protocol = " $protocol
@@ -34,12 +37,12 @@ if [ $protocol="tcp" ]; then
echo "Starting TCP test..." echo "Starting TCP test..."
random_tcp_server_port=$RANDOM random_tcp_server_port=$RANDOM
echo $random_tcp_server_port > $TEST_EXECUTABLE_PATH/tcp_server.port echo $random_tcp_server_port > $TEST_EXECUTABLE_PATH/tcp_server.port
./$TEST_EXECUTABLE_PATH/Darwin.tcp_server.out $random_tcp_server_port & ./$TEST_EXECUTABLE_PATH/$PLATFORM.tcp_server.out $random_tcp_server_port &
tcp_server_pid=$! tcp_server_pid=$!
# echo "TCP SERVER AT = " $localAddr ":" $random_tcp_server_port # echo "TCP SERVER AT = " $localAddr ":" $random_tcp_server_port
# sleep 3 # sleep 3
# ./$TEST_EXECUTABLE_PATH/Darwin.tcp_client.out $localAddr $random_tcp_server_port & # ./$TEST_EXECUTABLE_PATH/$PLATFORM.tcp_client.out $localAddr $random_tcp_server_port &
# tcp_client_pid=$! # tcp_client_pid=$!
fi fi

View File

@@ -5,6 +5,6 @@ echo "Performing unit tests..."
chmod 755 build/tests/servers.sh chmod 755 build/tests/servers.sh
chmod 755 build/tests/clients.sh chmod 755 build/tests/clients.sh
./build/tests/servers.sh $1 $2 & ./servers.sh $1 $2 $3 &
sleep 3 sleep 3
./build/tests/clients.sh $1 $2 & ./clients.sh $1 $2 $3 &