📄 path_test.cpp
字号:
BOOST_CHECK( path("foo\\bar", fs::no_check).leaf() == "foo\\bar" );
BOOST_CHECK( fs::portable_posix_name(".") );
BOOST_CHECK( fs::portable_posix_name("..") );
BOOST_CHECK( fs::portable_posix_name("...") );
BOOST_CHECK( fs::portable_posix_name("....") );
BOOST_CHECK( fs::portable_posix_name("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_") );
BOOST_CHECK( !fs::portable_posix_name("F$O") );
BOOST_CHECK( fs::portable_name(".") );
BOOST_CHECK( fs::portable_name("..") );
BOOST_CHECK( fs::portable_name("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_") );
BOOST_CHECK( !fs::portable_name("A.") );
BOOST_CHECK( fs::portable_name("A-") );
BOOST_CHECK( !fs::portable_name(".A") );
BOOST_CHECK( !fs::portable_name("-A") );
BOOST_CHECK( !fs::portable_name("F$O") );
BOOST_CHECK( fs::portable_file_name(".") );
BOOST_CHECK( fs::portable_file_name("..") );
BOOST_CHECK( fs::portable_file_name("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_") );
BOOST_CHECK( fs::portable_file_name("0123456789.-_") );
BOOST_CHECK( fs::portable_file_name("1234567890123456789012345678901") );
BOOST_CHECK( !fs::portable_file_name("a.") );
BOOST_CHECK( !fs::portable_file_name("a..b") );
BOOST_CHECK( !fs::portable_file_name("a.bcde") );
BOOST_CHECK( !fs::portable_file_name("a..cde") );
BOOST_CHECK( !fs::portable_file_name("a.c.de") );
BOOST_CHECK( !fs::portable_file_name("a.cd.e") );
BOOST_CHECK( fs::portable_file_name("a.b") );
BOOST_CHECK( fs::portable_file_name("a.bc") );
BOOST_CHECK( fs::portable_file_name("a.bcd") );
BOOST_CHECK( !fs::portable_file_name("A.") );
BOOST_CHECK( fs::portable_file_name("A-") );
BOOST_CHECK( !fs::portable_file_name(".A") );
BOOST_CHECK( !fs::portable_file_name("-A") );
BOOST_CHECK( !fs::portable_file_name("F$O") );
BOOST_CHECK( fs::portable_directory_name(".") );
BOOST_CHECK( fs::portable_directory_name("..") );
BOOST_CHECK( fs::portable_directory_name("ABCDEFGHIJKLMNOPQRSTUVWXYZ") );
BOOST_CHECK( fs::portable_directory_name("abcdefghijklmnopqrstuvwxyz") );
BOOST_CHECK( fs::portable_directory_name("0123456789-_") );
BOOST_CHECK( fs::portable_directory_name("1234567890123456789012345678901") );
BOOST_CHECK( !fs::portable_directory_name("a.") );
BOOST_CHECK( !fs::portable_directory_name("a.bcde") );
BOOST_CHECK( !fs::portable_directory_name("a..cde") );
BOOST_CHECK( !fs::portable_directory_name("a.c.de") );
BOOST_CHECK( !fs::portable_directory_name("a.cd.e") );
BOOST_CHECK( !fs::portable_directory_name("a.b") );
BOOST_CHECK( !fs::portable_directory_name("a.bc") );
BOOST_CHECK( !fs::portable_directory_name("a.bcd") );
BOOST_CHECK( !fs::portable_directory_name("A.") );
BOOST_CHECK( fs::portable_directory_name("A-") );
BOOST_CHECK( !fs::portable_directory_name(".A") );
BOOST_CHECK( !fs::portable_directory_name("-A") );
BOOST_CHECK( !fs::portable_directory_name("F$O") );
check_throw( "foo//bar" );
check_throw( "foo\\bar" );
check_throw( " " );
check_throw( " foo" );
check_throw( "foo " );
check_throw( ">" );
check_throw( "<" );
check_throw( ":" );
check_throw( "\"" );
check_throw( "|" );
check_throw( "c:" );
check_throw( "c:/" );
check_throw( "//share" );
check_throw( "prn:" );
path itr_ck( "/foo/bar" );
path::iterator itr( itr_ck.begin() );
BOOST_CHECK( *itr == std::string( "/" ) );
BOOST_CHECK( *++itr == std::string( "foo" ) );
BOOST_CHECK( *++itr == std::string( "bar" ) );
BOOST_CHECK( ++itr == itr_ck.end() );
BOOST_CHECK( *--itr == std::string( "bar" ) );
BOOST_CHECK( *--itr == std::string( "foo" ) );
BOOST_CHECK( *--itr == std::string( "/" ) );
itr_ck = "";
BOOST_CHECK( itr_ck.begin() == itr_ck.end() );
itr_ck = path( "/" );
BOOST_CHECK( *itr_ck.begin() == std::string( "/" ) );
BOOST_CHECK( next(itr_ck.begin()) == itr_ck.end() );
BOOST_CHECK( *prior(itr_ck.end()) == std::string( "/" ) );
BOOST_CHECK( prior(itr_ck.end()) == itr_ck.begin() );
itr_ck = path( "/foo" );
BOOST_CHECK( *itr_ck.begin() == std::string( "/" ) );
BOOST_CHECK( *next( itr_ck.begin() ) == std::string( "foo" ) );
BOOST_CHECK( next(next( itr_ck.begin() )) == itr_ck.end() );
BOOST_CHECK( next( itr_ck.begin() ) == prior( itr_ck.end() ) );
BOOST_CHECK( *prior( itr_ck.end() ) == std::string( "foo" ) );
BOOST_CHECK( *prior(prior( itr_ck.end() )) == std::string( "/" ) );
BOOST_CHECK( prior(prior( itr_ck.end() )) == itr_ck.begin() );
itr_ck = "foo";
BOOST_CHECK( *itr_ck.begin() == std::string( "foo" ) );
BOOST_CHECK( next( itr_ck.begin() ) == itr_ck.end() );
BOOST_CHECK( *prior( itr_ck.end() ) == std::string( "foo" ) );
BOOST_CHECK( prior( itr_ck.end() ) == itr_ck.begin() );
path p;
p = "";
BOOST_CHECK( p.relative_path().string() == "" );
BOOST_CHECK( p.branch_path().string() == "" );
BOOST_CHECK( p.leaf() == "" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "" );
BOOST_CHECK( p.root_path().string() == "" );
BOOST_CHECK( !p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( !p.has_root_directory() );
BOOST_CHECK( !p.has_relative_path() );
BOOST_CHECK( !p.has_leaf() );
BOOST_CHECK( !p.has_branch_path() );
BOOST_CHECK( !p.is_complete() );
p = "/";
BOOST_CHECK( p.relative_path().string() == "" );
BOOST_CHECK( p.branch_path().string() == "" );
BOOST_CHECK( p.leaf() == "/" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "/" );
BOOST_CHECK( p.root_path().string() == "/" );
BOOST_CHECK( p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( p.has_root_directory() );
BOOST_CHECK( !p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( !p.has_branch_path() );
if ( platform == "POSIX" )
BOOST_CHECK( p.is_complete() );
else
BOOST_CHECK( !p.is_complete() );
p = ".";
BOOST_CHECK( p.relative_path().string() == "." );
BOOST_CHECK( p.branch_path().string() == "" );
BOOST_CHECK( p.leaf() == "." );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "" );
BOOST_CHECK( p.root_path().string() == "" );
BOOST_CHECK( !p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( !p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( !p.has_branch_path() );
BOOST_CHECK( !p.is_complete() );
p = "..";
BOOST_CHECK( p.relative_path().string() == ".." );
BOOST_CHECK( p.branch_path().string() == "" );
BOOST_CHECK( p.leaf() == ".." );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "" );
BOOST_CHECK( p.root_path().string() == "" );
BOOST_CHECK( !p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( !p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( !p.has_branch_path() );
BOOST_CHECK( !p.is_complete() );
p = "foo";
BOOST_CHECK( p.relative_path().string() == "foo" );
BOOST_CHECK( p.branch_path().string() == "" );
BOOST_CHECK( p.leaf() == "foo" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "" );
BOOST_CHECK( p.root_path().string() == "" );
BOOST_CHECK( !p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( !p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( !p.has_branch_path() );
BOOST_CHECK( !p.is_complete() );
p = "/foo";
BOOST_CHECK( p.relative_path().string() == "foo" );
BOOST_CHECK( p.branch_path().string() == "/" );
BOOST_CHECK( p.leaf() == "foo" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "/" );
BOOST_CHECK( p.root_path().string() == "/" );
BOOST_CHECK( p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( p.has_branch_path() );
if ( platform == "POSIX" )
BOOST_CHECK( p.is_complete() );
else
BOOST_CHECK( !p.is_complete() );
p = "foo/bar";
BOOST_CHECK( p.relative_path().string() == "foo/bar" );
BOOST_CHECK( p.branch_path().string() == "foo" );
BOOST_CHECK( p.leaf() == "bar" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "" );
BOOST_CHECK( p.root_path().string() == "" );
BOOST_CHECK( !p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( !p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( p.has_branch_path() );
BOOST_CHECK( !p.is_complete() );
p = "../foo";
BOOST_CHECK( p.relative_path().string() == "../foo" );
BOOST_CHECK( p.branch_path().string() == ".." );
BOOST_CHECK( p.leaf() == "foo" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "" );
BOOST_CHECK( p.root_path().string() == "" );
BOOST_CHECK( !p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( !p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( p.has_branch_path() );
BOOST_CHECK( !p.is_complete() );
p = "/foo/bar";
BOOST_CHECK( p.relative_path().string() == "foo/bar" );
BOOST_CHECK( p.branch_path().string() == "/foo" );
BOOST_CHECK( p.leaf() == "bar" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "/" );
BOOST_CHECK( p.root_path().string() == "/" );
BOOST_CHECK( p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( p.has_branch_path() );
if ( platform == "POSIX" )
BOOST_CHECK( p.is_complete() );
else
BOOST_CHECK( !p.is_complete() );
// decomposition and query functions must work even for paths which
// do not pass the default name_check
p = path( "/</>", fs::no_check );
BOOST_CHECK( p.relative_path().string() == "</>" );
BOOST_CHECK( p.branch_path().string() == "/<" );
BOOST_CHECK( p.leaf() == ">" );
BOOST_CHECK( p.root_name() == "" );
BOOST_CHECK( p.root_directory() == "/" );
BOOST_CHECK( p.root_path().string() == "/" );
BOOST_CHECK( p.has_root_path() );
BOOST_CHECK( !p.has_root_name() );
BOOST_CHECK( p.has_root_directory() );
BOOST_CHECK( p.has_relative_path() );
BOOST_CHECK( p.has_leaf() );
BOOST_CHECK( p.has_branch_path() );
if ( platform == "POSIX" )
BOOST_CHECK( p.is_complete() );
else
BOOST_CHECK( !p.is_complete() );
if ( platform == "Windows" )
{
PATH_CHECK( path( "\\", fs::native ), "/" );
PATH_CHECK( path( "\\f", fs::native ), "/f" );
PATH_CHECK( path( "\\foo", fs::native ), "/foo" );
PATH_CHECK( path( "foo\\bar", fs::native ), "foo/bar" );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -