This commit is contained in:
Daniil Gentili 2023-11-11 19:04:15 +01:00
parent 2555965243
commit d55e70868e
7 changed files with 32 additions and 15 deletions

View File

@ -33,8 +33,7 @@ RUN true \
libpcre2-dev libargon2-dev libedit-dev libsodium-dev llvm-16 libonig-dev \ libpcre2-dev libargon2-dev libedit-dev libsodium-dev llvm-16 libonig-dev \
gdb libcapstone-dev gdb libcapstone-dev
RUN git clone https://github.com/php/php-src -b master --depth 1 && cd php-src \ RUN git clone https://github.com/php/php-src -b PHP-8.3 --depth 1 && cd php-src \
\
&& ./buildconf \ && ./buildconf \
&& ./configure --prefix=/usr \ && ./configure --prefix=/usr \
--includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc \ --includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info --sysconfdir=/etc \
@ -57,7 +56,7 @@ RUN git clone https://github.com/php/php-src -b master --depth 1 && cd php-src \
&& export LDFLAGS='-g -fsanitize=address -shared-libasan -Wl,-rpath=/usr/lib/llvm-16/lib/clang/16/lib/linux/' \ && export LDFLAGS='-g -fsanitize=address -shared-libasan -Wl,-rpath=/usr/lib/llvm-16/lib/clang/16/lib/linux/' \
\ \
&& make -j100 \ && make -j100 \
&& make install && echo owo && make install
RUN php -r "readfile('https://getcomposer.org/installer');" | php \ RUN php -r "readfile('https://getcomposer.org/installer');" | php \
&& mv composer.phar /usr/bin/composer && mv composer.phar /usr/bin/composer

View File

@ -10,10 +10,10 @@ Tested on fa218eab4a9b5304afb871a4405546068cb65008
1. Composer: Fixed 1. Composer: Fixed
2. Psalm: always fails 2. Psalm: always fails
3. MadelineProto: got a single shutdown hang the first time I tried (even with the new closure fixes), then nothing; expecting an assertion crash 3. MadelineProto: Fixed
4. Infection (patched): always fails 4. Infection (patched): Fixed
5. Psalm (unit): ? 5. Psalm (unit): ?
6. php-parser (unit): always fails 6. php-parser (unit): Fixed
7. Psalm (master, unit): always fails 7. Psalm (master, unit): always fails
8. Psalm (patched master, unit): always fails 8. Psalm (patched master, unit): always fails
9. Composer: always fails 9. Composer: always fails

View File

@ -20,9 +20,13 @@ cp $standalone .
composer i --ignore-platform-reqs composer i --ignore-platform-reqs
sed 's:findUnusedCode=:cacheDirectory="/tmp/psalm" findUnusedCode=:g' -i psalm.xml.dist
echo "About to run psalm" echo "About to run psalm"
docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php /app/wrap.php /app/psalm --no-cache sleep 3
docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php --repeat 2 -f /app/wrap.php /app/psalm --no-cache
echo "About to run composer" echo "About to run composer"
@ -30,4 +34,4 @@ rm -rf vendor
docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php /app/wrap.php /usr/bin/composer update --ignore-platform-reqs docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php /app/wrap.php /usr/bin/composer update --ignore-platform-reqs
echo "OK, no bugs!" echo "OK, no bugs!"

View File

@ -14,6 +14,9 @@ git branch -D master || true
git branch master git branch master
git checkout master git checkout master
sed 's:findUnusedCode=:cacheDirectory="/tmp/psalm" findUnusedCode=:g' -i psalm.xml.dist
sed 's/error_log[(]/exit(/g' -i src/Psalm/Internal/Fork/Pool.php
export PSALM_ALLOW_XDEBUG=1 export PSALM_ALLOW_XDEBUG=1
cp $standalone . cp $standalone .
@ -22,6 +25,8 @@ composer i --ignore-platform-reqs
echo "About to run psalm" echo "About to run psalm"
docker run -v $PWD:/app --rm --privileged -it asan_tests bash -c 'export USE_ZEND_ALLOC=1; /usr/bin/php --repeat 2 -f /app/wrap.php /app/psalm --no-cache --threads=100' sleep 3
docker run -v $PWD:/app --rm --privileged -it asan_tests bash -c 'export USE_ZEND_ALLOC=1; /usr/bin/php --repeat 2 -f /app/wrap.php /app/psalm --no-cache'
echo "OK, no bugs!" echo "OK, no bugs!"

View File

@ -27,6 +27,11 @@ echo "About to run psalm"
php $refactor php $refactor
docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php --repeat 2 -f /app/wrap.php /app/psalm --no-cache sed 's:findUnusedCode=:cacheDirectory="/tmp/psalm" findUnusedCode=:g' -i psalm.xml.dist
sed 's/error_log[(]/exit(/g' -i src/Psalm/Internal/Fork/Pool.php
sleep 3
docker run -v $PWD:/app --rm --privileged -it asan_tests bash -c 'export USE_ZEND_ALLOC=1; /usr/bin/php --repeat 2 -f /app/wrap.php /app/psalm --no-cache'
echo "OK, no bugs!" echo "OK, no bugs!"

View File

@ -18,6 +18,6 @@ cp $c composer.json
echo "About to run composer" echo "About to run composer"
docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php --repeat 2 -f /app/wrap.php /usr/bin/composer update docker run -v $PWD:/app --rm --privileged -it asan_tests /usr/bin/php --repeat 2 -f /app/wrap.php /usr/bin/composer update --ignore-platform-reqs
echo "OK, no bugs!" echo "OK, no bugs!"

View File

@ -1,8 +1,8 @@
<?php <?php
register_shutdown_function(function () { $pid = getmypid();
register_shutdown_function(function () use ($pid) {
$status = opcache_get_status(false); $status = opcache_get_status(false);
var_dump($status);
$ok = true; $ok = true;
if ($status["memory_usage"]["free_memory"] < 10*1024*1024) { if ($status["memory_usage"]["free_memory"] < 10*1024*1024) {
@ -23,7 +23,11 @@ register_shutdown_function(function () {
} }
unset($status); unset($status);
gc_collect_cycles(); while (gc_collect_cycles());
if ($pid === getmypid()) {
`rm -rf /tmp/psalm`;
}
if (!$ok) die(139); if (!$ok) die(139);
}); });