File: 120_hdr_data.t

package info (click to toggle)
libsereal-encoder-perl 5.004%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,384 kB
  • sloc: ansic: 12,087; perl: 6,049; sh: 25; makefile: 9
file content (43 lines) | stat: -rw-r--r-- 1,305 bytes parent folder | download | duplicates (6)
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
#!perl
use strict;
use warnings;
use File::Spec;
use Scalar::Util qw( blessed );
use lib File::Spec->catdir(qw(t lib));

BEGIN {
    lib->import('lib')
        if !-d 't';
}

use Sereal::TestSet qw(:all);
use Sereal::Encoder qw(:all);
use Sereal::Encoder::Constants qw(:all);
use Test::More;

my $ref= Header( SRL_PROTOCOL_VERSION, chr(0b0000_1100) ) . chr(0b0001_0000); # -16 in body, 12 in header
is( encode_sereal_with_header_data( -16, 12 ), $ref, "Encode 12 in header, -16 in body" );
is( Sereal::Encoder->new->encode( -16, 12 ), $ref, "OO: Encode 12 in header, -16 in body" );

my $ok= have_encoder_and_decoder();
if ( not $ok ) {
    SKIP: { skip 'Did not find right version of decoder' => 1 }
}
else {
    my $dec= Sereal::Decoder->new;
    my $encoded= encode_sereal_with_header_data( -16, 12 );
    my $decoded= $dec->decode($encoded);
    is( $decoded, -16, "-16 decoded correctly" );
    $decoded= $dec->decode_only_header($encoded);
    is( $decoded, 12, "12 decoded correctly" );

    my $munged= "X" . $encoded;
    $decoded= $dec->decode_with_offset( $munged, 1 );
    is( $decoded, -16, "-16 decoded correctly (offset)" );
    $decoded= $dec->decode_only_header_with_offset( $munged, 1 );
    is( $decoded, 12, "12 decoded correctly (offset)" );
}

pass("Alive at end");
done_testing();