1 |
#!/usr/bin/perl |
2 |
|
3 |
use warnings; |
4 |
use strict; |
5 |
|
6 |
use blib; |
7 |
use lib './lib'; |
8 |
|
9 |
use Test::More tests => 18; |
10 |
use Data::Dump qw/dump/; |
11 |
use File::Slurp; |
12 |
|
13 |
BEGIN { |
14 |
use_ok( 'Tape' ); |
15 |
} |
16 |
|
17 |
ok( my $tape = Tape->new(), 'new' ); |
18 |
|
19 |
isa_ok( $tape, 'Tape' ); |
20 |
|
21 |
ok( ! $tape->tape, 'empty' ); |
22 |
ok( ! $tape->tape_pos, 'no pos' ); |
23 |
|
24 |
ok( $tape->load_tape( $0 ), 'load' ); |
25 |
cmp_ok( $tape->tape_pos, '==', 0, 'pos 0' ); |
26 |
|
27 |
my $buff; |
28 |
my $len = 10; |
29 |
for ( 1 .. $len ) { |
30 |
ok( $buff .= chr($tape->read_tape), 'read_tape' ); |
31 |
} |
32 |
|
33 |
my $expect = "\0\0\xFF\xFF\0\0\xFF\xFF\0\0"; |
34 |
|
35 |
cmp_ok( $buff, 'eq', $expect, 'no tape error :-)' ); |
36 |
|
37 |
my $data = read_file( $0 ); |
38 |
|
39 |
foreach my $b ( split(//, $data) ) { |
40 |
$tape->write_tape( $b ); |
41 |
} |