Browse Source

tests: add fallback for mktemp()

If SuSv3 legacy support is disabled, then mktemp() isn't available, and
we end up getting a lot of build errors.  So add a fallback built on top
of tempnam() since that currently cannot be disabled.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger 12 years ago
parent
commit
8744dc1723
1 changed files with 22 additions and 0 deletions
  1. 22 0
      test/test-skeleton.c

+ 22 - 0
test/test-skeleton.c

@@ -87,6 +87,28 @@ add_temp_file (const char *name)
     }
 }
 
+#if defined __UCLIBC__ && !defined __UCLIBC_SUSV3_LEGACY__
+/* mktemp() isn't available, so fake it with tempnam().
+   We make a lot of assumptions about the format of the
+   "template" name, but we aren't testing that, so eh.  */
+__attribute__ ((unused))
+static char *mktemp(char *template)
+{
+  char *dir, *pfx, *s;
+
+  dir = strdup (template);
+  pfx = strrchr (dir, '/');
+  *pfx++ = '\0';
+  s = strstr (pfx, "XXXXXX");
+  *s = '\0';
+
+  s = tempnam (dir, pfx);
+  strcpy (template, s);
+  free (s);
+  return template;
+}
+#endif
+
 /* Delete all temporary files.  */
 static void
 delete_temp_files (void)