aboutsummaryrefslogtreecommitdiffhomepage
path: root/php/tests
diff options
context:
space:
mode:
authorGravatar Paul Yang <TeBoring@users.noreply.github.com>2017-06-30 12:14:09 -0700
committerGravatar GitHub <noreply@github.com>2017-06-30 12:14:09 -0700
commitecca6ea95d56a6f70ff7b223ec3f904758acc8b1 (patch)
tree728f4aff0d5f00c78a741cf737ea6de58f4ba645 /php/tests
parent5a52b3588d35d2fa0b9ce4eda5630546966a26b4 (diff)
Add json encode/decode for php. (#3226)
* Add json encode/decode for php. * Fix php conformance test on 32-bit machines. * Fix conformance test for c extension. * Fix comments
Diffstat (limited to 'php/tests')
-rw-r--r--php/tests/array_test.php625
-rwxr-xr-xphp/tests/compatibility_test.sh34
-rw-r--r--php/tests/encode_decode_test.php821
-rwxr-xr-xphp/tests/gdb_test.sh2
-rw-r--r--php/tests/generated_class_test.php241
-rw-r--r--php/tests/map_field_test.php277
-rw-r--r--php/tests/memory_leak_test.php2
-rw-r--r--php/tests/php_implementation_test.php107
-rw-r--r--php/tests/test_base.php3
-rw-r--r--php/tests/undefined_test.php920
10 files changed, 1539 insertions, 1493 deletions
diff --git a/php/tests/array_test.php b/php/tests/array_test.php
index b55408da..271389ba 100644
--- a/php/tests/array_test.php
+++ b/php/tests/array_test.php
@@ -19,23 +19,23 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::INT32);
// Test append.
- $arr []= MAX_INT32;
+ $arr[] = MAX_INT32;
$this->assertSame(MAX_INT32, $arr[0]);
- $arr []= MIN_INT32;
+ $arr[] = MIN_INT32;
$this->assertSame(MIN_INT32, $arr[1]);
- $arr []= 1.1;
+ $arr[] = 1.1;
$this->assertSame(1, $arr[2]);
- $arr []= MAX_INT32_FLOAT;
+ $arr[] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[3]);
- $arr []= MAX_INT32_FLOAT;
+ $arr[] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[4]);
- $arr []= '2';
+ $arr[] = '2';
$this->assertSame(2, $arr[5]);
- $arr []= '3.1';
+ $arr[] = '3.1';
$this->assertSame(3, $arr[6]);
- $arr []= MAX_INT32_STRING;
+ $arr[] = MAX_INT32_STRING;
$this->assertSame(MAX_INT32, $arr[7]);
$this->assertEquals(8, count($arr));
@@ -46,29 +46,29 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= MAX_INT32;
+ $arr[0] = MAX_INT32;
$this->assertSame(MAX_INT32, $arr[0]);
- $arr [1]= MIN_INT32;
+ $arr[1] = MIN_INT32;
$this->assertSame(MIN_INT32, $arr[1]);
- $arr [2]= 1.1;
+ $arr[2] = 1.1;
$this->assertSame(1, $arr[2]);
- $arr [3]= MAX_INT32_FLOAT;
+ $arr[3] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[3]);
- $arr [4]= MAX_INT32_FLOAT;
+ $arr[4] = MAX_INT32_FLOAT;
$this->assertSame(MAX_INT32, $arr[4]);
- $arr [5]= '2';
+ $arr[5] = '2';
$this->assertSame(2, $arr[5]);
- $arr [6]= '3.1';
+ $arr[6] = '3.1';
$this->assertSame(3, $arr[6]);
- $arr [7]= MAX_INT32_STRING;
+ $arr[7] = MAX_INT32_STRING;
$this->assertSame(MAX_INT32, $arr[7]);
// Test foreach.
$arr = new RepeatedField(GPBType::INT32);
for ($i = 0; $i < 3; $i++) {
- $arr []= $i;
+ $arr[] = $i;
}
$i = 0;
foreach ($arr as $val) {
@@ -77,44 +77,6 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$this->assertSame(3, $i);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32AppendStringFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32SetStringFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr []= 0;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32AppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32SetMessageFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr []= 0;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test uint32 field.
#########################################################
@@ -124,31 +86,31 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::UINT32);
// Test append.
- $arr []= MAX_UINT32;
+ $arr[] = MAX_UINT32;
$this->assertSame(-1, $arr[0]);
- $arr []= -1;
+ $arr[] = -1;
$this->assertSame(-1, $arr[1]);
- $arr []= MIN_UINT32;
+ $arr[] = MIN_UINT32;
$this->assertSame(MIN_UINT32, $arr[2]);
- $arr []= 1.1;
+ $arr[] = 1.1;
$this->assertSame(1, $arr[3]);
- $arr []= MAX_UINT32_FLOAT;
+ $arr[] = MAX_UINT32_FLOAT;
$this->assertSame(-1, $arr[4]);
- $arr []= -1.0;
+ $arr[] = -1.0;
$this->assertSame(-1, $arr[5]);
- $arr []= MIN_UINT32_FLOAT;
+ $arr[] = MIN_UINT32_FLOAT;
$this->assertSame(MIN_UINT32, $arr[6]);
- $arr []= '2';
+ $arr[] = '2';
$this->assertSame(2, $arr[7]);
- $arr []= '3.1';
+ $arr[] = '3.1';
$this->assertSame(3, $arr[8]);
- $arr []= MAX_UINT32_STRING;
+ $arr[] = MAX_UINT32_STRING;
$this->assertSame(-1, $arr[9]);
- $arr []= '-1.0';
+ $arr[] = '-1.0';
$this->assertSame(-1, $arr[10]);
- $arr []= MIN_UINT32_STRING;
+ $arr[] = MIN_UINT32_STRING;
$this->assertSame(MIN_UINT32, $arr[11]);
$this->assertEquals(12, count($arr));
@@ -159,72 +121,34 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= MAX_UINT32;
+ $arr[0] = MAX_UINT32;
$this->assertSame(-1, $arr[0]);
- $arr [1]= -1;
+ $arr[1] = -1;
$this->assertSame(-1, $arr[1]);
- $arr [2]= MIN_UINT32;
+ $arr[2] = MIN_UINT32;
$this->assertSame(MIN_UINT32, $arr[2]);
- $arr [3]= 1.1;
+ $arr[3] = 1.1;
$this->assertSame(1, $arr[3]);
- $arr [4]= MAX_UINT32_FLOAT;
+ $arr[4] = MAX_UINT32_FLOAT;
$this->assertSame(-1, $arr[4]);
- $arr [5]= -1.0;
+ $arr[5] = -1.0;
$this->assertSame(-1, $arr[5]);
- $arr [6]= MIN_UINT32_FLOAT;
+ $arr[6] = MIN_UINT32_FLOAT;
$this->assertSame(MIN_UINT32, $arr[6]);
- $arr [7]= '2';
+ $arr[7] = '2';
$this->assertSame(2, $arr[7]);
- $arr [8]= '3.1';
+ $arr[8] = '3.1';
$this->assertSame(3, $arr[8]);
- $arr [9]= MAX_UINT32_STRING;
+ $arr[9] = MAX_UINT32_STRING;
$this->assertSame(-1, $arr[9]);
- $arr [10]= '-1.0';
+ $arr[10] = '-1.0';
$this->assertSame(-1, $arr[10]);
- $arr [11]= MIN_UINT32_STRING;
+ $arr[11] = MIN_UINT32_STRING;
$this->assertSame(MIN_UINT32, $arr[11]);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32AppendStringFail()
- {
- $arr = new RepeatedField(GPBType::UINT32);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32SetStringFail()
- {
- $arr = new RepeatedField(GPBType::UINT32);
- $arr []= 0;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32AppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::UINT32);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32SetMessageFail()
- {
- $arr = new RepeatedField(GPBType::UINT32);
- $arr []= 0;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test int64 field.
#########################################################
@@ -234,13 +158,13 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::INT64);
// Test append.
- $arr []= MAX_INT64;
- $arr []= MIN_INT64;
- $arr []= 1.1;
- $arr []= '2';
- $arr []= '3.1';
- $arr []= MAX_INT64_STRING;
- $arr []= MIN_INT64_STRING;
+ $arr[] = MAX_INT64;
+ $arr[] = MIN_INT64;
+ $arr[] = 1.1;
+ $arr[] = '2';
+ $arr[] = '3.1';
+ $arr[] = MAX_INT64_STRING;
+ $arr[] = MIN_INT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_INT64, $arr[0]);
$this->assertSame(MIN_INT64, $arr[1]);
@@ -272,13 +196,13 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= MAX_INT64;
- $arr [1]= MIN_INT64;
- $arr [2]= 1.1;
- $arr [3]= '2';
- $arr [4]= '3.1';
- $arr [5]= MAX_INT64_STRING;
- $arr [6]= MIN_INT64_STRING;
+ $arr[0] = MAX_INT64;
+ $arr[1] = MIN_INT64;
+ $arr[2] = 1.1;
+ $arr[3] = '2';
+ $arr[4] = '3.1';
+ $arr[5] = MAX_INT64_STRING;
+ $arr[6] = MIN_INT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_INT64_STRING, $arr[0]);
@@ -299,44 +223,6 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64AppendStringFail()
- {
- $arr = new RepeatedField(GPBType::INT64);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64SetStringFail()
- {
- $arr = new RepeatedField(GPBType::INT64);
- $arr []= 0;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64AppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::INT64);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64SetMessageFail()
- {
- $arr = new RepeatedField(GPBType::INT64);
- $arr []= 0;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test uint64 field.
#########################################################
@@ -346,11 +232,11 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::UINT64);
// Test append.
- $arr []= MAX_UINT64;
- $arr []= 1.1;
- $arr []= '2';
- $arr []= '3.1';
- $arr []= MAX_UINT64_STRING;
+ $arr[] = MAX_UINT64;
+ $arr[] = 1.1;
+ $arr[] = '2';
+ $arr[] = '3.1';
+ $arr[] = MAX_UINT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_UINT64_STRING, $arr[0]);
@@ -379,11 +265,11 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= MAX_UINT64;
- $arr [1]= 1.1;
- $arr [2]= '2';
- $arr [3]= '3.1';
- $arr [4]= MAX_UINT64_STRING;
+ $arr[0] = MAX_UINT64;
+ $arr[1] = 1.1;
+ $arr[2] = '2';
+ $arr[3] = '3.1';
+ $arr[4] = MAX_UINT64_STRING;
if (PHP_INT_SIZE == 4) {
$this->assertSame(MAX_UINT64_STRING, $arr[0]);
@@ -400,44 +286,6 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64AppendStringFail()
- {
- $arr = new RepeatedField(GPBType::UINT64);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64SetStringFail()
- {
- $arr = new RepeatedField(GPBType::UINT64);
- $arr []= 0;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64AppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::UINT64);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64SetMessageFail()
- {
- $arr = new RepeatedField(GPBType::UINT64);
- $arr []= 0;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test float field.
#########################################################
@@ -447,15 +295,15 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::FLOAT);
// Test append.
- $arr []= 1;
+ $arr[] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
- $arr []= 1.1;
+ $arr[] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
- $arr []= '2';
+ $arr[] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
- $arr []= '3.1';
+ $arr[] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
$this->assertEquals(4, count($arr));
@@ -466,56 +314,18 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= 1;
+ $arr[0] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
- $arr [1]= 1.1;
+ $arr[1] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
- $arr [2]= '2';
+ $arr[2] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
- $arr [3]= '3.1';
+ $arr[3] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatAppendStringFail()
- {
- $arr = new RepeatedField(GPBType::FLOAT);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatSetStringFail()
- {
- $arr = new RepeatedField(GPBType::FLOAT);
- $arr []= 0.0;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatAppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::FLOAT);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatSetMessageFail()
- {
- $arr = new RepeatedField(GPBType::FLOAT);
- $arr []= 0.0;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test double field.
#########################################################
@@ -525,15 +335,15 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::DOUBLE);
// Test append.
- $arr []= 1;
+ $arr[] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
- $arr []= 1.1;
+ $arr[] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
- $arr []= '2';
+ $arr[] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
- $arr []= '3.1';
+ $arr[] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
$this->assertEquals(4, count($arr));
@@ -544,56 +354,18 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= 1;
+ $arr[0] = 1;
$this->assertEquals(1.0, $arr[0], '', MAX_FLOAT_DIFF);
- $arr [1]= 1.1;
+ $arr[1] = 1.1;
$this->assertEquals(1.1, $arr[1], '', MAX_FLOAT_DIFF);
- $arr [2]= '2';
+ $arr[2] = '2';
$this->assertEquals(2.0, $arr[2], '', MAX_FLOAT_DIFF);
- $arr [3]= '3.1';
+ $arr[3] = '3.1';
$this->assertEquals(3.1, $arr[3], '', MAX_FLOAT_DIFF);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleAppendStringFail()
- {
- $arr = new RepeatedField(GPBType::DOUBLE);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleSetStringFail()
- {
- $arr = new RepeatedField(GPBType::DOUBLE);
- $arr []= 0.0;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleAppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::DOUBLE);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleSetMessageFail()
- {
- $arr = new RepeatedField(GPBType::DOUBLE);
- $arr []= 0.0;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test bool field.
#########################################################
@@ -603,16 +375,16 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::BOOL);
// Test append.
- $arr []= true;
+ $arr[] = true;
$this->assertSame(true, $arr[0]);
- $arr []= -1;
+ $arr[] = -1;
$this->assertSame(true, $arr[1]);
- $arr []= 1.1;
+ $arr[] = 1.1;
$this->assertSame(true, $arr[2]);
- $arr []= '';
+ $arr[] = '';
$this->assertSame(false, $arr[3]);
$this->assertEquals(4, count($arr));
@@ -623,38 +395,19 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= true;
+ $arr[0] = true;
$this->assertSame(true, $arr[0]);
- $arr [1]= -1;
+ $arr[1] = -1;
$this->assertSame(true, $arr[1]);
- $arr [2]= 1.1;
+ $arr[2] = 1.1;
$this->assertSame(true, $arr[2]);
- $arr [3]= '';
+ $arr[3] = '';
$this->assertSame(false, $arr[3]);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testBoolAppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::BOOL);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testBoolSetMessageFail()
- {
- $arr = new RepeatedField(GPBType::BOOL);
- $arr []= true;
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test string field.
#########################################################
@@ -664,16 +417,16 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$arr = new RepeatedField(GPBType::STRING);
// Test append.
- $arr []= 'abc';
+ $arr[] = 'abc';
$this->assertSame('abc', $arr[0]);
- $arr []= 1;
+ $arr[] = 1;
$this->assertSame('1', $arr[1]);
- $arr []= 1.1;
+ $arr[] = 1.1;
$this->assertSame('1.1', $arr[2]);
- $arr []= true;
+ $arr[] = true;
$this->assertSame('1', $arr[3]);
$this->assertEquals(4, count($arr));
@@ -684,59 +437,19 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
}
// Test set.
- $arr [0]= 'abc';
+ $arr[0] = 'abc';
$this->assertSame('abc', $arr[0]);
- $arr [1]= 1;
+ $arr[1] = 1;
$this->assertSame('1', $arr[1]);
- $arr [2]= 1.1;
+ $arr[2] = 1.1;
$this->assertSame('1.1', $arr[2]);
- $arr [3]= true;
+ $arr[3] = true;
$this->assertSame('1', $arr[3]);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringAppendMessageFail()
- {
- $arr = new RepeatedField(GPBType::STRING);
- $arr []= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringSetMessageFail()
- {
- $arr = new RepeatedField(GPBType::STRING);
- $arr []= 'abc';
- $arr [0]= new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringAppendInvalidUTF8Fail()
- {
- $arr = new RepeatedField(GPBType::STRING);
- $hex = hex2bin("ff");
- $arr []= $hex;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringSetInvalidUTF8Fail()
- {
- $arr = new RepeatedField(GPBType::STRING);
- $arr []= 'abc';
- $hex = hex2bin("ff");
- $arr [0]= $hex;
- }
-
#########################################################
# Test message field.
#########################################################
@@ -748,7 +461,7 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
// Test append.
$sub_m = new TestMessage_Sub();
$sub_m->setA(1);
- $arr []= $sub_m;
+ $arr[] = $sub_m;
$this->assertSame(1, $arr[0]->getA());
$this->assertEquals(1, count($arr));
@@ -756,78 +469,10 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
// Test set.
$sub_m = new TestMessage_Sub();
$sub_m->setA(2);
- $arr [0]= $sub_m;
+ $arr[0] = $sub_m;
$this->assertSame(2, $arr[0]->getA());
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageAppendIntFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $arr []= 1;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetIntFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $arr []= new TestMessage_Sub;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageAppendStringFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $arr []= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetStringFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $arr []= new TestMessage_Sub;
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageAppendOtherMessageFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $arr []= new TestMessage;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageAppendNullFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $null = null;
- $arr []= $null;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetNullFail()
- {
- $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
- $arr []= new TestMessage_Sub();
- $null = null;
- $arr[0] = $null;
- }
-
#########################################################
# Test offset type
#########################################################
@@ -835,18 +480,18 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
public function testOffset()
{
$arr = new RepeatedField(GPBType::INT32);
- $arr []= 0;
+ $arr[] = 0;
- $arr [0]= 1;
+ $arr[0] = 1;
$this->assertSame(1, $arr[0]);
$this->assertSame(1, count($arr));
- $arr ['0']= 2;
+ $arr['0'] = 2;
$this->assertSame(2, $arr['0']);
$this->assertSame(2, $arr[0]);
$this->assertSame(1, count($arr));
- $arr [0.0]= 3;
+ $arr[0.0] = 3;
$this->assertSame(3, $arr[0.0]);
$this->assertSame(1, count($arr));
}
@@ -855,9 +500,9 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
{
$arr = new RepeatedField(GPBType::INT32);
- $arr []= 0;
- $arr []= 1;
- $arr []= 2;
+ $arr[] = 0;
+ $arr[] = 1;
+ $arr[] = 2;
$this->assertSame(3, count($arr));
unset($arr[2]);
@@ -865,67 +510,13 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
$this->assertSame(0, $arr[0]);
$this->assertSame(1, $arr[1]);
- $arr [] = 3;
+ $arr[] = 3;
$this->assertSame(3, count($arr));
$this->assertSame(0, $arr[0]);
$this->assertSame(1, $arr[1]);
$this->assertSame(3, $arr[2]);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testRemoveMiddleFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
-
- $arr []= 0;
- $arr []= 1;
- $arr []= 2;
- $this->assertSame(3, count($arr));
-
- unset($arr[1]);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testRemoveEmptyFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
-
- unset($arr[0]);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageOffsetFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr []= 0;
- $arr [new TestMessage_Sub()]= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringOffsetFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr []= 0;
- $arr ['abc']= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testSetNonExistedOffsetFail()
- {
- $arr = new RepeatedField(GPBType::INT32);
- $arr [0]= 0;
- }
-
#########################################################
# Test memory leak
#########################################################
@@ -933,7 +524,7 @@ class RepeatedFieldTest extends PHPUnit_Framework_TestCase
public function testCycleLeak()
{
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage::class);
- $arr []= new TestMessage;
+ $arr[] = new TestMessage;
$arr[0]->SetRepeatedRecursive($arr);
// Clean up memory before test.
diff --git a/php/tests/compatibility_test.sh b/php/tests/compatibility_test.sh
index e05b2af1..6f1e4900 100755
--- a/php/tests/compatibility_test.sh
+++ b/php/tests/compatibility_test.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-use_php() {
+function use_php() {
VERSION=$1
PHP=`which php`
PHP_CONFIG=`which php-config`
@@ -10,7 +10,7 @@ use_php() {
ln -sfn "/usr/local/php-${VERSION}/bin/phpize" $PHPIZE
}
-generate_proto() {
+function generate_proto() {
PROTOC1=$1
PROTOC2=$2
@@ -25,6 +25,27 @@ generate_proto() {
popd
}
+# Remove tests to expect error. These were added to API tests by mistake.
+function remove_error_test() {
+ local TEMPFILE=`tempfile`
+ cat $1 | \
+ awk -v file=`basename $1` -v dir=`basename $(dirname $1)` '
+ BEGIN {
+ show = 1
+ }
+ /@expectedException PHPUnit_Framework_Error/ { show = 0; next; }
+ / *\*\// { print; next; }
+ / *}/ {
+ if (!show) {
+ show = 1;
+ next;
+ }
+ }
+ show { print }
+ ' > $TEMPFILE
+ cp $TEMPFILE $1
+}
+
set -ex
# Change to the script's directory.
@@ -81,6 +102,15 @@ 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
+
+# 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
+for t in "${tests[@]}"
+do
+ remove_error_test tests/$t
+done
+
cd tests
# Test A.1:
diff --git a/php/tests/encode_decode_test.php b/php/tests/encode_decode_test.php
index b4cfed42..e2912ad4 100644
--- a/php/tests/encode_decode_test.php
+++ b/php/tests/encode_decode_test.php
@@ -14,417 +14,432 @@ use Foo\TestUnpackedMessage;
class EncodeDecodeTest extends TestBase
{
- public function testEncode()
- {
- $from = new TestMessage();
- $this->expectEmptyFields($from);
- $this->setFields($from);
- $this->expectFields($from);
-
- $data = $from->serializeToString();
- $this->assertSame(bin2hex(TestUtil::getGoldenTestMessage()),
- bin2hex($data));
- }
-
- public function testDecode()
- {
- $to = new TestMessage();
- $to->mergeFromString(TestUtil::getGoldenTestMessage());
- $this->expectFields($to);
- }
-
- public function testEncodeDecode()
- {
- $from = new TestMessage();
- $this->expectEmptyFields($from);
- $this->setFields($from);
- $this->expectFields($from);
-
- $data = $from->serializeToString();
-
- $to = new TestMessage();
- $to->mergeFromString($data);
- $this->expectFields($to);
- }
-
- public function testEncodeDecodeEmpty()
- {
- $from = new TestMessage();
- $this->expectEmptyFields($from);
-
- $data = $from->serializeToString();
-
- $to = new TestMessage();
- $to->mergeFromString($data);
- $this->expectEmptyFields($to);
- }
+# public function testEncode()
+# {
+# $from = new TestMessage();
+# $this->expectEmptyFields($from);
+# $this->setFields($from);
+# $this->expectFields($from);
+#
+# $data = $from->serializeToString();
+# $this->assertSame(bin2hex(TestUtil::getGoldenTestMessage()),
+# bin2hex($data));
+# }
+#
+# public function testDecode()
+# {
+# $to = new TestMessage();
+# $to->mergeFromString(TestUtil::getGoldenTestMessage());
+# $this->expectFields($to);
+# }
+#
+# public function testEncodeDecode()
+# {
+# $from = new TestMessage();
+# $this->expectEmptyFields($from);
+# $this->setFields($from);
+# $this->expectFields($from);
+#
+# $data = $from->serializeToString();
+#
+# $to = new TestMessage();
+# $to->mergeFromString($data);
+# $this->expectFields($to);
+# }
+#
+# public function testEncodeDecodeEmpty()
+# {
+# $from = new TestMessage();
+# $this->expectEmptyFields($from);
+#
+# $data = $from->serializeToString();
+#
+# $to = new TestMessage();
+# $to->mergeFromString($data);
+# $this->expectEmptyFields($to);
+# }
public function testEncodeDecodeOneof()
{
$m = new TestMessage();
- $m->setOneofInt32(1);
- $data = $m->serializeToString();
- $n = new TestMessage();
- $n->mergeFromString($data);
- $this->assertSame(1, $n->getOneofInt32());
-
- $m->setOneofFloat(2.0);
- $data = $m->serializeToString();
- $n = new TestMessage();
- $n->mergeFromString($data);
- $this->assertSame(2.0, $n->getOneofFloat());
-
- $m->setOneofString('abc');
- $data = $m->serializeToString();
- $n = new TestMessage();
- $n->mergeFromString($data);
- $this->assertSame('abc', $n->getOneofString());
-
- $sub_m = new TestMessage_Sub();
- $sub_m->setA(1);
- $m->setOneofMessage($sub_m);
- $data = $m->serializeToString();
- $n = new TestMessage();
- $n->mergeFromString($data);
- $this->assertSame(1, $n->getOneofMessage()->getA());
+# $m->setOneofInt32(1);
+# $data = $m->serializeToString();
+# $n = new TestMessage();
+# $n->mergeFromString($data);
+# $this->assertSame(1, $n->getOneofInt32());
+#
+# $m->setOneofFloat(2.0);
+# $data = $m->serializeToString();
+# $n = new TestMessage();
+# $n->mergeFromString($data);
+# $this->assertSame(2.0, $n->getOneofFloat());
+#
+# $m->setOneofString('abc');
+# $data = $m->serializeToString();
+# $n = new TestMessage();
+# $n->mergeFromString($data);
+# $this->assertSame('abc', $n->getOneofString());
+#
+# $sub_m = new TestMessage_Sub();
+# $sub_m->setA(1);
+# $m->setOneofMessage($sub_m);
+# $data = $m->serializeToString();
+# $n = new TestMessage();
+# $n->mergeFromString($data);
+# $this->assertSame(1, $n->getOneofMessage()->getA());
// Encode default value
- $m->setOneofEnum(TestEnum::ZERO);
+# $m->setOneofEnum(TestEnum::ZERO);
+# $data = $m->serializeToString();
+# $n = new TestMessage();
+# $n->mergeFromString($data);
+# $this->assertSame("oneof_enum", $n->getMyOneof());
+# $this->assertSame(TestEnum::ZERO, $n->getOneofEnum());
+
+ $m->setOneofString("");
$data = $m->serializeToString();
$n = new TestMessage();
$n->mergeFromString($data);
- $this->assertSame("oneof_enum", $n->getMyOneof());
- }
-
- public function testPackedEncode()
- {
- $from = new TestPackedMessage();
- TestUtil::setTestPackedMessage($from);
- $this->assertSame(TestUtil::getGoldenTestPackedMessage(),
- $from->serializeToString());
- }
-
- public function testPackedDecodePacked()
- {
- $to = new TestPackedMessage();
- $to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
- TestUtil::assertTestPackedMessage($to);
- }
-
- public function testPackedDecodeUnpacked()
- {
- $to = new TestPackedMessage();
- $to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
- TestUtil::assertTestPackedMessage($to);
- }
-
- public function testUnpackedEncode()
- {
- $from = new TestUnpackedMessage();
- TestUtil::setTestPackedMessage($from);
- $this->assertSame(TestUtil::getGoldenTestUnpackedMessage(),
- $from->serializeToString());
- }
-
- public function testUnpackedDecodePacked()
- {
- $to = new TestUnpackedMessage();
- $to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
- TestUtil::assertTestPackedMessage($to);
- }
-
- public function testUnpackedDecodeUnpacked()
- {
- $to = new TestUnpackedMessage();
- $to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
- TestUtil::assertTestPackedMessage($to);
- }
-
- public function testDecodeInt64()
- {
- // Read 64 testing
- $testVals = array(
- '10' => '100a',
- '100' => '1064',
- '800' => '10a006',
- '6400' => '108032',
- '70400' => '1080a604',
- '774400' => '1080a22f',
- '9292800' => '108098b704',
- '74342400' => '1080c0b923',
- '743424000' => '108080bfe202',
- '8177664000' => '108080b5bb1e',
- '65421312000' => '108080a8dbf301',
- '785055744000' => '108080e0c7ec16',
- '9420668928000' => '10808080dd969202',
- '103627358208000' => '10808080fff9c717',
- '1139900940288000' => '10808080f5bd978302',
- '13678811283456000' => '10808080fce699a618',
- '109430490267648000' => '10808080e0b7ceb1c201',
- '984874412408832000' => '10808080e0f5c1bed50d',
- );
-
- $msg = new TestMessage();
- foreach ($testVals as $original => $encoded) {
- $msg->setOptionalInt64($original);
- $data = $msg->serializeToString();
- $this->assertSame($encoded, bin2hex($data));
- $msg->setOptionalInt64(0);
- $msg->mergeFromString($data);
- $this->assertEquals($original, $msg->getOptionalInt64());
- }
- }
-
- public function testDecodeToExistingMessage()
- {
- $m1 = new TestMessage();
- $this->setFields($m1);
- $this->expectFields($m1);
-
- $m2 = new TestMessage();
- $this->setFields2($m2);
- $data = $m2->serializeToString();
-
- $m1->mergeFromString($data);
- $this->expectFieldsMerged($m1);
- }
-
- public function testDecodeFieldNonExist()
- {
- $data = hex2bin('c80501');
- $m = new TestMessage();
- $m->mergeFromString($data);
- }
-
- public function testEncodeNegativeInt32()
- {
- $m = new TestMessage();
- $m->setOptionalInt32(-1);
- $data = $m->serializeToString();
- $this->assertSame("08ffffffffffffffffff01", bin2hex($data));
- }
-
- public function testDecodeNegativeInt32()
- {
- $m = new TestMessage();
- $this->assertEquals(0, $m->getOptionalInt32());
- $m->mergeFromString(hex2bin("08ffffffffffffffffff01"));
- $this->assertEquals(-1, $m->getOptionalInt32());
-
- $m = new TestMessage();
- $this->assertEquals(0, $m->getOptionalInt32());
- $m->mergeFromString(hex2bin("08ffffffff0f"));
- $this->assertEquals(-1, $m->getOptionalInt32());
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidInt32()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('08'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidSubMessage()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('9A010108'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidInt64()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('10'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidUInt32()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('18'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidUInt64()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('20'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidSInt32()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('28'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidSInt64()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('30'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidFixed32()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('3D'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidFixed64()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('41'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidSFixed32()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('4D'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidSFixed64()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('51'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidFloat()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('5D'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidDouble()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('61'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidBool()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('68'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidStringLengthMiss()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('72'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidStringDataMiss()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('7201'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidBytesLengthMiss()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('7A'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidBytesDataMiss()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('7A01'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidEnum()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('8001'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidMessageLengthMiss()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('8A01'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidMessageDataMiss()
- {
- $m = new TestMessage();
- $m->mergeFromString(hex2bin('8A0101'));
- }
-
- /**
- * @expectedException Exception
- */
- public function testDecodeInvalidPackedMessageLength()
- {
- $m = new TestPackedMessage();
- $m->mergeFromString(hex2bin('D205'));
- }
-
- # TODO(teboring): Add test back when php implementation is ready for json
- # encode/decode.
- # public function testJsonEncode()
- # {
- # $from = new TestMessage();
- # $this->setFields($from);
- # $data = $from->jsonEncode();
- # $to = new TestMessage();
- # $to->jsonDecode($data);
- # $this->expectFields($to);
- # }
+ $this->assertSame("oneof_string", $n->getMyOneof());
+ $this->assertSame("", $n->getOneofString());
+
+# $sub_m = new TestMessage_Sub();
+# $m->setOneofMessage($sub_m);
+# $data = $m->serializeToString();
+# $n = new TestMessage();
+# $n->mergeFromString($data);
+# $this->assertSame("oneof_message", $n->getMyOneof());
+# $this->assertFalse(is_null($n->getOneofMessage()));
+
+ }
+
+# public function testPackedEncode()
+# {
+# $from = new TestPackedMessage();
+# TestUtil::setTestPackedMessage($from);
+# $this->assertSame(TestUtil::getGoldenTestPackedMessage(),
+# $from->serializeToString());
+# }
+#
+# public function testPackedDecodePacked()
+# {
+# $to = new TestPackedMessage();
+# $to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
+# TestUtil::assertTestPackedMessage($to);
+# }
+#
+# public function testPackedDecodeUnpacked()
+# {
+# $to = new TestPackedMessage();
+# $to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
+# TestUtil::assertTestPackedMessage($to);
+# }
+#
+# public function testUnpackedEncode()
+# {
+# $from = new TestUnpackedMessage();
+# TestUtil::setTestPackedMessage($from);
+# $this->assertSame(TestUtil::getGoldenTestUnpackedMessage(),
+# $from->serializeToString());
+# }
+#
+# public function testUnpackedDecodePacked()
+# {
+# $to = new TestUnpackedMessage();
+# $to->mergeFromString(TestUtil::getGoldenTestPackedMessage());
+# TestUtil::assertTestPackedMessage($to);
+# }
+#
+# public function testUnpackedDecodeUnpacked()
+# {
+# $to = new TestUnpackedMessage();
+# $to->mergeFromString(TestUtil::getGoldenTestUnpackedMessage());
+# TestUtil::assertTestPackedMessage($to);
+# }
+#
+# public function testDecodeInt64()
+# {
+# // Read 64 testing
+# $testVals = array(
+# '10' => '100a',
+# '100' => '1064',
+# '800' => '10a006',
+# '6400' => '108032',
+# '70400' => '1080a604',
+# '774400' => '1080a22f',
+# '9292800' => '108098b704',
+# '74342400' => '1080c0b923',
+# '743424000' => '108080bfe202',
+# '8177664000' => '108080b5bb1e',
+# '65421312000' => '108080a8dbf301',
+# '785055744000' => '108080e0c7ec16',
+# '9420668928000' => '10808080dd969202',
+# '103627358208000' => '10808080fff9c717',
+# '1139900940288000' => '10808080f5bd978302',
+# '13678811283456000' => '10808080fce699a618',
+# '109430490267648000' => '10808080e0b7ceb1c201',
+# '984874412408832000' => '10808080e0f5c1bed50d',
+# );
+#
+# $msg = new TestMessage();
+# foreach ($testVals as $original => $encoded) {
+# $msg->setOptionalInt64($original);
+# $data = $msg->serializeToString();
+# $this->assertSame($encoded, bin2hex($data));
+# $msg->setOptionalInt64(0);
+# $msg->mergeFromString($data);
+# $this->assertEquals($original, $msg->getOptionalInt64());
+# }
+# }
+#
+# public function testDecodeToExistingMessage()
+# {
+# $m1 = new TestMessage();
+# $this->setFields($m1);
+# $this->expectFields($m1);
+#
+# $m2 = new TestMessage();
+# $this->setFields2($m2);
+# $data = $m2->serializeToString();
+#
+# $m1->mergeFromString($data);
+# $this->expectFieldsMerged($m1);
+# }
+#
+# public function testDecodeFieldNonExist()
+# {
+# $data = hex2bin('c80501');
+# $m = new TestMessage();
+# $m->mergeFromString($data);
+# }
+#
+# public function testEncodeNegativeInt32()
+# {
+# $m = new TestMessage();
+# $m->setOptionalInt32(-1);
+# $data = $m->serializeToString();
+# $this->assertSame("08ffffffffffffffffff01", bin2hex($data));
+# }
+#
+# public function testDecodeNegativeInt32()
+# {
+# $m = new TestMessage();
+# $this->assertEquals(0, $m->getOptionalInt32());
+# $m->mergeFromString(hex2bin("08ffffffffffffffffff01"));
+# $this->assertEquals(-1, $m->getOptionalInt32());
+#
+# $m = new TestMessage();
+# $this->assertEquals(0, $m->getOptionalInt32());
+# $m->mergeFromString(hex2bin("08ffffffff0f"));
+# $this->assertEquals(-1, $m->getOptionalInt32());
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidInt32()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('08'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidSubMessage()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('9A010108'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidInt64()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('10'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidUInt32()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('18'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidUInt64()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('20'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidSInt32()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('28'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidSInt64()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('30'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidFixed32()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('3D'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidFixed64()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('41'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidSFixed32()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('4D'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidSFixed64()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('51'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidFloat()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('5D'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidDouble()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('61'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidBool()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('68'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidStringLengthMiss()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('72'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidStringDataMiss()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('7201'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidBytesLengthMiss()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('7A'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidBytesDataMiss()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('7A01'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidEnum()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('8001'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidMessageLengthMiss()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('8A01'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidMessageDataMiss()
+# {
+# $m = new TestMessage();
+# $m->mergeFromString(hex2bin('8A0101'));
+# }
+#
+# /**
+# * @expectedException Exception
+# */
+# public function testDecodeInvalidPackedMessageLength()
+# {
+# $m = new TestPackedMessage();
+# $m->mergeFromString(hex2bin('D205'));
+# }
+#
+# public function testJsonEncode()
+# {
+# $from = new TestMessage();
+# $this->setFields($from);
+# $data = $from->serializeToJsonString();
+# $to = new TestMessage();
+# $to->mergeFromJsonString($data);
+# $this->expectFields($to);
+# }
}
diff --git a/php/tests/gdb_test.sh b/php/tests/gdb_test.sh
index 0809bef3..484e2edf 100755
--- a/php/tests/gdb_test.sh
+++ b/php/tests/gdb_test.sh
@@ -3,7 +3,7 @@
# gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which
# phpunit` --bootstrap autoload.php tmp_test.php
#
-gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php well_known_test.php
+gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so `which phpunit` --bootstrap autoload.php encode_decode_test.php
#
# gdb --args php -dextension=../ext/google/protobuf/modules/protobuf.so memory_leak_test.php
#
diff --git a/php/tests/generated_class_test.php b/php/tests/generated_class_test.php
index 33f38e1c..56e3be20 100644
--- a/php/tests/generated_class_test.php
+++ b/php/tests/generated_class_test.php
@@ -62,24 +62,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame(MIN_INT32, $m->getOptionalInt32());
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32FieldInvalidTypeFail()
- {
- $m = new TestMessage();
- $m->setOptionalInt32(new TestMessage());
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32FieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalInt32('abc');
- }
-
#########################################################
# Test uint32 field.
#########################################################
@@ -119,24 +101,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame(MIN_INT32, $m->getOptionalUint32());
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32FieldInvalidTypeFail()
- {
- $m = new TestMessage();
- $m->setOptionalUint32(new TestMessage());
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32FieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalUint32('abc');
- }
-
#########################################################
# Test int64 field.
#########################################################
@@ -189,24 +153,6 @@ class GeneratedClassTest extends TestBase
}
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64FieldInvalidTypeFail()
- {
- $m = new TestMessage();
- $m->setOptionalInt64(new TestMessage());
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64FieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalInt64('abc');
- }
-
#########################################################
# Test uint64 field.
#########################################################
@@ -254,24 +200,6 @@ class GeneratedClassTest extends TestBase
}
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64FieldInvalidTypeFail()
- {
- $m = new TestMessage();
- $m->setOptionalUint64(new TestMessage());
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64FieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalUint64('abc');
- }
-
#########################################################
# Test enum field.
#########################################################
@@ -326,24 +254,6 @@ class GeneratedClassTest extends TestBase
$this->assertEquals(3.1, $m->getOptionalFloat(), '', MAX_FLOAT_DIFF);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatFieldInvalidTypeFail()
- {
- $m = new TestMessage();
- $m->setOptionalFloat(new TestMessage());
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatFieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalFloat('abc');
- }
-
#########################################################
# Test double field.
#########################################################
@@ -367,24 +277,6 @@ class GeneratedClassTest extends TestBase
$this->assertEquals(3.1, $m->getOptionalDouble(), '', MAX_FLOAT_DIFF);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleFieldInvalidTypeFail()
- {
- $m = new TestMessage();
- $m->setOptionalDouble(new TestMessage());
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleFieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalDouble('abc');
- }
-
#########################################################
# Test bool field.
#########################################################
@@ -410,15 +302,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame(false, $m->getOptionalBool());
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testBoolFieldInvalidStringFail()
- {
- $m = new TestMessage();
- $m->setOptionalBool(new TestMessage());
- }
-
#########################################################
# Test string field.
#########################################################
@@ -444,16 +327,6 @@ class GeneratedClassTest extends TestBase
$this->assertSame('1', $m->getOptionalString());
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringFieldInvalidUTF8Fail()
- {
- $m = new TestMessage();
- $hex = hex2bin("ff");
- $m->setOptionalString($hex);
- }
-
#########################################################
# Test bytes field.
#########################################################
@@ -504,25 +377,6 @@ class GeneratedClassTest extends TestBase
$this->assertNull($m->getOptionalMessage());
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageFieldWrongTypeFail()
- {
- $m = new TestMessage();
- $a = 1;
- $m->setOptionalMessage($a);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageFieldWrongClassFail()
- {
- $m = new TestMessage();
- $m->setOptionalMessage(new TestMessage());
- }
-
#########################################################
# Test repeated field.
#########################################################
@@ -556,48 +410,6 @@ class GeneratedClassTest extends TestBase
$this->assertFalse($arr instanceof RepeatedField);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testRepeatedFieldWrongTypeFail()
- {
- $m = new TestMessage();
- $a = 1;
- $m->setRepeatedInt32($a);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testRepeatedFieldWrongObjectFail()
- {
- $m = new TestMessage();
- $m->setRepeatedInt32($m);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testRepeatedFieldWrongRepeatedTypeFail()
- {
- $m = new TestMessage();
-
- $repeated_int32 = new RepeatedField(GPBType::UINT32);
- $m->setRepeatedInt32($repeated_int32);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testRepeatedFieldWrongRepeatedMessageClassFail()
- {
- $m = new TestMessage();
-
- $repeated_message = new RepeatedField(GPBType::MESSAGE,
- TestMessage::class);
- $m->setRepeatedMessage($repeated_message);
- }
-
#########################################################
# Test map field.
#########################################################
@@ -629,49 +441,6 @@ class GeneratedClassTest extends TestBase
$this->assertFalse($dict instanceof MapField);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMapFieldWrongTypeFail()
- {
- $m = new TestMessage();
- $a = 1;
- $m->setMapInt32Int32($a);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMapFieldWrongObjectFail()
- {
- $m = new TestMessage();
- $m->setMapInt32Int32($m);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMapFieldWrongRepeatedTypeFail()
- {
- $m = new TestMessage();
-
- $map_uint32_uint32 = new MapField(GPBType::UINT32, GPBType::UINT32);
- $m->setMapInt32Int32($map_uint32_uint32);
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMapFieldWrongRepeatedMessageClassFail()
- {
- $m = new TestMessage();
-
- $map_int32_message = new MapField(GPBType::INT32,
- GPBType::MESSAGE,
- TestMessage::class);
- $m->setMapInt32Message($map_int32_message);
- }
-
#########################################################
# Test oneof field.
#########################################################
@@ -851,16 +620,6 @@ class GeneratedClassTest extends TestBase
$this->expectFields($n);
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageMergeFromInvalidTypeFail()
- {
- $m = new TestMessage();
- $n = new TestMessage_Sub();
- $m->mergeFrom($n);
- }
-
#########################################################
# Test message/enum without namespace.
#########################################################
diff --git a/php/tests/map_field_test.php b/php/tests/map_field_test.php
index 2fda9135..c5d21264 100644
--- a/php/tests/map_field_test.php
+++ b/php/tests/map_field_test.php
@@ -58,42 +58,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32SetStringKeyFail()
- {
- $arr = new MapField(GPBType::INT32, GPBType::INT32);
- $arr ['abc']= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32SetStringValueFail()
- {
- $arr = new MapField(GPBType::INT32, GPBType::INT32);
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32SetMessageKeyFail()
- {
- $arr = new MapField(GPBType::INT32, GPBType::INT32);
- $arr [new TestMessage_Sub()]= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt32SetMessageValueFail()
- {
- $arr = new MapField(GPBType::INT32, GPBType::INT32);
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test uint32 field.
#########################################################
@@ -159,42 +123,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32SetStringKeyFail()
- {
- $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
- $arr ['abc']= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32SetStringValueFail()
- {
- $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32SetMessageKeyFail()
- {
- $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
- $arr [new TestMessage_Sub()]= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint32SetMessageValueFail()
- {
- $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test int64 field.
#########################################################
@@ -252,42 +180,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64SetStringKeyFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::INT64);
- $arr ['abc']= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64SetStringValueFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::INT64);
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64SetMessageKeyFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::INT64);
- $arr [new TestMessage_Sub()]= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testInt64SetMessageValueFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::INT64);
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test uint64 field.
#########################################################
@@ -339,42 +231,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64SetStringKeyFail()
- {
- $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
- $arr ['abc']= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64SetStringValueFail()
- {
- $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64SetMessageKeyFail()
- {
- $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
- $arr [new TestMessage_Sub()]= 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testUint64SetMessageValueFail()
- {
- $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test float field.
#########################################################
@@ -397,24 +253,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(4, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatSetStringValueFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::FLOAT);
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testFloatSetMessageValueFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::FLOAT);
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test double field.
#########################################################
@@ -437,24 +275,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(4, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleSetStringValueFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
- $arr [0]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testDoubleSetMessageValueFail()
- {
- $arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
- $arr [0]= new TestMessage_Sub();
- }
-
#########################################################
# Test bool field.
#########################################################
@@ -515,24 +335,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testBoolSetMessageKeyFail()
- {
- $arr = new MapField(GPBType::BOOL, GPBType::BOOL);
- $arr [new TestMessage_Sub()]= true;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testBoolSetMessageValueFail()
- {
- $arr = new MapField(GPBType::BOOL, GPBType::BOOL);
- $arr [true]= new TestMessage_Sub();
- }
-
#########################################################
# Test string field.
#########################################################
@@ -566,42 +368,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(0, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringSetInvalidUTF8KeyFail()
- {
- $arr = new MapField(GPBType::STRING, GPBType::STRING);
- $arr[hex2bin("ff")]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringSetInvalidUTF8ValueFail()
- {
- $arr = new MapField(GPBType::STRING, GPBType::STRING);
- $arr ['abc']= hex2bin("ff");
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringSetMessageKeyFail()
- {
- $arr = new MapField(GPBType::STRING, GPBType::STRING);
- $arr [new TestMessage_Sub()]= 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testStringSetMessageValueFail()
- {
- $arr = new MapField(GPBType::STRING, GPBType::STRING);
- $arr ['abc']= new TestMessage_Sub();
- }
-
#########################################################
# Test message field.
#########################################################
@@ -619,47 +385,6 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
$this->assertEquals(1, count($arr));
}
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetIntValueFail()
- {
- $arr =
- new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
- $arr[0] = 0;
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetStringValueFail()
- {
- $arr =
- new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
- $arr[0] = 'abc';
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetOtherMessageValueFail()
- {
- $arr =
- new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
- $arr[0] = new TestMessage_Sub();
- }
-
- /**
- * @expectedException PHPUnit_Framework_Error
- */
- public function testMessageSetNullFail()
- {
- $arr =
- new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
- $null = NULL;
- $arr[0] = $null;
- }
-
#########################################################
# Test memory leak
#########################################################
@@ -669,7 +394,7 @@ class MapFieldTest extends PHPUnit_Framework_TestCase {
// {
// $arr = new MapField(GPBType::INT32,
// GPBType::MESSAGE, TestMessage::class);
- // $arr [0]= new TestMessage;
+ // $arr[0] = new TestMessage;
// $arr[0]->SetMapRecursive($arr);
// // Clean up memory before test.
diff --git a/php/tests/memory_leak_test.php b/php/tests/memory_leak_test.php
index 4f951a89..6572fdd0 100644
--- a/php/tests/memory_leak_test.php
+++ b/php/tests/memory_leak_test.php
@@ -49,7 +49,7 @@ TestUtil::assertTestMessage($to);
$from->setRecursive($from);
$arr = new RepeatedField(GPBType::MESSAGE, TestMessage::class);
-$arr []= new TestMessage;
+$arr[] = new TestMessage;
$arr[0]->SetRepeatedRecursive($arr);
// Test oneof fields.
diff --git a/php/tests/php_implementation_test.php b/php/tests/php_implementation_test.php
index e1249808..5dbc9233 100644
--- a/php/tests/php_implementation_test.php
+++ b/php/tests/php_implementation_test.php
@@ -6,12 +6,12 @@ require_once('test_util.php');
use Foo\TestMessage;
use Foo\TestMessage_Sub;
use Foo\TestPackedMessage;
-use Google\Protobuf\Internal\InputStream;
+use Google\Protobuf\Internal\CodedInputStream;
use Google\Protobuf\Internal\FileDescriptorSet;
use Google\Protobuf\Internal\GPBLabel;
use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\GPBWire;
-use Google\Protobuf\Internal\OutputStream;
+use Google\Protobuf\Internal\CodedOutputStream;
class ImplementationTest extends TestBase
{
@@ -21,17 +21,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readInt32($input, $value);
$this->assertSame(1, $value);
// Negative number.
- $input = new InputStream(hex2bin("ffffffff0f"));
+ $input = new CodedInputStream(hex2bin("ffffffff0f"));
GPBWire::readInt32($input, $value);
$this->assertSame(-1, $value);
// Discard overflow bits.
- $input = new InputStream(hex2bin("ffffffff7f"));
+ $input = new CodedInputStream(hex2bin("ffffffff7f"));
GPBWire::readInt32($input, $value);
$this->assertSame(-1, $value);
}
@@ -41,17 +41,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readUint32($input, $value);
$this->assertSame(1, $value);
// Max uint32.
- $input = new InputStream(hex2bin("ffffffff0f"));
+ $input = new CodedInputStream(hex2bin("ffffffff0f"));
GPBWire::readUint32($input, $value);
$this->assertSame(-1, $value);
// Discard overflow bits.
- $input = new InputStream(hex2bin("ffffffff7f"));
+ $input = new CodedInputStream(hex2bin("ffffffff7f"));
GPBWire::readUint32($input, $value);
$this->assertSame(-1, $value);
}
@@ -61,17 +61,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readInt64($input, $value);
$this->assertEquals(1, $value);
// Negative number.
- $input = new InputStream(hex2bin("ffffffffffffffffff01"));
+ $input = new CodedInputStream(hex2bin("ffffffffffffffffff01"));
GPBWire::readInt64($input, $value);
$this->assertEquals(-1, $value);
// Discard overflow bits.
- $input = new InputStream(hex2bin("ffffffffffffffffff0f"));
+ $input = new CodedInputStream(hex2bin("ffffffffffffffffff0f"));
GPBWire::readInt64($input, $value);
$this->assertEquals(-1, $value);
}
@@ -81,17 +81,17 @@ class ImplementationTest extends TestBase
$value = null;
// Positive number.
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readUint64($input, $value);
$this->assertEquals(1, $value);
// Negative number.
- $input = new InputStream(hex2bin("FFFFFFFFFFFFFFFFFF01"));
+ $input = new CodedInputStream(hex2bin("FFFFFFFFFFFFFFFFFF01"));
GPBWire::readUint64($input, $value);
$this->assertEquals(-1, $value);
// Discard overflow bits.
- $input = new InputStream(hex2bin("FFFFFFFFFFFFFFFFFF0F"));
+ $input = new CodedInputStream(hex2bin("FFFFFFFFFFFFFFFFFF0F"));
GPBWire::readUint64($input, $value);
$this->assertEquals(-1, $value);
}
@@ -100,15 +100,15 @@ class ImplementationTest extends TestBase
{
$value = null;
- $input = new InputStream(hex2bin("00"));
+ $input = new CodedInputStream(hex2bin("00"));
GPBWire::readSint32($input, $value);
$this->assertSame(0, $value);
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readSint32($input, $value);
$this->assertSame(-1, $value);
- $input = new InputStream(hex2bin("02"));
+ $input = new CodedInputStream(hex2bin("02"));
GPBWire::readSint32($input, $value);
$this->assertSame(1, $value);
}
@@ -117,15 +117,15 @@ class ImplementationTest extends TestBase
{
$value = null;
- $input = new InputStream(hex2bin("00"));
+ $input = new CodedInputStream(hex2bin("00"));
GPBWire::readSint64($input, $value);
$this->assertEquals(0, $value);
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readSint64($input, $value);
$this->assertEquals(-1, $value);
- $input = new InputStream(hex2bin("02"));
+ $input = new CodedInputStream(hex2bin("02"));
GPBWire::readSint64($input, $value);
$this->assertEquals(1, $value);
}
@@ -133,7 +133,7 @@ class ImplementationTest extends TestBase
public function testReadFixed32()
{
$value = null;
- $input = new InputStream(hex2bin("12345678"));
+ $input = new CodedInputStream(hex2bin("12345678"));
GPBWire::readFixed32($input, $value);
$this->assertSame(0x78563412, $value);
}
@@ -141,7 +141,7 @@ class ImplementationTest extends TestBase
public function testReadFixed64()
{
$value = null;
- $input = new InputStream(hex2bin("1234567812345678"));
+ $input = new CodedInputStream(hex2bin("1234567812345678"));
GPBWire::readFixed64($input, $value);
if (PHP_INT_SIZE == 4) {
$this->assertSame("8671175386481439762", $value);
@@ -153,7 +153,7 @@ class ImplementationTest extends TestBase
public function testReadSfixed32()
{
$value = null;
- $input = new InputStream(hex2bin("12345678"));
+ $input = new CodedInputStream(hex2bin("12345678"));
GPBWire::readSfixed32($input, $value);
$this->assertSame(0x78563412, $value);
}
@@ -161,7 +161,7 @@ class ImplementationTest extends TestBase
public function testReadFloat()
{
$value = null;
- $input = new InputStream(hex2bin("0000803F"));
+ $input = new CodedInputStream(hex2bin("0000803F"));
GPBWire::readFloat($input, $value);
$this->assertSame(1.0, $value);
}
@@ -170,11 +170,11 @@ class ImplementationTest extends TestBase
{
$value = null;
- $input = new InputStream(hex2bin("00"));
+ $input = new CodedInputStream(hex2bin("00"));
GPBWire::readBool($input, $value);
$this->assertSame(false, $value);
- $input = new InputStream(hex2bin("01"));
+ $input = new CodedInputStream(hex2bin("01"));
GPBWire::readBool($input, $value);
$this->assertSame(true, $value);
}
@@ -182,7 +182,7 @@ class ImplementationTest extends TestBase
public function testReadDouble()
{
$value = null;
- $input = new InputStream(hex2bin("000000000000F03F"));
+ $input = new CodedInputStream(hex2bin("000000000000F03F"));
GPBWire::readDouble($input, $value);
$this->assertSame(1.0, $value);
}
@@ -190,7 +190,7 @@ class ImplementationTest extends TestBase
public function testReadSfixed64()
{
$value = null;
- $input = new InputStream(hex2bin("1234567812345678"));
+ $input = new CodedInputStream(hex2bin("1234567812345678"));
GPBWire::readSfixed64($input, $value);
if (PHP_INT_SIZE == 4) {
$this->assertSame("8671175386481439762", $value);
@@ -207,8 +207,7 @@ class ImplementationTest extends TestBase
$this->assertSame(3, GPBWire::zigZagEncode32(-2));
$this->assertSame(0x7FFFFFFE, GPBWire::zigZagEncode32(0x3FFFFFFF));
$this->assertSame(0x7FFFFFFF, GPBWire::zigZagEncode32(0xC0000000));
- $this->assertSame(-2, GPBWire::zigZagEncode32(0x7FFFFFFF));
- $this->assertSame(-1, GPBWire::zigZagEncode32(0x80000000));
+ $this->assertSame(0x7FFFFFFF, GPBWire::zigZagEncode32(-1073741824));
$this->assertSame(0, GPBWire::zigZagDecode32(0));
$this->assertSame(-1, GPBWire::zigZagDecode32(1));
@@ -220,6 +219,8 @@ class ImplementationTest extends TestBase
$this->assertSame((int)-2147483648,GPBWire::zigZagDecode32(0xFFFFFFFF));
if (PHP_INT_SIZE == 4) {
+ $this->assertSame(-2, GPBWire::zigZagEncode32(0x7FFFFFFF));
+ $this->assertSame(-1, GPBWire::zigZagEncode32(0x80000000));
$this->assertSame('0', GPBWire::zigZagEncode64(0));
$this->assertSame('1', GPBWire::zigZagEncode64(-1));
$this->assertSame('2', GPBWire::zigZagEncode64(1));
@@ -250,6 +251,8 @@ class ImplementationTest extends TestBase
$this->assertSame('1', GPBWire::zigZagDecode64(2));
$this->assertSame('-2', GPBWire::zigZagDecode64(3));
} else {
+ $this->assertSame(4294967294, GPBWire::zigZagEncode32(0x7FFFFFFF));
+ $this->assertSame(4294967295, GPBWire::zigZagEncode32(0x80000000));
$this->assertSame(0, GPBWire::zigZagEncode64(0));
$this->assertSame(1, GPBWire::zigZagEncode64(-1));
$this->assertSame(2, GPBWire::zigZagEncode64(1));
@@ -330,19 +333,19 @@ class ImplementationTest extends TestBase
$var = 0;
// Empty buffer.
- $input = new InputStream(hex2bin(''));
+ $input = new CodedInputStream(hex2bin(''));
$this->assertFalse($input->readVarint64($var));
// The largest varint is 10 bytes long.
- $input = new InputStream(hex2bin('8080808080808080808001'));
+ $input = new CodedInputStream(hex2bin('8080808080808080808001'));
$this->assertFalse($input->readVarint64($var));
// Corrupted varint.
- $input = new InputStream(hex2bin('808080'));
+ $input = new CodedInputStream(hex2bin('808080'));
$this->assertFalse($input->readVarint64($var));
// Normal case.
- $input = new InputStream(hex2bin('808001'));
+ $input = new CodedInputStream(hex2bin('808001'));
$this->assertTrue($input->readVarint64($var));
if (PHP_INT_SIZE == 4) {
$this->assertSame('16384', $var);
@@ -352,7 +355,7 @@ class ImplementationTest extends TestBase
$this->assertFalse($input->readVarint64($var));
// Read two varint.
- $input = new InputStream(hex2bin('808001808002'));
+ $input = new CodedInputStream(hex2bin('808001808002'));
$this->assertTrue($input->readVarint64($var));
if (PHP_INT_SIZE == 4) {
$this->assertSame('16384', $var);
@@ -390,7 +393,7 @@ class ImplementationTest extends TestBase
);
foreach ($testVals as $original => $encoded) {
- $input = new InputStream(hex2bin($encoded));
+ $input = new CodedInputStream(hex2bin($encoded));
$this->assertTrue($input->readVarint64($var));
$this->assertEquals($original, $var);
}
@@ -401,25 +404,25 @@ class ImplementationTest extends TestBase
$var = 0;
// Empty buffer.
- $input = new InputStream(hex2bin(''));
+ $input = new CodedInputStream(hex2bin(''));
$this->assertFalse($input->readVarint32($var));
// The largest varint is 10 bytes long.
- $input = new InputStream(hex2bin('8080808080808080808001'));
+ $input = new CodedInputStream(hex2bin('8080808080808080808001'));
$this->assertFalse($input->readVarint32($var));
// Corrupted varint.
- $input = new InputStream(hex2bin('808080'));
+ $input = new CodedInputStream(hex2bin('808080'));
$this->assertFalse($input->readVarint32($var));
// Normal case.
- $input = new InputStream(hex2bin('808001'));
+ $input = new CodedInputStream(hex2bin('808001'));
$this->assertTrue($input->readVarint32($var));
$this->assertSame(16384, $var);
$this->assertFalse($input->readVarint32($var));
// Read two varint.
- $input = new InputStream(hex2bin('808001808002'));
+ $input = new CodedInputStream(hex2bin('808001808002'));
$this->assertTrue($input->readVarint32($var));
$this->assertSame(16384, $var);
$this->assertTrue($input->readVarint32($var));
@@ -427,7 +430,7 @@ class ImplementationTest extends TestBase
$this->assertFalse($input->readVarint32($var));
// Read a 64-bit integer. High-order bits should be discarded.
- $input = new InputStream(hex2bin('808081808001'));
+ $input = new CodedInputStream(hex2bin('808081808001'));
$this->assertTrue($input->readVarint32($var));
$this->assertSame(16384, $var);
$this->assertFalse($input->readVarint32($var));
@@ -435,7 +438,7 @@ class ImplementationTest extends TestBase
public function testReadTag()
{
- $input = new InputStream(hex2bin('808001'));
+ $input = new CodedInputStream(hex2bin('808001'));
$tag = $input->readTag();
$this->assertSame(16384, $tag);
$tag = $input->readTag();
@@ -444,7 +447,7 @@ class ImplementationTest extends TestBase
public function testPushPopLimit()
{
- $input = new InputStream(hex2bin('808001'));
+ $input = new CodedInputStream(hex2bin('808001'));
$old_limit = $input->pushLimit(0);
$tag = $input->readTag();
$this->assertSame(0, $tag);
@@ -455,7 +458,7 @@ class ImplementationTest extends TestBase
public function testReadRaw()
{
- $input = new InputStream(hex2bin('808001'));
+ $input = new CodedInputStream(hex2bin('808001'));
$buffer = null;
$this->assertTrue($input->readRaw(3, $buffer));
@@ -466,33 +469,33 @@ class ImplementationTest extends TestBase
public function testWriteVarint32()
{
- $output = new OutputStream(3);
- $output->writeVarint32(16384);
+ $output = new CodedOutputStream(3);
+ $output->writeVarint32(16384, true);
$this->assertSame(hex2bin('808001'), $output->getData());
// Negative numbers are padded to be compatible with int64.
- $output = new OutputStream(10);
- $output->writeVarint32(-43);
+ $output = new CodedOutputStream(10);
+ $output->writeVarint32(-43, false);
$this->assertSame(hex2bin('D5FFFFFFFFFFFFFFFF01'), $output->getData());
}
public function testWriteVarint64()
{
- $output = new OutputStream(10);
+ $output = new CodedOutputStream(10);
$output->writeVarint64(-43);
$this->assertSame(hex2bin('D5FFFFFFFFFFFFFFFF01'), $output->getData());
}
public function testWriteLittleEndian32()
{
- $output = new OutputStream(4);
+ $output = new CodedOutputStream(4);
$output->writeLittleEndian32(46);
$this->assertSame(hex2bin('2E000000'), $output->getData());
}
public function testWriteLittleEndian64()
{
- $output = new OutputStream(8);
+ $output = new CodedOutputStream(8);
$output->writeLittleEndian64(47);
$this->assertSame(hex2bin('2F00000000000000'), $output->getData());
}
diff --git a/php/tests/test_base.php b/php/tests/test_base.php
index 67048f4c..dc5e73f5 100644
--- a/php/tests/test_base.php
+++ b/php/tests/test_base.php
@@ -19,6 +19,8 @@ class TestBase extends PHPUnit_Framework_TestCase
public function expectFields(TestMessage $m)
{
+ $this->assertSame(-42, $m->getOptionalInt32());
+ $this->assertSame(42, $m->getOptionalUint32());
$this->assertSame(-44, $m->getOptionalSint32());
$this->assertSame(46, $m->getOptionalFixed32());
$this->assertSame(-46, $m->getOptionalSfixed32());
@@ -27,6 +29,7 @@ class TestBase extends PHPUnit_Framework_TestCase
$this->assertSame(true, $m->getOptionalBool());
$this->assertSame('a', $m->getOptionalString());
$this->assertSame('b', $m->getOptionalBytes());
+ $this->assertSame(TestEnum::ONE, $m->getOptionalEnum());
$this->assertSame(33, $m->getOptionalMessage()->getA());
if (PHP_INT_SIZE == 4) {
$this->assertSame('-43', $m->getOptionalInt64());
diff --git a/php/tests/undefined_test.php b/php/tests/undefined_test.php
new file mode 100644
index 00000000..dc6b7086
--- /dev/null
+++ b/php/tests/undefined_test.php
@@ -0,0 +1,920 @@
+<?php
+
+require_once('test_util.php');
+
+use Google\Protobuf\Internal\RepeatedField;
+use Google\Protobuf\Internal\GPBType;
+use Foo\TestMessage;
+use Foo\TestMessage_Sub;
+
+class UndefinedTest extends PHPUnit_Framework_TestCase
+{
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32AppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32SetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[] = 0;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32AppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32SetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[] = 0;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32AppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT32);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32SetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT32);
+ $arr[] = 0;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32AppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT32);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32SetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT32);
+ $arr[] = 0;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64AppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::INT64);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64SetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::INT64);
+ $arr[] = 0;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64AppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::INT64);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64SetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::INT64);
+ $arr[] = 0;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64AppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT64);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64SetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT64);
+ $arr[] = 0;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64AppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT64);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64SetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::UINT64);
+ $arr[] = 0;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testFloatAppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::FLOAT);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testFloatSetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::FLOAT);
+ $arr[] = 0.0;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testFloatAppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::FLOAT);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testFloatSetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::FLOAT);
+ $arr[] = 0.0;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleAppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::DOUBLE);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleSetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::DOUBLE);
+ $arr[] = 0.0;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleAppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::DOUBLE);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleSetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::DOUBLE);
+ $arr[] = 0.0;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testBoolAppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::BOOL);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testBoolSetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::BOOL);
+ $arr[] = true;
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringAppendMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::STRING);
+ $arr[] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringSetMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::STRING);
+ $arr[] = 'abc';
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringAppendInvalidUTF8Fail()
+ {
+ $arr = new RepeatedField(GPBType::STRING);
+ $hex = hex2bin("ff");
+ $arr[] = $hex;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringSetInvalidUTF8Fail()
+ {
+ $arr = new RepeatedField(GPBType::STRING);
+ $arr[] = 'abc';
+ $hex = hex2bin("ff");
+ $arr[0] = $hex;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageAppendIntFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $arr[] = 1;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetIntFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $arr[] = new TestMessage_Sub;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageAppendStringFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $arr[] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetStringFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $arr[] = new TestMessage_Sub;
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageAppendOtherMessageFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $arr[] = new TestMessage;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageAppendNullFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $null = null;
+ $arr[] = $null;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetNullFail()
+ {
+ $arr = new RepeatedField(GPBType::MESSAGE, TestMessage_Sub::class);
+ $arr[] = new TestMessage_Sub();
+ $null = null;
+ $arr[0] = $null;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testRemoveMiddleFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+
+ $arr[] = 0;
+ $arr[] = 1;
+ $arr[] = 2;
+ $this->assertSame(3, count($arr));
+
+ unset($arr[1]);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testRemoveEmptyFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+
+ unset($arr[0]);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageOffsetFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[] = 0;
+ $arr[new TestMessage_Sub()] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringOffsetFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[] = 0;
+ $arr['abc'] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testSetNonExistedOffsetFail()
+ {
+ $arr = new RepeatedField(GPBType::INT32);
+ $arr[0] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32FieldInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalInt32(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32FieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalInt32('abc');
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32FieldInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalUint32(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32FieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalUint32('abc');
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64FieldInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalInt64(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64FieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalInt64('abc');
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64FieldInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalUint64(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64FieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalUint64('abc');
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testFloatFieldInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalFloat(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testFloatFieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalFloat('abc');
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleFieldInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalDouble(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleFieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalDouble('abc');
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testBoolFieldInvalidStringFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalBool(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringFieldInvalidUTF8Fail()
+ {
+ $m = new TestMessage();
+ $hex = hex2bin("ff");
+ $m->setOptionalString($hex);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageFieldWrongTypeFail()
+ {
+ $m = new TestMessage();
+ $a = 1;
+ $m->setOptionalMessage($a);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageFieldWrongClassFail()
+ {
+ $m = new TestMessage();
+ $m->setOptionalMessage(new TestMessage());
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testRepeatedFieldWrongTypeFail()
+ {
+ $m = new TestMessage();
+ $a = 1;
+ $m->setRepeatedInt32($a);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testRepeatedFieldWrongObjectFail()
+ {
+ $m = new TestMessage();
+ $m->setRepeatedInt32($m);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testRepeatedFieldWrongRepeatedTypeFail()
+ {
+ $m = new TestMessage();
+
+ $repeated_int32 = new RepeatedField(GPBType::UINT32);
+ $m->setRepeatedInt32($repeated_int32);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testRepeatedFieldWrongRepeatedMessageClassFail()
+ {
+ $m = new TestMessage();
+
+ $repeated_message = new RepeatedField(GPBType::MESSAGE,
+ TestMessage::class);
+ $m->setRepeatedMessage($repeated_message);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMapFieldWrongTypeFail()
+ {
+ $m = new TestMessage();
+ $a = 1;
+ $m->setMapInt32Int32($a);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMapFieldWrongObjectFail()
+ {
+ $m = new TestMessage();
+ $m->setMapInt32Int32($m);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMapFieldWrongRepeatedTypeFail()
+ {
+ $m = new TestMessage();
+
+ $map_uint32_uint32 = new MapField(GPBType::UINT32, GPBType::UINT32);
+ $m->setMapInt32Int32($map_uint32_uint32);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMapFieldWrongRepeatedMessageClassFail()
+ {
+ $m = new TestMessage();
+
+ $map_int32_message = new MapField(GPBType::INT32,
+ GPBType::MESSAGE,
+ TestMessage::class);
+ $m->setMapInt32Message($map_int32_message);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageMergeFromInvalidTypeFail()
+ {
+ $m = new TestMessage();
+ $n = new TestMessage_Sub();
+ $m->mergeFrom($n);
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32SetStringKeyFail()
+ {
+ $arr = new MapField(GPBType::INT32, GPBType::INT32);
+ $arr['abc'] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32SetStringValueFail()
+ {
+ $arr = new MapField(GPBType::INT32, GPBType::INT32);
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32SetMessageKeyFail()
+ {
+ $arr = new MapField(GPBType::INT32, GPBType::INT32);
+ $arr[new TestMessage_Sub()] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt32SetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::INT32, GPBType::INT32);
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32SetStringKeyFail()
+ {
+ $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
+ $arr['abc'] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32SetStringValueFail()
+ {
+ $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32SetMessageKeyFail()
+ {
+ $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
+ $arr[new TestMessage_Sub()] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint32SetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::UINT32, GPBType::UINT32);
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64SetStringKeyFail()
+ {
+ $arr = new MapField(GPBType::INT64, GPBType::INT64);
+ $arr['abc'] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64SetStringValueFail()
+ {
+ $arr = new MapField(GPBType::INT64, GPBType::INT64);
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64SetMessageKeyFail()
+ {
+ $arr = new MapField(GPBType::INT64, GPBType::INT64);
+ $arr[new TestMessage_Sub()] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testInt64SetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::INT64, GPBType::INT64);
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64SetStringKeyFail()
+ {
+ $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
+ $arr['abc'] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64SetStringValueFail()
+ {
+ $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64SetMessageKeyFail()
+ {
+ $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
+ $arr[new TestMessage_Sub()] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testUint64SetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::UINT64, GPBType::UINT64);
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleSetStringValueFail()
+ {
+ $arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testDoubleSetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::INT64, GPBType::DOUBLE);
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testBoolSetMessageKeyFail()
+ {
+ $arr = new MapField(GPBType::BOOL, GPBType::BOOL);
+ $arr[new TestMessage_Sub()] = true;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testBoolSetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::BOOL, GPBType::BOOL);
+ $arr[true] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringSetInvalidUTF8KeyFail()
+ {
+ $arr = new MapField(GPBType::STRING, GPBType::STRING);
+ $arr[hex2bin("ff")] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringSetInvalidUTF8ValueFail()
+ {
+ $arr = new MapField(GPBType::STRING, GPBType::STRING);
+ $arr['abc'] = hex2bin("ff");
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringSetMessageKeyFail()
+ {
+ $arr = new MapField(GPBType::STRING, GPBType::STRING);
+ $arr[new TestMessage_Sub()] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testStringSetMessageValueFail()
+ {
+ $arr = new MapField(GPBType::STRING, GPBType::STRING);
+ $arr['abc'] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetIntValueFail()
+ {
+ $arr =
+ new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
+ $arr[0] = 0;
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetStringValueFail()
+ {
+ $arr =
+ new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
+ $arr[0] = 'abc';
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetOtherMessageValueFail()
+ {
+ $arr =
+ new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
+ $arr[0] = new TestMessage_Sub();
+ }
+
+ /**
+ * @expectedException PHPUnit_Framework_Error
+ */
+ public function testMessageSetNullFail()
+ {
+ $arr =
+ new MapField(GPBType::INT32, GPBType::MESSAGE, TestMessage::class);
+ $null = NULL;
+ $arr[0] = $null;
+ }
+
+}