diff options
Diffstat (limited to 'test/libapt/file-helpers.cc')
-rw-r--r-- | test/libapt/file-helpers.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/test/libapt/file-helpers.cc b/test/libapt/file-helpers.cc index 387192868..6811c4158 100644 --- a/test/libapt/file-helpers.cc +++ b/test/libapt/file-helpers.cc @@ -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; |