ports/172491: [NEW PORT] devel/pecl-test_helpers: An extension to ease testing of PHP code

Gasol Wu gasol.wu at gmail.com
Mon Oct 8 15:40:17 UTC 2012


>Number:         172491
>Category:       ports
>Synopsis:       [NEW PORT] devel/pecl-test_helpers: An extension to ease testing of PHP code
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Oct 08 15:40:12 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Gasol Wu
>Release:        FreeBSD 9.1-RC1 amd64
>Organization:
>Environment:
System: FreeBSD goingmarry 9.1-RC1 FreeBSD 9.1-RC1 #0: Tue Aug 14 04:25:06 UTC 2012
>Description:

- patch based on https://github.com/sebastianbergmann/php-test-helpers/pull/16
- Add notes for combination with other extensions

test_helpers is an extension for the PHP Interpreter to ease testing of
PHP code.

WWW: https://github.com/sebastianbergmann/php-test-helpers

Generated with FreeBSD Port Tools 0.99_6 (mode: new)
>How-To-Repeat:
>Fix:

--- .shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	pecl-test_helpers
#	pecl-test_helpers/pkg-descr
#	pecl-test_helpers/Makefile
#	pecl-test_helpers/distinfo
#	pecl-test_helpers/files
#	pecl-test_helpers/files/pkg-message.in
#	pecl-test_helpers/files/patch-test_helpers.c
#
echo c - pecl-test_helpers
mkdir -p pecl-test_helpers > /dev/null 2>&1
echo x - pecl-test_helpers/pkg-descr
sed 's/^X//' >pecl-test_helpers/pkg-descr << '71ae18bc0471a94e4ff9aca960196657'
Xtest_helpers is an extension for the PHP Interpreter to ease testing of
XPHP code.
X
XWWW: https://github.com/sebastianbergmann/php-test-helpers
71ae18bc0471a94e4ff9aca960196657
echo x - pecl-test_helpers/Makefile
sed 's/^X//' >pecl-test_helpers/Makefile << '7b587f09c9aa5f15c8bc5d12732959ae'
X# Created by: Gasol Wu <gasol.wu at gmail.com>
X# $FreeBSD$
X
XPORTNAME=	test_helpers
XPORTVERSION=	1.1.0
XCATEGORIES=	devel pear
XMASTER_SITES=	http://pear.phpunit.de/get/
XPKGNAMEPREFIX=	pecl-
XEXTRACT_SUFX=	.tgz
X
XMAINTAINER=	gasol.wu at gmail.com
XCOMMENT=	An extension to ease testing of PHP code
X
XCONFIGURE_ARGS=	--enable-test-helpers
XUSE_PHP=	yes
XUSE_PHPEXT=	yes
XUSE_PHPIZE=	yes
XSUB_FILES=	pkg-message
X
XPKGMESSAGE=	${WRKDIR}/pkg-message
X
Xpost-install:
X	@${CAT} ${PKGMESSAGE}
X
X.include <bsd.port.mk>
7b587f09c9aa5f15c8bc5d12732959ae
echo x - pecl-test_helpers/distinfo
sed 's/^X//' >pecl-test_helpers/distinfo << '24dbb8f2a60c1115986ede3bef64b383'
XSHA256 (test_helpers-1.1.0.tgz) = 4fc53f6b8b7881dc3fbcfdaa08428dab59caf2e22c8df588eb5182055d095c6d
XSIZE (test_helpers-1.1.0.tgz) = 10370
24dbb8f2a60c1115986ede3bef64b383
echo c - pecl-test_helpers/files
mkdir -p pecl-test_helpers/files > /dev/null 2>&1
echo x - pecl-test_helpers/files/pkg-message.in
sed 's/^X//' >pecl-test_helpers/files/pkg-message.in << '3f0facb48a3f80c4de2dce10caf4455b'
X*****************************************************************************
XThe php extension 'test_helpers' has been installed successful.
XAdd a line containing
X
X	extension=%%PREFIX%%/lib/php/%%PHP_EXT_DIR%%/test_helpers.so
X
Xor
X
X	zend_extension=%%PREFIX%%/lib/php/%%PHP_EXT_DIR%%/test_helpers.so
X
XIf this extension is used in combination with other extensions, such as Xdebug,
Xwhich are also overloading the `ZEND_NEW` opcode you have to load it as 
X`zend_extension` after loading the conflicting extension. This can be done in 
Xyour `php.ini` like this:
X
X    zend_extension=xdebug.so
X    zend_extension=test-helpers.so
X
XPlease refer to `phpinfo()` to verify whether a conflict was detected and 
Xwhether the work-around was enabled.
X
X*****************************************************************************
3f0facb48a3f80c4de2dce10caf4455b
echo x - pecl-test_helpers/files/patch-test_helpers.c
sed 's/^X//' >pecl-test_helpers/files/patch-test_helpers.c << 'e1b322f2cdc0072bdff3769ce48dc39d'
X--- ./test_helpers.c.orig	2010-10-25 15:05:08.000000000 +0800
X+++ ./test_helpers.c	2012-10-08 17:41:40.355030000 +0800
X@@ -102,14 +102,30 @@
X 	case IS_CONST:
X 		return &(node->u.constant);
X 	case IS_VAR:
X+#if ZEND_EXTENSION_API_NO >= 220100525
X+		return EX_T(node->u.op.var).var.ptr;
X+#else
X 		return EX_T(node->u.var).var.ptr;
X+#endif
X 	case IS_TMP_VAR:
X+#if ZEND_EXTENSION_API_NO >= 220100525
X+		return (*freeval = &EX_T(node->u.op.var).tmp_var);
X+#else
X 		return (*freeval = &EX_T(node->u.var).tmp_var);
X+#endif
X 	case IS_CV:
X 		{
X+#if ZEND_EXTENSION_API_NO >= 220100525
X+		zval ***ret = &execute_data->CVs[node->u.op.var];
X+#else
X 		zval ***ret = &execute_data->CVs[node->u.var];
X+#endif
X 		if (!*ret) {
X+#if ZEND_EXTENSION_API_NO >= 220100525
X+				zend_compiled_variable *cv = &EG(active_op_array)->vars[node->u.op.var];
X+#else
X 				zend_compiled_variable *cv = &EG(active_op_array)->vars[node->u.var];
X+#endif
X 				if (zend_hash_quick_find(EG(active_symbol_table), cv->name, cv->name_len+1, cv->hash_value, (void**)ret)==FAILURE) {
X 					zend_error(E_NOTICE, "Undefined variable: %s", cv->name);
X 					return &EG(uninitialized_zval);
X@@ -165,7 +181,11 @@
X 		}
X 	}
X 
X+#if ZEND_EXTENSION_API_NO >= 220100525
X+	old_ce = EX_T(opline->op1.var).class_entry;
X+#else
X 	old_ce = EX_T(opline->op1.u.var).class_entry;
X+#endif
X 
X 	MAKE_STD_ZVAL(arg);
X 	ZVAL_STRINGL(arg, old_ce->name, old_ce->name_length, 1);
X@@ -189,7 +209,11 @@
X 	zval_ptr_dtor(&retval);
X 
X 
X+#if ZEND_EXTENSION_API_NO >= 220100525
X+	EX_T(opline->op1.var).class_entry = *new_ce;
X+#else
X 	EX_T(opline->op1.u.var).class_entry = *new_ce;
X+#endif
X 
X 	if (old_new_handler) {
X 		return old_new_handler(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
e1b322f2cdc0072bdff3769ce48dc39d
exit
--- .shar ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list