File: test_compress.c

package info (click to toggle)
raft 0.22.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,504 kB
  • sloc: ansic: 37,539; makefile: 264; sh: 77; python: 22
file content (77 lines) | stat: -rw-r--r-- 1,991 bytes parent folder | download | duplicates (2)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include "../../src/byte.h"
#include "../../src/compress.h"
#include "../lib/munit.h"
#include "../lib/runner.h"

SUITE(Compress)

#ifdef LZ4_AVAILABLE

static unsigned char lz4_data[] = {
    0x4,  0x22, 0x4d, 0x18, 0x4c, 0x40, 0xd,  0x0,  0x0,  0x0,
    0x0,  0x0,  0x0,  0x0,  0x39, 0xd,  0x0,  0x0,  0x80, 0x68,
    0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64,
    0xa,  0x0,  0x0,  0x0,  0x0,  0x0,  0xf0, 0xb4, 0x59, 0x85};

TEST(Compress, decompress, NULL, NULL, 0, NULL)
{
    char errmsg[RAFT_ERRMSG_BUF_SIZE] = {0};
    struct raft_buffer compressed;
    struct raft_buffer decompressed;
    int rv;

    compressed.base = lz4_data;
    compressed.len = sizeof lz4_data;

    rv = Decompress(compressed, &decompressed, errmsg);
    munit_assert_int(rv, ==, 0);

    munit_assert_string_equal(decompressed.base, "hello world\n");

    raft_free(decompressed.base);

    return MUNIT_OK;
}

#else

TEST(Compress, lz4Disabled, NULL, NULL, 0, NULL)
{
    struct raft_buffer buf = {0};
    struct raft_buffer decompressed;
    char errmsg[RAFT_ERRMSG_BUF_SIZE];

    munit_assert_int(Decompress(buf, &decompressed, errmsg), ==, RAFT_INVALID);
    munit_assert_string_equal(errmsg, "LZ4 not available");

    return MUNIT_OK;
}

#endif /* LZ4_AVAILABLE */

static const char LZ4_MAGIC[4] = {0x04, 0x22, 0x4d, 0x18};

TEST(Compress, isCompressedTooSmall, NULL, NULL, 0, NULL)
{
    munit_assert_false(IsCompressed(&LZ4_MAGIC[1], sizeof(LZ4_MAGIC) - 1));
    return MUNIT_OK;
}

TEST(Compress, isCompressedNull, NULL, NULL, 0, NULL)
{
    munit_assert_false(IsCompressed(NULL, sizeof(LZ4_MAGIC)));
    return MUNIT_OK;
}

TEST(Compress, isCompressed, NULL, NULL, 0, NULL)
{
    munit_assert_true(IsCompressed(LZ4_MAGIC, sizeof(LZ4_MAGIC)));
    return MUNIT_OK;
}

TEST(Compress, notCompressed, NULL, NULL, 0, NULL)
{
    char not_compressed[4] = {0x18, 0x4d, 0x22, 0x04};
    munit_assert_false(IsCompressed(not_compressed, sizeof(not_compressed)));
    return MUNIT_OK;
}