test(vt): cover bounded pending damage
- commit
- ef75ff9d8067c5ced6a2c1d01ca84d3179c46dcd
- author
- brice · · 2026-07-12 09:10 UTC
- parent
- 0d51098
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
1 file · +18 -0
M pkg/vt/screen_test.go +18 -0
| @@ -2055,6 +2055,24 @@ func TestResize(t *testing.T) { | |||
| 2055 | 2055 | // ClearDamage | |
| 2056 | 2056 | // --------------------------------------------------------------------------- | |
| 2057 | 2057 | ||
| 2058 | + | func TestDamageSaturationBoundsPendingRecords(t *testing.T) { | |
| 2059 | + | s := NewScreen(2, 2) | |
| 2060 | + | s.ClearDamage() | |
| 2061 | + | ||
| 2062 | + | for i := range 1_100 { | |
| 2063 | + | s.record(renderer.Damage{Kind: renderer.DamageText, X: i % 2, Y: (i / 2) % 2, Width: 1, Height: 1, Count: 1}) | |
| 2064 | + | } | |
| 2065 | + | require.Equal(t, []renderer.Damage{renderer.FullRedraw()}, s.Damage()) | |
| 2066 | + | ||
| 2067 | + | // Saturation is sticky until the render owner acknowledges or clears it. | |
| 2068 | + | s.record(renderer.Damage{Kind: renderer.DamageText, X: 0, Y: 0, Width: 1, Height: 1, Count: 1}) | |
| 2069 | + | require.Equal(t, []renderer.Damage{renderer.FullRedraw()}, s.Damage()) | |
| 2070 | + | ||
| 2071 | + | s.ClearDamage() | |
| 2072 | + | s.record(renderer.Damage{Kind: renderer.DamageText, X: 0, Y: 0, Width: 1, Height: 1, Count: 1}) | |
| 2073 | + | require.Equal(t, []renderer.Damage{{Kind: renderer.DamageText, X: 0, Y: 0, Width: 1, Height: 1, Count: 1}}, s.Damage()) | |
| 2074 | + | } | |
| 2075 | + | ||
| 2058 | 2076 | func TestClearDamage(t *testing.T) { | |
| 2059 | 2077 | tests := []struct { | |
| 2060 | 2078 | name string | |
| @@ -2055,6 +2055,24 @@ func TestResize(t *testing.T) { | |||||
| 2055 | // ClearDamage | 2055 | // ClearDamage | ||
| 2056 | // --------------------------------------------------------------------------- | 2056 | // --------------------------------------------------------------------------- | ||
| 2057 | 2057 | ||||
| 2058 | + | func TestDamageSaturationBoundsPendingRecords(t *testing.T) { | |||
| 2059 | + | s := NewScreen(2, 2) | |||
| 2060 | + | s.ClearDamage() | |||
| 2061 | + | ||||
| 2062 | + | for i := range 1_100 { | |||
| 2063 | + | s.record(renderer.Damage{Kind: renderer.DamageText, X: i % 2, Y: (i / 2) % 2, Width: 1, Height: 1, Count: 1}) | |||
| 2064 | + | } | |||
| 2065 | + | require.Equal(t, []renderer.Damage{renderer.FullRedraw()}, s.Damage()) | |||
| 2066 | + | ||||
| 2067 | + | // Saturation is sticky until the render owner acknowledges or clears it. | |||
| 2068 | + | s.record(renderer.Damage{Kind: renderer.DamageText, X: 0, Y: 0, Width: 1, Height: 1, Count: 1}) | |||
| 2069 | + | require.Equal(t, []renderer.Damage{renderer.FullRedraw()}, s.Damage()) | |||
| 2070 | + | ||||
| 2071 | + | s.ClearDamage() | |||
| 2072 | + | s.record(renderer.Damage{Kind: renderer.DamageText, X: 0, Y: 0, Width: 1, Height: 1, Count: 1}) | |||
| 2073 | + | require.Equal(t, []renderer.Damage{{Kind: renderer.DamageText, X: 0, Y: 0, Width: 1, Height: 1, Count: 1}}, s.Damage()) | |||
| 2074 | + | } | |||
| 2075 | + | ||||
| 2058 | func TestClearDamage(t *testing.T) { | 2076 | func TestClearDamage(t *testing.T) { | ||
| 2059 | tests := []struct { | 2077 | tests := []struct { | ||
| 2060 | name string | 2078 | name string | ||