/* Check that we can perform operations on devices */ static int dm_test_operations(struct unit_test_state *uts) { struct udevice *dev; int i; /* * Now check that the ping adds are what we expect. This is using the * ping-add property in each node. */ for (i = 0; i < ARRAY_SIZE(test_pdata); i++) { uint32_t base; ut_assertok(uclass_get_device(UCLASS_TEST, i, &dev)); /* * Get the 'reg' property, which tells us what the ping add * should be. We don't use the platdata because we want * to test the code that sets that up (testfdt_drv_probe()). */ base = test_pdata[i].ping_add; debug("dev=%d, base=%d\n", i, base); ut_assert(!dm_check_operations(uts, dev, base, dev->priv)); } return 0; }
int dm_check_devices(struct unit_test_state *uts, int num_devices) { struct udevice *dev; int ret; int i; /* * Now check that the ping adds are what we expect. This is using the * ping-add property in each node. */ for (i = 0; i < num_devices; i++) { uint32_t base; ret = uclass_get_device(UCLASS_TEST_FDT, i, &dev); ut_assert(!ret); /* * Get the 'ping-expect' property, which tells us what the * ping add should be. We don't use the platdata because we * want to test the code that sets that up * (testfdt_drv_probe()). */ base = fdtdec_get_addr(gd->fdt_blob, dev_of_offset(dev), "ping-expect"); debug("dev=%d, base=%d: %s\n", i, base, fdt_get_name(gd->fdt_blob, dev_of_offset(dev), NULL)); ut_assert(!dm_check_operations(uts, dev, base, dev_get_priv(dev))); } return 0; }