Write files in a temporary directory

Avoid writing test files in the build output directory which fails when
run with Bazel. This happens because Bazel's sandboxing environment
ensures that the test's working directory is unwritable.

See https://docs.bazel.build/versions/main/sandboxing.html for more
information.

Bug: 216204033
Test: atest --bazel-mode --host gen_sdk_test
Test: atest --host gen_sdk_test
Change-Id: I45e621e6dde4048ba6ec4854cbe76bc5c9c81d32
diff --git a/gen_sdk/gen_sdk_test.sh b/gen_sdk/gen_sdk_test.sh
index 1d465d9..50fb3b1 100644
--- a/gen_sdk/gen_sdk_test.sh
+++ b/gen_sdk/gen_sdk_test.sh
@@ -17,51 +17,53 @@
 # To access gen_sdk
 PATH=.:$PATH
 
+tmp_dir="$(mktemp -d -t gen_sdk_test-XXXXXXXXXX)"
 # Verifies the tool correctly prints the binary representation of a db.
 function test_print_binary() {
   # Golden binary rep generated with:
   # $ gqui from textproto:testdata/test_extensions_db.textpb \
   #        proto extensions_db.proto:ExtensionDatabase \
   #        --outfile rawproto:- | xxd -p
-  cat > golden_binary << EOF
+  cat > ${tmp_dir}/golden_binary << EOF
 0a0a080112060803120208010a1a08021206080312020801120608021202
 080212060801120208020a1a080312060803120208031206080212020802
 12060801120208020a220804120608031202080312060802120208021206
 0801120208041206080512020804
 EOF
 
-  diff golden_binary <(gen_sdk --action print_binary --database testdata/test_extensions_db.textpb | xxd -p)
+  diff ${tmp_dir}/golden_binary <(gen_sdk --action print_binary --database testdata/test_extensions_db.textpb | xxd -p)
 }
 test_print_binary
 
 # Verifies the tool is able to re-create the test DB correctly.
 function test_new_sdk() {
-  rm -f extensions_db.textpb && touch extensions_db.textpb
-  gen_sdk --action new_sdk --sdk 1 --modules MEDIA_PROVIDER
-  gen_sdk --action new_sdk --sdk 2 --modules MEDIA,IPSEC
-  gen_sdk --action new_sdk --sdk 3 --modules MEDIA_PROVIDER
-  gen_sdk --action new_sdk --sdk 4 --modules SDK_EXTENSIONS,IPSEC
+  db=${tmp_dir}/extensions_db.textpb
+  rm -f ${db} && touch ${db}
+  gen_sdk --action new_sdk --sdk 1 --modules MEDIA_PROVIDER --database ${db}
+  gen_sdk --action new_sdk --sdk 2 --modules MEDIA,IPSEC --database ${db}
+  gen_sdk --action new_sdk --sdk 3 --modules MEDIA_PROVIDER --database ${db}
+  gen_sdk --action new_sdk --sdk 4 --modules SDK_EXTENSIONS,IPSEC --database ${db}
 
-  diff -u0 testdata/test_extensions_db.textpb extensions_db.textpb
+  diff -u0 testdata/test_extensions_db.textpb ${db}
 }
 test_new_sdk
 
 # Verifies the tool won't allow bogus SDK updates
 function test_validate() {
   set +e
-
-  rm -f extensions_db.textpb && echo bogus > extensions_db.textpb
-  if gen_sdk --action validate; then
+  db=${tmp_dir}/extensions_db.textpb
+  rm -f ${db} && echo bogus > ${db}
+  if gen_sdk --action validate --database ${db}; then
     echo "expected validate to fail on bogus db"
     exit 1
   fi
 
-  rm -f extensions_db.textpb && touch extensions_db.textpb
-  gen_sdk --action new_sdk --sdk 1 --modules MEDIA_PROVIDER
-  if gen_sdk --action new_sdk --sdk 1 --modules SDK_EXTENSIONS; then
+  rm -f ${db} && touch ${db}
+  gen_sdk --action new_sdk --sdk 1 --modules MEDIA_PROVIDER --database ${db}
+  if gen_sdk --action new_sdk --sdk 1 --modules SDK_EXTENSIONS --database ${db}; then
     echo "FAILED: expected duplicate sdk numbers to fail"
     echo "DB:"
-    cat extensions_db.textpb
+    cat ${db}
     exit 1
   fi