fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / t / library / archive_tar.t
blobaa96d719b856dd74828cc8116110a7caf57bba91
1 #!./parrot
2 # Copyright (C) 2010, Parrot Foundation.
3 # $Id$
5 =head1 NAME
7 t/library/archive_tar.t
9 =head1 DESCRIPTION
11 Test the Archive/Tar library
13 =head1 SYNOPSIS
15     % prove t/library/archive_tar.t
17 =cut
19 .sub 'main' :main
20     .include 'test_more.pir'
22     load_bytecode 'Archive/Tar.pir'
24     plan(12)
25     test_new()
26     test_tar()
27 .end
29 .sub 'test_new'
30     $P0 = new ['Archive';'Tar']
31     $I0 = isa $P0, ['Archive';'Tar']
32     ok($I0, "new ['Archive';'Tar']")
33     $P0 = new ['Archive';'Tar';'File']
34     $I0 = isa $P0, ['Archive';'Tar';'File']
35     ok($I0, "new ['Archive';'Tar';'File']")
36 .end
38 .sub 'test_tar'
39     .local pmc archive, entry
40     archive = new ['Archive';'Tar']
41     $I0 = isa archive, ['Archive';'Tar']
42     ok($I0, "test_tar")
43     entry = archive.'add_data'('msg.txt', "some data")
44     $I0 = isa entry, ['Archive';'Tar';'File']
45     ok($I0, "entry is an ['Archive';'Tar';'File']")
46     $S0 = entry.'data'()
47     is($S0, "some data", "data")
48     $S0 = entry.'full_path'()
49     is($S0, 'msg.txt', "full_path")
50     .local string header
51     header = entry.'_format_tar_entry'()
52     $I0 = length header
53     is($I0, 512, "length header")
54     $I0 = index header, 'msg.txt'
55     is($I0, 0, "header starts by filename")
56     $I0 = index header, 'ustar'
57     is($I0, 257, "magic at 257")
59     .local pmc fh
60     fh = new 'StringHandle'
61     fh.'open'('in_memory', 'wb')
62     archive.'write'(fh)
63     $S0 = fh.'readall'()
64     fh.'close'()
65     $I0 = length $S0
66     is($I0, 2048, "size")
67     $I0 = index $S0, 'msg.txt'
68     is($I0, 0, 'filename')
69     $I0 = index $S0, 'some data'
70     is($I0, 512, 'data')
71 .end
73 # Local Variables:
74 #   mode: pir
75 #   fill-column: 100
76 # End:
77 # vim: expandtab shiftwidth=4 ft=pir: