| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- #include <gtest/gtest.h>
- #include "fileutil.h"
- #include "array.h"
- TEST(FileUtilTest, TestGetSubFile)
- {
- const auto args = ::testing::internal::GetArgvs();
- EXPECT_FALSE(args.empty());
- std::string test_dir("");
- if (args.size() == 1) {
- auto dir = args[0].find_last_of('/');
- if (dir == std::string::npos) {
- dir = args[0].find_last_of('\\');
- }
- if (dir != std::string::npos) {
- test_dir = args[0].substr(0, dir + 1);
- test_dir += "test_libtoolkit_area";
- }
- ASSERT_TRUE(!test_dir.empty()) << test_dir;
- }
- else {
- test_dir = args[1];
- }
- std::cout << "test dir: " << test_dir << std::endl;
- auto files = fileutil_get_sub_files_a((test_dir + "/test_dir_4").c_str());
- ASSERT_TRUE(array_empty(files));
- files = fileutil_get_sub_files_a(NULL);
- ASSERT_TRUE(files == NULL);
- files = fileutil_get_sub_files_a("C");
- ASSERT_TRUE(files == NULL);
- files = fileutil_get_sub_dirs_a(test_dir.c_str());
- ASSERT_TRUE(files != NULL);
- EXPECT_TRUE(files->nelts == 4);
- toolkit_array_free2(files);
- files = fileutil_get_sub_dirs2_a(test_dir.c_str(), 2);
- ASSERT_TRUE(files != NULL);
- EXPECT_TRUE(files->nelts == 2);
- toolkit_array_free2(files);
- files = fileutil_get_sub_files_a((test_dir + "/test_dir_3").c_str());
- ASSERT_TRUE(files != NULL);
- EXPECT_TRUE(files->nelts == 3);
- toolkit_array_free2(files);
- files = fileutil_get_sub_files2_a((test_dir + "/test_dir_3").c_str(), 2);
- EXPECT_TRUE(files->nelts == 2);
- toolkit_array_free2(files);
- files = fileutil_get_sub_dirs_a((test_dir + "/test_dir_3").c_str());
- ASSERT_TRUE(array_empty(files));
- files = fileutil_get_sub_dirs2_a((test_dir + "/test_dir_3").c_str(), 2);
- ASSERT_TRUE(array_empty(files));
- }
- /*
- D:/GitReposity/Framework/out/build/x86-Debug/bin/Debug/test_libtoolkit_area
- */
- TEST(FileUtilTest, DealWithSlash)
- {
- const auto args = ::testing::internal::GetArgvs();
- EXPECT_FALSE(args.empty());
- std::string test_dir("");
- if (args.size() == 1) {
- auto dir = args[0].find_last_of('/');
- if (dir == std::string::npos) {
- dir = args[0].find_last_of('\\');
- }
- if(dir != std::string::npos)
- {
- test_dir = args[0].substr(0, dir + 1);
- test_dir += "test_libtoolkit_area";
- }
- EXPECT_TRUE(!test_dir.empty());
- } else {
- test_dir = args[1];
- }
- std::cout << "test dir: " << test_dir << std::endl;
- ASSERT_TRUE(ExistsDirA(test_dir.c_str()));
- #ifdef _WIN32
- ASSERT_TRUE(ExistsFileA((test_dir + "\\test_file3.txt").c_str()));
- ASSERT_TRUE(ExistsFileA((test_dir + "\\test_dir_3\\test_dir_3_file_3.txt").c_str()));
- /*create dir*/
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_3").c_str()));
- ASSERT_TRUE(CreateDirRecursiveA((test_dir + "\\new_dir_3\\new_dir_3_1").c_str()));
- EXPECT_TRUE(ExistsDirA((test_dir + "\\new_dir_3\\new_dir_3_1").c_str()));
- /*remove dir*/
- ASSERT_TRUE(RemoveDirRecursiveA((test_dir + "\\new_dir_3").c_str()));
- ASSERT_FALSE(ExistsDirA((test_dir + "\\new_dir_3\\new_dir_3_1").c_str()));
- ASSERT_FALSE(ExistsDirA((test_dir + "\\new_dir_3").c_str()));
- /*copy dir*/
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_1").c_str()));
- ASSERT_TRUE(CopyDirA((test_dir + "\\test_dir_3").c_str(), (test_dir + "\\new_dir_1").c_str()));
- EXPECT_TRUE(ExistsDirA((test_dir + "\\new_dir_1").c_str()));
- ASSERT_TRUE(RemoveDirRecursiveA((test_dir + "\\new_dir_1").c_str()));
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_1").c_str()));
- /*backup*/
- CopyDirA((test_dir + "\\test_dir_2").c_str(), (test_dir + "\\new_bk_2").c_str());
- CopyDirA((test_dir + "\\test_dir_3").c_str(), (test_dir + "\\new_bk_3").c_str());
- /*remove file*/
- ASSERT_TRUE(RemoveFileA((test_dir + "\\test_dir_3\\test_dir_3_file_3.txt").c_str()));
- EXPECT_FALSE(ExistsFileA((test_dir + "\\test_dir_3\\test_dir_3_file_3.txt").c_str()));
- /*rollback new_dir_3*/
- CopyDirA((test_dir + "\\new_bk_3").c_str(), (test_dir + "\\test_dir_3").c_str());
- RemoveDirRecursiveA((test_dir + "\\new_bk_3").c_str());
- /*create grandson directory*/
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_2\\new_dir_2_1").c_str()));
- EXPECT_FALSE(CreateDirA((test_dir + "\\new_dir_2\\new_dir_2_1").c_str(), FALSE));
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_2").c_str()));
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_2\\new_dir_2_1").c_str()));
- EXPECT_TRUE(CreateDirA((test_dir + "\\new_dir_2\\new_dir_2_1").c_str(), TRUE));
- EXPECT_TRUE(ExistsDirA((test_dir + "\\new_dir_2\\new_dir_2_1").c_str()));
- /*remove dir*/
- RemoveDirRecursiveA((test_dir + "\\new_dir_2").c_str());
- /*create parent dir*/
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_4").c_str()));
- EXPECT_FALSE(CreateParentDirA((test_dir + "\\new_dir_4\\new_dir_4_1\\new_dir_4_1_1").c_str(), FALSE));
- EXPECT_FALSE(ExistsDirA((test_dir + "\\new_dir_4").c_str()));
- EXPECT_TRUE(CreateParentDirA((test_dir + "\\new_dir_4\\new_dir_4_1\\new_dir_4_1_1").c_str(), TRUE));
- EXPECT_TRUE(ExistsDirA((test_dir + "\\new_dir_4\\new_dir_4_1").c_str()));
- RemoveDirRecursiveA((test_dir + "\\new_dir_4").c_str());
- /*clear dir*/
- EXPECT_TRUE(ExistsFileA((test_dir + "\\test_dir_2\\test_sub_dir_2\\test_sub_dir_2_file_1.txt").c_str()));
- EXPECT_TRUE(ClearDirRecursiveA((test_dir + "\\test_dir_2").c_str()));
- EXPECT_FALSE(ExistsFileA((test_dir + "\\test_dir_2\\test_sub_dir_2\\test_sub_dir_2_file_1.txt").c_str()));
- EXPECT_TRUE(ExistsDirA((test_dir + "\\test_dir_2\\test_sub_dir_2").c_str()));
- /*rollback new_dir_2*/
- CopyDirA((test_dir + "\\new_bk_2").c_str(), (test_dir + "\\test_dir_2").c_str());
- RemoveDirRecursiveA((test_dir + "\\new_bk_2").c_str());
- #else
- ASSERT_TRUE(ExistsFileA((test_dir + "/test_file3.txt").c_str()));
- ASSERT_TRUE(ExistsFileA((test_dir + "/test_dir_3/test_dir_3_file_3.txt").c_str()));
- /*create dir*/
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_3").c_str()));
- ASSERT_TRUE(CreateDirRecursiveA((test_dir + "/new_dir_3/new_dir_3_1").c_str()));
- EXPECT_TRUE(ExistsDirA((test_dir + "/new_dir_3/new_dir_3_1").c_str()));
- /*remove dir*/
- ASSERT_TRUE(RemoveDirRecursiveA((test_dir + "/new_dir_3").c_str()));
- ASSERT_FALSE(ExistsDirA((test_dir + "/new_dir_3/new_dir_3_1").c_str()));
- ASSERT_FALSE(ExistsDirA((test_dir + "/new_dir_3").c_str()));
- /*copy dir*/
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_1").c_str()));
- ASSERT_TRUE(CopyDirA((test_dir + "/test_dir_3").c_str(), (test_dir + "/new_dir_1").c_str()));
- EXPECT_TRUE(ExistsDirA((test_dir + "/new_dir_1").c_str()));
- ASSERT_TRUE(RemoveDirRecursiveA((test_dir + "/new_dir_1").c_str()));
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_1").c_str()));
- /*backup*/
- CopyDirA((test_dir + "/test_dir_2").c_str(), (test_dir + "/new_bk_2").c_str());
- CopyDirA((test_dir + "/test_dir_3").c_str(), (test_dir + "/new_bk_3").c_str());
- /*remove file*/
- ASSERT_TRUE(RemoveFileA((test_dir + "/test_dir_3/test_dir_3_file_3.txt").c_str()));
- EXPECT_FALSE(ExistsFileA((test_dir + "/test_dir_3/test_dir_3_file_3.txt").c_str()));
- /*rollback new_dir_3*/
- CopyDirA((test_dir + "/new_bk_3").c_str(), (test_dir + "/test_dir_3").c_str());
- RemoveDirRecursiveA((test_dir + "/new_bk_3").c_str());
- /*create grandson directory*/
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_2/new_dir_2_1").c_str()));
- EXPECT_FALSE(CreateDirA((test_dir + "/new_dir_2/new_dir_2_1").c_str(), FALSE));
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_2").c_str()));
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_2/new_dir_2_1").c_str()));
- EXPECT_TRUE(CreateDirA((test_dir + "/new_dir_2/new_dir_2_1").c_str(), TRUE));
- EXPECT_TRUE(ExistsDirA((test_dir + "/new_dir_2/new_dir_2_1").c_str()));
- /*remove dir*/
- RemoveDirRecursiveA((test_dir + "/new_dir_2").c_str());
- /*create parent dir*/
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_4").c_str()));
- EXPECT_FALSE(CreateParentDirA((test_dir + "/new_dir_4/new_dir_4_1/new_dir_4_1_1").c_str(), FALSE));
- EXPECT_FALSE(ExistsDirA((test_dir + "/new_dir_4").c_str()));
- EXPECT_TRUE(CreateParentDirA((test_dir + "/new_dir_4/new_dir_4_1/new_dir_4_1_1").c_str(), TRUE));
- EXPECT_TRUE(ExistsDirA((test_dir + "/new_dir_4/new_dir_4_1").c_str()));
- RemoveDirRecursiveA((test_dir + "/new_dir_4").c_str());
- /*clear dir*/
- EXPECT_TRUE(ExistsFileA((test_dir + "/test_dir_2/test_sub_dir_2/test_sub_dir_2_file_1.txt").c_str()));
- EXPECT_TRUE(ClearDirRecursiveA((test_dir + "/test_dir_2").c_str()));
- EXPECT_FALSE(ExistsFileA((test_dir + "/test_dir_2/test_sub_dir_2/test_sub_dir_2_file_1.txt").c_str()));
- EXPECT_TRUE(ExistsDirA((test_dir + "/test_dir_2/test_sub_dir_2").c_str()));
- /*rollback new_dir_2*/
- CopyDirA((test_dir + "/new_bk_2").c_str(), (test_dir + "/test_dir_2").c_str());
- RemoveDirRecursiveA((test_dir + "/new_bk_2").c_str());
- #endif // _WIN32
- }
- TEST(FileUtilTest, TestSplitDir)
- {
- char drive[_MAX_DRIVE] = "", dir[_MAX_DIR] = "", fname[_MAX_FNAME] = "", ext[_MAX_EXT] = "";
- char chpath[MAX_PATH] = "";
- #ifdef _WIN32
- strcpy(chpath, "D:\\first\\seccond\\third\\run.exe");
- _splitpath(chpath, drive, dir, fname, ext);
- printf("drive: %s\n", drive); //D:
- printf("dir: %s\n", dir); // "\dir\"
- printf("fname: %s\n", fname); //test_file
- printf("ext: %s\n", ext); //.exe
- printf("chpath: %s\n", chpath); //D:\dir\test_file.exe
- #else
- strcpy(chpath, "/opt/first/second/third/filename.out");
- _splitpath(chpath, drive, dir, fname, ext);
- ASSERT_STREQ(drive, "/opt") << drive;
- ASSERT_STREQ(dir, "/first/second/third/") << dir;
- ASSERT_STREQ(fname, "filename") << fname;
- ASSERT_STREQ(ext, ".out") << ext;
- strcpy(chpath, "/opt/first/second/third/filename");
- _splitpath(chpath, drive, dir, fname, ext);
- ASSERT_STREQ(drive, "/opt") << drive;
- ASSERT_STREQ(dir, "/first/second/third/") << dir;
- ASSERT_STREQ(fname, "filename") << fname;
- ASSERT_STREQ(ext, "") << ext;
- strcpy(chpath, "/opt/first/second/third/");
- _splitpath(chpath, drive, dir, fname, ext);
- ASSERT_STREQ(drive, "/opt") << drive;
- ASSERT_STREQ(dir, "/first/second/third/") << dir;
- ASSERT_STREQ(fname, "") << fname;
- ASSERT_STREQ(ext, "") << ext;
- strcpy(chpath, "opt/first/second/third/filename.out");
- _splitpath(chpath, drive, dir, fname, ext);
- EXPECT_STREQ(drive, "") << drive;
- EXPECT_STREQ(dir, "opt/first/second/third/") << dir;
- ASSERT_STREQ(fname, "filename") << fname;
- ASSERT_STREQ(ext, ".out") << ext;
- strcpy(chpath, "/opt/first/second/third/filename.out");
- _splitpath(chpath, NULL, NULL, NULL, NULL);
- _splitpath(NULL, NULL, NULL, NULL, NULL);
- /*
- /root/.vs/Framework/0a5e75f4-a518-42b3-ae7c-d348093722be/out/build/Linux-Debug/bin/spshell
- */
- strcpy(chpath, "/root/.vs/Framework/0a5e75f4-a518-42b3-ae7c-d348093722be/out/build/Linux-Debug/bin/spshell");
- _splitpath(chpath, drive, dir, fname, ext);
- EXPECT_STREQ(drive, "/root") << drive;
- EXPECT_STREQ(dir, "/.vs/Framework/0a5e75f4-a518-42b3-ae7c-d348093722be/out/build/Linux-Debug/bin/") << dir;
- ASSERT_STREQ(fname, "spshell") << fname;
- #endif //_WIN32
- }
|