42 fs::path temp = fs::temp_directory_path() /
"fnres_test";
43 fs::create_directories( temp );
45 fs::path work = temp /
"work";
46 fs::create_directories( work );
48 fs::path file = work /
"model.txt";
49 std::ofstream( file.string() ) <<
"dummy";
53 wxString absFile = wxString::FromUTF8( file.string() );
54 wxString resolved =
resolver.ResolvePath( absFile, wxEmptyString, {} );
55 wxFileName fn( absFile );
56 fn.Normalize( wxPATH_NORM_ABSOLUTE | wxPATH_NORM_DOTS );
59 wxString working = wxString::FromUTF8( work.string() );
60 wxString relResolved =
resolver.ResolvePath( wxS(
"model.txt" ), working, {} );
66 fs::path temp = fs::temp_directory_path() /
"fnres_alias";
67 fs::create_directories( temp );
69 fs::path file = temp /
"a.txt";
70 std::ofstream( file.string() ) <<
"dummy";
76 sp.
m_Pathvar = wxString::FromUTF8( temp.string() );
77 std::vector<SEARCH_PATH> paths = { sp };
81 wxString resolved =
resolver.ResolvePath( wxS(
"ALIAS:a.txt" ), wxEmptyString, {} );
85 wxString resolvedLeadingColon =
resolver.ResolvePath( wxS(
":ALIAS:a.txt" ), wxEmptyString, {} );
89 wxString missing =
resolver.ResolvePath( wxS(
"MISSING:a.txt" ), wxEmptyString, {} );
90 BOOST_CHECK( missing.IsEmpty() );
96 fs::path temp = fs::temp_directory_path() /
"fnres_shorten";
97 fs::create_directories( temp );
99 fs::path file = temp /
"sub" /
"model.wrl";
100 fs::create_directories( file.parent_path() );
101 std::ofstream( file.string() ) <<
"dummy";
107 sp.
m_Pathvar = wxString::FromUTF8( temp.string() );
110 wxString full = wxString::FromUTF8( file.string() );
111 wxString shortened =
resolver.ShortenPath( full );
114 BOOST_CHECK( shortened.StartsWith( wxS(
"${MYLIB}/" ) ) );
117 wxString resolvedBack =
resolver.ResolvePath( shortened, wxEmptyString, {} );
118 wxFileName fn( full );
119 fn.Normalize( wxPATH_NORM_ABSOLUTE | wxPATH_NORM_DOTS );
127 fs::path temp = fs::temp_directory_path() /
"fnres_colon_alias";
128 fs::create_directories( temp );
130 fs::path file = temp /
"model.wrl";
131 std::ofstream( file.string() ) <<
"dummy";
137 sp.
m_Pathvar = wxString::FromUTF8( temp.string() );
141 wxString resolved =
resolver.ResolvePath( wxS(
":MYLIB:model.wrl" ), wxEmptyString, {} );
142 wxFileName fn( wxString::FromUTF8( file.string() ) );
143 fn.Normalize( wxPATH_NORM_ABSOLUTE | wxPATH_NORM_DOTS );
153 fs::path root = fs::temp_directory_path() /
"ss_root";
154 fs::path sub = root /
"sub";
155 fs::create_directories( sub );
157 fs::path file = sub /
"f.txt";
158 std::ofstream( file.string() ) <<
"dummy";
161 stack.
AddPaths( wxString::FromUTF8( root.string() ) );
164 wxString::FromUTF8( root.string() ) );
165 BOOST_CHECK_EQUAL( rel, wxString::FromUTF8( ( fs::path(
"sub" ) /
"f.txt" ).
string() ) );
167 fs::path outside = fs::temp_directory_path() /
"outside.txt";
168 std::ofstream( outside.string() ) <<
"dummy";
171 wxString::FromUTF8( root.string() ) );
BOOST_CHECK_EQUAL(result, "25.4")