46 fs::path temp = fs::temp_directory_path() /
"fnres_test";
47 fs::create_directories( temp );
49 fs::path work = temp /
"work";
50 fs::create_directories( work );
52 fs::path file = work /
"model.txt";
53 std::ofstream( file.string() ) <<
"dummy";
57 wxString absFile = wxString::FromUTF8( file.string() );
58 wxString resolved =
resolver.ResolvePath( absFile, wxEmptyString, {} );
59 wxFileName fn( absFile );
60 fn.Normalize( wxPATH_NORM_ABSOLUTE | wxPATH_NORM_DOTS );
63 wxString working = wxString::FromUTF8( work.string() );
64 wxString relResolved =
resolver.ResolvePath( wxS(
"model.txt" ), working, {} );
70 fs::path temp = fs::temp_directory_path() /
"fnres_alias";
71 fs::create_directories( temp );
73 fs::path file = temp /
"a.txt";
74 std::ofstream( file.string() ) <<
"dummy";
80 sp.
m_Pathvar = wxString::FromUTF8( temp.string() );
81 std::vector<SEARCH_PATH> paths = { sp };
85 wxString resolved =
resolver.ResolvePath( wxS(
"ALIAS:a.txt" ), wxEmptyString, {} );
89 wxString resolvedLeadingColon =
resolver.ResolvePath( wxS(
":ALIAS:a.txt" ), wxEmptyString, {} );
93 wxString missing =
resolver.ResolvePath( wxS(
"MISSING:a.txt" ), wxEmptyString, {} );
94 BOOST_CHECK( missing.IsEmpty() );
100 fs::path temp = fs::temp_directory_path() /
"fnres_shorten";
101 fs::create_directories( temp );
103 fs::path file = temp /
"sub" /
"model.wrl";
104 fs::create_directories( file.parent_path() );
105 std::ofstream( file.string() ) <<
"dummy";
111 sp.
m_Pathvar = wxString::FromUTF8( temp.string() );
114 wxString full = wxString::FromUTF8( file.string() );
115 wxString shortened =
resolver.ShortenPath( full );
118 BOOST_CHECK( shortened.StartsWith( wxS(
"${MYLIB}/" ) ) );
121 wxString resolvedBack =
resolver.ResolvePath( shortened, wxEmptyString, {} );
122 wxFileName fn( full );
123 fn.Normalize( wxPATH_NORM_ABSOLUTE | wxPATH_NORM_DOTS );
131 fs::path temp = fs::temp_directory_path() /
"fnres_colon_alias";
132 fs::create_directories( temp );
134 fs::path file = temp /
"model.wrl";
135 std::ofstream( file.string() ) <<
"dummy";
141 sp.
m_Pathvar = wxString::FromUTF8( temp.string() );
145 wxString resolved =
resolver.ResolvePath( wxS(
":MYLIB:model.wrl" ), wxEmptyString, {} );
146 wxFileName fn( wxString::FromUTF8( file.string() ) );
147 fn.Normalize( wxPATH_NORM_ABSOLUTE | wxPATH_NORM_DOTS );
157 fs::path root = fs::temp_directory_path() /
"ss_root";
158 fs::path sub = root /
"sub";
159 fs::create_directories( sub );
161 fs::path file = sub /
"f.txt";
162 std::ofstream( file.string() ) <<
"dummy";
165 stack.
AddPaths( wxString::FromUTF8( root.string() ) );
168 wxString::FromUTF8( root.string() ) );
169 BOOST_CHECK_EQUAL( rel, wxString::FromUTF8( ( fs::path(
"sub" ) /
"f.txt" ).
string() ) );
171 fs::path outside = fs::temp_directory_path() /
"outside.txt";
172 std::ofstream( outside.string() ) <<
"dummy";
175 wxString::FromUTF8( root.string() ) );
BOOST_CHECK_EQUAL(result, "25.4")