@ -2,12 +2,14 @@
function use_php( ) {
VERSION = $1
PHP = ` which php`
PHP_CONFIG = ` which php-config`
PHPIZE = ` which phpize`
ln -sfn " /usr/local/php- ${ VERSION } /bin/php " $PHP
ln -sfn " /usr/local/php- ${ VERSION } /bin/php-config " $PHP_CONFIG
ln -sfn " /usr/local/php- ${ VERSION } /bin/phpize " $PHPIZE
OLD_PATH = $PATH
OLD_CPLUS_INCLUDE_PATH = $CPLUS_INCLUDE_PATH
OLD_C_INCLUDE_PATH = $C_INCLUDE_PATH
export PATH = /usr/local/php-${ VERSION } /bin:$OLD_PATH
export CPLUS_INCLUDE_PATH = /usr/local/php-${ VERSION } /include/php/main:/usr/local/php-${ VERSION } /include/php/:$OLD_CPLUS_INCLUDE_PATH
export C_INCLUDE_PATH = /usr/local/php-${ VERSION } /include/php/main:/usr/local/php-${ VERSION } /include/php/:$OLD_C_INCLUDE_PATH
}
function generate_proto( ) {
@ -18,7 +20,22 @@ function generate_proto() {
mkdir generated
$PROTOC1 --php_out= generated proto/test_include.proto
$PROTOC2 --php_out= generated proto/test.proto proto/test_no_namespace.proto proto/test_prefix.proto
$PROTOC2 --php_out= generated \
proto/test.proto \
proto/test_no_namespace.proto \
proto/test_prefix.proto \
proto/test_php_namespace.proto \
proto/test_empty_php_namespace.proto \
proto/test_reserved_enum_lower.proto \
proto/test_reserved_enum_upper.proto \
proto/test_reserved_enum_value_lower.proto \
proto/test_reserved_enum_value_upper.proto \
proto/test_reserved_message_lower.proto \
proto/test_reserved_message_upper.proto \
proto/test_service.proto \
proto/test_service_namespace.proto \
proto/test_descriptors.proto
pushd ../../src
$PROTOC2 --php_out= ../php/tests/generated -I../php/tests -I. ../php/tests/proto/test_import_descriptor_proto.proto
popd
@ -52,9 +69,9 @@ cd $(dirname $0)
# The old version of protobuf that we are testing compatibility against.
case " $1 " in
"" | 3.3 .0)
OLD_VERSION = 3.3 .0
OLD_VERSION_PROTOC = http://repo1.maven.org/maven2/com/google/protobuf/protoc/3.3.0/protoc-3.3.0 -linux-x86_64.exe
"" | 3.5 .0)
OLD_VERSION = 3.5 .0
OLD_VERSION_PROTOC = http://repo1.maven.org/maven2/com/google/protobuf/protoc/$OLD_VERSION /protoc-$OLD_VERSION -linux-x86_64.exe
; ;
*)
echo " [ERROR]: Unknown version number: $1 "
@ -81,7 +98,7 @@ git checkout v$OLD_VERSION
popd
# Build and copy the new runtime
use_php 5.5
use_php 7.1
pushd ../ext/google/protobuf
make clean || true
phpize && ./configure && make
@ -99,12 +116,12 @@ chmod +x old_protoc
NEW_PROTOC = ` pwd ` /../../src/protoc
OLD_PROTOC = ` pwd ` /old_protoc
cd protobuf/php
cp -r /usr/local/vendor-5.5 vendor
wget https://phar.phpunit.de/phpunit-4.8.0.phar -O /usr/bin/phpunit
composer install
# Remove implementation detail tests.
tests = ( array_test.php encode_decode_test.php generated_class_test.php map_field_test.php well_known_test.php )
sed -i.bak '/php_implementation_test.php/d' phpunit.xml
sed -i.bak '/generated_phpdoc_test.php/d' phpunit.xml
for t in " ${ tests [@] } "
do
remove_error_test tests/$t
@ -118,7 +135,7 @@ cd tests
generate_proto $OLD_PROTOC $OLD_PROTOC
./test.sh
pushd ..
phpunit
./vendor/bin/ phpunit
popd
# Test A.2:
@ -127,7 +144,7 @@ popd
generate_proto $NEW_PROTOC $OLD_PROTOC
./test.sh
pushd ..
phpunit
./vendor/bin/ phpunit
popd
# Test A.3:
@ -136,5 +153,5 @@ popd
generate_proto $OLD_PROTOC $NEW_PROTOC
./test.sh
pushd ..
phpunit
./vendor/bin/ phpunit
popd