aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorGravatar Muxi Yan <muxi@users.noreply.github.com>2018-02-21 23:35:38 -0800
committerGravatar GitHub <noreply@github.com>2018-02-21 23:35:38 -0800
commit0aa0324058e22723d227bd28876aae7fdb2ffd27 (patch)
treee46006820f106432e0cdc78fc440887fd2b558d3 /test
parenta6ed5165a2140260b7c4edcbdc210b0ae0c12ed3 (diff)
parent48396479c04d3ba40ad46be768bdf79840a65cbc (diff)
Merge pull request #14433 from muxi/add-cronet-bin-base64
Add binary metadata support for cronet transport
Diffstat (limited to 'test')
-rw-r--r--test/core/transport/chttp2/bin_decoder_test.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/core/transport/chttp2/bin_decoder_test.cc b/test/core/transport/chttp2/bin_decoder_test.cc
index 283eebbacf..751dd90c8c 100644
--- a/test/core/transport/chttp2/bin_decoder_test.cc
+++ b/test/core/transport/chttp2/bin_decoder_test.cc
@@ -67,6 +67,16 @@ static grpc_slice base64_decode_with_length(const char* s,
return out;
}
+static size_t base64_infer_length(const char* s) {
+ grpc_slice ss = grpc_slice_from_copied_string(s);
+ size_t out = grpc_chttp2_base64_infer_length_after_decode(ss);
+ grpc_slice_unref_internal(ss);
+ return out;
+}
+
+#define EXPECT_DECODED_LENGTH(s, expected) \
+ GPR_ASSERT((expected) == base64_infer_length((s)));
+
#define EXPECT_SLICE_EQ(expected, slice) \
expect_slice_eq( \
grpc_slice_from_copied_buffer(expected, sizeof(expected) - 1), slice, \
@@ -131,6 +141,26 @@ int main(int argc, char** argv) {
// Test illegal charactors in grpc_chttp2_base64_decode_with_length
EXPECT_SLICE_EQ("", base64_decode_with_length("Zm:v", 3));
EXPECT_SLICE_EQ("", base64_decode_with_length("Zm=v", 3));
+
+ EXPECT_DECODED_LENGTH("", 0);
+ EXPECT_DECODED_LENGTH("ab", 1);
+ EXPECT_DECODED_LENGTH("abc", 2);
+ EXPECT_DECODED_LENGTH("abcd", 3);
+ EXPECT_DECODED_LENGTH("abcdef", 4);
+ EXPECT_DECODED_LENGTH("abcdefg", 5);
+ EXPECT_DECODED_LENGTH("abcdefgh", 6);
+
+ EXPECT_DECODED_LENGTH("ab==", 1);
+ EXPECT_DECODED_LENGTH("abc=", 2);
+ EXPECT_DECODED_LENGTH("abcd", 3);
+ EXPECT_DECODED_LENGTH("abcdef==", 4);
+ EXPECT_DECODED_LENGTH("abcdefg=", 5);
+ EXPECT_DECODED_LENGTH("abcdefgh", 6);
+
+ EXPECT_DECODED_LENGTH("a", 0);
+ EXPECT_DECODED_LENGTH("a===", 0);
+ EXPECT_DECODED_LENGTH("abcde", 0);
+ EXPECT_DECODED_LENGTH("abcde===", 0);
}
grpc_shutdown();
return all_ok ? 0 : 1;