Google-ProtocolBuffers-Dynamic
view release on metacpan or search on metacpan
t/lib/Test.pm view on Meta::CPAN
package t::lib::Test;
use strict;
use warnings;
use parent 'Test::Builder::Module';
use Test::More;
use Test::Differences;
use Test::Exception;
use Test::Warn;
use t::lib::DummyTiedScalar;
use t::lib::DummyTiedArray;
use t::lib::DummyTiedHash;
use Google::ProtocolBuffers::Dynamic;
use Config;
our @EXPORT = (
@Test::More::EXPORT,
@Test::Differences::EXPORT,
@Test::Exception::EXPORT,
@Test::Warn::EXPORT,
qw(
maybe_bigint
tie_scalar
tie_array
tied_array
tied_hash
tied_fetch_count
decode_eq_or_diff
decode_throws_ok
decoder_functions
)
);
sub import {
unshift @INC, 't/lib';
strict->import;
warnings->import;
if (@_ > 1 && $_[1] eq 'proto3_optional') {
splice @_, 1, 1;
@_ = ($_[0], "skip_all", "Protocol Buffers v3.12 required")
unless Google::ProtocolBuffers::Dynamic::has_proto3_optional();
}
goto &Test::Builder::Module::import;
}
sub maybe_bigint {
return $_[0] + 0 if $Config{ivsize} >= 8;
require Math::BigInt;
my $bi = Math::BigInt->new($_[0]);
return $bi > -2147483648 && $bi < 2147483647 ? 0 + $_[0] : $bi;
}
sub tie_scalar {
tie $_[0], 't::lib::DummyTiedScalar', \$_[1];
}
sub tie_array {
tie @{$_[0]}, 't::lib::DummyTiedArray', $_[1];
}
sub tied_array {
my @result;
tie @result, 't::lib::DummyTiedArray', [@_];
return \@result;
}
sub tied_hash {
my %result;
( run in 2.074 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )