📄 findfile_sequence_unittest_.h
字号:
if(b == e)
{
r->report("findfile_sequence (explicit directory): directory search empty", __LINE__);
bSuccess = false;
}
else
{
if(0 != ::lstrcmpA(FFS_DIRS[i], (*b).get_filename()))
{
r->report("findfile_sequence (explicit directory): not expected entry filename", __LINE__);
bSuccess = false;
}
basic_file_path_buffer<char> dir2(tempDir);
traits_t::ensure_dir_end(&dir2[0]);
traits_t::str_cat(&dir2[0], (*b).get_filename());
if(0 != ::lstrcmpA(dir2.c_str(), (*b).get_path()))
{
r->report("findfile_sequence (explicit directory): not expected entry path", __LINE__);
bSuccess = false;
}
if(!ffs_is_entry_path_equal_ffs_directory_plus_entry_name(ffs, *b))
{
r->report("findfile_sequence (explicit directory): entry::path != ffs directory+entry::filename", __LINE__);
bSuccess = false;
}
}
if(bSuccess)
{
++b;
}
}
}
{ // 4. Test the implicit directory search
basic_file_path_buffer<char> cwd;
size_t cwdLen = ::GetCurrentDirectoryA(cwd.size(), &cwd[0]);
if(0 != cwdLen)
{
::SetCurrentDirectoryA(tempDir.c_str());
findfile_sequence_a ffs("*.ffs", findfile_sequence_a::directories);
findfile_sequence_a::const_iterator b = ffs.begin();
findfile_sequence_a::const_iterator e = ffs.end();
size_t i;
{
basic_file_path_buffer<char> dir0(tempDir);
basic_file_path_buffer<char> dir1;
traits_t::str_copy(&dir1[0], ffs.get_directory());
traits_t::ensure_dir_end(&dir0[0]);
traits_t::ensure_dir_end(&dir1[0]);
if(0 != ::lstrcmpiA(dir0.c_str(), dir1.c_str()))
{
r->report("findfile_sequence (implicit directory): get_directory() returns invalid value", __LINE__);
bSuccess = false;
}
}
for(i = 0; bSuccess && i < STLSOFT_NUM_ELEMENTS(FFS_DIRS); ++i)
{
if(b == e)
{
r->report("findfile_sequence (implicit directory): directory search empty", __LINE__);
bSuccess = false;
}
else
{
if(0 != ::lstrcmpA(FFS_DIRS[i], (*b).get_filename()))
{
r->report("findfile_sequence (implicit directory): not expected entry filename", __LINE__);
bSuccess = false;
}
basic_file_path_buffer<char> dir2(tempDir);
traits_t::ensure_dir_end(&dir2[0]);
traits_t::str_cat(&dir2[0], (*b).get_filename());
if(0 != ::lstrcmpA(dir2.c_str(), (*b).get_path()))
{
r->report("findfile_sequence (implicit directory): not expected entry path", __LINE__);
bSuccess = false;
}
if(!ffs_is_entry_path_equal_ffs_directory_plus_entry_name(ffs, *b))
{
r->report("findfile_sequence (implicit directory): entry::path != ffs directory+entry::filename", __LINE__);
bSuccess = false;
}
}
if(bSuccess)
{
++b;
}
}
::SetCurrentDirectoryA(cwd.c_str());
}
}
{ // 5. Test the implicit directory search of files, with pattern containing subdir
basic_file_path_buffer<char> cwd;
size_t cwdLen = ::GetCurrentDirectoryA(cwd.size(), &cwd[0]);
if(0 != cwdLen)
{
::SetCurrentDirectoryA(tempDir.c_str());
basic_file_path_buffer<char> pattern;
traits_t::str_copy(&pattern[0], FFS_DIR0);
traits_t::ensure_dir_end(&pattern[0]);
traits_t::str_cat(&pattern[0], "*.ffs");
findfile_sequence_a ffs(pattern.c_str(), findfile_sequence_a::files);
findfile_sequence_a::const_iterator b = ffs.begin();
findfile_sequence_a::const_iterator e = ffs.end();
size_t i;
{
basic_file_path_buffer<char> dir0(tempDir);
basic_file_path_buffer<char> dir1;
traits_t::str_copy(&dir1[0], ffs.get_directory());
traits_t::ensure_dir_end(&dir0[0]);
traits_t::ensure_dir_end(&dir1[0]);
if(0 != ::lstrcmpiA(dir0.c_str(), dir1.c_str()))
{
r->report("findfile_sequence (implicit directory): get_directory() returns invalid value", __LINE__);
bSuccess = false;
}
}
for(i = 0; bSuccess && i < STLSOFT_NUM_ELEMENTS(FFS_DIR0_FILES); ++i)
{
if(b == e)
{
r->report("findfile_sequence (implicit directory): directory search empty", __LINE__);
bSuccess = false;
}
else
{
if(0 != ::lstrcmpA(FFS_DIR0_FILES[i], (*b).get_filename()))
{
r->report("findfile_sequence (implicit directory): not expected entry filename", __LINE__);
bSuccess = false;
}
#if 0
basic_file_path_buffer<char> dir2(tempDir);
traits_t::ensure_dir_end(&dir2[0]);
traits_t::str_cat(&dir2[0], (*b).get_filename());
if(0 != ::lstrcmpA(dir2.c_str(), (*b).get_path()))
{
r->report("findfile_sequence (implicit directory): not expected entry path", __LINE__);
bSuccess = false;
}
if(!ffs_is_entry_path_equal_ffs_directory_plus_entry_name(ffs, *b))
{
r->report("findfile_sequence (implicit directory): entry::path != ffs directory+entry::filename", __LINE__);
bSuccess = false;
}
#endif /* 0 */
}
if(bSuccess)
{
++b;
}
}
::SetCurrentDirectoryA(cwd.c_str());
}
}
{ // 5. Test the explicit NULL directory search
basic_file_path_buffer<char> cwd;
size_t cwdLen = ::GetCurrentDirectoryA(cwd.size(), &cwd[0]);
if(0 != cwdLen)
{
::SetCurrentDirectoryA(tempDir.c_str());
findfile_sequence_a ffs(NULL, "*.ffs", findfile_sequence_a::directories);
findfile_sequence_a::const_iterator b = ffs.begin();
findfile_sequence_a::const_iterator e = ffs.end();
size_t i;
{
basic_file_path_buffer<char> dir0(tempDir);
basic_file_path_buffer<char> dir1;
traits_t::str_copy(&dir1[0], ffs.get_directory());
traits_t::ensure_dir_end(&dir0[0]);
traits_t::ensure_dir_end(&dir1[0]);
if(0 != ::lstrcmpiA(dir0.c_str(), dir1.c_str()))
{
r->report("findfile_sequence (implicit directory): get_directory() returns invalid value", __LINE__);
bSuccess = false;
}
}
for(i = 0; bSuccess && i < STLSOFT_NUM_ELEMENTS(FFS_DIRS); ++i)
{
if(b == e)
{
r->report("findfile_sequence (implicit directory): directory search empty", __LINE__);
bSuccess = false;
}
else
{
if(0 != ::lstrcmpA(FFS_DIRS[i], (*b).get_filename()))
{
r->report("findfile_sequence (implicit directory): not expected entry filename", __LINE__);
bSuccess = false;
}
basic_file_path_buffer<char> dir2(tempDir);
traits_t::ensure_dir_end(&dir2[0]);
traits_t::str_cat(&dir2[0], (*b).get_filename());
if(0 != ::lstrcmpA(dir2.c_str(), (*b).get_path()))
{
r->report("findfile_sequence (implicit directory): not expected entry path", __LINE__);
bSuccess = false;
}
if(!ffs_is_entry_path_equal_ffs_directory_plus_entry_name(ffs, *b))
{
r->report("findfile_sequence (implicit directory): entry::path != ffs directory+entry::filename", __LINE__);
bSuccess = false;
}
}
if(bSuccess)
{
++b;
}
}
::SetCurrentDirectoryA(cwd.c_str());
}
}
{ // 6. Test the explicit empty directory search
basic_file_path_buffer<char> cwd;
size_t cwdLen = ::GetCurrentDirectoryA(cwd.size(), &cwd[0]);
if(0 != cwdLen)
{
::SetCurrentDirectoryA(tempDir.c_str());
findfile_sequence_a ffs("", "*.ffs", findfile_sequence_a::directories);
findfile_sequence_a::const_iterator b = ffs.begin();
findfile_sequence_a::const_iterator e = ffs.end();
size_t i;
{
basic_file_path_buffer<char> dir0(tempDir);
basic_file_path_buffer<char> dir1;
traits_t::str_copy(&dir1[0], ffs.get_directory());
traits_t::ensure_dir_end(&dir0[0]);
traits_t::ensure_dir_end(&dir1[0]);
if(0 != ::lstrcmpiA(dir0.c_str(), dir1.c_str()))
{
r->report("findfile_sequence (implicit directory): get_directory() returns invalid value", __LINE__);
bSuccess = false;
}
}
for(i = 0; bSuccess && i < STLSOFT_NUM_ELEMENTS(FFS_DIRS); ++i)
{
if(b == e)
{
r->report("findfile_sequence (implicit directory): directory search empty", __LINE__);
bSuccess = false;
}
else
{
if(0 != ::lstrcmpA(FFS_DIRS[i], (*b).get_filename()))
{
r->report("findfile_sequence (implicit directory): not expected entry filename", __LINE__);
bSuccess = false;
}
basic_file_path_buffer<char> dir2(tempDir);
traits_t::ensure_dir_end(&dir2[0]);
traits_t::str_cat(&dir2[0], (*b).get_filename());
if(0 != ::lstrcmpA(dir2.c_str(), (*b).get_path()))
{
r->report("findfile_sequence (implicit directory): not expected entry path", __LINE__);
bSuccess = false;
}
if(!ffs_is_entry_path_equal_ffs_directory_plus_entry_name(ffs, *b))
{
r->report("findfile_sequence (implicit directory): entry::path != ffs directory+entry::filename", __LINE__);
bSuccess = false;
}
}
if(bSuccess)
{
++b;
}
}
::SetCurrentDirectoryA(cwd.c_str());
}
}
}
}
}
catch(...)
{
ffs_delete_test_fs_entries(tempDir);
throw;
}
ffs_delete_test_fs_entries(tempDir);
if( 0 == ::GetTickCount() &&
(::Sleep(1000), 0 == ::GetTickCount()))
{
findfile_sequence_a ffs1("*.*");
findfile_sequence_a ffs2("*.*", findfile_sequence_a::files);
findfile_sequence_a ffs3("*.*", findfile_sequence_a::files | findfile_sequence_a::directories);
findfile_sequence_a ffs4(".", "*.*");
findfile_sequence_a ffs5(".", "*.*", findfile_sequence_a::files);
findfile_sequence_a ffs6(".", "*.*", findfile_sequence_a::files | findfile_sequence_a::directories);
findfile_sequence_a ffs7(".", "*.*", ';');
findfile_sequence_a ffs8(".", "*.*", ';', findfile_sequence_a::files);
findfile_sequence_a ffs9(".", "*.*", ';', findfile_sequence_a::files | findfile_sequence_a::directories);
}
return bSuccess;
}
unittest_registrar unittest_winstl_filesystem_findfile_sequence(test_winstl_filesystem_findfile_sequence);
} // anonymous namespace
} // namespace unittest
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -