diff --git a/test/core/surface/init_test.c b/test/core/surface/init_test.c
index 47900c51d736ce9f914200be2f2b775e0c580f12..787898245125d7ffca0cc4042f3bf6b2e8b80c9b 100644
--- a/test/core/surface/init_test.c
+++ b/test/core/surface/init_test.c
@@ -52,6 +52,13 @@ static void test_plugin() {
   GPR_ASSERT(g_flag == 2);
 }
 
+static void test_repeatedly() {
+  for (int i=0; i<100000; i++) {
+    grpc_init();
+    grpc_shutdown();
+  }
+}
+
 int main(int argc, char **argv) {
   grpc_test_init(argc, argv);
   test(1);
@@ -59,5 +66,6 @@ int main(int argc, char **argv) {
   test(3);
   test_mixed();
   test_plugin();
+  test_repeatedly();
   return 0;
 }