Cleanup tmp dir on exit
diff --git a/compatibility/smoke/BUILD.bazel b/compatibility/smoke/BUILD.bazel
index 4889df3..ad2cd84 100644
--- a/compatibility/smoke/BUILD.bazel
+++ b/compatibility/smoke/BUILD.bazel
@@ -4,7 +4,3 @@
 
 stale_gencode_smoke_test("3.19.0")
 
-stale_gencode_smoke_test("3.19.0")
-
-stale_gencode_smoke_test("3.19.0")
-
diff --git a/compatibility/smoke/add_gencode.sh b/compatibility/smoke/add_gencode.sh
index 67e0ec3..3b51b40 100755
--- a/compatibility/smoke/add_gencode.sh
+++ b/compatibility/smoke/add_gencode.sh
@@ -7,10 +7,14 @@
 fi
 
 VER="$1"
+TMP_DIR="/tmp/protoc-$VER/"
+
+# Cleanup the tmp dir on either clean or dirty exit
+trap "rm -r \"$TMP_DIR\"" EXIT
 
 cd /tmp/
 wget -O protoc-$VER.zip "https://github.com/protocolbuffers/protobuf/releases/download/v$VER/protoc-$VER-linux-x86_64.zip"
-unzip protoc-$VER.zip -d protoc-$VER/
+unzip protoc-$VER.zip -d "protoc-$VER/"
 cd -
 
 PROTOC="/tmp/protoc-$VER/bin/protoc"