@@ -123,11 +123,28 @@ static void led_test_class_init_data_missing_devicename(struct kunit *test)
KUNIT_EXPECT_EQ(test, ret, -EINVAL);
}
+static void led_test_class_init_data_name_too_long(struct kunit *test)
+{
+ struct led_test_ddata *ddata = test->priv;
+ struct led_classdev *cdev = &ddata->cdev;
+ struct device *dev = ddata->dev;
+ int ret;
+
+ struct led_init_data init_data = {
+ .devicename = "led-test-devicename-very-long-names-fail",
+ .default_label = "led-test-label-also-very-long-names-fail",
+ };
+
+ ret = devm_led_classdev_register_ext(dev, cdev, &init_data);
+ KUNIT_EXPECT_EQ(test, ret, -E2BIG);
+}
+
static struct kunit_case led_test_cases[] = {
KUNIT_CASE(led_test_class_register),
KUNIT_CASE(led_test_class_add_lookup_and_get),
KUNIT_CASE(led_test_class_init_data_missing_default_label),
KUNIT_CASE(led_test_class_init_data_missing_devicename),
+ KUNIT_CASE(led_test_class_init_data_name_too_long),
{ }
};
Insist on legacy (non-DT) registration and provide a default_label and devicename that when concatenated together results in a device name that is unacceptably long. Signed-off-by: Lee Jones <lee@kernel.org> --- drivers/leds/led-test.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)