summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas2025-11-14 07:50:24 +0000
committerÁlvaro Fernández Rojas2025-11-14 08:55:05 +0000
commitc4d7aff97bbe3af36af969564a02bf928932c4f8 (patch)
tree4107ca494dbe32c8985bbb61235b0b4b13682556
parent966c82b2197c139e2b199254a243214c3a803879 (diff)
downloadubus-c4d7aff97bbe3af36af969564a02bf928932c4f8.tar.gz
github: ci: add tests
Build ubus with UNIT_TESTING and execute tests. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-rw-r--r--.github/workflows/ci.yml77
-rw-r--r--tests/CMakeLists.txt6
2 files changed, 81 insertions, 2 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 3c7600d..ce72df2 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -153,3 +153,80 @@ jobs:
echo "| :---: | :---: | :---: | :---: | :---: |" >> $GITHUB_STEP_SUMMARY
echo "| basic | ${size_aarch64_basic} | ${size_arm_basic} | ${size_mips_basic} | ${size_x86_64_basic} |" >> $GITHUB_STEP_SUMMARY
echo "| full | ${size_aarch64_full} | ${size_arm_full} | ${size_mips_full} | ${size_x86_64_full} |" >> $GITHUB_STEP_SUMMARY
+
+ tests:
+ name: Tests
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout ubus
+ uses: actions/checkout@v5
+
+ - name: Checkout json-c
+ uses: actions/checkout@v5
+ with:
+ repository: json-c/json-c
+ path: depends/json-c
+
+ - name: Checkout libubox
+ uses: actions/checkout@v5
+ with:
+ repository: openwrt/libubox
+ path: depends/libubox
+
+ - name: Install dependencies
+ run: |
+ sudo apt update
+ sudo apt install valgrind
+
+ - name: Prepare build
+ run: |
+ mkdir -p ${GITHUB_WORKSPACE}/build
+ mkdir -p ${GITHUB_WORKSPACE}/depends/lua
+ echo "${GITHUB_WORKSPACE}/build/bin" >> $GITHUB_PATH
+
+ - name: Build json-c
+ working-directory: depends/json-c
+ run: |
+ cmake \
+ -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DDISABLE_EXTRA_LIBS=ON \
+ -DBUILD_TESTING=OFF \
+ --install-prefix ${GITHUB_WORKSPACE}/build
+ make
+ make install
+
+ - name: Build lua
+ working-directory: depends/lua
+ run: |
+ wget -qO- https://www.lua.org/ftp/lua-${{ env.LUA_VERSION }}.tar.gz | \
+ tar zxvf - --strip-components=1
+ sed -i '/#define LUA_USE_READLINE/d' src/luaconf.h
+ sed -i 's/ -lreadline -lhistory -lncurses//g' src/Makefile
+ make linux install \
+ INSTALL_TOP=${GITHUB_WORKSPACE}/build
+
+ - name: Build libubox
+ working-directory: depends/libubox
+ run: |
+ cmake \
+ -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
+ -DBUILD_LUA=ON \
+ -DBUILD_EXAMPLES=OFF \
+ -DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua \
+ --install-prefix ${GITHUB_WORKSPACE}/build
+ make
+ make install
+
+ - name: Build ubus
+ run: |
+ cmake \
+ -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
+ -DBUILD_LUA=ON \
+ -DUNIT_TESTING=ON \
+ -DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua
+ make
+
+ - name: Test ubus
+ run: |
+ make test CTEST_OUTPUT_ON_FAILURE=1
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 5549a40..f0900e9 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,14 +1,16 @@
ADD_SUBDIRECTORY(cram)
+FIND_LIBRARY(json_script_library NAMES json_script)
+
MACRO(ADD_UNIT_TEST name)
ADD_EXECUTABLE(${name} ${name}.c)
- TARGET_LINK_LIBRARIES(${name} ubox blobmsg_json json_script ${json})
+ TARGET_LINK_LIBRARIES(${name} ${ubox_library} ${blob_library} ${json_script_library} ${json})
TARGET_INCLUDE_DIRECTORIES(${name} PRIVATE ${PROJECT_SOURCE_DIR})
ENDMACRO(ADD_UNIT_TEST)
MACRO(ADD_UNIT_TEST_CPP name)
ADD_EXECUTABLE(${name} ${name}.cpp)
- TARGET_LINK_LIBRARIES(${name} ubox blobmsg_json json_script ${json})
+ TARGET_LINK_LIBRARIES(${name} ${ubox_library} ${blob_library} ${json_script_library} ${json})
TARGET_INCLUDE_DIRECTORIES(${name} PRIVATE ${PROJECT_SOURCE_DIR})
ENDMACRO(ADD_UNIT_TEST_CPP)