testcases: add a test case for #525

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
Yuxuan Shui 2020-11-28 03:07:59 +00:00
parent 1b4dacf2c2
commit 862d96d609
No known key found for this signature in database
GPG Key ID: D3A4405BE6CC17F4
2 changed files with 37 additions and 0 deletions

View File

@ -19,3 +19,4 @@ eval `dbus-launch --sh-syntax`
./run_one_test.sh $exe configs/clear_shadow_unredirected.conf testcases/clear_shadow_unredirected.py
./run_one_test.sh $exe configs/clear_shadow_unredirected.conf testcases/redirect_when_unmapped_window_has_shadow.py
./run_one_test.sh $exe configs/issue394.conf testcases/issue394.py
./run_one_test.sh $exe configs/issue239.conf testcases/issue525.py

36
tests/testcases/issue525.py Executable file
View File

@ -0,0 +1,36 @@
#!/usr/bin/env python
import xcffib.xproto as xproto
import xcffib
import time
from common import set_window_name
conn = xcffib.connect()
setup = conn.get_setup()
root = setup.roots[0].root
visual = setup.roots[0].root_visual
depth = setup.roots[0].root_depth
# issue 525 happens when a window is unmapped with pixmap stale flag set
wid = conn.generate_id()
print("Window id is ", hex(wid))
# Create a window
conn.core.CreateWindowChecked(depth, wid, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
# Map the window
print("mapping")
conn.core.MapWindowChecked(wid).check()
time.sleep(0.5)
# change window size, invalidate the pixmap
conn.core.ConfigureWindow(wid, xproto.ConfigWindow.X | xproto.ConfigWindow.Width, [100, 200])
# unmap the window immediately after
conn.core.UnmapWindowChecked(wid).check()
time.sleep(0.1)
# Destroy the window
conn.core.DestroyWindowChecked(wid).check()