#!/usr/bin/env perl
use strict;
use warnings;
use lib 'lib';
use OpenResty::Config;
my $reason;
BEGIN {
OpenResty::Config->init({root_path => '.'});
if ($OpenResty::Config{'backend.type'} ne 'PgFarm') {
$reason = 'backend.type in the config files is not PgFarm.';
}
elsif ($OpenResty::Config{'test_suite.use_http'}) {
$reason = 'test_suite.use_http is on in the config file.';
}
}
use Test::More $reason ? (skip_all => $reason) : 'no_plan';
use OpenResty::Backend::PgFarm;
use Data::Dumper;
use subs 'dump';
use constant {
NODE_COUNT => 4,
USER_COUNT => 10,
};
OpenResty::Config->init({root_path => '.'});
my $backend = OpenResty::Backend::PgFarm->new({ RaiseError => 0 });
ok $backend, "database handle okay";
=pod
if ($backend->has_user("agentz")) {
# $backend->do("drop table test cascade");
$backend->drop_user("agentz");
}
=cut
my @userdb;
my %cnt;
my $res;
for (my $i = 0 ; $i < USER_COUNT; $i ++) {
my $name = "t_" . rand_str(15);
=pod
eval {
$backend->drop_user($name);
};
=cut
my $res = $backend->has_user($name);
if ($res) {
$backend->drop_user($name);
}
$backend->add_user($name, 'blahblahblah');
my $machine = $backend->has_user($name);
$res = $backend->drop_user($name);
$cnt{$machine}++;
print STDERR "$name\@$machine ";
push @userdb, $name;
}
#warn dump(\%cnt);
is scalar(keys %cnt), NODE_COUNT, 'all nodes been visited';
sub dump {
my $var = shift;
my $s = Dumper($var);
$s =~ s/^\$VAR1\s*=\s*//;
$s
}
sub rand_str {
my $len = shift;
my $s;
for (1..$len) {
$s .= chr(ord('a')+rand(25));
}
$s;
}