diff options
author | Reinhard Tartler <siretart@tauware.de> | 2007-02-14 09:01:45 +0100 |
---|---|---|
committer | Reinhard Tartler <siretart@tauware.de> | 2007-02-14 09:01:45 +0100 |
commit | aa2943800f9c00823720af98da036813ebf5cd2c (patch) | |
tree | 099cc0264d32a36ab89aa3f48cbf34612c3cd225 /test/win32 |
initial commit
Diffstat (limited to 'test/win32')
-rw-r--r-- | test/win32/testlibwin32.cpp | 158 | ||||
-rw-r--r-- | test/win32/timezone.cpp | 125 |
2 files changed, 283 insertions, 0 deletions
diff --git a/test/win32/testlibwin32.cpp b/test/win32/testlibwin32.cpp new file mode 100644 index 00000000..02dfd5b5 --- /dev/null +++ b/test/win32/testlibwin32.cpp @@ -0,0 +1,158 @@ +// distribution boxbackup-0.10 (svn version: 494) +// +// Copyright (c) 2003 - 2006 +// Ben Summers and contributors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All use of this software and associated advertising materials must +// display the following acknowledgment: +// This product includes software developed by Ben Summers. +// 4. The names of the Authors may not be used to endorse or promote +// products derived from this software without specific prior written +// permission. +// +// [Where legally impermissible the Authors do not disclaim liability for +// direct physical injury or death caused solely by defects in the software +// unless it is modified by a third party.] +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// +// +// win32test.cpp : Defines the entry point for the console application. +// + +//#include <windows.h> +#include "Box.h" + +#ifdef WIN32 + +#include "../../bin/bbackupd/BackupDaemon.h" +#include "BoxPortsAndFiles.h" +#include "emu.h" + +int main(int argc, char* argv[]) +{ + chdir("c:\\tmp"); + openfile("test", O_CREAT, 0); + struct stat ourfs; + //test our opendir, readdir and closedir + //functions + DIR *ourDir = opendir("C:"); + + if ( ourDir != NULL ) + { + struct dirent *info; + do + { + info = readdir(ourDir); + if ( info ) printf("File/Dir name is : %s\r\n", info->d_name); + + }while ( info != NULL ); + + closedir(ourDir); + + } + + std::string diry("C:\\Projects\\boxbuild\\testfiles\\"); + ourDir = opendir(diry.c_str()); + if ( ourDir != NULL ) + { + struct dirent *info; + do + { + info = readdir(ourDir); + if ( info == NULL ) break; + std::string file(diry + info->d_name); + stat(file.c_str(), &ourfs); + if ( info ) printf("File/Dir name is : %s\r\n", info->d_name); + + }while ( info != NULL ); + + closedir(ourDir); + + } + + stat("c:\\windows", &ourfs); + stat("c:\\autoexec.bat", &ourfs); + printf("Finished dir read"); +#if 0 + //remove - sleepycat include a version of getopt - mine never REALLY worked ! + //test our getopt function + std::string commline("-q -c fgfgfg -f -l hello"); + + int c; + while((c = getopt(commline.size(), (char * const *)commline.c_str(), "qwc:l:")) != -1) + { + printf("switch = %c, param is %s\r\n", c, optarg); + } +#endif + //end of getopt test + + //now test our statfs funct + stat("c:\\cert.cer", &ourfs); + + + + char *timee; + + timee = ctime(&ourfs.st_mtime); + + if ( S_ISREG(ourfs.st_mode)) + { + printf("is a normal file"); + } + else + { + printf("is a directory?"); + } + + lstat("c:\\windows", &ourfs); + + if ( S_ISDIR(ourfs.st_mode)) + { + printf("is a directory"); + } + else + { + printf("is a file?"); + } + + //test the syslog functions + openlog("Box Backup", 0,0); + //the old ones are the best... + syslog(LOG_ERR, "Hello World"); + syslog(LOG_ERR, "Value of int is: %i", 6); + + closelog(); + + //first off get the path name for the default + char buf[MAX_PATH]; + + GetModuleFileName(NULL, buf, sizeof(buf)); + std::string buffer(buf); + std::string conf("-c " + buffer.substr(0,(buffer.find("win32test.exe"))) + "bbackupd.conf"); + //std::string conf( "-c " + buffer.substr(0,(buffer.find("bbackupd.exe"))) + "bbackupd.conf"); + + + return 0; +} + +#endif // WIN32 diff --git a/test/win32/timezone.cpp b/test/win32/timezone.cpp new file mode 100644 index 00000000..0a336206 --- /dev/null +++ b/test/win32/timezone.cpp @@ -0,0 +1,125 @@ +// distribution boxbackup-0.10 (svn version: 494) +// +// Copyright (c) 2003 - 2006 +// Ben Summers and contributors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. All use of this software and associated advertising materials must +// display the following acknowledgment: +// This product includes software developed by Ben Summers. +// 4. The names of the Authors may not be used to endorse or promote +// products derived from this software without specific prior written +// permission. +// +// [Where legally impermissible the Authors do not disclaim liability for +// direct physical injury or death caused solely by defects in the software +// unless it is modified by a third party.] +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +// DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, +// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. +// +// +// +#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); +} |