xref: /netbsd-src/external/gpl2/dtc/dist/tests/get_prop_offset.c (revision cc7d2833ecf67da5a5ddc470841931eb9f6723e4)
1*cc7d2833Sskrll /*	$NetBSD: get_prop_offset.c,v 1.1.1.1 2019/12/22 12:34:06 skrll Exp $	*/
2*cc7d2833Sskrll 
3*cc7d2833Sskrll // SPDX-License-Identifier: LGPL-2.1-or-later
4*cc7d2833Sskrll /*
5*cc7d2833Sskrll  * libfdt - Flat Device Tree manipulation
6*cc7d2833Sskrll  *	Testcase for fdt_getprop_by_offset()
7*cc7d2833Sskrll  * Copyright (C) 2006 David Gibson, IBM Corporation.
8*cc7d2833Sskrll  */
9*cc7d2833Sskrll 
10*cc7d2833Sskrll #include <stdlib.h>
11*cc7d2833Sskrll #include <stdio.h>
12*cc7d2833Sskrll #include <string.h>
13*cc7d2833Sskrll #include <stdint.h>
14*cc7d2833Sskrll 
15*cc7d2833Sskrll #include <libfdt.h>
16*cc7d2833Sskrll 
17*cc7d2833Sskrll #include "tests.h"
18*cc7d2833Sskrll #include "testdata.h"
19*cc7d2833Sskrll 
main(int argc,char * argv[])20*cc7d2833Sskrll int main(int argc, char *argv[])
21*cc7d2833Sskrll {
22*cc7d2833Sskrll 	bool found_prop_int = false;
23*cc7d2833Sskrll 	bool found_prop_str = false;
24*cc7d2833Sskrll 	int poffset;
25*cc7d2833Sskrll 	void *fdt;
26*cc7d2833Sskrll 
27*cc7d2833Sskrll 	test_init(argc, argv);
28*cc7d2833Sskrll 	fdt = load_blob_arg(argc, argv);
29*cc7d2833Sskrll 
30*cc7d2833Sskrll 	fdt_for_each_property_offset(poffset, fdt, 0) {
31*cc7d2833Sskrll 		if (check_get_prop_offset_cell(fdt, poffset, "prop-int",
32*cc7d2833Sskrll 					       TEST_VALUE_1))
33*cc7d2833Sskrll 			found_prop_int = true;
34*cc7d2833Sskrll 		if (check_get_prop_offset(fdt, poffset, "prop-str",
35*cc7d2833Sskrll 					  strlen(TEST_STRING_1) + 1,
36*cc7d2833Sskrll 					  TEST_STRING_1))
37*cc7d2833Sskrll 			found_prop_str = true;
38*cc7d2833Sskrll 	}
39*cc7d2833Sskrll 	if (!found_prop_int)
40*cc7d2833Sskrll 		FAIL("Property 'prop-int' not found");
41*cc7d2833Sskrll 	if (!found_prop_str)
42*cc7d2833Sskrll 		FAIL("Property 'prop-str' not found");
43*cc7d2833Sskrll 
44*cc7d2833Sskrll 	PASS();
45*cc7d2833Sskrll }
46