test_tc_file.cpp 5.1 KB

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