Merge pull request #28125 from taosdata/test/td-32317

test/td-32317: new c language samples in the documentation are integrated into ci
This commit is contained in:
Alex Duan 2024-09-30 15:55:34 +08:00 committed by GitHub
commit 5a75233f75
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 228 additions and 0 deletions

View File

@ -0,0 +1,101 @@
PROJECT(TDengine)
IF (TD_LINUX)
INCLUDE_DIRECTORIES(. ${TD_SOURCE_DIR}/src/inc ${TD_SOURCE_DIR}/src/client/inc ${TD_SOURCE_DIR}/inc)
AUX_SOURCE_DIRECTORY(. SRC)
add_executable(docs_connect_example "")
add_executable(docs_create_db_demo "")
add_executable(docs_insert_data_demo "")
add_executable(docs_query_data_demo "")
add_executable(docs_with_reqid_demo "")
add_executable(docs_sml_insert_demo "")
add_executable(docs_stmt_insert_demo "")
add_executable(docs_tmq_demo "")
target_sources(docs_connect_example
PRIVATE
"connect_example.c"
)
target_sources(docs_create_db_demo
PRIVATE
"create_db_demo.c"
)
target_sources(docs_insert_data_demo
PRIVATE
"insert_data_demo.c"
)
target_sources(docs_query_data_demo
PRIVATE
"query_data_demo.c"
)
target_sources(docs_with_reqid_demo
PRIVATE
"with_reqid_demo.c"
)
target_sources(docs_sml_insert_demo
PRIVATE
"sml_insert_demo.c"
)
target_sources(docs_stmt_insert_demo
PRIVATE
"stmt_insert_demo.c"
)
target_sources(docs_tmq_demo
PRIVATE
"tmq_demo.c"
)
target_link_libraries(docs_connect_example
taos
)
target_link_libraries(docs_create_db_demo
taos
)
target_link_libraries(docs_insert_data_demo
taos
)
target_link_libraries(docs_query_data_demo
taos
)
target_link_libraries(docs_with_reqid_demo
taos
)
target_link_libraries(docs_sml_insert_demo
taos
)
target_link_libraries(docs_stmt_insert_demo
taos
)
target_link_libraries(docs_tmq_demo
taos
pthread
)
SET_TARGET_PROPERTIES(docs_connect_example PROPERTIES OUTPUT_NAME docs_connect_example)
SET_TARGET_PROPERTIES(docs_create_db_demo PROPERTIES OUTPUT_NAME docs_create_db_demo)
SET_TARGET_PROPERTIES(docs_insert_data_demo PROPERTIES OUTPUT_NAME docs_insert_data_demo)
SET_TARGET_PROPERTIES(docs_query_data_demo PROPERTIES OUTPUT_NAME docs_query_data_demo)
SET_TARGET_PROPERTIES(docs_with_reqid_demo PROPERTIES OUTPUT_NAME docs_with_reqid_demo)
SET_TARGET_PROPERTIES(docs_sml_insert_demo PROPERTIES OUTPUT_NAME docs_sml_insert_demo)
SET_TARGET_PROPERTIES(docs_stmt_insert_demo PROPERTIES OUTPUT_NAME docs_stmt_insert_demo)
SET_TARGET_PROPERTIES(docs_tmq_demo PROPERTIES OUTPUT_NAME docs_tmq_demo)
ENDIF ()
IF (TD_DARWIN)
INCLUDE_DIRECTORIES(. ${TD_SOURCE_DIR}/src/inc ${TD_SOURCE_DIR}/src/client/inc ${TD_SOURCE_DIR}/inc)
AUX_SOURCE_DIRECTORY(. SRC)
ENDIF ()

34
docs/examples/c/Makefile Normal file
View File

@ -0,0 +1,34 @@
# Makefile for building TDengine examples on TD Linux platform
INCLUDE_DIRS =
TARGETS = connect_example \
create_db_demo \
insert_data_demo \
query_data_demo \
with_reqid_demo \
sml_insert_demo \
stmt_insert_demo \
tmq_demo
SOURCES = connect_example.c \
create_db_demo.c \
insert_data_demo.c \
query_data_demo.c \
with_reqid_demo.c \
sml_insert_demo.c \
stmt_insert_demo.c \
tmq_demo.c
LIBS = -ltaos -lpthread
CFLAGS = -g
all: $(TARGETS)
$(TARGETS):
$(CC) $(CFLAGS) -o $@ $(wildcard $(@F).c) $(LIBS)
clean:
rm -f $(TARGETS)

View File

@ -0,0 +1,92 @@
#!/bin/bash
pgrep taosd || taosd >> /dev/null 2>&1 &
pgrep taosadapter || taosadapter >> /dev/null 2>&1 &
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
TEST_PATH="../../docs/examples/c"
echo "setting TEST_PATH: $TEST_PATH"
cd "${TEST_PATH}" || { echo -e "${RED}Failed to change directory to ${TEST_PATH}${NC}"; exit 1; }
LOG_FILE="docs-c-test-out.log"
> $LOG_FILE
make > "$LOG_FILE" 2>&1
if [ $? -eq 0 ]; then
echo -e "${GREEN}Make completed successfully.${NC}"
else
echo -e "${RED}Make failed. Check log file: $LOG_FILE${NC}"
cat "$LOG_FILE"
exit 1
fi
declare -a TEST_EXES=(
"connect_example"
"create_db_demo"
"insert_data_demo"
"query_data_demo"
"with_reqid_demo"
"stmt_insert_demo"
"tmq_demo"
"sml_insert_demo"
)
declare -a NEED_CLEAN=(
"true"
"false"
"false"
"false"
"false"
"false"
"false"
"true"
)
totalCases=0
totalFailed=0
totalSuccess=0
for i in "${!TEST_EXES[@]}"; do
TEST_EXE="${TEST_EXES[$i]}"
NEED_CLEAN_FLAG="${NEED_CLEAN[$i]}"
if [ "$NEED_CLEAN_FLAG" = "true" ]; then
echo "Cleaning database before executing $TEST_EXE..."
taos -s "drop database if exists power" >> $LOG_FILE 2>&1
fi
echo "Executing $TEST_EXE..."
./$TEST_EXE >> $LOG_FILE 2>&1
RESULT=$?
if [ "$RESULT" -eq 0 ]; then
totalSuccess=$((totalSuccess + 1))
echo "[$GREEN OK $NC] $TEST_EXE executed successfully."
else
totalFailed=$((totalFailed + 1))
echo "[$RED FAILED $NC] $TEST_EXE exited with code $RESULT."
fi
totalCases=$((totalCases + 1))
done
tail -n 40 $LOG_FILE
echo -e "\nTotal number of cases executed: $totalCases"
if [ "$totalSuccess" -gt "0" ]; then
echo -e "\n${GREEN} ### Total $totalSuccess C case(s) succeed! ### ${NC}"
fi
if [ "$totalFailed" -ne "0" ]; then
echo -e "\n${RED} ### Total $totalFailed C case(s) failed! ### ${NC}"
exit 1
fi
echo "All tests completed."

View File

@ -1555,6 +1555,7 @@
,,n,develop-test,python3 ./test.py -f 5-taos-tools/taosbenchmark/telnet_tcp.py -R
#docs-examples test
,,n,docs-examples-test,bash c.sh
,,n,docs-examples-test,bash python.sh
,,n,docs-examples-test,bash node.sh
,,n,docs-examples-test,bash csharp.sh