~ubuntu-branches/ubuntu/quantal/cmake/quantal

« back to all changes in this revision

Viewing changes to Utilities/cmlibarchive/libarchive/test/test_read_format_raw.c

  • Committer: Package Import Robot
  • Author(s): Felix Geyer
  • Date: 2012-04-30 12:14:32 UTC
  • mfrom: (3.1.30 sid)
  • Revision ID: package-import@ubuntu.com-20120430121432-rqh2fjl3zcblehh5
Tags: 2.8.8-2ubuntu1
* Merge from Debian unstable, remaining changes:
  - Add xfail_compiler_flag.diff: Mark compiler flag tests as expected
    failures.
  - Add ubuntu_qt_import_dir_variable.diff: define QT_IMPORTS_DIR even
    when that dir does not exist.
* Remove increase_ctest_test_timeout.diff, merged upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*-
2
 
 * Copyright (c) 2007 Kai Wang
3
 
 * Copyright (c) 2007 Tim Kientzle
4
 
 * All rights reserved.
5
 
 *
6
 
 * Redistribution and use in source and binary forms, with or without
7
 
 * modification, are permitted provided that the following conditions
8
 
 * are met:
9
 
 * 1. Redistributions of source code must retain the above copyright
10
 
 *    notice, this list of conditions and the following disclaimer
11
 
 *    in this position and unchanged.
12
 
 * 2. Redistributions in binary form must reproduce the above copyright
13
 
 *    notice, this list of conditions and the following disclaimer in the
14
 
 *    documentation and/or other materials provided with the distribution.
15
 
 *
16
 
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
17
 
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18
 
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19
 
 * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
20
 
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21
 
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
 
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
 
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
 
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
 
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
 
 */
27
 
 
28
 
#include "test.h"
29
 
__FBSDID("$FreeBSD$");
30
 
 
31
 
DEFINE_TEST(test_read_format_raw)
32
 
{
33
 
    char buff[512];
34
 
    struct archive_entry *ae;
35
 
    struct archive *a;
36
 
    const char *reffile1 = "test_read_format_raw.data";
37
 
    const char *reffile2 = "test_read_format_raw.data.Z";
38
 
 
39
 
    /* First, try pulling data out of an uninterpretable file. */
40
 
    extract_reference_file(reffile1);
41
 
    assert((a = archive_read_new()) != NULL);
42
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_support_compression_all(a));
43
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
44
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a));
45
 
    assertEqualIntA(a, ARCHIVE_OK,
46
 
        archive_read_open_filename(a, reffile1, 512));
47
 
 
48
 
    /* First (and only!) Entry */
49
 
    assertA(0 == archive_read_next_header(a, &ae));
50
 
    assertEqualString("data", archive_entry_pathname(ae));
51
 
    /* Most fields should be unset (unknown) */
52
 
    assert(!archive_entry_size_is_set(ae));
53
 
    assert(!archive_entry_atime_is_set(ae));
54
 
    assert(!archive_entry_ctime_is_set(ae));
55
 
    assert(!archive_entry_mtime_is_set(ae));
56
 
    assertEqualInt(4, archive_read_data(a, buff, 32));
57
 
    assertEqualMem(buff, "foo\n", 4);
58
 
 
59
 
    /* Test EOF */
60
 
    assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
61
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
62
 
    assertEqualInt(ARCHIVE_OK, archive_read_finish(a));
63
 
 
64
 
 
65
 
    /* Second, try the same with a compressed file. */
66
 
    extract_reference_file(reffile2);
67
 
    assert((a = archive_read_new()) != NULL);
68
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_support_compression_all(a));
69
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_raw(a));
70
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
71
 
    assertEqualIntA(a, ARCHIVE_OK,
72
 
        archive_read_open_filename(a, reffile2, 1));
73
 
 
74
 
    /* First (and only!) Entry */
75
 
    assertA(0 == archive_read_next_header(a, &ae));
76
 
    assertEqualString("data", archive_entry_pathname(ae));
77
 
    /* Most fields should be unset (unknown) */
78
 
    assert(!archive_entry_size_is_set(ae));
79
 
    assert(!archive_entry_atime_is_set(ae));
80
 
    assert(!archive_entry_ctime_is_set(ae));
81
 
    assert(!archive_entry_mtime_is_set(ae));
82
 
    assertEqualInt(4, archive_read_data(a, buff, 32));
83
 
    assertEqualMem(buff, "foo\n", 4);
84
 
 
85
 
    /* Test EOF */
86
 
    assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
87
 
    assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
88
 
    assertEqualInt(ARCHIVE_OK, archive_read_finish(a));
89
 
}