diff options
Diffstat (limited to 'libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp')
| -rw-r--r-- | libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp b/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp index 0a4f7240daa..4ff84f26cfa 100644 --- a/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp +++ b/libcxx/test/std/input.output/file.streams/fstreams/fstream.assign/nonmember_swap.pass.cpp @@ -16,13 +16,34 @@ // void swap(basic_fstream<charT, traits>& x, basic_fstream<charT, traits>& y); #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); |

