File: oserror.t

package info (click to toggle)
libpromise-xs-perl 0.20-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 908 kB
  • sloc: perl: 1,097; ansic: 355; makefile: 3
file content (43 lines) | stat: -rw-r--r-- 824 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env perl

use strict;
use warnings;

use Test::More;
use Test::FailWarnings;

use Promise::XS;

use Errno;

my $enoent_str = do { local $! = Errno::ENOENT; "$!" };

my $val;

my $dualvar = do { local $! = Errno::ENOENT };

my $deferred = Promise::XS::Deferred::create();
$deferred->resolve($dualvar);

$deferred->promise()->then(
    sub { $val = shift },
);

is( 0 + $val, Errno::ENOENT, 'resolve dualvar - number' );
is( "$val", $enoent_str, 'resolve dualvar - string' );

#----------------------------------------------------------------------

$deferred = Promise::XS::Deferred::create();
$deferred->reject($dualvar);

$deferred->promise()->catch(
    sub { $val = shift },
);

is( 0 + $val, Errno::ENOENT, 'reject dualvar - number' );
is( "$val", $enoent_str, 'reject dualvar - string' );

done_testing;

1;