From 52ee467c7eb40e404bafdde34e9a280430610502 Mon Sep 17 00:00:00 2001 From: Caio Casimiro Date: Thu, 7 Sep 2023 12:23:23 +0100 Subject: [PATCH] wip --- .github/workflows/ci.yml | 6 ++++-- .github/workflows/job-build-tests.yml | 8 ++++++++ .github/workflows/job-unit-tests.yml | 6 +++--- Makefile | 1 + assets/release/Dockerfiles/Dockerfile.ubuntu-22.04 | 4 +++- src/wasm/ngx_wasm_ops.c | 2 +- src/wasm/wrt/ngx_wrt_wasmer.c | 6 ++++++ 7 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3bf96a730..e326d3d95 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -276,9 +276,11 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - cc: [clang-15, gcc-12] + # cc: [clang-15, gcc-12] + cc: [clang-15] ngx: [1.25.2] - runtime: [wasmtime, wasmer, v8] + # runtime: [wasmtime, wasmer, v8] + runtime: [wasmer] wasmtime: [12.0.1] wasmer: [3.1.1] v8: [11.4.183.23] diff --git a/.github/workflows/job-build-tests.yml b/.github/workflows/job-build-tests.yml index a0fdb5c0e..2721412b0 100644 --- a/.github/workflows/job-build-tests.yml +++ b/.github/workflows/job-build-tests.yml @@ -51,6 +51,14 @@ jobs: #if: ${{ false }} runs-on: ${{ inputs.os }} steps: + - name: 'Setup deps - apt-get gcc' + if: ${{ !env.ACT && contains(inputs.cc, 'gcc') }} + run: sudo apt-get update && sudo apt-get install -y ${CC} libstdc++-${CC#*-}-dev lcov + + - name: 'Setup deps - apt-get clang' + if: ${{ !env.ACT && contains(inputs.cc, 'clang') }} + run: sudo apt-get update && sudo apt-get install -y ${CC} lcov + - uses: actions/checkout@v3 - name: 'Setup cache - work/ dir' uses: actions/cache@v3 diff --git a/.github/workflows/job-unit-tests.yml b/.github/workflows/job-unit-tests.yml index 62b3b4c9a..a08ed1573 100644 --- a/.github/workflows/job-unit-tests.yml +++ b/.github/workflows/job-unit-tests.yml @@ -118,9 +118,9 @@ jobs: id: lcov if: ${{ !env.ACT && inputs.coverage }} run: | - lcov --capture --directory work/buildroot --output-file lcov.info - lcov --remove lcov.info "*/ngx_wasm_module/src/common/debug/*" --output-file lcov.info - lcov --extract lcov.info "*/ngx_wasm_module/src/*" --output-file lcov.info + lcov --gcov-tool gcov-${CC#*-} --capture --directory work/buildroot --output-file lcov.info + lcov --gcov-tool gcov-${CC#*-} --remove lcov.info "*/ngx_wasm_module/src/common/debug/*" --output-file lcov.info + lcov --gcov-tool gcov-${CC#*-} --extract lcov.info "*/ngx_wasm_module/src/*" --output-file lcov.info name="unit" if [ -n "${{ inputs.openresty }}" ]; then diff --git a/Makefile b/Makefile index 1203b1d12..13abeda87 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,7 @@ todo: .PHONY: act-build act-build: @docker build \ + --load \ -t wasmx-build-ubuntu \ -f ./assets/release/Dockerfiles/Dockerfile.ubuntu-22.04 \ ./assets/release/Dockerfiles diff --git a/assets/release/Dockerfiles/Dockerfile.ubuntu-22.04 b/assets/release/Dockerfiles/Dockerfile.ubuntu-22.04 index 2f6bfc386..7b3b64241 100644 --- a/assets/release/Dockerfiles/Dockerfile.ubuntu-22.04 +++ b/assets/release/Dockerfiles/Dockerfile.ubuntu-22.04 @@ -16,7 +16,7 @@ RUN apt-get update && \ git \ pkg-config \ libglib2.0-dev \ - clang \ + clang-15 \ curl \ binfmt-support \ qemu-user-static @@ -26,6 +26,7 @@ ENV PATH $CARGO_HOME/bin:$PATH RUN mkdir -p "$CARGO_HOME" && mkdir -p "$RUSTUP_HOME" && \ curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable && \ chmod -R a=rwX $CARGO_HOME $RUSTUP_HOME +RUN rustup target add wasm32-wasi && rustup target add wasm32-unknown-unknown RUN /bin/bash -c 'echo $(uname -m) > /TG_ARCH || : ; \ [[ $(cat /TG_ARCH) == "x86_64" ]] && echo "amd64" > /TG_ARCH || : ; \ @@ -43,6 +44,7 @@ RUN apt-get install -y \ valgrind \ nodejs \ gcovr \ + lcov \ unzip \ sudo && \ curl -sLO https://golang.google.cn/dl/go${GOLANG_VERSION}.linux-$(cat /TG_ARCH).tar.gz && \ diff --git a/src/wasm/ngx_wasm_ops.c b/src/wasm/ngx_wasm_ops.c index e7d59153f..a11bc5f70 100644 --- a/src/wasm/ngx_wasm_ops.c +++ b/src/wasm/ngx_wasm_ops.c @@ -126,7 +126,7 @@ ngx_wasm_ops_plan_load(ngx_wasm_ops_plan_t *plan, ngx_log_t *log) ngx_uint_t *fid; ngx_array_t *ids; ngx_wasm_op_t *op; - ngx_wasm_ops_pipeline_t *pipeline; + ngx_wasm_ops_pipeline_t *pipeline = NULL; dd("enter"); diff --git a/src/wasm/wrt/ngx_wrt_wasmer.c b/src/wasm/wrt/ngx_wrt_wasmer.c index 05aed26b3..5bb397555 100644 --- a/src/wasm/wrt/ngx_wrt_wasmer.c +++ b/src/wasm/wrt/ngx_wrt_wasmer.c @@ -515,7 +515,9 @@ ngx_wasmer_init_instance(ngx_wrt_instance_t *instance, ngx_wrt_store_t *store, ngx_wrt_module_t *module, ngx_pool_t *pool, ngx_wrt_err_t *err) { size_t i, j; +#if (NGX_DEBUG) ngx_uint_t nimports = 0; +#endif ngx_wrt_import_t *import; ngx_wasmer_hfunc_ctx_t *hctx, *hctxs = NULL; wasm_func_t *func; @@ -558,7 +560,9 @@ ngx_wasmer_init_instance(ngx_wrt_instance_t *instance, ngx_wrt_store_t *store, instance->env.data[i] = (wasm_extern_t *) wasmer_named_extern_unwrap( instance->wasi_imports.data[j]); +#if (NGX_DEBUG) nimports++; +#endif break; } } @@ -576,7 +580,9 @@ ngx_wasmer_init_instance(ngx_wrt_instance_t *instance, ngx_wrt_store_t *store, hctx, NULL); instance->env.data[i] = wasm_func_as_extern(func); +#if (NGX_DEBUG) nimports++; +#endif break; default: