File Coverage

File:t/pg-farm/user-dist.t
Coverage:92.9%

linestmtbrancondsubpodtimecode
1#!/usr/bin/env perl
2
3
1
1
1
28
4
7
use strict;
4
1
1
1
10
2
9
use warnings;
5
6
1
1
1
22
4
10
use lib 'lib';
7
1
1
1
11
3
12
use OpenAPI::Config;
8
9my $reason;
10BEGIN {
11
1
9
    OpenAPI::Config->init('.');
12
1
19
    if ($OpenAPI::Config{'backend.type'} ne 'PgFarm') {
13
1
8
        $reason = 'backend.type in the config files is not PgFarm.';
14    }
15}
16
1
1
1
11
3
17
use Test::More $reason ? (skip_all => $reason) : 'no_plan';
17
18use OpenAPI::Backend::PgFarm;
19use OpenAPI::Config;
20
21use Data::Dumper;
22use subs 'dump';
23
24use constant {
25    NODE_COUNT => 2,
26    USER_COUNT => 10,
27};
28
29OpenAPI::Config->init('.');
30my $backend = OpenAPI::Backend::PgFarm->new({ RaiseError => 0 });
31ok $backend, "database handle okay";
32
33 - 40
=pod

if ($backend->has_user("agentz")) {
    #    $backend->do("drop table test cascade");
    $backend->drop_user("agentz");
}

=cut
41
42my @userdb;
43my %cnt;
44my $res;
45for (my $i = 0 ; $i < USER_COUNT; $i ++) {
46    my $name = "t_" . rand_str(15);
47
48 - 54
=pod

    eval {
        $backend->drop_user($name);
    };

=cut
55
56    my $res = $backend->has_user($name);
57    if ($res) {
58        $backend->drop_user($name);
59    }
60    $backend->add_user($name, 'blahblahblah');
61    my $machine = $backend->has_user($name);
62    $cnt{$machine}++;
63    print STDERR "$name\@$machine ";
64    push @userdb, $name;
65}
66
67#warn dump(\%cnt);
68is scalar(keys %cnt), NODE_COUNT, 'all nodes been visited';
69for my $b (@userdb) {
70    #warn "$b...";
71    $res = $backend->drop_user($b);
72}
73
74sub dump {
75    my $var = shift;
76    my $s = Dumper($var);
77    $s =~ s/^\$VAR1\s*=\s*//;
78    $s
79}
80
81sub rand_str {
82    my $len = shift;
83    my $s;
84    for (1..$len) {
85        $s .= chr(ord('a')+rand(25));
86    }
87    $s;
88}
89