The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!./perl
use strict;
use Test::More tests => 4;

use SDBM_File;
use File::Temp 'tempfile';
use Fcntl;

my ($dirfh, $dirname) = tempfile(UNLINK => 1);
my ($pagfh, $pagname) = tempfile(UNLINK => 1);

# close so Win32 allows them to be re-opened
close $dirfh;
close $pagfh;

{
    my %h;

    ok(eval { tie %h, "SDBM_File", $dirname, O_CREAT | O_RDWR | O_TRUNC, 0640, $pagname; 1 },
       "create SDBM with explicit filenames")
      or diag $@;
    is(keys %h, 0, "should be empty");

    # basic sanity checks, the real storage checks are done by sdbm.t
    $h{abc} = 1;
    $h{def} = 1;
}

{
    my %h;
    ok(eval { tie %h, "SDBM_File", $dirname, O_RDWR, 0640, $pagname; 1 },
       "open SDBM with explicit filenames");
    is_deeply([ sort keys  %h] , [ qw(abc def) ], "should have two keys");
}