use warnings;
use strict;

use IPC::Shareable;
use Test::More;

my $segs_before = IPC::Shareable::seg_count();
my $sems_before = IPC::Shareable::sem_count();
warn "Segs Before $segs_before\n" if $ENV{PRINT_SEGS};

my $ok = eval {
    tie my $sv, 'IPC::Shareable', {key => 'test02', destroy => 1, serializer => 'storable' };
    1;
};

is $ok, undef, "We croak ok if create is not set and segment doesn't yet exist";
like $@, qr/Could not acquire/, "...and error is sane.";

IPC::Shareable::_end;

my $segs_after = IPC::Shareable::seg_count();
warn "Segs After: $segs_after\n" if $ENV{PRINT_SEGS};
is $segs_after, $segs_before, "All segs, even those created in separate procs, cleaned up ok";
my $sems_after = IPC::Shareable::sem_count();
is $sems_after, $sems_before, "All semaphore sets cleaned up ok";

done_testing;

