summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp')
-rw-r--r--libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp
index fcc86a13ffa..949ea50d08a 100644
--- a/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp
+++ b/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/member_swap.pass.cpp
@@ -15,13 +15,33 @@
// void swap(basic_fstream& rhs);
#include <fstream>
+#include <utility>
#include <cassert>
#include "platform_support.h"
+std::pair<std::string, std::string> get_temp_file_names() {
+ std::pair<std::string, std::string> names;
+ names.first = get_temp_file_name();
+
+ // Create the file so the next call to `get_temp_file_name()` doesn't
+ // return the same file.
+ std::FILE *fd1 = std::fopen(names.first.c_str(), "w");
+
+ names.second = get_temp_file_name();
+ assert(names.first != names.second);
+
+ std::fclose(fd1);
+ std::remove(names.first.c_str());
+
+ return names;
+}
+
int main()
{
- std::string temp1 = get_temp_file_name();
- std::string temp2 = get_temp_file_name();
+ std::pair<std::string, std::string> temp_files = get_temp_file_names();
+ std::string& temp1 = temp_files.first;
+ std::string& temp2 = temp_files.second;
+ assert(temp1 != temp2);
{
std::fstream fs1(temp1.c_str(), std::ios_base::in | std::ios_base::out
| std::ios_base::trunc);
OpenPOWER on IntegriCloud