continue refactor drive tests
This commit is contained in:
		| @@ -24,65 +24,6 @@ | ||||
| #include "fixtures/winfsp_fixture.hpp" | ||||
|  | ||||
| namespace repertory { | ||||
| // static void get_set_basic_info_test(const std::string &mount_point) { | ||||
| //   TEST_HEADER(__FUNCTION__); | ||||
| // | ||||
| //   const auto file = | ||||
| //       utils::path::combine(mount_point, {"setbasicinfo_file.txt"}); | ||||
| //   auto handle = | ||||
| //       ::CreateFileA(&file[0], GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, | ||||
| //                     nullptr, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, nullptr); | ||||
| //   EXPECT_NE(INVALID_HANDLE_VALUE, handle); | ||||
| // | ||||
| //   SYSTEMTIME st{}; | ||||
| //   ::GetSystemTime(&st); | ||||
| //   st.wMinute = 0; | ||||
| // | ||||
| //   FILETIME test_ch_time{}; | ||||
| //   st.wMinute++; | ||||
| //   ::SystemTimeToFileTime(&st, &test_ch_time); | ||||
| // | ||||
| //   FILETIME test_cr_time{}; | ||||
| //   st.wMinute++; | ||||
| //   ::SystemTimeToFileTime(&st, &test_cr_time); | ||||
| // | ||||
| //   FILETIME test_la_time{}; | ||||
| //   st.wMinute++; | ||||
| //   ::SystemTimeToFileTime(&st, &test_la_time); | ||||
| // | ||||
| //   FILETIME test_lw_time{}; | ||||
| //   st.wMinute++; | ||||
| //   ::SystemTimeToFileTime(&st, &test_lw_time); | ||||
| // | ||||
| //   FILE_BASIC_INFO fbi{}; | ||||
| //   fbi.FileAttributes = FILE_ATTRIBUTE_HIDDEN; | ||||
| //   fbi.ChangeTime.HighPart = test_ch_time.dwHighDateTime; | ||||
| //   fbi.ChangeTime.LowPart = test_ch_time.dwLowDateTime; | ||||
| //   fbi.CreationTime = *(LARGE_INTEGER *)&test_cr_time; | ||||
| //   fbi.LastAccessTime = *(LARGE_INTEGER *)&test_la_time; | ||||
| //   fbi.LastWriteTime = *(LARGE_INTEGER *)&test_lw_time; | ||||
| // | ||||
| //   EXPECT_TRUE(::SetFileInformationByHandle(handle, FileBasicInfo, &fbi, | ||||
| //                                            sizeof(FILE_BASIC_INFO))); | ||||
| // | ||||
| //   FILE_BASIC_INFO fbi2{}; | ||||
| //   EXPECT_TRUE(::GetFileInformationByHandleEx(handle, FileBasicInfo, &fbi2, | ||||
| //                                              sizeof(FILE_BASIC_INFO))); | ||||
| // | ||||
| //   EXPECT_EQ(0, memcmp(&fbi, &fbi2, sizeof(FILE_BASIC_INFO))); | ||||
| // | ||||
| //   std::cout << fbi.FileAttributes << " " << fbi.ChangeTime.QuadPart << " " | ||||
| //             << fbi.CreationTime.QuadPart << " " << | ||||
| //             fbi.LastAccessTime.QuadPart | ||||
| //             << " " << fbi.LastWriteTime.QuadPart << std::endl; | ||||
| //   std::cout << fbi2.FileAttributes << " " << fbi2.ChangeTime.QuadPart << " " | ||||
| //             << fbi2.CreationTime.QuadPart << " " << | ||||
| //             fbi2.LastAccessTime.QuadPart | ||||
| //             << " " << fbi2.LastWriteTime.QuadPart << std::endl; | ||||
| // | ||||
| //   EXPECT_TRUE(::CloseHandle(handle)); | ||||
| // } | ||||
| // | ||||
|  | ||||
| TYPED_TEST_CASE(winfsp_test, winfsp_provider_types); | ||||
|  | ||||
| @@ -216,6 +157,68 @@ TYPED_TEST(winfsp_test, can_overwrite_file) { | ||||
|   this->delete_file_and_test(file_path); | ||||
|   this->delete_file_and_test(file_path2); | ||||
| } | ||||
|  | ||||
| TYPED_TEST(winfsp_test, can_get_and_set_basic_info_test) { | ||||
|   std::string file_name{"overwrite_file"}; | ||||
|   auto file_path = this->create_file_and_test(file_name); | ||||
|  | ||||
|   auto handle = | ||||
|       ::CreateFileA(file_path.c_str(), GENERIC_READ | GENERIC_WRITE, | ||||
|                     FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, | ||||
|                     nullptr, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr); | ||||
|   EXPECT_NE(INVALID_HANDLE_VALUE, handle); | ||||
|   if (handle == INVALID_HANDLE_VALUE) { | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   SYSTEMTIME st{}; | ||||
|   ::GetSystemTime(&st); | ||||
|   st.wMinute = 0; | ||||
|  | ||||
|   FILETIME test_ch_time{}; | ||||
|   st.wMinute++; | ||||
|   ::SystemTimeToFileTime(&st, &test_ch_time); | ||||
|  | ||||
|   FILETIME test_cr_time{}; | ||||
|   st.wMinute++; | ||||
|   ::SystemTimeToFileTime(&st, &test_cr_time); | ||||
|  | ||||
|   FILETIME test_la_time{}; | ||||
|   st.wMinute++; | ||||
|   ::SystemTimeToFileTime(&st, &test_la_time); | ||||
|  | ||||
|   FILETIME test_lw_time{}; | ||||
|   st.wMinute++; | ||||
|   ::SystemTimeToFileTime(&st, &test_lw_time); | ||||
|  | ||||
|   FILE_BASIC_INFO fbi{}; | ||||
|   fbi.FileAttributes = FILE_ATTRIBUTE_HIDDEN; | ||||
|   fbi.ChangeTime.HighPart = static_cast<LONG>(test_ch_time.dwHighDateTime); | ||||
|   fbi.ChangeTime.LowPart = test_ch_time.dwLowDateTime; | ||||
|   fbi.CreationTime = *reinterpret_cast<LARGE_INTEGER *>(&test_cr_time); | ||||
|   fbi.LastAccessTime = *reinterpret_cast<LARGE_INTEGER *>(&test_la_time); | ||||
|   fbi.LastWriteTime = *reinterpret_cast<LARGE_INTEGER *>(&test_lw_time); | ||||
|  | ||||
|   EXPECT_TRUE(::SetFileInformationByHandle(handle, FileBasicInfo, &fbi, | ||||
|                                            sizeof(FILE_BASIC_INFO))); | ||||
|  | ||||
|   FILE_BASIC_INFO fbi2{}; | ||||
|   EXPECT_TRUE(::GetFileInformationByHandleEx(handle, FileBasicInfo, &fbi2, | ||||
|                                              sizeof(FILE_BASIC_INFO))); | ||||
|  | ||||
|   EXPECT_EQ(0, memcmp(&fbi, &fbi2, sizeof(FILE_BASIC_INFO))); | ||||
|  | ||||
|   std::cout << fbi.FileAttributes << " " << fbi.ChangeTime.QuadPart << " " | ||||
|             << fbi.CreationTime.QuadPart << " " << fbi.LastAccessTime.QuadPart | ||||
|             << " " << fbi.LastWriteTime.QuadPart << std::endl; | ||||
|   std::cout << fbi2.FileAttributes << " " << fbi2.ChangeTime.QuadPart << " " | ||||
|             << fbi2.CreationTime.QuadPart << " " << fbi2.LastAccessTime.QuadPart | ||||
|             << " " << fbi2.LastWriteTime.QuadPart << std::endl; | ||||
|  | ||||
|   EXPECT_TRUE(::CloseHandle(handle)); | ||||
|  | ||||
|   this->delete_file_and_test(file_path); | ||||
| } | ||||
| } // namespace repertory | ||||
|  | ||||
| #endif // defined(_WIN32) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user