]> git.saurik.com Git - apt.git/blobdiff - test/libapt/file-helpers.cc
abort connection on '.' target replies in SRV
[apt.git] / test / libapt / file-helpers.cc
index 3871928685cd33d5563593707d52b938de631ce4..48d8a9fbbf9a25a2a226f4ae888de32622d24212 100644 (file)
@@ -56,10 +56,17 @@ void helperCreateLink(std::string const &dir, std::string const &targetname, std
 void helperCreateTemporaryFile(std::string const &id, FileFd &fd, std::string * const filename, char const * const content)
 {
    std::string name("apt-test-");
-   name.append(id).append(".XXXXXXXX");
+   name.append(id);
+   size_t const giventmp = name.find(".XXXXXX.");
+   if (giventmp == std::string::npos)
+      name.append(".XXXXXX");
    char * tempfile = strdup(name.c_str());
    ASSERT_STRNE(NULL, tempfile);
-   int tempfile_fd = mkstemp(tempfile);
+   int tempfile_fd;
+   if (giventmp == std::string::npos)
+      tempfile_fd = mkstemp(tempfile);
+   else
+      tempfile_fd = mkstemps(tempfile, name.length() - (giventmp + 7));
    ASSERT_NE(-1, tempfile_fd);
    if (filename != NULL)
       *filename = tempfile;
@@ -67,7 +74,7 @@ void helperCreateTemporaryFile(std::string const &id, FileFd &fd, std::string *
       unlink(tempfile);
    free(tempfile);
 
-   EXPECT_TRUE(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite));
+   EXPECT_TRUE(fd.OpenDescriptor(tempfile_fd, FileFd::ReadWrite, true));
    if (content != NULL)
    {
       ASSERT_TRUE(fd.Write(content, strlen(content)));