add test case of compression
diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php
index e475047..88be899 100755
--- a/src/php/tests/interop/interop_client.php
+++ b/src/php/tests/interop/interop_client.php
@@ -117,6 +117,53 @@
}
/**
+ * Run the client_compressed_unary test.
+ *
+ * @param $stub Stub object that has service methods
+ */
+function clientCompressedUnary($stub)
+{
+ $request_len = 271828;
+ $response_len = 314159;
+ $falseBoolValue = new Grpc\Testing\BoolValue(['value' => false]);
+ $trueBoolValue = new Grpc\Testing\BoolValue(['value' => true]);
+ // 1. Probing for compression-checks support
+ $payload = new Grpc\Testing\Payload([
+ 'body' => str_repeat("\0", $request_len),
+ ]);
+ $request = new Grpc\Testing\SimpleRequest([
+ 'payload' => $payload,
+ 'response_size' => $response_len,
+ 'expect_compressed' => $trueBoolValue, // lie
+ ]);
+ list($result, $status) = $stub->UnaryCall($request, [], [])->wait();
+ hardAssert(
+ $status->code === GRPC\STATUS_INVALID_ARGUMENT,
+ 'Received unexpected UnaryCall status code: ' .
+ $status->code
+ );
+ // 2. with/without compressed message
+ foreach ([true, false] as $compression) {
+ $request->setExpectCompressed($compression ? $trueBoolValue : $falseBoolValue);
+ $metadata = $compression ? [
+ 'grpc-internal-encoding-request' => ['gzip'],
+ ] : [];
+ list($result, $status) = $stub->UnaryCall($request, $metadata, [])->wait();
+ hardAssertIfStatusOk($status);
+ hardAssert($result !== null, 'Call returned a null response');
+ $payload = $result->getPayload();
+ hardAssert(
+ strlen($payload->getBody()) === $response_len,
+ 'Payload had the wrong length'
+ );
+ hardAssert(
+ $payload->getBody() === str_repeat("\0", $response_len),
+ 'Payload had the wrong content'
+ );
+ }
+}
+
+/**
* Run the service account credentials auth test.
*
* @param $stub Stub object that has service methods
@@ -673,6 +720,9 @@
case 'per_rpc_creds':
perRpcCreds($stub, $args);
break;
+ case 'client_compressed_unary':
+ clientCompressedUnary($stub);
+ break;
default:
echo "Unsupported test case $test_case\n";
exit(1);