File: rt-74172.t

package info (click to toggle)
libnet-statsd-perl 0.12-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 156 kB
  • sloc: perl: 384; makefile: 6
file content (54 lines) | stat: -rw-r--r-- 1,260 bytes parent folder | download | duplicates (5)
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
#!/usr/bin/perl

=head1 NAME

t/rt-74172.t - Net::Statsd test suite

=head1 DESCRIPTION

C<$sample_rate> must default to 1, to avoid undefined value errors.

=cut

# Poor man's Test::NoWarnings
BEGIN {
    @main::__warnings = ();
    *CORE::GLOBAL::warn = sub { push @main::__warnings, [ @_ ]; CORE::warn(@_); };
}

use strict;
use warnings;
use Test::More tests => 5;
use Net::Statsd;

ok 1, "Net::Statsd module loaded";

my $data = {
    logins => "128|c",
    signups => "22|c",
};

my $sampled_data = Net::Statsd::_sample_data($data);
is_deeply $sampled_data => $data,
    'RT#74172 regression: no sample_rate makes sampled data same as input data';

$sampled_data = Net::Statsd::_sample_data($data, 1);
is_deeply $sampled_data => $data,
    'Sample rate of 1 is analogous to the no sample rate case';

my $samples = 0;
my $tries = 10000;
my $sample_rate = 0.5;
for (1 .. $tries) {
    if ($sampled_data = Net::Statsd::_sample_data($data, $sample_rate)) {
        $samples++;
    }
}

# Probabilities... :-)
my $avg_result = $tries * $sample_rate;
ok abs($samples - $avg_result) < ($avg_result / 2),
    "Got $samples samples out of $tries tries. Sampling seems to work :)";

is_deeply \@main::__warnings, [],
    'No warnings should have been generated';