File: syslog-test.h

package info (click to toggle)
easyloggingpp 9.97.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 2,840 kB
  • sloc: cpp: 11,415; python: 2,336; sh: 337; makefile: 29
file content (83 lines) | stat: -rw-r--r-- 3,251 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#ifndef SYSLOG_TEST_H
#define SYSLOG_TEST_H

#if defined(ELPP_SYSLOG)

#include "test.h"

static const char* kSysLogFile = "/var/log/syslog";
static const char* s_currentHost = el::base::utils::OS::currentHost().c_str();

TEST(SysLogTest, DISABLED_WriteLog) {
    if (!fileExists(kSysLogFile)) {
        // Do not check for syslog config, just dont test it
        return;
    }
    // To avoid "Easylogging++ last message repeated 2 times"
    SYSLOG(INFO) << "last message suppress";

    SYSLOG(INFO) << "this is my syslog";
    sleep(1); // Make sure daemon has picked it up
    std::string expectedEnd = BUILD_STR(s_currentHost << " " << kSysLogIdent << ": INFO : this is my syslog\n");
    std::string actual = tail(1, kSysLogFile);
    EXPECT_TRUE(Str::endsWith(actual, expectedEnd));
}

TEST(SysLogTest, DISABLED_DebugVersionLogs) {
    if (!fileExists(kSysLogFile)) {
        // Do not check for syslog config, just dont test it
        return;
    }
    // Test enabled
    #undef ELPP_DEBUG_LOG
    #define ELPP_DEBUG_LOG 0

    std::string currentTail = tail(1, kSysLogFile);

    DSYSLOG(INFO) << "No DSYSLOG should be resolved";
    sleep(1); // Make sure daemon has picked it up
    EXPECT_TRUE(Str::endsWith(currentTail, tail(1, kSysLogFile)));

    DSYSLOG_IF(true, INFO) << "No DSYSLOG_IF should be resolved";
    sleep(1); // Make sure daemon has picked it up
    EXPECT_TRUE(Str::endsWith(currentTail, tail(1, kSysLogFile)));

    DCSYSLOG(INFO, "performance") << "No DCSYSLOG should be resolved";
    sleep(1); // Make sure daemon has picked it up
    EXPECT_TRUE(Str::endsWith(currentTail, tail(1, kSysLogFile)));

    DCSYSLOG(INFO, "performance") << "No DCSYSLOG should be resolved";
    sleep(1); // Make sure daemon has picked it up
    EXPECT_TRUE(Str::endsWith(currentTail, tail(1, kSysLogFile)));

    // Reset
    #undef ELPP_DEBUG_LOG
    #define ELPP_DEBUG_LOG 1

    // Now test again
    DSYSLOG(INFO) << "DSYSLOG should be resolved";
    sleep(1); // Make sure daemon has picked it up
    std::string expected = BUILD_STR(s_currentHost << " " << kSysLogIdent << ": INFO : DSYSLOG should be resolved\n");
    EXPECT_TRUE(Str::endsWith(tail(1, kSysLogFile), expected));

    DSYSLOG_IF(true, INFO) << "DSYSLOG_IF should be resolved";
    sleep(1); // Make sure daemon has picked it up
    expected = BUILD_STR(s_currentHost << " " << kSysLogIdent << ": INFO : DSYSLOG_IF should be resolved\n");
    EXPECT_TRUE(Str::endsWith(tail(1, kSysLogFile), expected));
    
    DCSYSLOG(INFO, el::base::consts::kSysLogLoggerId) << "DCSYSLOG should be resolved";
    sleep(1); // Make sure daemon has picked it up
    expected = BUILD_STR(s_currentHost << " " << kSysLogIdent << ": INFO : DCSYSLOG should be resolved\n");
    EXPECT_TRUE(Str::endsWith(tail(1, kSysLogFile), expected));

    DCSYSLOG(INFO, el::base::consts::kSysLogLoggerId) << "DCSYSLOG should be resolved";
    sleep(1); // Make sure daemon has picked it up
    expected = BUILD_STR(s_currentHost << " " << kSysLogIdent << ": INFO : DCSYSLOG should be resolved\n");
    EXPECT_TRUE(Str::endsWith(tail(1, kSysLogFile), expected));
}

#else
#   warning "Skipping [SysLogTest] for [ELPP_SYSLOG] not defined"
#endif // defined(ELPP_SYSLOG)

#endif // SYSLOG_TEST_H