From 830aa82e44381c85d8486e46de7ae0e26830457e Mon Sep 17 00:00:00 2001 From: Ben Summers Date: Mon, 13 Feb 2006 13:30:21 +0000 Subject: Merge chris/win32/vc2005-compile-fixes @ r455, add infrastructure/msvc to distribution --- test/win32/Makefile | 5 +++ test/win32/testlibwin32.cpp | 2 +- test/win32/timezone.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 test/win32/Makefile create mode 100644 test/win32/timezone.cpp (limited to 'test/win32') diff --git a/test/win32/Makefile b/test/win32/Makefile new file mode 100644 index 00000000..1212bc6f --- /dev/null +++ b/test/win32/Makefile @@ -0,0 +1,5 @@ +timezone.exe: timezone.cpp Makefile + g++ -g -O0 -mno-cygwin -I../../lib/win32 -o timezone.exe timezone.cpp + +clean: + rm timezone.exe diff --git a/test/win32/testlibwin32.cpp b/test/win32/testlibwin32.cpp index 495d9d6e..ca2989d8 100644 --- a/test/win32/testlibwin32.cpp +++ b/test/win32/testlibwin32.cpp @@ -8,7 +8,7 @@ #include "../../bin/bbackupd/BackupDaemon.h" #include "BoxPortsAndFiles.h" - +#include "emu.h" int main(int argc, char* argv[]) { diff --git a/test/win32/timezone.cpp b/test/win32/timezone.cpp new file mode 100644 index 00000000..1d81bcb3 --- /dev/null +++ b/test/win32/timezone.cpp @@ -0,0 +1,87 @@ +#include +#include + +typedef int uid_t; +typedef int gid_t; +typedef int u_int32_t; + +#include "emu.h" + +int main(int argc, char** argv) +{ + time_t time_now = time(NULL); + char* time_str = strdup(asctime(gmtime(&time_now))); + time_str[24] = 0; + + printf("Time now is %d (%s)\n", time_now, time_str); + + char testfile[80]; + snprintf(testfile, sizeof(testfile), "test.%d", time_now); + printf("Test file is: %s\n", testfile); + + _unlink(testfile); + + /* + int fd = open(testfile, O_RDWR | O_CREAT | O_EXCL); + if (fd < 0) + { + perror("open"); + exit(1); + } + close(fd); + */ + + HANDLE fh = CreateFileA(testfile, FILE_READ_ATTRIBUTES, + FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, CREATE_ALWAYS, + FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE, NULL); + + if (!fh) + { + fprintf(stderr, "Failed to open file '%s': error %d\n", + testfile, GetLastError()); + exit(1); + } + + BY_HANDLE_FILE_INFORMATION fi; + + if (!GetFileInformationByHandle(fh, &fi)) + { + fprintf(stderr, "Failed to get file information for '%s': " + "error %d\n", testfile, GetLastError()); + exit(1); + } + + if (!CloseHandle(fh)) + { + fprintf(stderr, "Failed to close file: error %d\n", + GetLastError()); + exit(1); + } + + time_t created_time = ConvertFileTimeToTime_t(&fi.ftCreationTime); + time_str = strdup(asctime(gmtime(&created_time))); + time_str[24] = 0; + + printf("File created time: %d (%s)\n", created_time, time_str); + + printf("Difference is: %d\n", created_time - time_now); + + if (abs(created_time - time_now) > 30) + { + fprintf(stderr, "Error: time difference too big: " + "bug in emu.h?\n"); + exit(1); + } + + /* + sleep(1); + + if (_unlink(testfile) != 0) + { + perror("Failed to delete test file"); + exit(1); + } + */ + + exit(0); +} -- cgit v1.2.3