in unittest.c [1655:1805]
static void __init of_unittest_overlay_gpio(void)
{
int chip_request_count;
int probe_pass_count;
int ret;
/*
* tests: apply overlays before registering driver
* Similar to installing a driver as a module, the
* driver is registered after applying the overlays.
*
* The overlays are applied by overlay_data_apply()
* instead of of_unittest_apply_overlay() so that they
* will not be tracked. Thus they will not be removed
* by of_unittest_remove_tracked_overlays().
*
* - apply overlay_gpio_01
* - apply overlay_gpio_02a
* - apply overlay_gpio_02b
* - register driver
*
* register driver will result in
* - probe and processing gpio hog for overlay_gpio_01
* - probe for overlay_gpio_02a
* - processing gpio for overlay_gpio_02b
*/
probe_pass_count = unittest_gpio_probe_pass_count;
chip_request_count = unittest_gpio_chip_request_count;
/*
* overlay_gpio_01 contains gpio node and child gpio hog node
* overlay_gpio_02a contains gpio node
* overlay_gpio_02b contains child gpio hog node
*/
unittest(overlay_data_apply("overlay_gpio_01", NULL),
"Adding overlay 'overlay_gpio_01' failed\n");
unittest(overlay_data_apply("overlay_gpio_02a", NULL),
"Adding overlay 'overlay_gpio_02a' failed\n");
unittest(overlay_data_apply("overlay_gpio_02b", NULL),
"Adding overlay 'overlay_gpio_02b' failed\n");
/*
* messages are the result of the probes, after the
* driver is registered
*/
EXPECT_BEGIN(KERN_INFO,
"gpio-<<int>> (line-B-input): hogged as input\n");
EXPECT_BEGIN(KERN_INFO,
"gpio-<<int>> (line-A-input): hogged as input\n");
ret = platform_driver_register(&unittest_gpio_driver);
if (unittest(ret == 0, "could not register unittest gpio driver\n"))
return;
EXPECT_END(KERN_INFO,
"gpio-<<int>> (line-A-input): hogged as input\n");
EXPECT_END(KERN_INFO,
"gpio-<<int>> (line-B-input): hogged as input\n");
unittest(probe_pass_count + 2 == unittest_gpio_probe_pass_count,
"unittest_gpio_probe() failed or not called\n");
unittest(chip_request_count + 2 == unittest_gpio_chip_request_count,
"unittest_gpio_chip_request() called %d times (expected 1 time)\n",
unittest_gpio_chip_request_count - chip_request_count);
/*
* tests: apply overlays after registering driver
*
* Similar to a driver built-in to the kernel, the
* driver is registered before applying the overlays.
*
* overlay_gpio_03 contains gpio node and child gpio hog node
*
* - apply overlay_gpio_03
*
* apply overlay will result in
* - probe and processing gpio hog.
*/
probe_pass_count = unittest_gpio_probe_pass_count;
chip_request_count = unittest_gpio_chip_request_count;
EXPECT_BEGIN(KERN_INFO,
"gpio-<<int>> (line-D-input): hogged as input\n");
/* overlay_gpio_03 contains gpio node and child gpio hog node */
unittest(overlay_data_apply("overlay_gpio_03", NULL),
"Adding overlay 'overlay_gpio_03' failed\n");
EXPECT_END(KERN_INFO,
"gpio-<<int>> (line-D-input): hogged as input\n");
unittest(probe_pass_count + 1 == unittest_gpio_probe_pass_count,
"unittest_gpio_probe() failed or not called\n");
unittest(chip_request_count + 1 == unittest_gpio_chip_request_count,
"unittest_gpio_chip_request() called %d times (expected 1 time)\n",
unittest_gpio_chip_request_count - chip_request_count);
/*
* overlay_gpio_04a contains gpio node
*
* - apply overlay_gpio_04a
*
* apply the overlay will result in
* - probe for overlay_gpio_04a
*/
probe_pass_count = unittest_gpio_probe_pass_count;
chip_request_count = unittest_gpio_chip_request_count;
/* overlay_gpio_04a contains gpio node */
unittest(overlay_data_apply("overlay_gpio_04a", NULL),
"Adding overlay 'overlay_gpio_04a' failed\n");
unittest(probe_pass_count + 1 == unittest_gpio_probe_pass_count,
"unittest_gpio_probe() failed or not called\n");
/*
* overlay_gpio_04b contains child gpio hog node
*
* - apply overlay_gpio_04b
*
* apply the overlay will result in
* - processing gpio for overlay_gpio_04b
*/
EXPECT_BEGIN(KERN_INFO,
"gpio-<<int>> (line-C-input): hogged as input\n");
/* overlay_gpio_04b contains child gpio hog node */
unittest(overlay_data_apply("overlay_gpio_04b", NULL),
"Adding overlay 'overlay_gpio_04b' failed\n");
EXPECT_END(KERN_INFO,
"gpio-<<int>> (line-C-input): hogged as input\n");
unittest(chip_request_count + 1 == unittest_gpio_chip_request_count,
"unittest_gpio_chip_request() called %d times (expected 1 time)\n",
unittest_gpio_chip_request_count - chip_request_count);
}