mirror of
https://git.openwrt.org/project/ubus.git
synced 2025-12-20 00:51:28 +08:00
github: ci: add tests
Build ubus with UNIT_TESTING and execute tests. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
77
.github/workflows/ci.yml
vendored
77
.github/workflows/ci.yml
vendored
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user