[LTP] [PATCH] input/input06: Ignore auto-repeat config events

Sandeep Patil sspatil@google.com
Tue Aug 15 01:32:05 CEST 2017


The test currently fails on some android devices because the kernel
sends the EV_REP event with the codes REP_DELAY and REP_PERIOD and
their corresponding values for the uinput device the test creates.

This results in incorrect test failure as follows:

 input06     0  TINFO  :  Didn't receive EV_KEY KEY_X with value 2
 input06     1  TFAIL  :  external/ltp/testcases/kernel/input/input06.c:64: Wrong data received in
                         eventX

Signed-off-by: Sandeep Patil <sspatil@google.com>
---
 testcases/kernel/input/input06.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/testcases/kernel/input/input06.c b/testcases/kernel/input/input06.c
index c4fc1ef57..8d04db8c6 100644
--- a/testcases/kernel/input/input06.c
+++ b/testcases/kernel/input/input06.c
@@ -137,12 +137,26 @@ static int check_events(void)
 
 	check_size(rd);
 
+	/*
+	 * Ignore auto-repeat configuration codes
+	 * (EV_REP, {REP_PERIOD, REP_TYPE), value)
+	 */
+	while (iev[i].type == EV_REP) {
+		i++;
+		if (i == rd / sizeof(struct input_event)) {
+			i = 0;
+			rd = read(fd2, iev, sizeof(iev));
+			check_size(rd);
+		}
+	}
+
 	if (rd > 0 && check_event(&iev[i], EV_KEY, KEY_X, 1))
 		i++;
 
 	while (check_bound(i, rd) && !check_event(&iev[i], EV_KEY, KEY_X, 0)) {
 
 		if (iev[i].type != EV_SYN
+			&& iev[i].type != EV_REP
 			&& !check_event(&iev[i], EV_KEY, KEY_X, 2)) {
 			tst_resm(TINFO,
 				"Didn't receive EV_KEY KEY_X with value 2");
-- 
2.14.0.434.g98096fd7a8-goog



More information about the ltp mailing list