Skip to content

Commit

Permalink
Add gtest validating mz_os_get_file_date works on ADS
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriellandau authored and nmoinvaz committed Jan 8, 2025
1 parent 4a1d10f commit 888d471
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 0 deletions.
4 changes: 4 additions & 0 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ if(NOT MZ_COMPRESS_ONLY AND NOT MZ_DECOMPRESS_ONLY)
list(APPEND TEST_SRCS test_stream_compress.cc)
endif()

if(MSVC)
list(APPEND TEST_SRCS test_file.cc)
endif()

add_executable(gtest_minizip test_main.cc ${TEST_SRCS})
target_compile_definitions(gtest_minizip PRIVATE ${STDLIB_DEF} ${MINIZIP_DEF})
target_include_directories(gtest_minizip PRIVATE
Expand Down
44 changes: 44 additions & 0 deletions test/test_file.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/* test_file.cc - Test file functionality
part of the minizip-ng project
Copyright (C) Nathan Moinvaziri
https://github.com/zlib-ng/minizip-ng
This program is distributed under the terms of the same license as zlib.
See the accompanying LICENSE file for the full text of the license.
*/

#include "mz.h"
#include "mz_os.h"

#include <gtest/gtest.h>
#include <fstream>
#include <cstdio>

TEST(os, get_file_date_ads) {
const std::string main_stream_name = "minizip_ads_test";
const std::string ads_name = main_stream_name + ":ads";
const std::string ads_contents = "Alternate Data Stream";

// Create main stream
std::ofstream main_stream(main_stream_name);
main_stream.close();

// Attach ADS
std::ofstream ads(ads_name);
ads << ads_contents;
ads.close();

// Get file date
time_t modified_date = 0;
time_t accessed_date = 0;
time_t creation_date = 0;

EXPECT_EQ(MZ_OK, mz_os_get_file_date(ads_name.c_str(), &modified_date, &accessed_date, &creation_date));

std::remove(main_stream_name.c_str());

ASSERT_GT(modified_date, 0);
ASSERT_GT(accessed_date, 0);
ASSERT_GT(creation_date, 0);
}

0 comments on commit 888d471

Please sign in to comment.