]> granicus.if.org Git - php/log
php
9 years agofix crash when invalid exception arguments passed
Anatol Belski [Wed, 17 Jun 2015 22:14:57 +0000 (00:14 +0200)]
fix crash when invalid exception arguments passed

9 years agofix unknown size of void error
Anatol Belski [Wed, 17 Jun 2015 21:43:13 +0000 (23:43 +0200)]
fix unknown size of void error

9 years agoMerge branch 'PHP-5.6'
Sara Golemon [Wed, 17 Jun 2015 20:34:42 +0000 (13:34 -0700)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Fix buffer growth in sockets/conversion.c
  Implements extended error messages

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Sara Golemon [Wed, 17 Jun 2015 20:34:33 +0000 (13:34 -0700)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Fix buffer growth in sockets/conversion.c

9 years agoFix buffer growth in sockets/conversion.c
Sara Golemon [Wed, 17 Jun 2015 20:26:48 +0000 (13:26 -0700)]
Fix buffer growth in sockets/conversion.c

memset() the *end* of the new buffer, not the beginning
Copy the pointer to the buffer, not its initial contents

Fixes bug 69619

9 years agoFix #61362: Exception::getTraceAsString and ::__toString scramble Unicode
Christoph M. Becker [Wed, 17 Jun 2015 14:56:04 +0000 (16:56 +0200)]
Fix #61362: Exception::getTraceAsString and ::__toString scramble Unicode

The logic in smart_str_append_escaped() relies on unsigned values of c, so we
have to declare it as such.

9 years agoMerge branch 'pull-request/1284'
Anatol Belski [Wed, 17 Jun 2015 19:55:03 +0000 (21:55 +0200)]
Merge branch 'pull-request/1284'

* pull-request/1284:
  Rename interface macros
  Fix typo in UPGRADING
  Move definition of Throwable to zend_exceptions.h/c
  Check for zend_ce_throwable instead
  Fix some missed tests
  Add Throwable tests
  Fix previous exception type check
  Updated UPGRADING with RFC link
  Changed AssertionException to AssertionError
  Update exception error messages
  Throwable method signatures.
  Update exception names in tests after formatting changes.
  Merge exception formatting changes.
  Make zend_get_exception_base static.
  Fix a few missed tests.
  Fix handler double copy.
  Updated tests to reflect exception class changes.
  Remodel exceptions based on Throwable interface

9 years agoRename interface macros
Aaron Piotrowski [Wed, 17 Jun 2015 18:46:27 +0000 (13:46 -0500)]
Rename interface macros

Renamed REGISTER_INTERFACE (formerly
REGISTER_ITERATOR_INTERFACE) to
REGISTER_MAGIC_INTERFACE and renamed
REGISTER_ITERATOR_IMPLEMENT to
REGISTER_MAGIC_IMPLEMENT. Both have now been
moved to zend_interfaces.h.

9 years agoFix typo in UPGRADING
Aaron Piotrowski [Wed, 17 Jun 2015 18:28:27 +0000 (13:28 -0500)]
Fix typo in UPGRADING

9 years agoImplements extended error messages
Andreas Heigl [Tue, 5 May 2015 19:30:29 +0000 (21:30 +0200)]
Implements extended error messages

This commit introduces a new constant that can be used to retrieve more
detailed error messages.

This fixes #47222

The new constant LDAP_OPT_DIAGNOSTIC_MESSAGE is defined in PHP when the
underlying library provides (and understands) it. This is the case in
the current OpenLDAP-implementation.

Tanks to Johnny Willer who provided the solution at http://stackoverflow.com/questions/28765077/get-number-of-ad-errors-with-ldap-and-php-ldap-function-return-unprecise-error/28816473#28816473

9 years agoMerge branch 'master' of git.php.net:php-src
Xinchen Hui [Wed, 17 Jun 2015 13:17:04 +0000 (21:17 +0800)]
Merge branch 'master' of git.php.net:php-src

9 years agoMerge branch 'gitignore' of https://github.com/flaupretre/php-src
Xinchen Hui [Wed, 17 Jun 2015 13:14:44 +0000 (21:14 +0800)]
Merge branch 'gitignore' of https://github.com/flaupretre/php-src

9 years agoMerge branch 'PHP-5.6'
Côme Bernigaud [Wed, 17 Jun 2015 12:48:19 +0000 (14:48 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Replaced calls to deprecated openldap functions
  Fixed LDAP tests so that base can exists

Conflicts:
ext/ldap/ldap.c

9 years agoReplaced calls to deprecated openldap functions
Côme Bernigaud [Thu, 16 Apr 2015 15:11:38 +0000 (17:11 +0200)]
Replaced calls to deprecated openldap functions

ldap_unbind_s   -> ldap_unbind_ext
389             -> LDAP_PORT
ldap_init       -> ldap_initialize
ldap_bind_s     -> ldap_sasl_bind_s
ldap_value_free -> ber_memvfree
Also added ldap_is_ldap_url check

9 years agoFixed LDAP tests so that base can exists
Côme Bernigaud [Wed, 17 Jun 2015 11:47:32 +0000 (13:47 +0200)]
Fixed LDAP tests so that base can exists

Now you can set the base in the env var LDAP_TEST_BASE.
The base has to exists. (before tests were attempting to create/delete
the base itself)

9 years agoFixed LDAP tests so that base can exists
Côme Bernigaud [Wed, 17 Jun 2015 11:47:32 +0000 (13:47 +0200)]
Fixed LDAP tests so that base can exists

Now you can set the base in the env var LDAP_TEST_BASE.
The base has to exists. (before tests were attempting to create/delete
the base itself)

9 years agoadded regression test for bug #69840
Christoph M. Becker [Wed, 17 Jun 2015 11:40:19 +0000 (13:40 +0200)]
added regression test for bug #69840

9 years agoAdd missing path to .gitignore
Francois Laupretre [Wed, 17 Jun 2015 10:45:41 +0000 (12:45 +0200)]
Add missing path to .gitignore

9 years agoUse COW to prevent unnecessary duplication of dynamic propertyes of stdClass (and...
Dmitry Stogov [Wed, 17 Jun 2015 09:50:16 +0000 (12:50 +0300)]
Use COW to prevent unnecessary duplication of dynamic propertyes of stdClass (and other classes without predefined properties).

9 years agoAdd a comment
Xinchen Hui [Wed, 17 Jun 2015 09:33:55 +0000 (17:33 +0800)]
Add a comment

9 years agoImproved class type hints checks, by caching resolved class entries in run-time cache.
Dmitry Stogov [Wed, 17 Jun 2015 09:07:43 +0000 (12:07 +0300)]
Improved class type hints checks, by caching resolved class entries in run-time cache.

9 years agoUse better hash functions (reuse key and avoid hash value recalculation)
Dmitry Stogov [Wed, 17 Jun 2015 09:06:33 +0000 (12:06 +0300)]
Use better hash functions (reuse key and avoid hash value recalculation)

9 years agoImproved variable name validation
Dmitry Stogov [Wed, 17 Jun 2015 09:05:58 +0000 (12:05 +0300)]
Improved variable name validation

9 years agoFixed bug #69840 (iconv_substr() doesn't work with UTF-16BE)
Kalle Sommer Nielsen [Wed, 17 Jun 2015 07:39:45 +0000 (09:39 +0200)]
Fixed bug #69840 (iconv_substr() doesn't work with UTF-16BE)

9 years agoupdated NEWS
Christoph M. Becker [Wed, 17 Jun 2015 00:27:05 +0000 (02:27 +0200)]
updated NEWS

9 years agoMerge branch 'PHP-5.6'
Christoph M. Becker [Wed, 17 Jun 2015 00:25:46 +0000 (02:25 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  updated NEWS
  updated NEWS
  Fixed bug #61221 - imagegammacorrect function loses alpha channel

9 years agoupdated NEWS
Christoph M. Becker [Wed, 17 Jun 2015 00:20:14 +0000 (02:20 +0200)]
updated NEWS

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Christoph M. Becker [Wed, 17 Jun 2015 00:18:53 +0000 (02:18 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  updated NEWS
  Fixed bug #61221 - imagegammacorrect function loses alpha channel

9 years agoupdated NEWS
Christoph M. Becker [Wed, 17 Jun 2015 00:17:40 +0000 (02:17 +0200)]
updated NEWS

9 years agoFixed bug #61221 - imagegammacorrect function loses alpha channel
Christoph M. Becker [Sat, 6 Jun 2015 12:57:38 +0000 (14:57 +0200)]
Fixed bug #61221 - imagegammacorrect function loses alpha channel

When applying imagegammacorrect() the alpha channel is now fully retained, instead of being completely lost.

9 years agoFix issue with zend_execute_ex replaced by execute_ex upon icall
Bob Weinand [Tue, 16 Jun 2015 21:37:23 +0000 (23:37 +0200)]
Fix issue with zend_execute_ex replaced by execute_ex upon icall

9 years agoFix infinite loop when running phpdbg via -r(r)
Bob Weinand [Tue, 16 Jun 2015 21:36:20 +0000 (23:36 +0200)]
Fix infinite loop when running phpdbg via -r(r)

9 years agoSupport references in convert_to_*
Nikita Popov [Tue, 16 Jun 2015 17:55:33 +0000 (19:55 +0200)]
Support references in convert_to_*

conver_to_* functions now accept REFERENCE values, which will be
unwrapped before performing the usual conversion. This is consistent
with convert_scalar_to_number and matches the expected behavior in
a couple random use-sites I checked.

Also includes a couple fixes/cleanups elsewhere and two tests for
cases that previously didn't work (though the reference issue existed
all over the place).

9 years agoMove check for CT div by zero into common function
Nikita Popov [Tue, 16 Jun 2015 16:09:59 +0000 (18:09 +0200)]
Move check for CT div by zero into common function

9 years agoFix references handling in convert_scalar_to_number
Nikita Popov [Tue, 16 Jun 2015 16:01:11 +0000 (18:01 +0200)]
Fix references handling in convert_scalar_to_number

9 years agoDrop now superflous check for VIA_TRAMPOLINE
Nikita Popov [Tue, 16 Jun 2015 15:51:18 +0000 (17:51 +0200)]
Drop now superflous check for VIA_TRAMPOLINE

This is not handled by USE_ARG_INFO.

9 years agoFully fixing all the affected const expr cases (see bug #69832)
Bob Weinand [Tue, 16 Jun 2015 14:53:17 +0000 (16:53 +0200)]
Fully fixing all the affected const expr cases (see bug #69832)

9 years agoRemoved useless #ifdef
Dmitry Stogov [Tue, 16 Jun 2015 14:17:49 +0000 (17:17 +0300)]
Removed useless #ifdef

9 years agoFixed bug #69849 (Broken output of apache_request_headers)
Kalle Sommer Nielsen [Tue, 16 Jun 2015 14:11:21 +0000 (16:11 +0200)]
Fixed bug #69849 (Broken output of apache_request_headers)

9 years agoUse zend_parse_parameters_none() here
Kalle Sommer Nielsen [Tue, 16 Jun 2015 13:15:27 +0000 (15:15 +0200)]
Use zend_parse_parameters_none() here

9 years agoMake CALL VM with FP and IP in global registers not to return anything from opcode...
Dmitry Stogov [Tue, 16 Jun 2015 11:11:16 +0000 (14:11 +0300)]
Make CALL VM with FP and IP in global registers not to return anything from opcode handlers.
Set OPLINE to NULL to terminate VM loop instead.
This saves 1 CPU instruction for each opcode handler.

9 years agoFixed bug #69802 (Reflection on Closure::__invoke borks type hint class name) (onr...
Dmitry Stogov [Tue, 16 Jun 2015 10:29:17 +0000 (13:29 +0300)]
Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class name) (onr more problem)

9 years agoComplete fix for problems related to bug #69802
Dmitry Stogov [Tue, 16 Jun 2015 08:24:35 +0000 (11:24 +0300)]
Complete fix for problems related to bug #69802

9 years agoFixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken)
Dmitry Stogov [Tue, 16 Jun 2015 07:53:53 +0000 (10:53 +0300)]
Fixed bug #69845 (ArrayObject with ARRAY_AS_PROPS broken)

9 years agoMake the tail slash algined
Xinchen Hui [Tue, 16 Jun 2015 03:33:44 +0000 (11:33 +0800)]
Make the tail slash algined

9 years agoFix invalid conversion about emalloc
Dreamsxin [Tue, 16 Jun 2015 03:12:37 +0000 (11:12 +0800)]
Fix invalid conversion about emalloc

9 years agoMove definition of Throwable to zend_exceptions.h/c
Aaron Piotrowski [Mon, 15 Jun 2015 23:07:27 +0000 (18:07 -0500)]
Move definition of Throwable to zend_exceptions.h/c

Also moved REGISTER_ITERATOR_INTERFACE macro to
zend_interfaces.h and renamed it to REGISTER_INTERFACE.

9 years agoCheck for zend_ce_throwable instead
Aaron Piotrowski [Mon, 15 Jun 2015 22:35:24 +0000 (17:35 -0500)]
Check for zend_ce_throwable instead

9 years agoRemove incorrect use of 'irregardless'
Andrew Smith [Fri, 12 Jun 2015 05:28:15 +0000 (15:28 +1000)]
Remove incorrect use of 'irregardless'

Correct word should be simply regardless

9 years agoFix bug #69832 (Assertion failure)
Bob Weinand [Mon, 15 Jun 2015 15:41:47 +0000 (17:41 +0200)]
Fix bug #69832 (Assertion failure)

9 years agoAdd an entry for dc37d3e8c2248f4f4437547bc7225276e22ea41d
Xinchen Hui [Mon, 15 Jun 2015 15:19:32 +0000 (23:19 +0800)]
Add an entry for dc37d3e8c2248f4f4437547bc7225276e22ea41d

9 years agoFixed print_ht
Xinchen Hui [Mon, 15 Jun 2015 14:31:01 +0000 (22:31 +0800)]
Fixed print_ht

9 years agoFix some missed tests
Aaron Piotrowski [Mon, 15 Jun 2015 13:20:30 +0000 (08:20 -0500)]
Fix some missed tests

9 years agoFixed bug #69802 (Reflection on Closure::__invoke borks type hint class name)
Dmitry Stogov [Mon, 15 Jun 2015 12:44:44 +0000 (15:44 +0300)]
Fixed bug #69802 (Reflection on Closure::__invoke borks type hint class name)

9 years agoFew more lines about opcache file cache.
Dmitry Stogov [Mon, 15 Jun 2015 11:44:21 +0000 (14:44 +0300)]
Few more lines about opcache file cache.

9 years agoRmoved opcache.load_comments.
Dmitry Stogov [Mon, 15 Jun 2015 11:01:26 +0000 (14:01 +0300)]
Rmoved opcache.load_comments.

9 years agoAdded notes about opcahce.file_cache.
Dmitry Stogov [Mon, 15 Jun 2015 10:39:45 +0000 (13:39 +0300)]
Added notes about opcahce.file_cache.

9 years agoAdd phpdbg to allowed cli-SAPIs in opcache
Bob Weinand [Mon, 15 Jun 2015 10:31:24 +0000 (12:31 +0200)]
Add phpdbg to allowed cli-SAPIs in opcache

9 years agoRemoved opcache.load_comments configuration directive. Now doc comments loading costs...
Dmitry Stogov [Mon, 15 Jun 2015 10:18:52 +0000 (13:18 +0300)]
Removed opcache.load_comments configuration directive. Now doc comments loading costs nothing and always enabled.

9 years ago- Updated to version 2015.5 (2015e)
Derick Rethans [Mon, 15 Jun 2015 09:41:32 +0000 (10:41 +0100)]
- Updated to version 2015.5 (2015e)

9 years agoEmpty merge
Derick Rethans [Mon, 15 Jun 2015 09:41:31 +0000 (10:41 +0100)]
Empty merge

9 years ago- Updated to version 2015.5 (2015e)
Derick Rethans [Mon, 15 Jun 2015 09:41:30 +0000 (10:41 +0100)]
- Updated to version 2015.5 (2015e)

9 years agoEmpty merge
Derick Rethans [Mon, 15 Jun 2015 09:41:30 +0000 (10:41 +0100)]
Empty merge

9 years ago- Updated to version 2015.5 (2015e)
Derick Rethans [Mon, 15 Jun 2015 09:41:29 +0000 (10:41 +0100)]
- Updated to version 2015.5 (2015e)

9 years ago- Updated to version 2015.5 (2015e)
Derick Rethans [Mon, 15 Jun 2015 09:28:26 +0000 (10:28 +0100)]
- Updated to version 2015.5 (2015e)

9 years agoEmpty merge
Derick Rethans [Mon, 15 Jun 2015 09:28:25 +0000 (10:28 +0100)]
Empty merge

9 years ago- Updated to version 2015.5 (2015e)
Derick Rethans [Mon, 15 Jun 2015 09:28:23 +0000 (10:28 +0100)]
- Updated to version 2015.5 (2015e)

9 years agoEmpty merge
Derick Rethans [Mon, 15 Jun 2015 09:28:23 +0000 (10:28 +0100)]
Empty merge

9 years ago- Updated to version 2015.5 (2015e)
Derick Rethans [Mon, 15 Jun 2015 09:28:22 +0000 (10:28 +0100)]
- Updated to version 2015.5 (2015e)

9 years ago- Updated to version .-96 ()
Derick Rethans [Mon, 15 Jun 2015 09:17:27 +0000 (10:17 +0100)]
- Updated to version .-96 ()

9 years agoEmpty merge
Derick Rethans [Mon, 15 Jun 2015 09:17:26 +0000 (10:17 +0100)]
Empty merge

9 years ago- Updated to version .-96 ()
Derick Rethans [Mon, 15 Jun 2015 09:17:24 +0000 (10:17 +0100)]
- Updated to version .-96 ()

9 years agoEmpty merge
Derick Rethans [Mon, 15 Jun 2015 09:17:24 +0000 (10:17 +0100)]
Empty merge

9 years ago- Updated to version .-96 ()
Derick Rethans [Mon, 15 Jun 2015 09:17:23 +0000 (10:17 +0100)]
- Updated to version .-96 ()

9 years agoAdd Throwable tests
Aaron Piotrowski [Mon, 15 Jun 2015 06:47:34 +0000 (01:47 -0500)]
Add Throwable tests

9 years agoFix previous exception type check
Aaron Piotrowski [Mon, 15 Jun 2015 06:36:49 +0000 (01:36 -0500)]
Fix previous exception type check

9 years agoMerge branch 'master' of git.php.net:php-src
Xinchen Hui [Mon, 15 Jun 2015 05:37:14 +0000 (13:37 +0800)]
Merge branch 'master' of git.php.net:php-src

9 years agoMerge branch 'oci8-php7' of https://github.com/camporter/php-src
Xinchen Hui [Mon, 15 Jun 2015 05:35:26 +0000 (13:35 +0800)]
Merge branch 'oci8-php7' of https://github.com/camporter/php-src

9 years agoUpdated UPGRADING with RFC link
Aaron Piotrowski [Mon, 15 Jun 2015 05:00:19 +0000 (00:00 -0500)]
Updated UPGRADING with RFC link

9 years agoChanged AssertionException to AssertionError
Aaron Piotrowski [Mon, 15 Jun 2015 04:52:39 +0000 (23:52 -0500)]
Changed AssertionException to AssertionError

9 years agoUpdate exception error messages
Aaron Piotrowski [Mon, 15 Jun 2015 03:43:11 +0000 (22:43 -0500)]
Update exception error messages

9 years agoMerge branch 'master' into throwable-interface
Aaron Piotrowski [Sun, 14 Jun 2015 23:53:11 +0000 (18:53 -0500)]
Merge branch 'master' into throwable-interface

# Conflicts:
# Zend/zend_language_scanner.c
# Zend/zend_language_scanner.l
# ext/simplexml/tests/SimpleXMLElement_xpath.phpt

9 years agoFix typo in PHP 7 upgrade notes
vlakoff [Sat, 13 Jun 2015 19:19:04 +0000 (21:19 +0200)]
Fix typo in PHP 7 upgrade notes

9 years agoFix off by one in short_circuiting optimization
Bob Weinand [Sun, 14 Jun 2015 15:08:39 +0000 (17:08 +0200)]
Fix off by one in short_circuiting optimization

9 years agoFixed bug #69831 (Segmentation fault in curl_getinfo)
Xinchen Hui [Sun, 14 Jun 2015 15:10:21 +0000 (23:10 +0800)]
Fixed bug #69831 (Segmentation fault in curl_getinfo)

9 years agoSimplify the condition
Xinchen Hui [Sun, 14 Jun 2015 14:56:06 +0000 (22:56 +0800)]
Simplify the condition

9 years agoRevert "Revert "Expand optimizations regarding short-circuting a bit""
Bob Weinand [Sun, 14 Jun 2015 13:46:11 +0000 (15:46 +0200)]
Revert "Revert "Expand optimizations regarding short-circuting a bit""

This reverts commit 3770a5ac666cdd4ff4803743232125948140450b.
Fixes the bug which probably made make install fail on travis
(It never happened to me that all tests passed, but make install failed...)

9 years agoupdate UPGRADING
Anatol Belski [Sun, 14 Jun 2015 11:45:40 +0000 (13:45 +0200)]
update UPGRADING

9 years agoupdate UPGRADING
Anatol Belski [Sun, 14 Jun 2015 10:54:19 +0000 (12:54 +0200)]
update UPGRADING

9 years agoRevert "Expand optimizations regarding short-circuting a bit"
Xinchen Hui [Sun, 14 Jun 2015 06:27:48 +0000 (14:27 +0800)]
Revert "Expand optimizations regarding short-circuting a bit"

This break the CI  (build error)

This reverts commit 3cfa58367b1b85d346d9be6cf9ae116c63571247.

9 years agoFixed skipf
Xinchen Hui [Sun, 14 Jun 2015 05:44:39 +0000 (13:44 +0800)]
Fixed skipf

9 years agoFixed Bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33 extensions are...
Xinchen Hui [Sun, 14 Jun 2015 04:28:40 +0000 (12:28 +0800)]
Fixed Bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33 extensions are loaded)

9 years agoExpand optimizations regarding short-circuting a bit
Bob Weinand [Sun, 14 Jun 2015 04:01:01 +0000 (06:01 +0200)]
Expand optimizations regarding short-circuting a bit

9 years agoAdd ZEND_ASSERT_CHECK to phpdbg opcode jump list
Bob Weinand [Sun, 14 Jun 2015 02:45:56 +0000 (04:45 +0200)]
Add ZEND_ASSERT_CHECK to phpdbg opcode jump list

9 years agoFix short-circuting (bug #69825)
Bob Weinand [Sun, 14 Jun 2015 00:00:55 +0000 (02:00 +0200)]
Fix short-circuting (bug #69825)

9 years agoFix bug #69814 Enabling php_curl, php_mysqli, and php_openssl causes php-cgi to crash
Anatol Belski [Sat, 13 Jun 2015 16:44:56 +0000 (18:44 +0200)]
Fix bug #69814 Enabling php_curl, php_mysqli, and php_openssl causes php-cgi to crash

9 years agoext/mysql has been removed as of PHP 7.0.0
Christoph M. Becker [Sat, 13 Jun 2015 14:44:52 +0000 (16:44 +0200)]
ext/mysql has been removed as of PHP 7.0.0

So remove all related settings from php.ini-*, and add a respective entry in
UPGRADING (strangly, this part of fd1578c has been lost).

9 years agoMerge branch 'PHP-5.6'
Matteo Beccati [Sat, 13 Jun 2015 06:08:30 +0000 (08:08 +0200)]
Merge branch 'PHP-5.6'

* PHP-5.6:
  Fix copy/paste error in test

9 years agoMerge branch 'PHP-5.5' into PHP-5.6
Matteo Beccati [Sat, 13 Jun 2015 06:08:21 +0000 (08:08 +0200)]
Merge branch 'PHP-5.5' into PHP-5.6

* PHP-5.5:
  Fix copy/paste error in test

9 years agoFix copy/paste error in test
Matteo Beccati [Sat, 13 Jun 2015 06:07:49 +0000 (08:07 +0200)]
Fix copy/paste error in test