]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/test/test-id128.c
Merge pull request #1690 from evverx/run-runtime-directory
[thirdparty/systemd.git] / src / test / test-id128.c
CommitLineData
87d2c1ff
LP
1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
3/***
4 This file is part of systemd.
5
6 Copyright 2011 Lennart Poettering
7
8 systemd is free software; you can redistribute it and/or modify it
5430f7f2
LP
9 under the terms of the GNU Lesser General Public License as published by
10 the Free Software Foundation; either version 2.1 of the License, or
87d2c1ff
LP
11 (at your option) any later version.
12
13 systemd is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2 16 Lesser General Public License for more details.
87d2c1ff 17
5430f7f2 18 You should have received a copy of the GNU Lesser General Public License
87d2c1ff
LP
19 along with systemd; If not, see <http://www.gnu.org/licenses/>.
20***/
21
22#include <string.h>
23
07630cea
LP
24#include "sd-daemon.h"
25#include "sd-id128.h"
81527be1 26
b5efdb8a 27#include "alloc-util.h"
87d2c1ff 28#include "macro.h"
07630cea
LP
29#include "string-util.h"
30#include "util.h"
87d2c1ff
LP
31
32#define ID128_WALDI SD_ID128_MAKE(01, 02, 03, 04, 05, 06, 07, 08, 09, 0a, 0b, 0c, 0d, 0e, 0f, 10)
aa96c6cb
LP
33#define STR_WALDI "0102030405060708090a0b0c0d0e0f10"
34#define UUID_WALDI "01020304-0506-0708-090a-0b0c0d0e0f10"
87d2c1ff
LP
35
36int main(int argc, char *argv[]) {
37 sd_id128_t id, id2;
38 char t[33];
aa96c6cb 39 _cleanup_free_ char *b = NULL;
87d2c1ff
LP
40
41 assert_se(sd_id128_randomize(&id) == 0);
42 printf("random: %s\n", sd_id128_to_string(id, t));
43
44 assert_se(sd_id128_from_string(t, &id2) == 0);
45 assert_se(sd_id128_equal(id, id2));
46
143bfdaf
HHPF
47 if (sd_booted() > 0) {
48 assert_se(sd_id128_get_machine(&id) == 0);
49 printf("machine: %s\n", sd_id128_to_string(id, t));
87d2c1ff 50
143bfdaf
HHPF
51 assert_se(sd_id128_get_boot(&id) == 0);
52 printf("boot: %s\n", sd_id128_to_string(id, t));
53 }
87d2c1ff
LP
54
55 printf("waldi: %s\n", sd_id128_to_string(ID128_WALDI, t));
aa96c6cb
LP
56 assert_se(streq(t, STR_WALDI));
57
58 assert_se(asprintf(&b, SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(ID128_WALDI)) == 32);
59 printf("waldi2: %s\n", b);
60 assert_se(streq(t, b));
61
62 assert_se(sd_id128_from_string(UUID_WALDI, &id) >= 0);
63 assert_se(sd_id128_equal(id, ID128_WALDI));
64
65 assert_se(sd_id128_from_string("", &id) < 0);
66 assert_se(sd_id128_from_string("01020304-0506-0708-090a-0b0c0d0e0f101", &id) < 0);
67 assert_se(sd_id128_from_string("01020304-0506-0708-090a-0b0c0d0e0f10-", &id) < 0);
68 assert_se(sd_id128_from_string("01020304-0506-0708-090a0b0c0d0e0f10", &id) < 0);
69 assert_se(sd_id128_from_string("010203040506-0708-090a-0b0c0d0e0f10", &id) < 0);
70
71 assert_se(id128_is_valid(STR_WALDI));
72 assert_se(id128_is_valid(UUID_WALDI));
73 assert_se(!id128_is_valid(""));
74 assert_se(!id128_is_valid("01020304-0506-0708-090a-0b0c0d0e0f101"));
75 assert_se(!id128_is_valid("01020304-0506-0708-090a-0b0c0d0e0f10-"));
76 assert_se(!id128_is_valid("01020304-0506-0708-090a0b0c0d0e0f10"));
77 assert_se(!id128_is_valid("010203040506-0708-090a-0b0c0d0e0f10"));
eaff7bd8 78
87d2c1ff
LP
79 return 0;
80}