mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-05-08 20:38:08 +02:00
test: allow for a default value on LITEST_AUTO_ASSIGNS
The touchpads currently all send a default value of 30 for ABS_PRESSURE. For some tests we want to have a custom pressure but changing all tests isn't sensible. So hook each device up to send a default value of 30 if it isn't overridden in the test itself. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
7d314738fb
commit
4a3288dc59
6 changed files with 93 additions and 11 deletions
|
|
@ -37,11 +37,12 @@ static void litest_bcm5974_setup(void)
|
||||||
static struct input_event down[] = {
|
static struct input_event down[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = 30 },
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
@ -50,15 +51,31 @@ static struct input_event move[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
get_axis_default(struct litest_device *d, unsigned int evcode, int32_t *value)
|
||||||
|
{
|
||||||
|
switch (evcode) {
|
||||||
|
case ABS_PRESSURE:
|
||||||
|
case ABS_MT_PRESSURE:
|
||||||
|
*value = 30;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static struct litest_device_interface interface = {
|
static struct litest_device_interface interface = {
|
||||||
.touch_down_events = down,
|
.touch_down_events = down,
|
||||||
.touch_move_events = move,
|
.touch_move_events = move,
|
||||||
|
|
||||||
|
.get_axis_default = get_axis_default,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct input_absinfo absinfo[] = {
|
static struct input_absinfo absinfo[] = {
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,12 @@ struct litest_device_interface {
|
||||||
void (*touch_move)(struct litest_device *d, unsigned int slot, double x, double y);
|
void (*touch_move)(struct litest_device *d, unsigned int slot, double x, double y);
|
||||||
void (*touch_up)(struct litest_device *d, unsigned int slot);
|
void (*touch_up)(struct litest_device *d, unsigned int slot);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default value for the given EV_ABS axis.
|
||||||
|
* @return 0 on success, nonzero otherwise
|
||||||
|
*/
|
||||||
|
int (*get_axis_default)(struct litest_device *d, unsigned int code, int32_t *value);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set of of events to execute on touch down, terminated by a .type
|
* Set of of events to execute on touch down, terminated by a .type
|
||||||
* and .code value of -1. If the event value is LITEST_AUTO_ASSIGN,
|
* and .code value of -1. If the event value is LITEST_AUTO_ASSIGN,
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,12 @@ litest_synaptics_t440_setup(void)
|
||||||
static struct input_event down[] = {
|
static struct input_event down[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = 30 },
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
@ -51,15 +52,31 @@ static struct input_event move[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
get_axis_default(struct litest_device *d, unsigned int evcode, int32_t *value)
|
||||||
|
{
|
||||||
|
switch (evcode) {
|
||||||
|
case ABS_PRESSURE:
|
||||||
|
case ABS_MT_PRESSURE:
|
||||||
|
*value = 30;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static struct litest_device_interface interface = {
|
static struct litest_device_interface interface = {
|
||||||
.touch_down_events = down,
|
.touch_down_events = down,
|
||||||
.touch_move_events = move,
|
.touch_move_events = move,
|
||||||
|
|
||||||
|
.get_axis_default = get_axis_default,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct input_id input_id = {
|
static struct input_id input_id = {
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,12 @@ litest_synaptics_carbon3rd_setup(void)
|
||||||
static struct input_event down[] = {
|
static struct input_event down[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = 30 },
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
@ -51,15 +52,31 @@ static struct input_event move[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
get_axis_default(struct litest_device *d, unsigned int evcode, int32_t *value)
|
||||||
|
{
|
||||||
|
switch (evcode) {
|
||||||
|
case ABS_PRESSURE:
|
||||||
|
case ABS_MT_PRESSURE:
|
||||||
|
*value = 30;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static struct litest_device_interface interface = {
|
static struct litest_device_interface interface = {
|
||||||
.touch_down_events = down,
|
.touch_down_events = down,
|
||||||
.touch_move_events = move,
|
.touch_move_events = move,
|
||||||
|
|
||||||
|
.get_axis_default = get_axis_default,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct input_id input_id = {
|
static struct input_id input_id = {
|
||||||
|
|
|
||||||
|
|
@ -38,11 +38,12 @@ litest_synaptics_clickpad_setup(void)
|
||||||
static struct input_event down[] = {
|
static struct input_event down[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = 30 },
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_TRACKING_ID, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
@ -51,15 +52,31 @@ static struct input_event move[] = {
|
||||||
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_SLOT, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_X, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
{ .type = EV_ABS, .code = ABS_MT_POSITION_Y, .value = LITEST_AUTO_ASSIGN },
|
||||||
|
{ .type = EV_ABS, .code = ABS_MT_PRESSURE, .value = LITEST_AUTO_ASSIGN },
|
||||||
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
{ .type = EV_SYN, .code = SYN_REPORT, .value = 0 },
|
||||||
{ .type = -1, .code = -1 },
|
{ .type = -1, .code = -1 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int
|
||||||
|
get_axis_default(struct litest_device *d, unsigned int evcode, int32_t *value)
|
||||||
|
{
|
||||||
|
switch (evcode) {
|
||||||
|
case ABS_PRESSURE:
|
||||||
|
case ABS_MT_PRESSURE:
|
||||||
|
*value = 30;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static struct litest_device_interface interface = {
|
static struct litest_device_interface interface = {
|
||||||
.touch_down_events = down,
|
.touch_down_events = down,
|
||||||
.touch_move_events = move,
|
.touch_move_events = move,
|
||||||
|
|
||||||
|
.get_axis_default = get_axis_default,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct input_id input_id = {
|
static struct input_id input_id = {
|
||||||
|
|
|
||||||
|
|
@ -1212,19 +1212,22 @@ litest_event(struct litest_device *d, unsigned int type,
|
||||||
litest_assert_int_eq(ret, 0);
|
litest_assert_int_eq(ret, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t
|
static bool
|
||||||
axis_replacement_value(struct axis_replacement *axes,
|
axis_replacement_value(struct axis_replacement *axes,
|
||||||
int32_t evcode)
|
int32_t evcode,
|
||||||
|
int32_t *value)
|
||||||
{
|
{
|
||||||
struct axis_replacement *axis = axes;
|
struct axis_replacement *axis = axes;
|
||||||
|
|
||||||
while (axis->evcode != -1) {
|
while (axis->evcode != -1) {
|
||||||
if (axis->evcode == evcode)
|
if (axis->evcode == evcode) {
|
||||||
return axis->value;
|
*value = axis->value;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
axis++;
|
axis++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return -1;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -1259,8 +1262,13 @@ litest_auto_assign_value(struct litest_device *d,
|
||||||
value = touching ? 0 : 1;
|
value = touching ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (axes)
|
value = -1;
|
||||||
value = axis_replacement_value(axes, ev->code);
|
if (!axes)
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (!axis_replacement_value(axes, ev->code, &value) &&
|
||||||
|
d->interface->get_axis_default)
|
||||||
|
d->interface->get_axis_default(d, ev->code, &value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue