github.com/etecs-ru/go-sys-wineventlog@v0.0.0-20210227233244-4c3abb794018/windows/svc/eventlog/log_test.go (about)

     1  // Copyright 2012 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build windows
     6  
     7  package eventlog_test
     8  
     9  import (
    10  	"testing"
    11  
    12  	"github.com/etecs-ru/go-sys-wineventlog/windows/svc/eventlog"
    13  )
    14  
    15  func TestLog(t *testing.T) {
    16  	if testing.Short() {
    17  		t.Skip("skipping test in short mode - it modifies system logs")
    18  	}
    19  
    20  	const name = "mylog"
    21  	const supports = eventlog.Error | eventlog.Warning | eventlog.Info |
    22  		eventlog.Success | eventlog.AuditSuccess | eventlog.AuditFailure
    23  	alreadyExists, err := eventlog.InstallAsEventCreate(eventlog.Application, name, supports)
    24  	if err != nil {
    25  		t.Fatalf("Install failed: %s", err)
    26  	}
    27  	t.Log("Already exists:", alreadyExists)
    28  	defer func() {
    29  		err = eventlog.RemoveSource(eventlog.Application, name)
    30  		if err != nil {
    31  			t.Fatalf("Remove failed: %s", err)
    32  		}
    33  	}()
    34  
    35  	l, err := eventlog.Open(name)
    36  	if err != nil {
    37  		t.Fatalf("Open failed: %s", err)
    38  	}
    39  	defer l.Close()
    40  
    41  	err = l.Success(1, "success")
    42  	if err != nil {
    43  		t.Fatalf("Successo failed: %s", err)
    44  	}
    45  	err = l.Info(2, "info")
    46  	if err != nil {
    47  		t.Fatalf("Info failed: %s", err)
    48  	}
    49  	err = l.Warning(3, "warning")
    50  	if err != nil {
    51  		t.Fatalf("Warning failed: %s", err)
    52  	}
    53  	err = l.Error(4, "error")
    54  	if err != nil {
    55  		t.Fatalf("Error failed: %s", err)
    56  	}
    57  	err = l.AuditSuccess(5, "audit success")
    58  	if err != nil {
    59  		t.Fatalf("AuditSuccess failed: %s", err)
    60  	}
    61  	err = l.AuditFailure(6, "audit failure")
    62  	if err != nil {
    63  		t.Fatalf("AuditFailure failed: %s", err)
    64  	}
    65  }