diff options
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.cpp | 24 | 
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); | 

