Reset master to testing content
This commit is contained in:
1 parent
0f2587b719
commit
42afa2a56c
1483 files changed
+145308
-938069
No files matched your search
@@ -0,0 +1,39 @@
|
||||
// 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")
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user