int main(int argc, char *argv[]) { void *fdt; int subnode2_offset, subsubnode2_offset; test_init(argc, argv); fdt = load_blob_arg(argc, argv); subnode2_offset = fdt_path_offset(fdt, "/subnode@2"); subsubnode2_offset = fdt_path_offset(fdt, "/subnode@2/subsubnode@0"); if ((subnode2_offset < 0) || (subsubnode2_offset < 0)) FAIL("Can't find required nodes"); check_search(fdt, PHANDLE_1, subnode2_offset); check_search(fdt, PHANDLE_2, subsubnode2_offset); check_search(fdt, ~PHANDLE_1, -FDT_ERR_NOTFOUND); check_search(fdt, 0, -FDT_ERR_BADPHANDLE); check_search(fdt, -1, -FDT_ERR_BADPHANDLE); PASS(); }
int test_odb(){ sodict_build_t *dict=NULL; sodict_search_t *search=NULL; sodict_search_t *search2=NULL; { dict=odb_creat(hash_num); assert(dict); add(dict); traverse_ex(dict); traverse(dict); check(dict); mod(dict); check(dict); save(dict); } { shutdown(); save_safely(dict); } { assert(odb_renew(dict)==ODB_RENEW_OK); check_renew(dict); assert(odb_destroy(dict)==ODB_DESTROY_OK); } { dict=load(); check(dict); } { assert(odb_renew_ex(dict)==ODB_RENEW_OK); check_renew(dict); assert(odb_destroy(dict)==ODB_DESTROY_OK); } { dict=load(); check(dict); } { assert(odb_destroy(dict)==ODB_DESTROY_OK); } { search=load_search(); check_search(search); traverse_search_ex(search); traverse_search(search); save_search(search); } { shutdown(); save_search_safely(search); } { assert(odb_destroy_search(search)==ODB_DESTROY_OK); } { search=load_search_mmap(); check_search(search); save_search(search); assert(odb_destroy_search_mmap(search)==ODB_DESTROY_OK); } { search=load_search_mmap(); search2=load_search_mmap(); assert(odb_is_equal_search(search,search2)==1); assert(odb_destroy_search_mmap(search)==ODB_DESTROY_OK); assert(odb_destroy_search_mmap(search2)==ODB_DESTROY_OK); } return 0; }