1 1.1.1.2 skrll /* $NetBSD: add_subnode_with_nops.c,v 1.1.1.3 2019/12/22 12:34:05 skrll Exp $ */ 2 1.1.1.2 skrll 3 1.1.1.3 skrll // SPDX-License-Identifier: LGPL-2.1-or-later 4 1.1 macallan /* 5 1.1 macallan * libfdt - Flat Device Tree manipulation 6 1.1 macallan * Testcase for fdt_nop_node() 7 1.1 macallan * Copyright (C) 2006 David Gibson, IBM Corporation. 8 1.1 macallan */ 9 1.1 macallan 10 1.1 macallan #include <stdlib.h> 11 1.1 macallan #include <stdio.h> 12 1.1 macallan #include <string.h> 13 1.1 macallan #include <ctype.h> 14 1.1 macallan #include <stdint.h> 15 1.1 macallan 16 1.1 macallan #include <libfdt.h> 17 1.1 macallan 18 1.1 macallan #include "tests.h" 19 1.1 macallan #include "testdata.h" 20 1.1 macallan 21 1.1 macallan #define SPACE 65536 22 1.1 macallan 23 1.1 macallan #define CHECK(code) \ 24 1.1 macallan { \ 25 1.1 macallan err = (code); \ 26 1.1 macallan if (err) \ 27 1.1 macallan FAIL(#code ": %s", fdt_strerror(err)); \ 28 1.1 macallan } 29 1.1 macallan 30 1.1 macallan #define OFF_CHECK(off, code) \ 31 1.1 macallan { \ 32 1.1 macallan (off) = (code); \ 33 1.1 macallan if (off < 0) \ 34 1.1 macallan FAIL(#code ": %s", fdt_strerror(off)); \ 35 1.1 macallan } 36 1.1 macallan 37 1.1 macallan int main(int argc, char *argv[]) 38 1.1 macallan { 39 1.1 macallan void *fdt; 40 1.1 macallan int err; 41 1.1 macallan int offset; 42 1.1 macallan 43 1.1 macallan test_init(argc, argv); 44 1.1 macallan 45 1.1 macallan fdt = xmalloc(SPACE); 46 1.1 macallan 47 1.1 macallan CHECK(fdt_create(fdt, SPACE)); 48 1.1 macallan 49 1.1 macallan CHECK(fdt_finish_reservemap(fdt)); 50 1.1 macallan CHECK(fdt_begin_node(fdt, "")); 51 1.1 macallan CHECK(fdt_property_cell(fdt, "prop1", TEST_VALUE_1)); 52 1.1 macallan CHECK(fdt_property_cell(fdt, "prop2", TEST_VALUE_2)); 53 1.1 macallan CHECK(fdt_end_node(fdt)); 54 1.1 macallan CHECK(fdt_finish(fdt)); 55 1.1 macallan 56 1.1 macallan verbose_printf("Built empty tree, totalsize = %d\n", 57 1.1 macallan fdt_totalsize(fdt)); 58 1.1 macallan 59 1.1 macallan CHECK(fdt_open_into(fdt, fdt, SPACE)); 60 1.1 macallan 61 1.1 macallan check_getprop_cell(fdt, 0, "prop1", TEST_VALUE_1); 62 1.1 macallan check_getprop_cell(fdt, 0, "prop2", TEST_VALUE_2); 63 1.1 macallan 64 1.1 macallan CHECK(fdt_nop_property(fdt, 0, "prop1")); 65 1.1 macallan 66 1.1 macallan check_getprop_cell(fdt, 0, "prop2", TEST_VALUE_2); 67 1.1 macallan 68 1.1 macallan OFF_CHECK(offset, fdt_add_subnode(fdt, 0, "subnode")); 69 1.1 macallan 70 1.1 macallan check_getprop_cell(fdt, 0, "prop2", TEST_VALUE_2); 71 1.1 macallan 72 1.1 macallan PASS(); 73 1.1 macallan } 74