#! /usr/bin/perl

# convenience functions for our tests

use Errno qw(ENOSYS);

sub is_implemented(&) {
	my $block = shift;
	local $! = 0;
	&$block;
	return $! != &ENOSYS;
}

sub zero_but_true($) { return ($_[0] and $_[0] == 0); }

sub make_semname {
	my $name = "/abc.$$"; # FreeBSD has 14 char limit?
	return ($^O eq 'dec_osf') ? "/tmp/$name" : $name;
}

sub ok_getvalue {
	my ($sem, $expected, $msg) = @_;
	$msg = "getvalue() == $expected" unless $msg;

	my $val = $sem->getvalue;
	SKIP: {
		if (!(defined $val) and $!{ENOSYS}) {
			skip "getvalue unimplemented", 1;
		}
		ok($val == $expected, $msg);
	}
}

1;