#include <boost/lexical_cast.hpp>
#include <boost/core/lightweight_test.hpp>
#include <boost/filesystem/path.hpp>
void test_filesystem()
{
boost::filesystem::path p;
std::string s1 = "aaaaaaaaaaaaaaaaaaaaaaa";
p = boost::lexical_cast<boost::filesystem::path>(s1);
BOOST_TEST(!p.empty());
BOOST_TEST_EQ(p, s1);
p.clear();
const char ab[] = "aaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
p = boost::lexical_cast<boost::filesystem::path>(ab);
BOOST_TEST(!p.empty());
BOOST_TEST_EQ(p, ab);
const char quoted_path[] = "\"/home/my user\"";
p = boost::lexical_cast<boost::filesystem::path>(quoted_path);
BOOST_TEST(!p.empty());
const char unquoted_path[] = "/home/my user";
BOOST_TEST_EQ(p, boost::filesystem::path(unquoted_path));
BOOST_TEST_EQ(boost::lexical_cast<std::string>(p), quoted_path);
try {
p = boost::lexical_cast<boost::filesystem::path>(unquoted_path);
BOOST_TEST(false);
} catch (const boost::bad_lexical_cast& ) {
}
}
int main()
{
test_filesystem();
return boost::report_errors();
}