4 use Test::More tests => 17;
5 BEGIN { use_ok('IndexData::Utils::PersistentCounter') };
7 my $file = "/tmp/id-u-pc-$$";
8 my $counter = new IndexData::Utils::PersistentCounter($file);
9 ok(!defined $counter, "can't open non-existent counter");
11 $counter = new IndexData::Utils::PersistentCounter("/x/$file", 1);
12 ok(!defined $counter, "can't create counter in silly place");
14 $counter = new IndexData::Utils::PersistentCounter($file, 1);
15 my $detail = defined $counter ? '' : ": $!@";
16 ok(defined $counter, "created new counter$detail");
18 foreach my $i (1..5) {
19 my $n = $counter->next();
20 ok(defined $n, "n is defined");
21 ok($n == $i, "n has correct value $i");
24 # Three processes making five accesses each
25 for (my $i = 0; $i < 3; $i ++) {
29 foreach my $j (1..5) {
30 my $n = $counter->next();
31 print "# child ", $i+1, ", access ", $j+1, ": value is $n\n";
35 print "# process $pid started\n";
39 while ((my $pid = wait()) > 0) {
40 print "# process $pid completed\n";
43 my $n = $counter->next();
44 ok($n == 20, "n == 20 after 20 accesses (n=$n)");
46 my $ok = $counter->delete();
47 ok($ok, "deleted counter file");
48 $counter = new IndexData::Utils::PersistentCounter($file);
49 ok(!defined $counter, "can't open deleted counter");