Home | History | Annotate | Line # | Download | only in tests
      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