aboutsummaryrefslogtreecommitdiff
path: root/tests/memctl.c
blob: 161444297837d8a9cac1379844c443de5a895a95 (plain)
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
#include <ungrateful.h>

#define SIZE UN_KB(1)

u8 buffer_a[SIZE];
u8 buffer_b[SIZE];

int main(void) {
    u64 i;
    for (i = 0; i < SIZE; i++) {
        buffer_a[i] += i << 2;
    }

    {
        un_memory_copy(buffer_b, buffer_a, SIZE);

        for (i = 0; i < SIZE; i++) {
            assert(buffer_b[i] == buffer_a[i]);
        }

        assert(un_memory_compare(buffer_a, buffer_b, SIZE) == 0);

        buffer_b[SIZE - 10] = 0;
        assert(un_memory_compare(buffer_a, buffer_b, SIZE) == 1);
    }

    {
        un_memory_move(buffer_a + SIZE / 4, buffer_a, SIZE / 2);

        assert(un_memory_compare(buffer_b, buffer_a + SIZE / 4, SIZE / 2) == 0);
    }

    {
        un_memory_set(buffer_a, 0, SIZE);

        for (i = 0; i < SIZE; i++) {
            assert(buffer_a[i] == 0);
        }
    }

    return 0;
}