Add a test for cancel_with_status
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 65010ad..45e559f 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -1875,6 +1875,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_compress", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_compress_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_compress", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -2385,6 +2400,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_fakesec", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_fakesec_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_fakesec", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -2895,6 +2925,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_full", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_full_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_full", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -3405,6 +3450,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_full+poll", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_full+poll_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_full+poll", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -3915,6 +3975,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_oauth2", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_oauth2_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_oauth2", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -4425,6 +4500,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_proxy", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_proxy_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_proxy", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -4875,6 +4965,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_sockpair", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_sockpair_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_sockpair", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -5325,6 +5430,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_sockpair+trace", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_sockpair+trace_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_sockpair+trace", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -5775,6 +5895,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_sockpair_1byte", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_sockpair_1byte_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_sockpair_1byte", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -6225,6 +6360,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_ssl", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_ssl_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_ssl", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -6735,6 +6885,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_ssl+poll", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_ssl+poll_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_ssl+poll", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -7245,6 +7410,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_ssl_proxy", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_ssl_proxy_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_ssl_proxy", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -7695,6 +7875,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_uchannel", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_uchannel_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_uchannel", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -8205,6 +8400,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_uds", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_uds_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_uds", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -8700,6 +8910,21 @@
     "deps": [
       "end2end_certs", 
       "end2end_fixture_h2_uds+poll", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_uds+poll_cancel_with_status_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_certs", 
+      "end2end_fixture_h2_uds+poll", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -9172,6 +9397,20 @@
   {
     "deps": [
       "end2end_fixture_h2_compress", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_compress_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_compress", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -9634,6 +9873,20 @@
   {
     "deps": [
       "end2end_fixture_h2_full", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_full_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_full", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -10096,6 +10349,20 @@
   {
     "deps": [
       "end2end_fixture_h2_full+poll", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_full+poll_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_full+poll", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -10558,6 +10825,20 @@
   {
     "deps": [
       "end2end_fixture_h2_proxy", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_proxy_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_proxy", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -10964,6 +11245,20 @@
   {
     "deps": [
       "end2end_fixture_h2_sockpair", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_sockpair_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_sockpair", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -11370,6 +11665,20 @@
   {
     "deps": [
       "end2end_fixture_h2_sockpair+trace", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_sockpair+trace_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_sockpair+trace", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -11776,6 +12085,20 @@
   {
     "deps": [
       "end2end_fixture_h2_sockpair_1byte", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_sockpair_1byte_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_sockpair_1byte", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -12182,6 +12505,20 @@
   {
     "deps": [
       "end2end_fixture_h2_uchannel", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_uchannel_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_uchannel", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -12644,6 +12981,20 @@
   {
     "deps": [
       "end2end_fixture_h2_uds", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_uds_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_uds", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -13092,6 +13443,20 @@
   {
     "deps": [
       "end2end_fixture_h2_uds+poll", 
+      "end2end_test_cancel_with_status", 
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "h2_uds+poll_cancel_with_status_nosec_test", 
+    "src": []
+  }, 
+  {
+    "deps": [
+      "end2end_fixture_h2_uds+poll", 
       "end2end_test_census_simple_request", 
       "gpr", 
       "gpr_test_util", 
@@ -15472,6 +15837,25 @@
       "test/core/end2end/tests/cancel_test_helpers.h"
     ], 
     "language": "c", 
+    "name": "end2end_test_cancel_with_status", 
+    "src": [
+      "test/core/end2end/end2end_tests.h", 
+      "test/core/end2end/tests/cancel_test_helpers.h", 
+      "test/core/end2end/tests/cancel_with_status.c"
+    ]
+  }, 
+  {
+    "deps": [
+      "gpr", 
+      "gpr_test_util", 
+      "grpc_test_util_unsecure", 
+      "grpc_unsecure"
+    ], 
+    "headers": [
+      "test/core/end2end/end2end_tests.h", 
+      "test/core/end2end/tests/cancel_test_helpers.h"
+    ], 
+    "language": "c", 
     "name": "end2end_test_census_simple_request", 
     "src": [
       "test/core/end2end/end2end_tests.h",