File: munin_node_server.t

package info (click to toggle)
munin 2.0.76-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,064 kB
  • sloc: perl: 11,684; java: 1,924; sh: 1,632; makefile: 636; javascript: 365; python: 267
file content (92 lines) | stat: -rw-r--r-- 2,279 bytes parent folder | download | duplicates (11)
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
84
85
86
87
88
89
90
91
92
# vim: sw=4 : et : ts=4
use warnings;
use strict;

use Test::More tests => 9;

use_ok('Munin::Node::Server');

no warnings;
*Munin::Node::Server::_net_write = sub {};
use warnings;


###############################################################################
#                           C A P A B I L I T I E S

{
    my $session = {};
    Munin::Node::Server::_negotiate_session_capabilities($session, 'multigraph');

    is_deeply($session, {
        server_capabilities => {
            multigraph => 1,
        },
    },
    "Negotiate a single capability");
}
{
    my $session = {};
    Munin::Node::Server::_negotiate_session_capabilities($session, '');

    is_deeply($session, {
        server_capabilities => {
        },
    },
    "No capabilities offered");
}
{
    my $session = {};
    Munin::Node::Server::_negotiate_session_capabilities($session, "dirtyconfig multigraph\r");

    is_deeply($session, {
        server_capabilities => {
            dirtyconfig => 1,
            multigraph  => 1,
        },
    },
    "Ignore trailing CR on capabiltities string.");
}


### capabilities are reported to the plugins.
{
    my $session = {};
    Munin::Node::Server::_negotiate_session_capabilities($session, '');
    ok(! $ENV{MUNIN_CAP_DIRTYCONFIG}. 'No dirtyconfig allowed');
}
{
    my $session = {};
    Munin::Node::Server::_negotiate_session_capabilities($session, 'multigraph');
    ok(! $ENV{MUNIN_CAP_DIRTYCONFIG}. 'Still no dirtyconfig allowed');
}
{
    my $session = {};
    Munin::Node::Server::_negotiate_session_capabilities($session, 'dirtyconfig multigraph');
    ok($ENV{MUNIN_CAP_DIRTYCONFIG}. 'Dirtyconfig allowed when server claims it as a capability');
}


{
    no warnings;
    local *Munin::Node::Server::_net_write = sub { return $_[1] };
    use warnings;

    my $session = {};

    is(
        Munin::Node::Server::_negotiate_session_capabilities($session, 'dirtyconfig multigraph'),
        "cap multigraph dirtyconfig\n",
        'Node sends capabilities back to the server'
    );

    $session = {};

    is(
        Munin::Node::Server::_negotiate_session_capabilities($session, ''),
        "cap multigraph dirtyconfig\n",
        q{Node sends capabilities back to the server, even when the server provided none}
    );

}