// Copyright (c) 2026 Storm Dragon // Authors: Storm Dragon, Angus Kola // SPDX-License-Identifier: GPL-3.0-or-later package input import "testing" func TestRepeatTrackerRecognizesNativeSequences(t *testing.T) { var tracker RepeatTracker steps := []struct { code uint8 pressed bool timestamp uint32 repeat bool }{ {38, true, 100, false}, {38, true, 110, true}, // Detectable autorepeat. {39, true, 111, false}, // Another key is still a fresh press. {38, false, 120, false}, {38, true, 120, true}, // Classic X11 release/press pair. {38, false, 130, false}, {38, true, 140, false}, // Real release and new press. {39, false, ^uint32(0), false}, {39, true, 1, false}, // Timestamp wrap is not a repeat. {38, false, 0, false}, {38, true, 0, false}, // Unknown timestamps cannot prove a release/press pair. {38, true, 0, true}, } for index, step := range steps { if got := tracker.Observe(Event{Keycode: step.code, Pressed: step.pressed, Timestamp: step.timestamp}); got != step.repeat { t.Fatalf("step %d: repeat = %t, want %t", index, got, step.repeat) } } tracker.Reset() if tracker.Observe(Event{Keycode: 38, Pressed: true, Timestamp: 150}) { t.Fatal("secure reset retained held keys") } }