Merge pull request #5876 from jtattermusch/csharp_win_tests
C# testing improvements
diff --git a/Makefile.am b/Makefile.am
index d2587fe..dd564e8 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -739,6 +739,7 @@
php/tests/autoload.php \
php/tests/bootstrap_phpunit.php \
php/tests/compatibility_test.sh \
+ php/tests/compile_extension.sh \
php/tests/descriptors_test.php \
php/tests/encode_decode_test.php \
php/tests/gdb_test.sh \
diff --git a/php/ext/google/protobuf/def.c b/php/ext/google/protobuf/def.c
index ef0f711..184ae2d 100644
--- a/php/ext/google/protobuf/def.c
+++ b/php/ext/google/protobuf/def.c
@@ -853,9 +853,10 @@
fill_namespace(package, php_namespace, &namesink);
fill_classname(fullname, package, prefix, &namesink, use_nested_submsg);
+ stringsink_string(&namesink, NULL, "\0", 1, NULL);
PHP_PROTO_CE_DECLARE pce;
- if (php_proto_zend_lookup_class(namesink.ptr, namesink.len, &pce) ==
+ if (php_proto_zend_lookup_class(namesink.ptr, namesink.len - 1, &pce) ==
FAILURE) {
zend_error(
E_ERROR,
diff --git a/php/tests/compile_extension.sh b/php/tests/compile_extension.sh
new file mode 100755
index 0000000..bbd6696
--- /dev/null
+++ b/php/tests/compile_extension.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+EXTENSION_PATH=$1
+
+pushd $EXTENSION_PATH
+make clean || true
+set -e
+# Add following in configure for debug: --enable-debug CFLAGS='-g -O0'
+phpize && ./configure CFLAGS='-g -O0' && make
+popd
diff --git a/php/tests/php_implementation_test.php b/php/tests/php_implementation_test.php
index 8d27d19..307b749 100644
--- a/php/tests/php_implementation_test.php
+++ b/php/tests/php_implementation_test.php
@@ -14,8 +14,19 @@
use Google\Protobuf\Internal\GPBWire;
use Google\Protobuf\Internal\CodedOutputStream;
+/**
+ * Please note, this test is only intended to be run without the protobuf C
+ * extension.
+ */
class ImplementationTest extends TestBase
{
+ public function setUp()
+ {
+ if (extension_loaded('protobuf')) {
+ $this->markTestSkipped();
+ }
+ }
+
public function testReadInt32()
{
$value = null;
diff --git a/php/tests/test.sh b/php/tests/test.sh
index b5e8769..be6e97f 100755
--- a/php/tests/test.sh
+++ b/php/tests/test.sh
@@ -7,12 +7,7 @@
export CPLUS_INCLUDE_PATH=/usr/local/php-$VERSION/include/php/main:/usr/local/php-$VERSION/include/php:$CPLUS_INCLUDE_PATH
# Compile c extension
-pushd ../ext/google/protobuf/
-make clean || true
-set -e
-# Add following in configure for debug: --enable-debug CFLAGS='-g -O0'
-phpize && ./configure CFLAGS='-g -O0' && make
-popd
+/bin/bash ./compile_extension.sh ../ext/google/protobuf
tests=( array_test.php encode_decode_test.php generated_class_test.php map_field_test.php well_known_test.php descriptors_test.php wrapper_type_setters_test.php)
diff --git a/src/google/protobuf/stubs/strutil.h b/src/google/protobuf/stubs/strutil.h
index a9599cf..790500d 100644
--- a/src/google/protobuf/stubs/strutil.h
+++ b/src/google/protobuf/stubs/strutil.h
@@ -43,7 +43,7 @@
namespace google {
namespace protobuf {
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && _MSC_VER < 1800
#define strtoll _strtoi64
#define strtoull _strtoui64
#elif defined(__DECCXX) && defined(__osf__)
diff --git a/tests.sh b/tests.sh
index 6bfd1a8..b690dd2 100755
--- a/tests.sh
+++ b/tests.sh
@@ -473,6 +473,16 @@
# popd
}
+build_php5.5_mixed() {
+ use_php 5.5
+ pushd php
+ rm -rf vendor
+ composer update
+ /bin/bash ./tests/compile_extension.sh ./ext/google/protobuf
+ php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
+ popd
+}
+
build_php5.5_zts_c() {
use_php_zts 5.5
cd php/tests && /bin/bash ./test.sh 5.5-zts && cd ../..
@@ -503,6 +513,16 @@
# popd
}
+build_php5.6_mixed() {
+ use_php 5.6
+ pushd php
+ rm -rf vendor
+ composer update
+ /bin/bash ./tests/compile_extension.sh ./ext/google/protobuf
+ php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
+ popd
+}
+
build_php5.6_zts_c() {
use_php_zts 5.6
cd php/tests && /bin/bash ./test.sh 5.6-zts && cd ../..
@@ -558,6 +578,16 @@
# popd
}
+build_php7.0_mixed() {
+ use_php 7.0
+ pushd php
+ rm -rf vendor
+ composer update
+ /bin/bash ./tests/compile_extension.sh ./ext/google/protobuf
+ php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
+ popd
+}
+
build_php7.0_zts_c() {
use_php_zts 7.0
cd php/tests && /bin/bash ./test.sh 7.0-zts && cd ../..
@@ -621,6 +651,16 @@
fi
}
+build_php7.1_mixed() {
+ use_php 7.1
+ pushd php
+ rm -rf vendor
+ composer update
+ /bin/bash ./tests/compile_extension.sh ./ext/google/protobuf
+ php -dextension=./ext/google/protobuf/modules/protobuf.so ./vendor/bin/phpunit
+ popd
+}
+
build_php7.1_zts_c() {
use_php_zts 7.1
cd php/tests && /bin/bash ./test.sh 7.1-zts && cd ../..
@@ -638,6 +678,10 @@
build_php5.6_c
build_php7.0_c
build_php7.1_c $1
+ build_php5.5_mixed
+ build_php5.6_mixed
+ build_php7.0_mixed
+ build_php7.1_mixed
build_php5.5_zts_c
build_php5.6_zts_c
build_php7.0_zts_c