[advapi32/tests 1/3] Add some ClearEventLog tests

View: New views
1 Messages — Rating Filter:   Alert me  

[advapi32/tests 1/3] Add some ClearEventLog tests

by Paul Vriens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm not clearing a real eventlog. This will happen in later patches when
we create our own.

Added a helper for creating a backup eventlog as the same piece of code
is going to be used several times.

Changelog
   Add some ClearEventLog tests

--
Cheers,

Paul.



>From 2b90a50590c917c34f13318372ac5445c5518aed Mon Sep 17 00:00:00 2001
From: Paul Vriens <Paul.Vriens.Wine@...>
Date: Wed, 4 Nov 2009 07:58:41 +0100
Subject: [PATCH 2/4] Add some ClearEventLog tests

---
 dlls/advapi32/tests/eventlog.c |   67 +++++++++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 4 deletions(-)

diff --git a/dlls/advapi32/tests/eventlog.c b/dlls/advapi32/tests/eventlog.c
index 8a96c69..99990a2 100644
--- a/dlls/advapi32/tests/eventlog.c
+++ b/dlls/advapi32/tests/eventlog.c
@@ -36,6 +36,16 @@ static void init_function_pointers(void)
     pGetEventLogInformation = (void*)GetProcAddress(hadvapi32, "GetEventLogInformation");
 }
 
+static void create_backup(const char *filename)
+{
+    HANDLE handle;
+
+    DeleteFileA(filename);
+    handle = OpenEventLogA(NULL, "Application");
+    BackupEventLogA(handle, filename);
+    CloseEventLog(handle);
+}
+
 static void test_open_close(void)
 {
     HANDLE handle;
@@ -434,10 +444,7 @@ static void test_openbackup(void)
        "Expected RPC_S_SERVER_UNAVAILABLE, got %d\n", GetLastError());
 
     /* Make a backup eventlog to work with */
-    DeleteFileA(backup);
-    handle = OpenEventLogA(NULL, "Application");
-    BackupEventLogA(handle, backup);
-    CloseEventLog(handle);
+    create_backup(backup);
 
     /* FIXME: Wine stops here */
     if (GetFileAttributesA(backup) == INVALID_FILE_ATTRIBUTES)
@@ -493,6 +500,57 @@ static void test_openbackup(void)
     DeleteFileA(backup);
 }
 
+static void test_clear(void)
+{
+    HANDLE handle;
+    BOOL ret;
+    const char backup[] = "backup.evt";
+
+    SetLastError(0xdeadbeef);
+    ret = ClearEventLogA(NULL, NULL);
+    todo_wine
+    {
+    ok(!ret, "Expected failure\n");
+    ok(GetLastError() == ERROR_INVALID_HANDLE, "Expected ERROR_INVALID_HANDLE, got %d\n", GetLastError());
+    }
+
+    /* Make a backup eventlog to work with */
+    create_backup(backup);
+
+    SetLastError(0xdeadbeef);
+    ret = ClearEventLogA(NULL, backup);
+    todo_wine
+    {
+    ok(!ret, "Expected failure\n");
+    ok(GetLastError() == ERROR_INVALID_HANDLE, "Expected ERROR_INVALID_HANDLE, got %d\n", GetLastError());
+    }
+
+    handle = OpenBackupEventLogA(NULL, backup);
+    todo_wine
+    ok(handle != NULL, "Expected a handle\n");
+
+    /* A real eventlog would fail with ERROR_ALREADY_EXISTS */
+    SetLastError(0xdeadbeef);
+    ret = ClearEventLogA(handle, backup);
+    todo_wine
+    {
+    ok(!ret, "Expected failure\n");
+    ok(GetLastError() == ERROR_INVALID_HANDLE, "Expected ERROR_INVALID_HANDLE, got %d\n", GetLastError());
+    }
+
+    /* Show that ClearEventLog only works for real eventlogs. */
+    SetLastError(0xdeadbeef);
+    ret = ClearEventLogA(handle, NULL);
+    todo_wine
+    {
+    ok(!ret, "Expected failure\n");
+    ok(GetLastError() == ERROR_INVALID_HANDLE, "Expected ERROR_INVALID_HANDLE, got %d\n", GetLastError());
+    }
+
+    CloseEventLog(handle);
+    DeleteFileA(backup);
+}
+
 START_TEST(eventlog)
 {
     SetLastError(0xdeadbeef);
@@ -513,4 +571,5 @@ START_TEST(eventlog)
     test_backup();
     test_openbackup();
     test_read();
+    test_clear();
 }
--
1.6.2.5