Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / perl5 / ext / IPC / SysV / t / sem.t
1
2 use IPC::SysV qw(
3         SETALL
4         IPC_PRIVATE
5         IPC_CREAT
6         IPC_RMID
7         IPC_NOWAIT
8         IPC_STAT
9         S_IRWXU
10         S_IRWXG
11         S_IRWXO
12 );
13 use IPC::Semaphore;
14
15 print "1..10\n";
16
17 $sem = new IPC::Semaphore(IPC_PRIVATE, 10, S_IRWXU | S_IRWXG | S_IRWXO | IPC_CREAT)
18         || die "semget: ",$!+0," $!\n";
19
20 print "ok 1\n";
21
22 my $st = $sem->stat || print "not ";
23 print "ok 2\n";
24
25 $sem->setall( (0) x 10) || print "not ";
26 print "ok 3\n";
27
28 my @sem = $sem->getall;
29 print "not " unless join("",@sem) eq "0000000000";
30 print "ok 4\n";
31
32 $sem[2] = 1;
33 $sem->setall( @sem ) || print "not ";
34 print "ok 5\n";
35
36 @sem = $sem->getall;
37 print "not " unless join("",@sem) eq "0010000000";
38 print "ok 6\n";
39
40 my $ncnt = $sem->getncnt(0);
41 print "not " if $sem->getncnt(0) || !defined($ncnt);
42 print "ok 7\n";
43
44 $sem->op(2,-1,IPC_NOWAIT) || print "not ";
45 print "ok 8\n";
46
47 print "not " if $sem->getncnt(0);
48 print "ok 9\n";
49
50 $sem->remove || print "not ";
51 print "ok 10\n";