]>
git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/27_io/filesystem/path/assign/copy.cc
1 // { dg-do run { target c++17 } }
3 // Copyright (C) 2014-2022 Free Software Foundation, Inc.
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING3. If not see
18 // <http://www.gnu.org/licenses/>.
21 #include <testsuite_fs.h>
22 #include <testsuite_hooks.h>
24 using std::filesystem::path
;
25 using __gnu_test::compare_paths
;
30 for (const path p
: __gnu_test::test_paths
)
34 __gnu_test::compare_paths(p
, copy
);
41 for (const path p
: __gnu_test::test_paths
)
45 move
= std::move(copy
);
46 __gnu_test::compare_paths(p
, move
);
53 // self assignment should have no effect
54 const path orig
= "foo/bar/baz";
56 const auto ptr1
= p
.c_str();
57 const auto ptr2
= p
.begin()->c_str();
59 __gnu_test::compare_paths(p
, orig
);
61 __gnu_test::compare_paths(p
, orig
);
62 VERIFY( ptr1
== p
.c_str() );
63 VERIFY( ptr2
== p
.begin()->c_str() );
71 const path p2
= "d/e";
75 __gnu_test::compare_paths(p1
, p2
);
76 __gnu_test::compare_paths(p1
, p3
);
77 __gnu_test::compare_paths(p2
, p3
);