1f7b43230SLouis Dionne //===----------------------------------------------------------------------===// 2f7b43230SLouis Dionne // 3f7b43230SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4f7b43230SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5f7b43230SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6f7b43230SLouis Dionne // 7f7b43230SLouis Dionne //===----------------------------------------------------------------------===// 8f7b43230SLouis Dionne 931cbe0f2SLouis Dionne // UNSUPPORTED: c++03 10f7b43230SLouis Dionne 11f7b43230SLouis Dionne // <filesystem> 12f7b43230SLouis Dionne 13f7b43230SLouis Dionne // class path 14f7b43230SLouis Dionne 15f7b43230SLouis Dionne // const string_type& native() const noexcept; 16f7b43230SLouis Dionne 17cc89063bSNico Weber #include "filesystem_include.h" 18f7b43230SLouis Dionne #include <type_traits> 19f7b43230SLouis Dionne #include <cassert> 20f7b43230SLouis Dionne 21f7b43230SLouis Dionne #include "test_macros.h" 22cc89063bSNico Weber #include "filesystem_test_helper.h" 23f7b43230SLouis Dionne 24f7b43230SLouis Dionne main(int,char **)25f7b43230SLouis Dionneint main(int, char**) 26f7b43230SLouis Dionne { 27f7b43230SLouis Dionne using namespace fs; 28f7b43230SLouis Dionne const char* const value = "hello world"; 29*3784bdf2SMartin Storsjö std::string value_str(value); 30*3784bdf2SMartin Storsjö fs::path::string_type pathstr_value(value_str.begin(), value_str.end()); 31f7b43230SLouis Dionne { // Check signature 32f7b43230SLouis Dionne path p(value); 33f7b43230SLouis Dionne ASSERT_SAME_TYPE(path::string_type const&, decltype(p.native())); 34f7b43230SLouis Dionne ASSERT_NOEXCEPT(p.native()); 35f7b43230SLouis Dionne } 36f7b43230SLouis Dionne { // native() is tested elsewhere 37f7b43230SLouis Dionne path p(value); 38*3784bdf2SMartin Storsjö assert(p.native() == pathstr_value); 39f7b43230SLouis Dionne } 40f7b43230SLouis Dionne 41f7b43230SLouis Dionne return 0; 42f7b43230SLouis Dionne } 43