name: compat53-tests on: push: branches: ["master"] pull_request: jobs: compat53-test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - luaVersion: "lua=5.1" compiler: gcc external: false - luaVersion: "lua=5.1" compiler: gcc external: true - luaVersion: "lua=5.1" compiler: g++ external: true - luaVersion: "lua=5.1" compiler: clang external: false - luaVersion: "luajit=@v2.1 --compat=none" compiler: gcc external: false - luaVersion: "luajit=@v2.1 --compat=none" compiler: gcc external: true - luaVersion: "luajit=@v2.1 --compat=all" compiler: gcc external: false - luaVersion: "luajit=@v2.1 --compat=all" compiler: gcc external: true - luaVersion: "lua=5.2" compiler: gcc external: false - luaVersion: "lua=5.2" compiler: gcc external: true - luaVersion: "lua=5.2" compiler: g++ external: true steps: - uses: actions/checkout@v2 - name: install Lua run: | sudo apt install libreadline-dev pip3 install --user hererocks ~/.local/bin/hererocks old --${{ matrix.luaVersion }} test -e old/bin/lua || (cd old/bin && ln -s luajit* lua) ~/.local/bin/hererocks new --lua=5.3 - name: compile C modules run: | export CC=${{ matrix.compiler }} CFLAGS="-Wall -Wextra -Ic-api -O2 -fPIC" export DEF="" SRC="" if [ "${{ matrix.external }}" = true ]; then DEF="-DCOMPAT53_PREFIX=compat53" SRC="c-api/compat-5.3.c"; fi ${CC} ${CFLAGS} -Iold/include ${DEF} -shared -o old/testmod.so tests/testmod.c ${SRC} ${CC} ${CFLAGS} -Inew/include ${DEF} -shared -o new/testmod.so tests/testmod.c ${SRC} ${CC} ${CFLAGS} -Iold/include ${DEF} -shared -o old/compat53.so ltablib.c lutf8lib.c lstrlib.c liolib.c ${SRC} - name: run test scripts run: | (cd old && bin/lua ../tests/test.lua) > old.txt (cd new && bin/lua ../tests/test.lua) > new.txt - name: compare script output run: diff old.txt new.txt || true