From 63010da997e7a37df323a7d0343453fde63600ed Mon Sep 17 00:00:00 2001 From: Jakub Jirutka Date: Sun, 30 Apr 2017 00:20:07 +0200 Subject: community/php7: run subset of tests on check --- community/php7/APKBUILD | 46 ++++++- community/php7/disabled-tests.list | 215 +++++++++++++++++++++++++++++++ community/php7/fix-tests-devserver.patch | 23 ++++ 3 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 community/php7/disabled-tests.list create mode 100644 community/php7/fix-tests-devserver.patch (limited to 'community') diff --git a/community/php7/APKBUILD b/community/php7/APKBUILD index 59a0f58415..f020f70ae1 100644 --- a/community/php7/APKBUILD +++ b/community/php7/APKBUILD @@ -44,11 +44,13 @@ source="http://php.net/distributions/$_pkgreal-$pkgver.tar.bz2 $pkgname-fpm.initd $pkgname-fpm.logrotate $pkgname-module.conf + disabled-tests.list install-pear.patch includedir.patch fix-asm-constraints-in-aarch64-multiply-macro.patch php7-fpm-version-suffix.patch allow-build-recode-and-imap-together.patch + fix-tests-devserver.patch " builddir="$srcdir/$_pkgreal-$pkgver" @@ -100,6 +102,11 @@ prepare() { # Fix some bogus permissions. find . -name \*.[ch] -exec chmod 644 {} \; + # XXX: Delete failing tests. + sed -n '/^[^#]/p' "$srcdir"/disabled-tests.list | while read item; do + rm -r $item # do it in this way to apply globbing... + done + autoconf } @@ -216,6 +223,29 @@ build() { || return 1 } +check() { + cd "$builddir" + + # PHP is so stupid that it's not able to resolve dependencies + # between extensions and load them in correct order, so we must + # help it... + # * opcache is Zend extension, it's handled specially in Makefile + # * imap can't be loaded together with recode, so we must omit it + local php_modules=$(_extensions_by_deps_order \ + | grep -vx opcache \ + | grep -vx imap \ + | xargs -n 1 printf "'$builddir/modules/%s.la' ") + sed -i "/^PHP_TEST_SHARED_EXTENSIONS/,/extension=/ \ + s|in \$(PHP_MODULES)\"*|in $php_modules|" Makefile + + NO_INTERACTION=1 REPORT_EXIT_STATUS=1 \ + SKIP_SLOW_TESTS=1 SKIP_ONLINE_TESTS=1 TEST_TIMEOUT=10 \ + TZ= LANG= LC_ALL= \ + make test + + echo 'NOTE: We have skipped quite a lot tests, see disabled-tests.list.' +} + package() { cd "$builddir" @@ -422,12 +452,26 @@ _resolve_extension_deps() { done } +# Prints _exts sorted by number of dependencies. +_extensions_by_deps_order() { + local deps list name + + for name in $_exts; do + deps=$(eval "echo \$depends_$name") + : ${deps:=$(_resolve_extension_deps $name)} + list="$list $(echo "$deps" | wc -w);$name" + done + printf '%s\n' $list | sort -t ';' -k 1 | sed -E 's/\d+;//' +} + sha512sums="a1dd5ffd756176e6ba600dd850510033d0d6f07aff314de69fec0c42437e6a006449e3f4f98679146a2f2645caa65ea351e31a8e1da7c14cc5260856ad40eaff php-7.1.4.tar.bz2 1c708de82d1086f272f484faf6cf6d087af7c31750cc2550b0b94ed723961b363f28a947b015b2dfc0765caea185a75f5d2c2f2b099c948b65c290924f606e4f php7-fpm.initd cacce7bf789467ff40647b7319e3760c6c587218720538516e8d400baa75651f72165c4e28056cd0c1dc89efecb4d00d0d7823bed80b29136262c825ce816691 php7-fpm.logrotate fbf9a1572d37370ec0d126502e1d066e045a992484d8fc4f1e2ede330134c1a15f4029f29fa4daebd48eed78b045dc051ced69fbf1f11efc7ad81d884a639a99 php7-module.conf +b4b4f27cae93b35d84509ada75f199ef411dda052fa4419fb76d08278be620e9fa0cbc88f536b7510e6cba470788864953d71e7106cddc117da4c0ff3a8ffda2 disabled-tests.list f1177cbf6b1f44402f421c3d317aab1a2a40d0b1209c11519c1158df337c8945f3a313d689c939768584f3e4edbe52e8bd6103fb6777462326a9d94e8ab1f505 install-pear.patch 199aecdbd3b4035aabf5379c215f82412d3c98b79a1ee186944e7fe1f0ed6f40789ea30e2355149491de6be34fc66c5e486e2a79a7e41ab2ae18706ef3ffe79b includedir.patch d93d3fc015580cf5f75c6cbca4cd980e054b61e1068495da81a7e61f1af2c9ae14f09964c04928ad338142de78e4844aed885b1ad1865282072999fb045c8ad7 fix-asm-constraints-in-aarch64-multiply-macro.patch a4c35446745ab0ac806de801f0651fc5d2c98cf60063c3c2d3963a84f1c71ef78e09b7650c08e7231be0fdb93c0c255de38894d7f0e4f4c5a190d17f1a6bc476 php7-fpm-version-suffix.patch -f8ecae241a90cbc3e98aa4deb3d5d35ef555f51380e29f4e182a8060dffeb84be74f030a14c6b452668471030d78964f52795ca74275db05543ccad20ef1f2cc allow-build-recode-and-imap-together.patch" +f8ecae241a90cbc3e98aa4deb3d5d35ef555f51380e29f4e182a8060dffeb84be74f030a14c6b452668471030d78964f52795ca74275db05543ccad20ef1f2cc allow-build-recode-and-imap-together.patch +01c3c65f153ea92192f2b2694d93a086ffa67c282fe046f877842942692c25666e4154a09aba6c2161f7f2a3b6595f4d79573e9ee74aec774a95f2f9725846f9 fix-tests-devserver.patch" diff --git a/community/php7/disabled-tests.list b/community/php7/disabled-tests.list new file mode 100644 index 0000000000..17a6836e36 --- /dev/null +++ b/community/php7/disabled-tests.list @@ -0,0 +1,215 @@ +# +# Tests that we don't need to run +# + +# These are mostly unit or regression tests, we care about integration tests. +tests/lang/* +tests/classes/* +Zend/tests/* + + +# +# Tests that fail and probably should not... +# + +# Too many tests fail! Some of them bogus, some not. +# THIS SHOULD BE REALLY FIXED! +ext/openssl/tests/* + +# Broken tests, missing config. +sapi/fpm/tests/* + + +# Incorrect result. +sapi/cli/tests/upload_2G.phpt + +# Fails in chroot (on Travis). +sapi/cli/tests/cli_process_title_unix.phpt + +# Error messages in different order. +sapi/cgi/tests/005.phpt + +# Missing timezone in date. +ext/date/tests/bug27780.phpt +ext/date/tests/bug32555.phpt +ext/date/tests/bug33532.phpt + +# Number overflow!? +ext/date/tests/bug53437_var5.phpt +ext/date/tests/bug53437_var6.phpt + +# Incompatible version of enchant library? +ext/enchant/tests/broker_list_dicts.phpt +ext/enchant/tests/bug13181.phpt + +# Wrong charset, conversion from `UTF-8' to `ASCII//TRANSLIT' is not allowed. +ext/iconv/tests/iconv_basic_001.phpt + +# Wrong charset, conversion from `UTF-8' to `UTF-8//IGNORE' is not allowed. +ext/iconv/tests/bug48147.phpt + +# Float rounding error and/or different precision. +ext/date/tests/date_time_fractions.phpt +ext/intl/tests/bug14562.phpt +ext/intl/tests/formatter_parse.phpt +ext/intl/tests/formatter_parse_currency.phpt +ext/intl/tests/msgfmt_parse.phpt + +# Incorrect results. +ext/intl/tests/spoofchecker_001.phpt +ext/intl/tests/timezone_IDforWindowsID_basic.phpt +ext/intl/tests/timezone_windowsID_basic.phpt + +# Class 'Phar' not found. +ext/opcache/tests/issue0115.phpt +ext/opcache/tests/issue0149.phpt + +# Invalid datasource. +ext/pdo_odbc/tests/max_columns.phpt + +# Fails in chroot (on Travis). +ext/posix/tests/posix_errno_variation2.phpt +ext/posix/tests/posix_kill_basic.phpt + +# Randomly fails. +ext/pcntl/tests/002.phpt + +# Call to undefined function session_start(). +ext/session/tests/session_regenerate_id_cookie.phpt + +# Class 'SoapServer' not found. +ext/soap/tests/bug73037.phpt + +# Incorrect results. +ext/soap/tests/server009.phpt + +# Depends on something from ext/openssl/tests +ext/standard/tests/streams/stream_context_tcp_nodelay_server.phpt + +# Incorrect results. +ext/standard/tests/crypt/bcrypt_invalid_algorithm.phpt +ext/standard/tests/crypt/bcrypt_invalid_cost.phpt +ext/standard/tests/crypt/des_fallback_invalid_salt.phpt +ext/standard/tests/strings/crypt_blowfish.phpt +ext/standard/tests/strings/crypt_blowfish_variation1.phpt +ext/standard/tests/strings/crypt_blowfish_variation2.phpt +ext/standard/tests/strings/crypt_des_error.phpt + +# Incorrect results. +ext/standard/tests/strings/bug51059.phpt + +# Fails in chroot (on Travis). +ext/standard/tests/general_functions/proc_nice_basic.phpt + +# Cannot find serialization handler 'wddx'. +ext/wddx/tests/004.phpt +ext/wddx/tests/005.phpt +ext/wddx/tests/bug70741.phpt + +# Globbing in zip file does not work. +ext/zip/tests/bug70103.phpt + +# Test timeouts. +#Zend/tests/concat_003.phpt + +# Failing tests related to locale and/or iconv. +ext/date/tests/009.phpt +ext/gettext/tests/gettext_basic-enus.phpt +ext/gettext/tests/gettext_basic.phpt +ext/gettext/tests/gettext_bindtextdomain-cwd.phpt +ext/gettext/tests/gettext_dcgettext.phpt +ext/gettext/tests/gettext_dgettext.phpt +ext/gettext/tests/gettext_dngettext-plural.phpt +ext/gettext/tests/gettext_ngettext.phpt +ext/iconv/tests/bug52211.phpt +ext/intl/tests/bug67052.phpt +ext/intl/tests/formatter_format6.phpt +ext/json/tests/bug41403.phpt +ext/pcre/tests/locales.phpt +ext/soap/tests/bugs/bug39815.phpt +ext/standard/tests/array/locale_sort.phpt +ext/standard/tests/file/bug43008.phpt +ext/standard/tests/strings/htmlentities02.phpt +ext/standard/tests/strings/moneyformat.phpt +ext/standard/tests/strings/setlocale_basic1.phpt +ext/standard/tests/strings/setlocale_basic2.phpt +ext/standard/tests/strings/setlocale_basic3.phpt +ext/standard/tests/strings/setlocale_error.phpt +ext/standard/tests/strings/setlocale_variation1.phpt +ext/standard/tests/strings/setlocale_variation2.phpt +ext/standard/tests/strings/setlocale_variation3.phpt +ext/standard/tests/strings/setlocale_variation4.phpt +ext/standard/tests/strings/setlocale_variation5.phpt +ext/standard/tests/strings/sprintf_f_3.phpt +ext/standard/tests/strings/strtoupper.phpt +ext/standard/tests/time/strptime_basic.phpt +ext/standard/tests/time/strptime_parts.phpt +#tests/lang/034.phpt +#tests/lang/bug30638.phpt + + +# +# Tests that fail for known reason and/or we don't need to worry about them +# + +# Output does not match due to verbose messages from curl. Probably just +# different curl version... +ext/curl/tests/bug48203.phpt +ext/curl/tests/bug48203_multi.phpt + +# Fails due to unsupported JP charsets. +ext/iconv/tests/eucjp2iso2022jp.phpt +ext/iconv/tests/eucjp2sjis.phpt +ext/iconv/tests/eucjp2utf8.phpt +ext/iconv/tests/iconv_basic.phpt +ext/iconv/tests/iconv_mime_decode.phpt +ext/iconv/tests/iconv_mime_encode.phpt +ext/iconv/tests/iconv_stream_filter.phpt +ext/iconv/tests/iconv_stream_filter_delimiter.phpt +ext/iconv/tests/iconv_strpos.phpt +ext/iconv/tests/iconv_strrpos.phpt +ext/iconv/tests/iconv_substr.phpt +ext/iconv/tests/ob_iconv_handler.phpt +ext/standard/tests/strings/htmlentities04.phpt +ext/standard/tests/strings/htmlentities15.phpt + +# Segfaults, it tests JIT stacklimit exhaustion. +ext/pcre/tests/preg_match_error3.phpt + +# Timeouts. +ext/recode/tests/001.phpt + +# Requires running SNMP server. +ext/snmp/tests/* + +# Operation not permitted. +ext/sockets/tests/socket_set_option_bindtodevice.phpt + +# Different wording of socket error messages (due to different libc). +ext/sockets/tests/socket_strerror.phpt + +# Broken test. +ext/standard/tests/file/disk_free_space_basic.phpt + +# Fails probably due to differencies in musl. +ext/standard/tests/file/lstat_stat_variation9.phpt +ext/standard/tests/file/popen_pclose_error.phpt + +# WTF?! getservername(true, "tcp") and similar non-senses... +ext/standard/tests/general_functions/getservbyport_variation1.phpt +ext/standard/tests/general_functions/getservbyname_variation2.phpt +ext/standard/tests/general_functions/getservbyname_variation5.phpt + +# Needs GNU cut utility. +ext/standard/tests/mail/mail_basic2.phpt +ext/standard/tests/mail/mail_variation2.phpt + +# Fails probably due to differencies in musl. +ext/sockets/tests/socket_create_pair-wrongparams.phpt + +# Error message does not match due to some extra info. +ext/standard/tests/strings/007.phpt + +# Causes stack exhausion. +#Zend/tests/bug54268.phpt +#Zend/tests/bug68412.phpt diff --git a/community/php7/fix-tests-devserver.patch b/community/php7/fix-tests-devserver.patch new file mode 100644 index 0000000000..3f8220c5a1 --- /dev/null +++ b/community/php7/fix-tests-devserver.patch @@ -0,0 +1,23 @@ +From: Jakub Jirutka +Date: Mon, 01 May 2017 01:33:00 +0200 +Subject: [PATCH] Fix tests failing due to extra message from built-in web server + +Remove messages like: + + PHP 7.1.4 Development Server started at Mon May 1 00:42:39 2017 + +from test outputs, because tests do not expect them. I have no clue what +happens here... + +--- a/run-tests.php ++++ b/run-tests.php +@@ -1918,6 +1918,9 @@ + // Does the output match what is expected? + $output = preg_replace("/\r\n/", "\n", trim($out)); + ++ // Remove message from built-in development server. ++ $output = preg_replace("/^PHP [0-9.]+ Development Server started at .*\n\n?/m", "", $output); ++ + /* when using CGI, strip the headers from the output */ + $headers = ""; + -- cgit v1.2.3