[tor-commits] [tor/release-0.2.9] Add get_fname_rnd for unit tests that want a unique path every time

nickm at torproject.org nickm at torproject.org
Mon Nov 7 21:14:53 UTC 2016


commit 77e1d660ee5b8e2beae12f3de543d19009aaa8ac
Author: teor <teor2345 at gmail.com>
Date:   Wed Nov 2 14:14:19 2016 +1100

    Add get_fname_rnd for unit tests that want a unique path every time
---
 src/test/test.h           |  1 +
 src/test/testing_common.c | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/src/test/test.h b/src/test/test.h
index 770f403..25336ac 100644
--- a/src/test/test.h
+++ b/src/test/test.h
@@ -73,6 +73,7 @@
     {print_ = (I64_PRINTF_TYPE) value_;}, {}, TT_EXIT_TEST_FUNCTION)
 
 const char *get_fname(const char *name);
+const char *get_fname_rnd(const char *name);
 struct crypto_pk_t *pk_generate(int idx);
 
 #define US2_CONCAT_2__(a, b) a ## __ ## b
diff --git a/src/test/testing_common.c b/src/test/testing_common.c
index e28e3dd..1eae07e 100644
--- a/src/test/testing_common.c
+++ b/src/test/testing_common.c
@@ -125,6 +125,18 @@ get_fname(const char *name)
   return get_fname_suffix(name, NULL);
 }
 
+/** Return a filename with a random suffix, relative to our testing temporary
+ * directory. If name is NULL, return the name of the testing temporary
+ * directory, without any suffix. */
+const char *
+get_fname_rnd(const char *name)
+{
+  char rnd[256], rnd32[256];
+  crypto_rand(rnd, RAND_PATH_BYTES);
+  base32_encode(rnd32, sizeof(rnd32), rnd, RAND_PATH_BYTES);
+  return get_fname_suffix(name, rnd32);
+}
+
 /* Remove a directory and all of its subdirectories */
 static void
 rm_rf(const char *dir)





More information about the tor-commits mailing list