xref: /openbsd-src/gnu/usr.bin/perl/ext/GDBM_File/t/opt.t (revision fc405d53b73a2d73393cb97f684863d17b583e38)
1#!./perl -w
2use strict;
3
4use Test::More;
5use Config;
6use File::Temp 'tempdir';
7use File::Spec;
8
9BEGIN {
10    plan(skip_all => "GDBM_File was not built")
11	unless $Config{extensions} =~ /\bGDBM_File\b/;
12
13    # https://rt.perl.org/Public/Bug/Display.html?id=117967
14    plan(skip_all => "GDBM_File is flaky in $^O")
15        if $^O =~ /darwin/;
16
17    plan(tests => 8);
18    use_ok('GDBM_File');
19}
20
21my $wd = tempdir(CLEANUP => 1);
22my $dbname = File::Spec->catfile($wd, 'Op_dbmx');
23my %h;
24my $db = tie(%h, 'GDBM_File', $dbname, GDBM_WRCREAT, 0640);
25isa_ok($db, 'GDBM_File');
26SKIP: {
27     my $name = eval { $db->dbname } or do {
28         skip "gdbm_setopt GET calls not implemented", 6
29             if $@ =~ /GDBM_File::dbname not implemented/;
30     };
31     is($db->dbname, $dbname, 'get dbname');
32     is(eval { $db->dbname("a"); }, undef, 'dbname - bad usage');
33     is($db->flags, GDBM_WRCREAT, 'get flags');
34     is($db->sync_mode, 0, 'get sync_mode');
35     is($db->sync_mode(1), 1, 'set sync_mode');
36     is($db->sync_mode, 1, 'get sync_mode');
37}
38