X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=t%2F02-IndexData-Utils-PersistentCounter.t;h=8b57c30f0d851d7506bedf29a037bea9c871d2c4;hb=f947811f49204cb1ddd3013bb094f7b5222547cc;hp=a7752d6d2d27352e7dc738947ad1a28f2bf4427c;hpb=299a16ae8cd82f4deaab3480bf584ba65327774b;p=perl-indexdata-utils.git diff --git a/t/02-IndexData-Utils-PersistentCounter.t b/t/02-IndexData-Utils-PersistentCounter.t index a7752d6..8b57c30 100644 --- a/t/02-IndexData-Utils-PersistentCounter.t +++ b/t/02-IndexData-Utils-PersistentCounter.t @@ -1,7 +1,7 @@ use strict; use warnings; -use Test::More tests => 16; +use Test::More tests => 17; BEGIN { use_ok('IndexData::Utils::PersistentCounter') }; my $file = "/tmp/id-u-pc-$$"; @@ -21,7 +21,27 @@ foreach my $i (1..5) { ok($n == $i, "n has correct value $i"); } -### should test access from multiple processes +# Three processes making five accesses each +for (my $i = 0; $i < 3; $i ++) { + my $pid = fork(); + if ($pid == 0) { + # child + foreach my $j (1..5) { + my $n = $counter->next(); + print "# child ", $i+1, ", access ", $j+1, ": value is $n\n"; + } + exit 0; + } else { + print "# process $pid started\n"; + } +} + +while ((my $pid = wait()) > 0) { + print "# process $pid completed\n"; +} + +my $n = $counter->next(); +ok($n == 21, "n == 21 on 21 total access (n=$n)"); my $ok = $counter->delete(); ok($ok, "deleted counter file");