@@ -47,11 +47,13 @@ jobs:
47
47
fail-fast : false
48
48
matrix :
49
49
include :
50
- - debug : true
51
- zts : false
52
50
- debug : false
51
+ zts : false
52
+ asan : false
53
+ - debug : true
53
54
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' || '' }}"
55
57
runs-on : ubuntu-22.04
56
58
steps :
57
59
- name : git checkout
@@ -70,32 +72,38 @@ jobs:
70
72
# This duplicates the "job.name" expression above because
71
73
# GitHub has no way to query the job name (github.job is the
72
74
# 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')}}"
74
76
append-timestamp : false
75
77
- name : ./configure
76
78
uses : ./.github/actions/configure-x64
77
79
with :
78
80
configurationParameters : >-
79
81
--${{ matrix.debug && 'enable' || 'disable' }}-debug
80
82
--${{ 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 }}
81
85
- name : make
82
86
run : make -j$(/usr/bin/nproc) >/dev/null
83
87
- name : make install
84
88
uses : ./.github/actions/install-linux
89
+ with :
90
+ withOci : ${{ !matrix.asan }}
85
91
- name : Setup
86
92
uses : ./.github/actions/setup-x64
87
93
- name : Test
94
+ if : matrix.asan == false
88
95
uses : ./.github/actions/test-linux
89
96
with :
90
97
testArtifacts : ${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}
91
- - name : Test Tracing JIT
98
+ - name : Test ${{ matrix.asan && 'OpCache' || ' Tracing JIT' }}
92
99
uses : ./.github/actions/test-linux
93
100
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' }}
95
102
runTestsParameters : >-
96
103
-d zend_extension=opcache.so
97
104
-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' || '' }}
99
107
- name : Verify generated files are up to date
100
108
uses : ./.github/actions/verify-generated-files
101
109
LINUX_X32 :
0 commit comments