Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: run sanitizers #955

Merged
merged 42 commits into from
Aug 9, 2024
Merged
Changes from 2 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
1e5d6ef
ci: run sanitizers
dunglas Aug 5, 2024
00a0fd5
debug
dunglas Aug 6, 2024
1c15012
debug
dunglas Aug 6, 2024
2973bc7
test
dunglas Aug 6, 2024
0161c8c
test
dunglas Aug 6, 2024
f6a3592
test
dunglas Aug 6, 2024
4921370
test
dunglas Aug 6, 2024
1b11eba
test
dunglas Aug 6, 2024
02ffaaf
test
dunglas Aug 6, 2024
0215f8e
test
dunglas Aug 6, 2024
b6c866e
test
dunglas Aug 6, 2024
de47916
try without -shared-libasan
dunglas Aug 7, 2024
27083bb
more tests
dunglas Aug 7, 2024
b180394
cleanup
dunglas Aug 7, 2024
2963674
suppr
dunglas Aug 7, 2024
8cfa273
try without ASAN
dunglas Aug 7, 2024
66ca769
try without ASAN
dunglas Aug 7, 2024
8ded8d2
try without ASAN
dunglas Aug 8, 2024
f9fcb2c
try without ASAN
dunglas Aug 8, 2024
44577b4
try without ASAN
dunglas Aug 8, 2024
a17ddaf
try without ASAN
dunglas Aug 8, 2024
e1ca367
add back ASAN
dunglas Aug 8, 2024
338c3da
wip
dunglas Aug 8, 2024
754ef94
wip
dunglas Aug 8, 2024
57af913
MSAN
dunglas Aug 8, 2024
e3fc910
wip
dunglas Aug 8, 2024
07ffa2c
add buffer overflow
dunglas Aug 8, 2024
cd9a98d
print as much details as possible
dunglas Aug 8, 2024
2c4db04
fix ldflags
dunglas Aug 8, 2024
064fc19
simplify flags
dunglas Aug 8, 2024
118676b
fix flags
dunglas Aug 9, 2024
db24209
fix flags
dunglas Aug 9, 2024
5e4777a
wip
dunglas Aug 9, 2024
bdd74f2
wip
dunglas Aug 9, 2024
c5b9cb5
wip
dunglas Aug 9, 2024
15db0d2
cleanup
dunglas Aug 9, 2024
5931016
disable more things
dunglas Aug 9, 2024
ca26934
test without cache
dunglas Aug 9, 2024
ea245a6
fix
dunglas Aug 9, 2024
6d1b870
cleanup
dunglas Aug 9, 2024
089df41
add ZEND_RC_DEBUG
dunglas Aug 9, 2024
e69ce22
fix
dunglas Aug 9, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions .github/workflows/sanitizers.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
name: Sanitizers
on:
pull_request:
branches:
- main
paths-ignore:
- "docs/**"
push:
branches:
- main
paths-ignore:
- "docs/**"
permissions:
contents: read
jobs:
# Adapted from https://github.com/beberlei/hdrhistogram-php
sanitizers:
runs-on: ubuntu-latest
env:
CFLAGS: -g -fsanitize=undefined,address -DZEND_TRACK_ARENA_ALLOC
LDFLAGS: -fsanitize=undefined,address
CC: clang-18
CXX: clang++-18
steps:
-
uses: actions/checkout@v4
-
uses: actions/setup-go@v5
with:
go-version: "1.22"
cache-dependency-path: |
go.sum
caddy/go.sum
-
name: Install LLVM
run: sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
-
name: Determine PHP version
id: determine-php-version
run: |
curl -fsSL 'https://www.php.net/releases/index.php?json&max=1&version=8.3' -o version.json
echo version="$(jq -r 'keys[0]') version.json" >> "$GITHUB_OUTPUT"
echo archive="$(jq -r '.[] .source[] | select(.filename |endswith(".xz")) | "https://www.php.net/distributions/" + .filename' version.json)" >> "$GITHUB_OUTPUT"
-
name: Cache PHP
id: cache-php
uses: actions/cache@v4
with:
path: php/target/
key: php-sanitizers-${{ runner.arch }}-${{ steps.determine-php-version.outputs.version }}
-
if: steps.cache-php.outputs.cache-hit != 'true'
name: Compile PHP
run: |
sudo apt-get remove --purge --autoremove 'php*-*' 'libmemcached*'
mkdir php/
curl -fsSL "${{ steps.determine-php-version.outputs.archive }}" | tar -Jx -C php --strip-components=1
cd php/
./configure \
--enable-debug \
--enable-embed \
--enable-zts \
--disable-zend-signals \
--disable-cli \
--disable-cgi \
--disable-phpdbg \
--prefix="$(pwd)/target/"
make -j"$(getconf _NPROCESSORS_ONLN)"
make install
-
name: Add PHP to the PATH
run: |
echo "$(pwd)/php/target/bin" >> "$GITHUB_PATH"
-
name: Set CGO flags
run: |
{
echo "LDFLAGS=-L$(pwd)/php/target/lib/ $LDFLAGS"
echo "CGO_CFLAGS=$CFLAGS $(php-config --includes)"
echo "CGO_LDLAGS=-L$(pwd)/php/target/lib/ $(php-config --ldflags || true) $(php-config --libs || true) $LDFLAGS"
} >> "$GITHUB_ENV"
-
uses: mxschmitt/action-tmate@v3
-
name: Run library tests with sanitizers
run: go test -asan -v ./...


Loading