AWS-XRay
view release on metacpan or search on metacpan
lib/AWS/XRay.pm view on Meta::CPAN
local $TRACE_ID = $TRACE_ID // new_trace_id();
my $segment = AWS::XRay::Segment->new({ name => $name });
unless (defined $segment->{type} && $segment->{type} eq "subsegment") {
$_->apply_plugin($segment) for @PLUGINS;
}
local $SEGMENT_ID = $segment->{id};
my @ret;
eval {
if ($wantarray) {
@ret = $code->($segment);
}
elsif (defined $wantarray) {
$ret[0] = $code->($segment);
}
else {
$code->($segment);
}
};
lib/AWS/XRay.pm view on Meta::CPAN
$segment->{cause} = {
exceptions => [
{
id => new_id(),
message => "$error",
remote => Types::Serialiser::true,
},
],
};
}
eval {
$segment->close();
};
if ($@) {
warn $@;
}
die $error if $error;
return $wantarray ? @ret : $ret[0];
}
sub capture_from {
t/12_croak_capture.t view on Meta::CPAN
subtest "carp", sub {
local $AWS::XRay::CROAK_INVALID_NAME = 0;
my $res = capture "my * App", sub {
"result";
};
is $res, "result";
};
subtest "croak", sub {
local $AWS::XRay::CROAK_INVALID_NAME = 1;
eval {
capture "my * App", sub {
"result";
};
};
diag $@;
ok $@ =~ /invalid/;
};
done_testing;
( run in 2.162 seconds using v1.01-cache-2.11-cpan-98e64b0badf )