test_tc_file.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. //
  2. // Created by jarod on 2020/2/20.
  3. //
  4. #include "util/tc_file.h"
  5. #include "gtest/gtest.h"
  6. using namespace tars;
  7. class UtilFileTest : public testing::Test
  8. {
  9. public:
  10. //添加日志
  11. static void SetUpTestCase()
  12. {
  13. // cout<<"SetUpTestCase"<<endl;
  14. }
  15. static void TearDownTestCase()
  16. {
  17. // cout<<"TearDownTestCase"<<endl;
  18. }
  19. virtual void SetUp() //TEST跑之前会执行SetUp
  20. {
  21. // cout<<"SetUp"<<endl;
  22. }
  23. virtual void TearDown() //TEST跑完之后会执行TearDown
  24. {
  25. // cout<<"TearDown"<<endl;
  26. }
  27. };
  28. TEST_F(UtilFileTest, file) //此时使用的是TEST_F宏
  29. {
  30. string file = "./test.dat";
  31. string data = "helloword";
  32. data[3] = '\0';
  33. TC_File::save2file(file, data);
  34. size_t fileSize = TC_File::getFileSize(file);
  35. // cout << "file size:" << fileSize << endl;
  36. ASSERT_TRUE(fileSize == data.size());
  37. string load = TC_File::load2str(file);
  38. // cout << "load file size:" << load.size() << endl;
  39. ASSERT_TRUE(load == data);
  40. bool fileExists = TC_File::isFileExist(file, S_IFREG);
  41. // cout << "file exists:" << fileExists << endl;
  42. ASSERT_TRUE(fileExists);
  43. string dir = "test";
  44. TC_File::makeDir(dir);
  45. fileExists = TC_File::isFileExist(dir, S_IFDIR);
  46. // cout << "dir exists:" << fileExists << endl;
  47. ASSERT_TRUE(fileExists);
  48. string newFile = dir + FILE_SEP + file;
  49. TC_File::save2file(newFile, data);
  50. fileExists = TC_File::isFileExist(newFile, S_IFREG);
  51. // cout << "newFile exists:" << fileExists << endl;
  52. ASSERT_TRUE(fileExists);
  53. TC_File::makeDir(dir + FILE_SEP + "test1");
  54. TC_File::makeDir(dir + FILE_SEP + "test2");
  55. vector<string> v;
  56. TC_File::listDirectory(dir, v, true);
  57. // cout << "listDirectory:" << endl;
  58. // for(auto s : v)
  59. // {
  60. // cout << " " << s << endl;
  61. // }
  62. TC_File::removeFile(dir, true);
  63. fileExists = TC_File::isFileExist(file, S_IFDIR);
  64. // cout << "dir exists:" << fileExists << endl;
  65. ASSERT_TRUE(!fileExists);
  66. }
  67. TEST_F(UtilFileTest, simplifyDirectory)
  68. {
  69. #if TARGET_PLATFORM_WINDOWS
  70. // cout << "simplifyDirectory:" << TC_File::simplifyDirectory("/./ab/tt//t///t//../tt/") << endl;
  71. ASSERT_TRUE(TC_File::simplifyDirectory("/./ab/tt//t///t//../tt/") == "ab\\tt\\t\\tt");
  72. // cout << "simplifyDirectory:" << TC_File::simplifyDirectory("c:/ab/tt//t///t//../tt/") << endl;
  73. ASSERT_TRUE(TC_File::simplifyDirectory("c:/ab/tt//t///t//../tt/") == "c:\\ab\\tt\\t\\tt");
  74. #else
  75. // cout << "simplifyDirectory:" << TC_File::simplifyDirectory("/./ab/tt//t///t//../tt/") << endl;
  76. ASSERT_TRUE(TC_File::simplifyDirectory("/./ab/tt//t///t//../tt/") == "/ab/tt/t/tt");
  77. // cout << "simplifyDirectory:" << TC_File::simplifyDirectory("/ab/tt//t///t//../tt/") << endl;
  78. ASSERT_TRUE(TC_File::simplifyDirectory("/ab/tt//t///t//../tt/") == "/ab/tt/t/tt");
  79. #endif
  80. }
  81. TEST_F(UtilFileTest, nameAndPath)
  82. {
  83. ASSERT_TRUE(TC_File::extractFileExt("/usr/local/app/bin.exe") == "exe");
  84. ASSERT_TRUE(TC_File::extractFileExt("/usr/local/app/bin") == "");
  85. ASSERT_TRUE(TC_File::extractFileExt("/usr/local/app.dir/bin.exe") == "exe");
  86. ASSERT_TRUE(TC_File::extractFileExt("c:\\usr\\local\\app.dir\\bin.exe") == "exe");
  87. ASSERT_TRUE(TC_File::extractFileExt("c:\\usr\\local\\app.dir\\bin") == "");
  88. ASSERT_TRUE(TC_File::extractFileName("/usr/local/app/bin.exe") == "bin.exe");
  89. ASSERT_TRUE(TC_File::extractFileName("/usr/local/app/bin") == "bin");
  90. ASSERT_TRUE(TC_File::extractFileName("/usr/local/app.dir/bin.exe") == "bin.exe");
  91. ASSERT_TRUE(TC_File::extractFileName("c:\\usr\\local\\app.dir\\bin.exe") == "bin.exe");
  92. ASSERT_TRUE(TC_File::extractFileName("c:\\usr\\local\\app.dir\\bin") == "bin");
  93. ASSERT_TRUE(TC_File::extractFileName("bin.exe") == "bin.exe");
  94. ASSERT_TRUE(TC_File::extractFilePath("/usr/local/app/bin.exe") == "/usr/local/app/");
  95. ASSERT_TRUE(TC_File::extractFilePath("/usr/local/app/bin") == "/usr/local/app/");
  96. ASSERT_TRUE(TC_File::extractFilePath("/usr/local/app.dir/bin.exe") == "/usr/local/app.dir/");
  97. ASSERT_TRUE(TC_File::extractFilePath("c:\\usr\\local\\app.dir\\bin.exe") == "c:\\usr\\local\\app.dir\\");
  98. ASSERT_TRUE(TC_File::extractFilePath("c:\\usr\\local\\app.dir\\bin") == "c:\\usr\\local\\app.dir\\");
  99. ASSERT_TRUE(TC_File::extractFilePath("temp.gif") == string(".") + FILE_SEP);
  100. ASSERT_TRUE(TC_File::excludeFileExt("/usr/local/app/bin.exe") == "/usr/local/app/bin");
  101. ASSERT_TRUE(TC_File::excludeFileExt("/usr/local/app/bin") == "/usr/local/app/bin");
  102. ASSERT_TRUE(TC_File::excludeFileExt("/usr/local/app.dir/bin.exe") == "/usr/local/app.dir/bin");
  103. ASSERT_TRUE(TC_File::excludeFileExt("c:\\usr\\local\\app.dir\\bin.exe") == "c:\\usr\\local\\app.dir\\bin");
  104. ASSERT_TRUE(TC_File::excludeFileExt("c:\\usr\\local\\app.dir\\bin") == "c:\\usr\\local\\app.dir\\bin");
  105. ASSERT_TRUE(TC_File::excludeFileExt("temp.gif") == "temp");
  106. }