]> git.kaiwu.me - quickjs.git/commitdiff
Add github CI tests
authorBen Noordhuis <info@bnoordhuis.nl>
Sun, 3 Mar 2024 13:14:23 +0000 (14:14 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Sun, 3 Mar 2024 13:14:23 +0000 (14:14 +0100)
- disable `isatty()` test in `test_os()`
- add `.github/workflows/ci.yml` with 8 targets

.github/workflows/ci.yml [new file with mode: 0644]
tests/test_std.js

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644 (file)
index 0000000..7565477
--- /dev/null
@@ -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
index 562c96cab4bcc51cb52032d08d6a623d8ae5d264..86a242c0f597e91b098c478cf4af6e3b8c28fd0b 100644 (file)
@@ -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";