github: ci: add tests
authorÁlvaro Fernández Rojas <noltari@gmail.com>
Tue, 11 Nov 2025 07:47:54 +0000 (08:47 +0100)
committerÁlvaro Fernández Rojas <noltari@gmail.com>
Tue, 11 Nov 2025 13:26:31 +0000 (14:26 +0100)
Build libubox with UNIT_TESTING and execute tests.

Link: https://github.com/openwrt/libubox/pull/27
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
.github/workflows/ci.yml

index 21a0d4fb9b3e8429bcbc8194ec734ba8c9dd5c09..4aa0b2684500eb5aa747f9ced738e429b7ced49b 100644 (file)
@@ -62,6 +62,7 @@ jobs:
       - name: Prepare build
         run: |
           mkdir -p ${GITHUB_WORKSPACE}/build
+          mkdir -p ${GITHUB_WORKSPACE}/depends/lua
 
       - name: Build json-c
         working-directory: depends/json-c
@@ -75,13 +76,13 @@ jobs:
           make install
 
       - name: Build lua
+        working-directory: depends/lua
         run: |
-          mkdir -p depends/lua
           wget -qO- https://www.lua.org/ftp/lua-${{ env.LUA_VERSION }}.tar.gz | \
-            tar zxvf - -C depends/lua --strip-components=1
-          sed -i '/#define LUA_USE_READLINE/d' depends/lua/src/luaconf.h
-          sed -i 's/ -lreadline -lhistory -lncurses//g' depends/lua/src/Makefile
-          make -C depends/lua linux install \
+            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 \
             CC=${{ matrix.gcc }} \
             INSTALL_TOP=${GITHUB_WORKSPACE}/build
 
@@ -157,3 +158,60 @@ jobs:
           echo "| :---: | :---: | :---: | :---: | :---: |" >> $GITHUB_STEP_SUMMARY
           echo "| basic | ${size_aarch64_basic_so} | ${size_arm_basic_so} | ${size_mips_basic_so} | ${size_x86_64_basic_so} |" >> $GITHUB_STEP_SUMMARY
           echo "| full | ${size_aarch64_full_so} | ${size_arm_full_so} | ${size_mips_full_so} | ${size_x86_64_full_so} |" >> $GITHUB_STEP_SUMMARY
+
+  tests:
+    name: Tests
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout libubox
+        uses: actions/checkout@v5
+
+      - name: Checkout json-c
+        uses: actions/checkout@v5
+        with:
+          repository: json-c/json-c
+          path: depends/json-c
+
+      - 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
+
+      - 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  \
+            --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
+        run: |
+          cmake \
+            -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \
+            -DBUILD_LUA=ON \
+            -DBUILD_EXAMPLES=ON \
+            -DUNIT_TESTING=ON \
+            -DLUAPATH=${GITHUB_WORKSPACE}/build/lib/lua
+          make
+
+      - name: Execute tests
+        run: |
+          make test CTEST_OUTPUT_ON_FAILURE=1