@@ -47,11 +47,13 @@ jobs:
4747 fail-fast : false
4848 matrix :
4949 include :
50- - debug : true
51- zts : false
5250 - debug : false
51+ zts : false
52+ asan : false
53+ - debug : true
5354 zts : true
54- name : " LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
55+ asan : true
56+ name : " LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}"
5557 runs-on : ubuntu-22.04
5658 steps :
5759 - name : git checkout
@@ -70,32 +72,38 @@ jobs:
7072 # This duplicates the "job.name" expression above because
7173 # GitHub has no way to query the job name (github.job is the
7274 # job id, not the job name)
73- key : " LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}-${{hashFiles('main/php_version.h')}}"
75+ key : " LINUX_X64_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }} -${{hashFiles('main/php_version.h')}}"
7476 append-timestamp : false
7577 - name : ./configure
7678 uses : ./.github/actions/configure-x64
7779 with :
7880 configurationParameters : >-
7981 --${{ matrix.debug && 'enable' || 'disable' }}-debug
8082 --${{ matrix.zts && 'enable' || 'disable' }}-zts
83+ ${{ matrix.asan && 'CFLAGS="-fsanitize=undefined,address -DZEND_TRACK_ARENA_ALLOC" LDFLAGS="-fsanitize=undefined,address" CC=clang CXX=clang++ --disable-opcache-jit' || '' }}
84+ skipSlow : ${{ matrix.asan }}
8185 - name : make
8286 run : make -j$(/usr/bin/nproc) >/dev/null
8387 - name : make install
8488 uses : ./.github/actions/install-linux
89+ with :
90+ withOci : ${{ !matrix.asan }}
8591 - name : Setup
8692 uses : ./.github/actions/setup-x64
8793 - name : Test
94+ if : matrix.asan == false
8895 uses : ./.github/actions/test-linux
8996 with :
9097 testArtifacts : ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}
91- - name : Test Tracing JIT
98+ - name : Test ${{ matrix.asan && 'OpCache' || ' Tracing JIT' }}
9299 uses : ./.github/actions/test-linux
93100 with :
94- testArtifacts : ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }} Tracing JIT
101+ testArtifacts : ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}${{ matrix.asan && '_ASAN' || '' }}_${{ matrix.asan && 'OpCache' || ' Tracing JIT' }}
95102 runTestsParameters : >-
96103 -d zend_extension=opcache.so
97104 -d opcache.enable_cli=1
98- -d opcache.jit_buffer_size=16M
105+ ${{ !matrix.asan && '-d opcache.jit_buffer_size=16M' || '' }}
106+ ${{ matrix.asan && '--asan -x' || '' }}
99107 - name : Verify generated files are up to date
100108 uses : ./.github/actions/verify-generated-files
101109 LINUX_X32 :
0 commit comments