71 lines
1.2 KiB
Perl
71 lines
1.2 KiB
Perl
#!/usr/bin/perl -w
|
|
use strict;
|
|
use Stasis;
|
|
|
|
my $expected =
|
|
"a1 b2 c3 d4 e5 f6 g7 h8 i9 j10 \n" .
|
|
"k1 l2 m3 n4 o5 p6 q7 r8 s9 t10 \n";
|
|
|
|
my $checking = 0;
|
|
my $out = "";
|
|
|
|
sub myprint {
|
|
my $a = shift;
|
|
if($checking) {
|
|
$out .= $a;
|
|
} else {
|
|
print $a;
|
|
}
|
|
}
|
|
|
|
if($ARGV[0] eq "--automated-test") {
|
|
shift @ARGV;
|
|
system ("rm -rf storefile.txt logfile.txt stasis_log");
|
|
$checking = 1;
|
|
}
|
|
|
|
Stasis::Tinit();
|
|
my $xid = Stasis::Tbegin();
|
|
my $rid = Stasis::ThashCreate($xid);
|
|
Stasis::Tcommit($xid);
|
|
$xid = Stasis::Tbegin();
|
|
my %h;
|
|
tie %h, 'Stasis::Hash', $xid, $rid;
|
|
|
|
my $i = 0;
|
|
foreach my $x (qw(a b c d e f g h i j)) {
|
|
$i++;
|
|
$h{$x}=$i;
|
|
}
|
|
my @keys = sort keys %h;
|
|
|
|
for my $k (@keys) {
|
|
myprint "$k$h{$k} ";
|
|
}
|
|
myprint "\n";
|
|
|
|
Stasis::Tabort($xid);
|
|
|
|
$xid = Stasis::Tbegin();
|
|
tie %h, 'Stasis::Hash', $xid, $rid;
|
|
|
|
$i = 0;
|
|
foreach my $x (qw(k l m n o p q r s t)) {
|
|
$i++;
|
|
$h{$x}=$i;
|
|
}
|
|
|
|
@keys = sort keys %h;
|
|
|
|
for my $k (@keys) {
|
|
# does not output the aborted pairs.
|
|
myprint "$k$h{$k} ";
|
|
}
|
|
myprint "\n";
|
|
Stasis::Tcommit($xid);
|
|
Stasis::Tdeinit();
|
|
|
|
if($checking) {
|
|
$out eq $expected || die "\nFAIL: Output did not match. Expected\n{$expected}\nGot\n{$out}\n";
|
|
print "\nPASS: Produced expected output:\n$out";
|
|
}
|