| File: | t/pg-farm/user-dist.t |
| Coverage: | 92.9% |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 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 | |||||||
| 9 | my $reason; | ||||||
| 10 | BEGIN { | ||||||
| 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 | |||||||
| 18 | use OpenAPI::Backend::PgFarm; | ||||||
| 19 | use OpenAPI::Config; | ||||||
| 20 | |||||||
| 21 | use Data::Dumper; | ||||||
| 22 | use subs 'dump'; | ||||||
| 23 | |||||||
| 24 | use constant { | ||||||
| 25 | NODE_COUNT => 2, | ||||||
| 26 | USER_COUNT => 10, | ||||||
| 27 | }; | ||||||
| 28 | |||||||
| 29 | OpenAPI::Config->init('.'); | ||||||
| 30 | my $backend = OpenAPI::Backend::PgFarm->new({ RaiseError => 0 }); | ||||||
| 31 | ok $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 | |||||||
| 42 | my @userdb; | ||||||
| 43 | my %cnt; | ||||||
| 44 | my $res; | ||||||
| 45 | for (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); | ||||||
| 68 | is scalar(keys %cnt), NODE_COUNT, 'all nodes been visited'; | ||||||
| 69 | for my $b (@userdb) { | ||||||
| 70 | #warn "$b..."; | ||||||
| 71 | $res = $backend->drop_user($b); | ||||||
| 72 | } | ||||||
| 73 | |||||||
| 74 | sub dump { | ||||||
| 75 | my $var = shift; | ||||||
| 76 | my $s = Dumper($var); | ||||||
| 77 | $s =~ s/^\$VAR1\s*=\s*//; | ||||||
| 78 | $s | ||||||
| 79 | } | ||||||
| 80 | |||||||
| 81 | sub 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 | |||||||