Loading...
tests/tempnam.c /dev/null Libc-1669.0.4
--- /dev/null
+++ Libc/Libc-1669.0.4/tests/tempnam.c
@@ -0,0 +1,31 @@
+#include <darwintest.h>
+#include <darwintest_utils.h>
+
+#include "libc_hooks_helper.h"
+
+T_DECL(libc_hooks_tempnam, "Test libc_hooks for tempnam")
+{
+    // Test
+    char dir[] = "foobar"; char pfx[] = "/etc/";
+    libc_hooks_log_start();
+    char *s = tempnam(dir, pfx);
+    libc_hooks_log_stop(6);
+
+    // Check
+    T_LOG("tempnam(\"%s\", \"%s\")", dir, pfx);
+    libc_hooks_log_expect(LIBC_HOOKS_LOG(libc_hooks_will_read_cstring, dir, strlen(dir) + 1), "checking dir");
+    libc_hooks_log_expect(LIBC_HOOKS_LOG(libc_hooks_will_read_cstring, pfx, strlen(pfx) + 1), "checking pfx");
+#if 0 // TBD: Where are these coming from?
+    libc_hooks_log_dump(libc_hooks_log);
+    libc_hooks_log_expect(LIBC_HOOKS_LOG(libc_hooks_will_read, ?, SIZE_LOCALE_T)), "checking ? (location)");
+    libc_hooks_log_expect(LIBC_HOOKS_LOG(libc_hooks_will_read_cstring, ?, 11)), "checking ?");
+    libc_hooks_log_expect(LIBC_HOOKS_LOG(libc_hooks_will_read, ?, 9)), "checking ?");
+#else
+    libc_hooks_log.check += 3;
+#endif
+    libc_hooks_log_expect(LIBC_HOOKS_LOG(libc_hooks_will_read, pfx, strlen(pfx)), "checking pfx (being read)");
+
+    // Cleanup
+    free(s);
+}
+