Skip to content

Removed configure~

Removed configure~ #18

Workflow file for this run

name: ASAN (AddressSanitizer & LeakSanitizer)
# Memory error and leak detection using AddressSanitizer and LeakSanitizer
# This workflow builds memtier_benchmark with sanitizers enabled and runs
# the full test suite to detect memory leaks and address errors.
on: [push, pull_request]
jobs:
test-with-sanitizers:
runs-on: ubuntu-latest
name: Memory leak detection (ASAN/LSAN)
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install build dependencies
run: |
sudo apt-get -qq update
sudo apt-get install -y \
build-essential \
autoconf \
automake \
pkg-config \
libevent-dev \
zlib1g-dev \
libssl-dev
- name: Build with sanitizers
run: |
autoreconf -ivf
./configure --enable-sanitizers
make -j
- name: Verify ASAN is enabled
run: |
ldd ./memtier_benchmark | grep asan
echo "✓ AddressSanitizer is linked"
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.10'
architecture: x64
- name: Install Python test dependencies
run: pip install -r ./tests/test_requirements.txt
- name: Install Redis
run: |
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get -qq update
sudo apt-get install redis
sudo service redis-server stop
- name: Increase connection limit
run: |
sudo sysctl -w net.ipv4.tcp_fin_timeout=10
sudo sysctl -w net.ipv4.tcp_tw_reuse=1
ulimit -n 40960
- name: Generate TLS test certificates
run: ./tests/gen-test-certs.sh
- name: Test OSS TCP with ASAN
timeout-minutes: 10
run: |
ASAN_OPTIONS=detect_leaks=1 ./tests/run_tests.sh
- name: Test OSS TCP TLS with ASAN
timeout-minutes: 10
run: |
ASAN_OPTIONS=detect_leaks=1 TLS=1 ./tests/run_tests.sh
- name: Test OSS TCP TLS v1.2 with ASAN
timeout-minutes: 10
run: |
ASAN_OPTIONS=detect_leaks=1 TLS_PROTOCOLS='TLSv1.2' TLS=1 ./tests/run_tests.sh
- name: Test OSS TCP TLS v1.3 with ASAN
timeout-minutes: 10
run: |
ASAN_OPTIONS=detect_leaks=1 TLS_PROTOCOLS='TLSv1.3' TLS=1 ./tests/run_tests.sh
- name: Test OSS-CLUSTER TCP with ASAN
timeout-minutes: 10
run: |
ASAN_OPTIONS=detect_leaks=1 OSS_STANDALONE=0 OSS_CLUSTER=1 ./tests/run_tests.sh
- name: Test OSS-CLUSTER TCP TLS with ASAN
timeout-minutes: 10
run: |
ASAN_OPTIONS=detect_leaks=1 OSS_STANDALONE=0 OSS_CLUSTER=1 TLS=1 ./tests/run_tests.sh