85 lines · 2.7 KB · C
RawDownload
// SPDX-License-Identifier: GPL-2.0+/* *  HID to Linux Input mapping * *  Copyright (c) 2022 José Expósito <jose.exposito89@gmail.com> */ #include <kunit/test.h> static void hid_test_input_update_battery_charge_status(struct kunit *test){	struct hid_battery *bat;	bool handled; 	bat = kunit_kzalloc(test, sizeof(*bat), GFP_KERNEL);	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, bat); 	handled = hidinput_update_battery_charge_status(bat, HID_DG_HEIGHT, 0);	KUNIT_EXPECT_FALSE(test, handled);	KUNIT_EXPECT_EQ(test, bat->charge_status, POWER_SUPPLY_STATUS_UNKNOWN); 	handled = hidinput_update_battery_charge_status(bat, HID_BAT_CHARGING, 0);	KUNIT_EXPECT_TRUE(test, handled);	KUNIT_EXPECT_EQ(test, bat->charge_status, POWER_SUPPLY_STATUS_DISCHARGING); 	handled = hidinput_update_battery_charge_status(bat, HID_BAT_CHARGING, 1);	KUNIT_EXPECT_TRUE(test, handled);	KUNIT_EXPECT_EQ(test, bat->charge_status, POWER_SUPPLY_STATUS_CHARGING);} static void hid_test_input_get_battery_property(struct kunit *test){	struct power_supply *psy;	struct hid_battery *bat;	struct hid_device *dev;	union power_supply_propval val;	int ret; 	dev = kunit_kzalloc(test, sizeof(*dev), GFP_KERNEL);	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, dev); 	bat = kunit_kzalloc(test, sizeof(*bat), GFP_KERNEL);	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, bat);	bat->dev = dev;	bat->avoid_query = true; 	psy = kunit_kzalloc(test, sizeof(*psy), GFP_KERNEL);	KUNIT_ASSERT_NOT_ERR_OR_NULL(test, psy);	psy->drv_data = bat; 	bat->status = HID_BATTERY_UNKNOWN;	bat->charge_status = POWER_SUPPLY_STATUS_CHARGING;	ret = hidinput_get_battery_property(psy, POWER_SUPPLY_PROP_STATUS, &val);	KUNIT_EXPECT_EQ(test, ret, 0);	KUNIT_EXPECT_EQ(test, val.intval, POWER_SUPPLY_STATUS_UNKNOWN); 	bat->status = HID_BATTERY_REPORTED;	bat->charge_status = POWER_SUPPLY_STATUS_CHARGING;	ret = hidinput_get_battery_property(psy, POWER_SUPPLY_PROP_STATUS, &val);	KUNIT_EXPECT_EQ(test, ret, 0);	KUNIT_EXPECT_EQ(test, val.intval, POWER_SUPPLY_STATUS_CHARGING); 	bat->status = HID_BATTERY_REPORTED;	bat->charge_status = POWER_SUPPLY_STATUS_DISCHARGING;	ret = hidinput_get_battery_property(psy, POWER_SUPPLY_PROP_STATUS, &val);	KUNIT_EXPECT_EQ(test, ret, 0);	KUNIT_EXPECT_EQ(test, val.intval, POWER_SUPPLY_STATUS_DISCHARGING);} static struct kunit_case hid_input_tests[] = {	KUNIT_CASE(hid_test_input_update_battery_charge_status),	KUNIT_CASE(hid_test_input_get_battery_property),	{ }}; static struct kunit_suite hid_input_test_suite = {	.name = "hid_input",	.test_cases = hid_input_tests,}; kunit_test_suite(hid_input_test_suite); MODULE_DESCRIPTION("HID input KUnit tests");MODULE_LICENSE("GPL");MODULE_AUTHOR("José Expósito <jose.exposito89@gmail.com>");