]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-alloc-util.c
549925126e02c0641557be65eafa5bddb4991616
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 This file is part of systemd.
5 Copyright 2010 Lennart Poettering
10 #include "alloc-util.h"
14 static void test_alloca(void) {
15 static const uint8_t zero
[997] = { };
18 t
= alloca_align(17, 512);
19 assert_se(!((uintptr_t)t
& 0xff));
22 t
= alloca0_align(997, 1024);
23 assert_se(!((uintptr_t)t
& 0x1ff));
24 assert_se(!memcmp(t
, zero
, 997));
27 static void test_memdup_multiply_and_greedy_realloc(void) {
28 int org
[] = {1, 2, 3};
29 _cleanup_free_
int *dup
;
31 size_t i
, allocated
= 3;
33 dup
= (int*) memdup_suffix0_multiply(org
, sizeof(int), 3);
35 assert_se(dup
[0] == 1);
36 assert_se(dup
[1] == 2);
37 assert_se(dup
[2] == 3);
38 assert_se(*(uint8_t*) (dup
+ 3) == (uint8_t) 0);
41 dup
= (int*) memdup_multiply(org
, sizeof(int), 3);
43 assert_se(dup
[0] == 1);
44 assert_se(dup
[1] == 2);
45 assert_se(dup
[2] == 3);
48 assert_se(greedy_realloc0((void**) &dup
, &allocated
, 2, sizeof(int)) == p
);
50 p
= (int *) greedy_realloc0((void**) &dup
, &allocated
, 10, sizeof(int));
52 assert_se(allocated
>= 10);
56 for (i
= 3; i
< allocated
; i
++)
60 static void test_bool_assign(void) {
61 bool b
, c
, *cp
= &c
, d
, e
, f
, g
, h
;
68 g
= cp
; /* cast from pointer */
69 h
= NULL
; /* cast from pointer */
80 int main(int argc
, char *argv
[]) {
82 test_memdup_multiply_and_greedy_realloc();