summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-08-21 10:30:32 +0000
committerfukachan <fukachan>2001-08-21 10:30:32 +0000
commit10f0cdb58372123f5986cd7646e1d23c306199bb (patch)
treeb1d0a17f19f3bc0f46669de700337600a5cdbe06 /regress
parentc45c3556b6f2fa709b86a75ddbc3cd8fe770dcf3 (diff)
downloadfml8-10f0cdb58372123f5986cd7646e1d23c306199bb.tar.gz
fml8-10f0cdb58372123f5986cd7646e1d23c306199bb.tar.bz2
fml8-10f0cdb58372123f5986cd7646e1d23c306199bb.zip
randamize inputs, check both keys and values
Diffstat (limited to 'regress')
-rwxr-xr-xregress/base/journaleddir.pl102
1 files changed, 86 insertions, 16 deletions
diff --git a/regress/base/journaleddir.pl b/regress/base/journaleddir.pl
index 7f7e194f..9912eb8d 100755
--- a/regress/base/journaleddir.pl
+++ b/regress/base/journaleddir.pl
@@ -1,46 +1,116 @@
#!/usr/bin/env perl
#
-# $FML$
+# $FML: journaleddir.pl,v 1.1 2001/08/21 03:46:40 fukachan Exp $
#
+BEGIN {
+ print "init journaleddir ...\n";
+};
+
use Tie::JournaledDir;
+$| = 1;
+
my $key = shift || 'uja';
-my $unit = 60;
+my $unit = 2;
my $dir = "/tmp/fml5/jd";
-system "mkdir -p $dir" unless -d $dir;
-&_read();
-&_write();
+
+if (-d $dir) {
+ use DirHandle;
+ my $dh = new DirHandle $dir;
+ for ($dh->read) { unlink "$dir/$_" if -f "$dir/$_";}
+}
+else {
+ system "mkdir -p $dir" unless -d $dir;
+}
+
+my $testpat = {
+ 'rudo' => $$,
+ 'rudo$$' => time(),
+ $$ => "elena",
+ time() => "kumiko",
+};
+
+for my $k (keys %$testpat) {
+ my ($buf, $newkey);
+ chop($buf = `/usr/games/fortune | sed 1q`);
+ $buf =~ s/^s*//;
+ if ($buf =~ /^(\S+)/) { $newkey = $1;}
+ $testpat->{ $k } = $buf;
+ $testpat->{ $k.$newkey } = $buf;
+}
+
+&_write($testpat);
+&_read($testpat);
exit 0;
sub _read
{
+ my ($pat) = @_;
+
tie %db, 'Tie::JournaledDir', {
unit => $unit,
dir => $dir,
};
- print " $key => $db{ $key }\n";
+ my $error = 0;
+ my %found = %$pat;
+
+ print "check keys and values ";
+ for my $k (keys %db) {
+ print ".";
+ if (defined $db{$k}) {
+ if ($db{$k} ne $pat->{$k}) {
+ print "($k) differs: [";
+ print $db{$k};
+ print "] != [";
+ print $pat->{$k};
+ print "]\n";
+ $error++;
+ }
- print "\n keys: ";
- print join(" ", keys %db);
+ delete $found{$k};
+ }
+ }
+
+ for (%found) {
+ $error++;
+ print "$_ is not found in journaled dir/ ?\n";
+ }
+
+ if ($error) {
+ print " fail\n";
+ }
+ else {
+ print " ok\n";
+ }
+
+ untie %db;
+
+ system "ls -l $dir";
print "\n";
}
sub _write
{
- tie %db, 'Tie::JournaledDir', {
- unit => $unit,
- dir => $dir,
- };
+ my ($pat) = @_;
- my $x = `date`;
- chop $x;
- $db{ $key } = $x;
+ print "write journaleddir ";
+ for my $key (keys %$pat) {
+ tie %db, 'Tie::JournaledDir', {
+ unit => $unit,
+ dir => $dir,
+ };
- untie %db;
+ $db{ $key } = $pat->{ $key };
+ print "$key ";
+ sleep 1;
+
+ untie %db;
+ }
+ print " done\n";
}