summaryrefslogtreecommitdiffstats
path: root/.github/workflows/vtest.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/vtest.yml')
-rw-r--r--.github/workflows/vtest.yml49
1 files changed, 29 insertions, 20 deletions
diff --git a/.github/workflows/vtest.yml b/.github/workflows/vtest.yml
index d0e4ec3..284bff7 100644
--- a/.github/workflows/vtest.yml
+++ b/.github/workflows/vtest.yml
@@ -42,13 +42,18 @@ jobs:
# Configure a short TMPDIR to prevent failures due to long unix socket
# paths.
TMPDIR: /tmp
- # Force ASAN output into asan.log to make the output more readable.
- ASAN_OPTIONS: log_path=asan.log
OT_CPP_VERSION: 1.6.0
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 100
+
+ - name: Setup coredumps
+ if: ${{ startsWith(matrix.os, 'ubuntu-') }}
+ run: |
+ sudo sysctl -w fs.suid_dumpable=1
+ sudo sysctl kernel.core_pattern=/tmp/core.%h.%e.%t
+
#
# Github Action cache key cannot contain comma, so we calculate it based on job name
#
@@ -57,17 +62,6 @@ jobs:
run: |
echo "key=$(echo ${{ matrix.name }} | sha256sum | awk '{print $1}')" >> $GITHUB_OUTPUT
-
-#
-# temporary hack
-# should be revisited after https://github.com/actions/runner-images/issues/9491 is resolved
-#
-
- - name: Setup enthropy
- if: ${{ startsWith(matrix.os, 'ubuntu-') }}
- run: |
- sudo sysctl vm.mmap_rnd_bits=28
-
- name: Cache SSL libs
if: ${{ matrix.ssl && matrix.ssl != 'stock' && matrix.ssl != 'BORINGSSL=yes' && matrix.ssl != 'QUICTLS=yes' }}
id: cache_ssl
@@ -92,7 +86,8 @@ jobs:
libpcre2-dev \
libsystemd-dev \
ninja-build \
- socat
+ socat \
+ gdb
- name: Install brew dependencies
if: ${{ startsWith(matrix.os, 'macos-') }}
run: |
@@ -123,7 +118,7 @@ jobs:
ERR=1 \
TARGET=${{ matrix.TARGET }} \
CC=${{ matrix.CC }} \
- DEBUG="-DDEBUG_STRICT -DDEBUG_MEMORY_POOLS -DDEBUG_POOL_INTEGRITY" \
+ DEBUG="-DDEBUG_POOL_INTEGRITY" \
${{ join(matrix.FLAGS, ' ') }} \
ADDLIB="-Wl,-rpath,/usr/local/lib/ -Wl,-rpath,$HOME/opt/lib/"
sudo make install
@@ -150,11 +145,16 @@ jobs:
# This is required for macOS which does not actually allow to increase
# the '-n' soft limit to the hard limit, thus failing to run.
ulimit -n 65536
+ ulimit -c unlimited
make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel
- name: Config syntax check memleak smoke testing
if: ${{ contains(matrix.name, 'ASAN') }}
run: |
- ./haproxy -f .github/h2spec.config -c
+ ./haproxy -dI -f .github/h2spec.config -c
+ ./haproxy -dI -f examples/content-sw-sample.cfg -c
+ ./haproxy -dI -f examples/option-http_proxy.cfg -c
+ ./haproxy -dI -f examples/quick-test.cfg -c
+ ./haproxy -dI -f examples/transparent_proxy.cfg -c
- name: Show VTest results
if: ${{ failure() && steps.vtest.outcome == 'failure' }}
run: |
@@ -164,10 +164,19 @@ jobs:
cat $folder/LOG
echo "::endgroup::"
done
+ exit 1
+
+ - name: Show coredumps
+ if: ${{ failure() && steps.vtest.outcome == 'failure' }}
+ run: |
+ failed=false
shopt -s nullglob
- for asan in asan.log*; do
- echo "::group::$asan"
- cat $asan
+ for file in /tmp/core.*; do
+ failed=true
+ printf "::group::"
+ gdb -ex 'thread apply all bt full' ./haproxy $file
echo "::endgroup::"
done
- exit 1
+ if [ "$failed" = true ]; then
+ exit 1;
+ fi