File: PH2Test.pm

package info (click to toggle)
libprotocol-http2-perl 1.12-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 416 kB
  • sloc: perl: 3,380; makefile: 7
file content (48 lines) | stat: -rw-r--r-- 1,051 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
44
45
46
47
48
package PH2Test;
use strict;
use warnings;
use Protocol::HTTP2::Trace qw(bin2hex);
use Exporter qw(import);
our @EXPORT = qw(hstr binary_eq fake_connect random_string);

sub hstr {
    my $str = shift;
    $str =~ s/\#.*//g;
    $str =~ s/\s//g;
    my @a = ( $str =~ /../g );
    return pack "C*", map { hex $_ } @a;
}

sub binary_eq {
    my ( $b1, $b2 ) = @_;
    if ( $b1 eq $b2 ) {
        return 1;
    }
    else {
        $b1 = bin2hex($b1);
        $b2 = bin2hex($b2);
        chomp $b1;
        chomp $b2;
        print "$b1\n not equal \n$b2 \n";
        return 0;
    }
}

sub fake_connect {
    my ( $server, $client ) = @_;

    my ( $clt_frame, $srv_frame );
    do {
        $clt_frame = $client->next_frame;
        $srv_frame = $server->next_frame;
        $server->feed($clt_frame) if $clt_frame;
        $client->feed($srv_frame) if $srv_frame;
    } while ( $clt_frame || $srv_frame );
}

sub random_string {
    my @chars = ( 'a' .. 'z', 'A' .. 'Z', 0 .. 9 );
    join '', map { $chars[ int( rand(@chars) ) ] } 1 .. shift;
}

1;