libtest: fix doesnotexist spawn test
[awesomized/libmemcached] / libtest / tmpfile.cc
index a576a4a16f315a894eaeb7e63504368b91f257a1..425a21e7b730fe15c3ae73c9041a17b5dcbc8992 100644 (file)
  *
  */
 
-#include "config.h"
+#include "libtest/yatlcon.h"
+
 #include <libtest/common.h>
 
 namespace libtest {
 
-std::string create_tmpfile(const std::string& name)
+std::string create_tmpfile(const std::string& name, int& fd)
 {
-  char file_buffer[FILENAME_MAX];
+  libtest::vchar_t file_buffer;
+  file_buffer.resize(FILENAME_MAX);
   file_buffer[0]= 0;
 
-  int length= snprintf(file_buffer, sizeof(file_buffer), "var/tmp/%s.XXXXXX", name.c_str());
+  int length= snprintf(&file_buffer[0], file_buffer.size(), "var/tmp/%s.XXXXXX", name.c_str());
   fatal_assert(length > 0);
 
-  int fd;
-  if ((fd= mkstemp(file_buffer)) == -1)
+  if ((fd= mkstemp(&file_buffer[0])) == -1)
   {
-    throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "mkstemp() failed on %s with %s", file_buffer, strerror(errno));
+    throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "mkstemp() failed on %s with %s", &file_buffer[0], strerror(errno));
   }
+
+  return &file_buffer[0];
+}
+
+std::string create_tmpfile(const std::string& name)
+{
+  int fd;
+  std::string ret_file= create_tmpfile(name, fd);
   close(fd);
-  unlink(file_buffer);
+  unlink(ret_file.c_str());
 
-  return file_buffer;
+  return ret_file.c_str();
 }
 
 } // namespace libtest