summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBen Summers <ben@fluffy.co.uk>2006-02-13 13:30:21 +0000
committerBen Summers <ben@fluffy.co.uk>2006-02-13 13:30:21 +0000
commit830aa82e44381c85d8486e46de7ae0e26830457e (patch)
treef29edb3c3013990a3ae758e1ccfdb56a2d20923f /test
parent2edd0a00e3244cc4dbc369d81ed1748768a06fb8 (diff)
Merge chris/win32/vc2005-compile-fixes @ r455, add infrastructure/msvc to distribution
Diffstat (limited to 'test')
-rw-r--r--test/win32/Makefile5
-rw-r--r--test/win32/testlibwin32.cpp2
-rw-r--r--test/win32/timezone.cpp87
3 files changed, 93 insertions, 1 deletions
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 <time.h>
+#include <windows.h>
+
+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);
+}