pt_util: Initialise empty database correctly

Commit dc8f18d6f5 broke pt_util's
initialisation of empty databases. This is because Initdb was changed
to call Initdb_check through the ubik_CheckCache wrapper. However, that
wrapper was defined as a no-op in pt_util's ubik-shim.

Modify pt_util's ubik_CheckCache so that it always calls into the
wrapper routine - this mimics the old behaviour.

Add a trival test for pt_util - check that we can build the database,
using the example from the manpage, and then that the built database
matches what we expect.

(cherry picked from commit 4953ce8070)
Reviewed-on: http://gerrit.openafs.org/4211
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

Change-Id: If4cfbda25f8d1c5e1da4c1e42982c74becf386e3
Reviewed-on: http://gerrit.openafs.org/4217
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
Simon Wilkinson 2011-03-13 14:45:04 +00:00 committed by Derrick Brashear
parent c97ec07497
commit fbd4a43ddf
3 changed files with 55 additions and 1 deletions

View File

@ -101,7 +101,7 @@ ubik_WaitVersion(struct ubik_dbase *adatabase,
int
ubik_CheckCache(struct ubik_trans *atrans, ubik_updatecache_func cbf, void *rock)
{
return (0);
return (*cbf)(atrans, rock);
}
void

View File

@ -1,2 +1,3 @@
util/ktime
util/exec-alt
ptserver/pt_util

53
tests/ptserver/pt_util-t Executable file
View File

@ -0,0 +1,53 @@
#!/usr/bin/perl
use strict;
use warnings;
use File::Basename;
use Test::More tests=>2;
my $builddir = $ENV{BUILD};
if (!$builddir) {
$builddir = dirname($0)."/..";
}
$builddir.="/..";
my $prdbfile = "/tmp/prdbtest.$$";
my $instructions = <<EOF;
admin 128/20 1 -204 -204
system:administrators 130/20 -204 -204 -204
admin 1
EOF
my $expected = <<EOF;
admin 128/20 1 -204 -204
anonymous 128/20 32766 -204 -204
system:backup 2/0 -205 -204 -204
system:administrators 130/20 -204 -204 -204
admin 1
system:ptsviewers 2/0 -203 -204 -204
system:authuser 2/0 -102 -204 -204
system:anyuser 2/0 -101 -204 -204
EOF
my $fh;
open $fh, '|-', "$builddir/src/ptserver/pt_util", '-w', '-p', $prdbfile
or die "Failed to start pt_util for DB creation\n";
print $fh $instructions;
close($fh)
or die "pt util failed while creating DB\n";
open $fh, '-|', "$builddir/src/ptserver/pt_util", '-p', $prdbfile,
'-user', '-group', '-members'
or die "Failed to start pt_util for DB reading\n";
my $output = join('', readline($fh));
close($fh)
or die "pt_util failed while reading from DB\n";
is($output, $expected, "pt_util produced expected output");
ok(1, "Completed sucessfully");
unlink($prdbfile);