commit b33f760783fc91d4af012736118cd9ec6abfef29
parent 3a9af1cb8e23c90149550dd15d91e064882bfffb
Author: Ben Noordhuis <info@bnoordhuis.nl>
Date: Sun, 3 Mar 2024 14:14:23 +0100
Add github CI tests
- disable `isatty()` test in `test_os()`
- add `.github/workflows/ci.yml` with 8 targets
Diffstat:
2 files changed, 143 insertions(+), 1 deletion(-)
diff --git a/quickjs/.github/workflows/ci.yml b/quickjs/.github/workflows/ci.yml
@@ -0,0 +1,141 @@
+name: ci
+
+on:
+ pull_request:
+ paths:
+ - '**'
+ - '!.gitignore'
+ - '!LICENSE'
+ - '!TODO'
+ - '!doc/**'
+ - '!examples/**'
+ - '.github/workflows/ci.yml'
+ push:
+ branches:
+ - master
+
+jobs:
+ linux:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: build
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y
+ - name: stats
+ run: |
+ ./qjs -qd
+ - name: test
+ run: |
+ make test
+ - name: microbench
+ run: |
+ make microbench
+
+ linux-asan:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: build
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_ASAN=y
+ - name: test
+ env:
+ ASAN_OPTIONS: halt_on_error=1
+ run: |
+ make CONFIG_ASAN=y test
+
+ linux-msan:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: build
+ env:
+ CC: clang
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_MSAN=y CONFIG_CLANG=y
+ - name: test
+ env:
+ MSAN_OPTIONS: halt_on_error=1
+ run: |
+ make CONFIG_MSAN=y CONFIG_CLANG=y test
+
+ linux-ubsan:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+ - name: build
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_UBSAN=y
+ - name: test
+ env:
+ UBSAN_OPTIONS: halt_on_error=1
+ run: |
+ make CONFIG_UBSAN=y test
+
+ macos:
+ runs-on: macos-latest
+ strategy:
+ fail-fast: false
+ steps:
+ - uses: actions/checkout@v3
+ - name: build
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y
+ - name: stats
+ run: |
+ ./qjs -qd
+ - name: test
+ run: |
+ make test
+
+ macos-asan:
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: build
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_ASAN=y
+ - name: test
+ env:
+ ASAN_OPTIONS: halt_on_error=1
+ run: |
+ make CONFIG_ASAN=y test
+
+ macos-ubsan:
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: build
+ run: |
+ make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_UBSAN=y
+ - name: test
+ env:
+ UBSAN_OPTIONS: halt_on_error=1
+ run: |
+ make CONFIG_UBSAN=y test
+
+ freebsd:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: build + test
+ uses: vmactions/freebsd-vm@v1
+ with:
+ usesh: true
+ prepare: |
+ pkg install -y gmake
+ run: |
+ gmake
+ ./qjs -qd
+ gmake test
diff --git a/quickjs/tests/test_std.js b/quickjs/tests/test_std.js
@@ -144,7 +144,8 @@ function test_os()
{
var fd, fpath, fname, fdir, buf, buf2, i, files, err, fdate, st, link_path;
- assert(os.isatty(0));
+ // XXX(bnoordhuis) disabled because stdio is not a tty on CI
+ //assert(os.isatty(0));
fdir = "test_tmp_dir";
fname = "tmp_file.txt";