1*cd60bc56SAndroid Build Coastguard Worker // SPDX-License-Identifier: LGPL-2.1-or-later 2*cd60bc56SAndroid Build Coastguard Worker /* 3*cd60bc56SAndroid Build Coastguard Worker * libfdt - Flat Device Tree manipulation 4*cd60bc56SAndroid Build Coastguard Worker * Basic testcase for read-only access 5*cd60bc56SAndroid Build Coastguard Worker * Copyright (C) 2006 David Gibson, IBM Corporation. 6*cd60bc56SAndroid Build Coastguard Worker */ 7*cd60bc56SAndroid Build Coastguard Worker 8*cd60bc56SAndroid Build Coastguard Worker #include <stdlib.h> 9*cd60bc56SAndroid Build Coastguard Worker #include <stdio.h> 10*cd60bc56SAndroid Build Coastguard Worker #include <string.h> 11*cd60bc56SAndroid Build Coastguard Worker #include <stdint.h> 12*cd60bc56SAndroid Build Coastguard Worker 13*cd60bc56SAndroid Build Coastguard Worker #include <libfdt.h> 14*cd60bc56SAndroid Build Coastguard Worker 15*cd60bc56SAndroid Build Coastguard Worker #include "tests.h" 16*cd60bc56SAndroid Build Coastguard Worker #include "testdata.h" 17*cd60bc56SAndroid Build Coastguard Worker main(int argc,char * argv[])18*cd60bc56SAndroid Build Coastguard Workerint main(int argc, char *argv[]) 19*cd60bc56SAndroid Build Coastguard Worker { 20*cd60bc56SAndroid Build Coastguard Worker void *fdt; 21*cd60bc56SAndroid Build Coastguard Worker const struct fdt_node_header *nh; 22*cd60bc56SAndroid Build Coastguard Worker 23*cd60bc56SAndroid Build Coastguard Worker test_init(argc, argv); 24*cd60bc56SAndroid Build Coastguard Worker fdt = load_blob_arg(argc, argv); 25*cd60bc56SAndroid Build Coastguard Worker 26*cd60bc56SAndroid Build Coastguard Worker nh = fdt_offset_ptr(fdt, 0, sizeof(*nh)); 27*cd60bc56SAndroid Build Coastguard Worker 28*cd60bc56SAndroid Build Coastguard Worker if (! nh) 29*cd60bc56SAndroid Build Coastguard Worker FAIL("NULL retrieving root node"); 30*cd60bc56SAndroid Build Coastguard Worker 31*cd60bc56SAndroid Build Coastguard Worker if (fdt32_to_cpu(nh->tag) != FDT_BEGIN_NODE) 32*cd60bc56SAndroid Build Coastguard Worker FAIL("Wrong tag on root node"); 33*cd60bc56SAndroid Build Coastguard Worker 34*cd60bc56SAndroid Build Coastguard Worker if (strlen(nh->name) != 0) 35*cd60bc56SAndroid Build Coastguard Worker FAIL("Wrong name for root node, \"%s\" instead of empty", 36*cd60bc56SAndroid Build Coastguard Worker nh->name); 37*cd60bc56SAndroid Build Coastguard Worker 38*cd60bc56SAndroid Build Coastguard Worker PASS(); 39*cd60bc56SAndroid Build Coastguard Worker } 40