aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorallusive-dev <[email protected]>2023-09-19 17:46:20 +1000
committerallusive-dev <[email protected]>2023-09-19 17:46:20 +1000
commit5650d887357bf2a3fac8c5fd4f467bf8795b5fc4 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /tests
parentUpdate picom.sample.conf (diff)
downloadcompfy-5650d887357bf2a3fac8c5fd4f467bf8795b5fc4.tar.xz
compfy-5650d887357bf2a3fac8c5fd4f467bf8795b5fc4.zip
reset
Diffstat (limited to 'tests')
-rw-r--r--tests/configs/clear_shadow_unredirected.conf5
-rw-r--r--tests/configs/empty.conf0
-rw-r--r--tests/configs/issue239.conf7
-rw-r--r--tests/configs/issue239_2.conf8
-rw-r--r--tests/configs/issue239_3.conf4
-rw-r--r--tests/configs/issue314.conf6
-rw-r--r--tests/configs/issue357.conf3
-rw-r--r--tests/configs/issue394.conf4
-rw-r--r--tests/configs/issue465.conf4
-rw-r--r--tests/run_one_test.sh19
-rw-r--r--tests/run_tests.sh22
-rw-r--r--tests/testcases/basic.py18
-rw-r--r--tests/testcases/clear_shadow_unredirected.py52
-rw-r--r--tests/testcases/common.py85
-rw-r--r--tests/testcases/issue239.py40
-rw-r--r--tests/testcases/issue239_2.py52
-rw-r--r--tests/testcases/issue239_3.py47
-rw-r--r--tests/testcases/issue239_3_norefresh.py45
-rw-r--r--tests/testcases/issue299.py112
-rw-r--r--tests/testcases/issue314.py44
-rw-r--r--tests/testcases/issue314_2.py46
-rw-r--r--tests/testcases/issue314_3.py63
-rw-r--r--tests/testcases/issue357.py34
-rw-r--r--tests/testcases/issue394.py35
-rw-r--r--tests/testcases/issue465.py40
-rw-r--r--tests/testcases/issue525.py36
-rw-r--r--tests/testcases/redirect_when_unmapped_window_has_shadow.py65
27 files changed, 0 insertions, 896 deletions
diff --git a/tests/configs/clear_shadow_unredirected.conf b/tests/configs/clear_shadow_unredirected.conf
deleted file mode 100644
index f70b461..0000000
--- a/tests/configs/clear_shadow_unredirected.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-shadow = true;
-shadow-exclude = [
-"name = 'NoShadow'"
-]
-unredir-if-possible = true;
diff --git a/tests/configs/empty.conf b/tests/configs/empty.conf
deleted file mode 100644
index e69de29..0000000
--- a/tests/configs/empty.conf
+++ /dev/null
diff --git a/tests/configs/issue239.conf b/tests/configs/issue239.conf
deleted file mode 100644
index 23a4c80..0000000
--- a/tests/configs/issue239.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-fading = true;
-fade-in-step = 1;
-fade-out-step = 0.01;
-shadow = true;
-shadow-exclude = [
-"name = 'NoShadow'"
-]
diff --git a/tests/configs/issue239_2.conf b/tests/configs/issue239_2.conf
deleted file mode 100644
index 5f89f47..0000000
--- a/tests/configs/issue239_2.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-fading = true;
-fade-in-step = 1;
-fade-out-step = 0.01;
-shadow = true;
-shadow-exclude = [
-"name = 'NoShadow'"
-]
-unredir-if-possible = true;
diff --git a/tests/configs/issue239_3.conf b/tests/configs/issue239_3.conf
deleted file mode 100644
index b8a1d69..0000000
--- a/tests/configs/issue239_3.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-shadow = true;
-shadow-exclude = [
-"name = 'NoShadow'"
-]
diff --git a/tests/configs/issue314.conf b/tests/configs/issue314.conf
deleted file mode 100644
index bb3c4cb..0000000
--- a/tests/configs/issue314.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-fading = true
-fade-in-step = 0.01
-fade-out-step = 0.01
-inactive-opacity = 0
-blur-background = true
-force-win-blend = true
diff --git a/tests/configs/issue357.conf b/tests/configs/issue357.conf
deleted file mode 100644
index 00c3ba6..0000000
--- a/tests/configs/issue357.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-fading = true;
-fade-in-step = 1;
-fade-out-step = 0.01;
diff --git a/tests/configs/issue394.conf b/tests/configs/issue394.conf
deleted file mode 100644
index 0e33a1c..0000000
--- a/tests/configs/issue394.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-fading = true;
-fade-in-step = 1;
-fade-out-step = 0.01;
-shadow = true;
diff --git a/tests/configs/issue465.conf b/tests/configs/issue465.conf
deleted file mode 100644
index 313371d..0000000
--- a/tests/configs/issue465.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-shadow = true;
-shadow-exclude = [
- "focused != 1"
-];
diff --git a/tests/run_one_test.sh b/tests/run_one_test.sh
deleted file mode 100644
index 4619359..0000000
--- a/tests/run_one_test.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-set -xe
-if [ -z $DISPLAY ]; then
- exec xvfb-run -s "+extension composite" -a $0 $1 $2 $3
-fi
-
-echo "Running test $2"
-
-# TODO keep the log file, and parse it to see if test is successful
-($1 --dbus --experimental-backends --backend dummy --log-level=debug --log-file=$PWD/log --config=$2) &
-main_pid=$!
-$3
-
-kill -INT $main_pid || true
-cat log
-rm log
-wait $main_pid
-
-
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
deleted file mode 100644
index 6a5a6b3..0000000
--- a/tests/run_tests.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/sh
-set -e
-exe=$(realpath $1)
-cd $(dirname $0)
-
-eval `dbus-launch --sh-syntax`
-
-./run_one_test.sh $exe configs/empty.conf testcases/basic.py
-./run_one_test.sh $exe configs/issue357.conf testcases/issue357.py
-./run_one_test.sh $exe configs/issue239.conf testcases/issue239.py
-./run_one_test.sh $exe configs/issue239_2.conf testcases/issue239_2.py
-./run_one_test.sh $exe configs/issue239_3.conf testcases/issue239_3.py
-./run_one_test.sh $exe configs/issue239_3.conf testcases/issue239_3_norefresh.py
-./run_one_test.sh $exe configs/issue314.conf testcases/issue314.py
-./run_one_test.sh $exe configs/issue314.conf testcases/issue314_2.py
-./run_one_test.sh $exe configs/issue314.conf testcases/issue314_3.py
-./run_one_test.sh $exe /dev/null testcases/issue299.py
-./run_one_test.sh $exe configs/issue465.conf testcases/issue465.py
-./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
diff --git a/tests/testcases/basic.py b/tests/testcases/basic.py
deleted file mode 100644
index d0ecaf1..0000000
--- a/tests/testcases/basic.py
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/env python
-
-import xcffib.xproto as xproto
-import xcffib
-
-conn = xcffib.connect()
-setup = conn.get_setup()
-root = setup.roots[0].root
-visual = setup.roots[0].root_visual
-depth = setup.roots[0].root_depth
-
-wid = conn.generate_id()
-conn.core.CreateWindowChecked(depth, wid, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-conn.core.MapWindowChecked(wid).check()
-conn.core.UnmapWindowChecked(wid).check()
-conn.core.DestroyWindowChecked(wid).check()
-
-
diff --git a/tests/testcases/clear_shadow_unredirected.py b/tests/testcases/clear_shadow_unredirected.py
deleted file mode 100644
index 4a9f531..0000000
--- a/tests/testcases/clear_shadow_unredirected.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/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
-
-name = "_NET_WM_STATE"
-name_atom = conn.core.InternAtom(False, len(name), name).reply().atom
-atom = "ATOM"
-atom_atom = conn.core.InternAtom(False, len(atom), atom).reply().atom
-fs = "_NET_WM_STATE_FULLSCREEN"
-fs_atom = conn.core.InternAtom(False, len(fs), fs).reply().atom
-
-# making sure disabling shadow while screen is unredirected doesn't cause assertion failure
-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()
-
-# Set Window name so it does get a shadow
-set_window_name(conn, wid, "YesShadow")
-
-# Map the window
-print("mapping")
-conn.core.MapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Set fullscreen property, causing screen to be unredirected
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, name_atom, atom_atom, 32, 1, [fs_atom]).check()
-
-time.sleep(0.5)
-
-# Set the Window name so it loses its shadow
-print("set new name")
-set_window_name(conn, wid, "NoShadow")
-
-# Unmap the window
-conn.core.UnmapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Destroy the window
-conn.core.DestroyWindowChecked(wid).check()
diff --git a/tests/testcases/common.py b/tests/testcases/common.py
deleted file mode 100644
index 8214aff..0000000
--- a/tests/testcases/common.py
+++ /dev/null
@@ -1,85 +0,0 @@
-import xcffib.xproto as xproto
-import xcffib.randr as randr
-import xcffib
-import time
-import random
-import string
-
-def to_atom(conn, string):
- return conn.core.InternAtom(False, len(string), string).reply().atom
-
-def set_window_name(conn, wid, name):
- prop_name = to_atom(conn, "_NET_WM_NAME")
- str_type = to_atom(conn, "UTF8_STRING")
- conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, prop_name, str_type, 8, len(name), name).check()
- prop_name = to_atom(conn, "WM_NAME")
- str_type = to_atom(conn, "STRING")
- conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, prop_name, str_type, 8, len(name), name).check()
-
-def set_window_state(conn, wid, state):
- prop_name = to_atom(conn, "WM_STATE")
- conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, prop_name, prop_name, 32, 2, [state, 0]).check()
-
-def set_window_class(conn, wid, name):
- if not isinstance(name, bytearray):
- name = name.encode()
- name = name+b"\0"+name+b"\0"
- prop_name = to_atom(conn, "WM_CLASS")
- str_type = to_atom(conn, "STRING")
- conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, prop_name, str_type, 8, len(name), name).check()
-
-def set_window_size_async(conn, wid, width, height):
- value_mask = xproto.ConfigWindow.Width | xproto.ConfigWindow.Height
- value_list = [width, height]
- return conn.core.ConfigureWindowChecked(wid, value_mask, value_list)
-
-def find_picom_window(conn):
- prop_name = to_atom(conn, "WM_NAME")
- setup = conn.get_setup()
- root = setup.roots[0].root
- windows = conn.core.QueryTree(root).reply()
-
- ext = xproto.xprotoExtension(conn)
- for w in windows.children:
- name = ext.GetProperty(False, w, prop_name, xproto.GetPropertyType.Any, 0, (2 ** 32) - 1).reply()
- if name.value.buf() == b"picom":
- return w
-
-def prepare_root_configure(conn):
- setup = conn.get_setup()
- root = setup.roots[0].root
- # Xorg sends root ConfigureNotify when we add a new mode to an output
- rr = conn(randr.key)
- name = ''.join([random.choice(string.ascii_letters + string.digits) for n in range(0, 32)])
- mode_info = randr.ModeInfo.synthetic(id = 0, width = 1000, height = 1000, dot_clock = 0,
- hsync_start = 0, hsync_end = 0, htotal = 0, hskew = 0, vsync_start = 0, vsync_end = 0,
- vtotal = 0, name_len = len(name), mode_flags = 0)
-
- reply = rr.CreateMode(root, mode_info, len(name), name).reply()
- mode = reply.mode
- reply = rr.GetScreenResourcesCurrent(root).reply()
- # our xvfb is setup to only have 1 output
- output = reply.outputs[0]
- rr.AddOutputModeChecked(output, mode).check()
- return reply, mode, output
-
-def trigger_root_configure(conn, reply, mode, output):
- rr = conn(randr.key)
- return rr.SetCrtcConfig(reply.crtcs[0], reply.timestamp, reply.config_timestamp, 0, 0, mode, randr.Rotation.Rotate_0, 1, [output])
-
-def find_32bit_visual(conn):
- setup = conn.get_setup()
- render = conn(xcffib.render.key)
- r = render.QueryPictFormats().reply()
- pictfmt_ids = set()
- for pictform in r.formats:
- if (pictform.depth == 32 and
- pictform.type == xcffib.render.PictType.Direct and
- pictform.direct.alpha_mask != 0):
- pictfmt_ids.add(pictform.id)
- print(pictfmt_ids)
- for screen in r.screens:
- for depth in screen.depths:
- for pv in depth.visuals:
- if pv.format in pictfmt_ids:
- return pv.visual
diff --git a/tests/testcases/issue239.py b/tests/testcases/issue239.py
deleted file mode 100644
index fe3f636..0000000
--- a/tests/testcases/issue239.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/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 239 is caused by a window gaining a shadow during its fade-out transition
-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()
-
-# Set Window name so it doesn't get a shadow
-set_window_name(conn, wid, "NoShadow")
-
-# Map the window
-print("mapping")
-conn.core.MapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Set the Window name so it gets a shadow
-print("set new name")
-set_window_name(conn, wid, "YesShadow")
-
-# Unmap the window
-conn.core.UnmapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Destroy the window
-conn.core.DestroyWindowChecked(wid).check()
diff --git a/tests/testcases/issue239_2.py b/tests/testcases/issue239_2.py
deleted file mode 100644
index 54f5412..0000000
--- a/tests/testcases/issue239_2.py
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-
-import xcffib.xproto as xproto
-import xcffib
-import time
-
-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 239 is caused by a window gaining a shadow during its fade-out transition
-wid = conn.generate_id()
-print("Window ids are ", hex(wid))
-
-# Create a window
-mask = xproto.CW.BackPixel
-value = [ setup.roots[0].white_pixel ]
-conn.core.CreateWindowChecked(depth, wid, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, mask, value).check()
-
-name = "_NET_WM_STATE"
-name_atom = conn.core.InternAtom(False, len(name), name).reply().atom
-atom = "ATOM"
-atom_atom = conn.core.InternAtom(False, len(atom), atom).reply().atom
-fs = "_NET_WM_STATE_FULLSCREEN"
-fs_atom = conn.core.InternAtom(False, len(fs), fs).reply().atom
-
-
-# Map the window, causing screen to be redirected
-conn.core.MapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Set fullscreen property, causing screen to be unredirected
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, name_atom, atom_atom, 32, 1, [fs_atom]).check()
-
-time.sleep(0.5)
-
-# Clear fullscreen property, causing screen to be redirected
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid, name_atom, atom_atom, 32, 0, []).check()
-
-# Do a round trip to X server so the compositor has a chance to start the rerun of _draw_callback
-conn.core.GetInputFocus().reply()
-
-# Unmap the window, triggers the bug
-conn.core.UnmapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Destroy the window
-conn.core.DestroyWindowChecked(wid).check()
diff --git a/tests/testcases/issue239_3.py b/tests/testcases/issue239_3.py
deleted file mode 100644
index 3bc9661..0000000
--- a/tests/testcases/issue239_3.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/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 239 is caused by a window gaining a shadow during its fade-out transition
-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()
-
-# Set Window name so it gets a shadow
-set_window_name(conn, wid, "YesShadow")
-
-# Map the window
-print("mapping")
-conn.core.MapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-print("set new name")
-set_window_name(conn, wid, "NoShadow")
-
-time.sleep(0.5)
-
-# Set the Window name so it gets a shadow
-print("set new name")
-set_window_name(conn, wid, "YesShadow")
-
-time.sleep(0.5)
-
-# Unmap the window
-conn.core.UnmapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Destroy the window
-conn.core.DestroyWindowChecked(wid).check()
diff --git a/tests/testcases/issue239_3_norefresh.py b/tests/testcases/issue239_3_norefresh.py
deleted file mode 100644
index edcf1c2..0000000
--- a/tests/testcases/issue239_3_norefresh.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/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 239 is caused by a window gaining a shadow during its fade-out transition
-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()
-
-# Set Window name so it gets a shadow
-set_window_name(conn, wid, "YesShadow")
-
-# Map the window
-print("mapping")
-conn.core.MapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-print("set new name")
-set_window_name(conn, wid, "NoShadow")
-
-# Set the Window name so it gets a shadow
-print("set new name")
-set_window_name(conn, wid, "YesShadow")
-
-time.sleep(0.5)
-
-# Unmap the window
-conn.core.UnmapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Destroy the window
-conn.core.DestroyWindowChecked(wid).check()
diff --git a/tests/testcases/issue299.py b/tests/testcases/issue299.py
deleted file mode 100644
index d8be70c..0000000
--- a/tests/testcases/issue299.py
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/usr/bin/env python3
-
-import xcffib.xproto as xproto
-import xcffib
-import time
-import os
-import subprocess
-import asyncio
-from dbus_next.aio import MessageBus
-from dbus_next.message import Message, MessageType
-from common import *
-
-display = os.environ["DISPLAY"].replace(":", "_")
-conn = xcffib.connect()
-setup = conn.get_setup()
-root = setup.roots[0].root
-visual = setup.roots[0].root_visual
-depth = setup.roots[0].root_depth
-x = xproto.xprotoExtension(conn)
-visual32 = find_32bit_visual(conn)
-
-async def get_client_win_async(wid):
- message = await bus.call(Message(destination='com.github.chjj.compton.'+display,
- path='/',
- interface='com.github.chjj.compton',
- member='win_get',
- signature='us',
- body=[wid, 'client_win']))
- return message.body[0]
-
-def get_client_win(wid):
- return loop.run_until_complete(get_client_win_async(wid))
-
-def wait():
- time.sleep(0.5)
-
-def create_client_window(name):
- client_win = conn.generate_id()
- print("Window : ", hex(client_win))
- conn.core.CreateWindowChecked(depth, client_win, root, 0, 0, 100, 100, 0,
- xproto.WindowClass.InputOutput, visual, 0, []).check()
- set_window_name(conn, client_win, "Test window "+name)
- set_window_class(conn, client_win, "Test windows")
- set_window_state(conn, client_win, 1)
- conn.core.MapWindowChecked(client_win).check()
- return client_win
-
-loop = asyncio.get_event_loop()
-bus = loop.run_until_complete(MessageBus().connect())
-
-cmid = conn.generate_id()
-colormap = conn.core.CreateColormapChecked(xproto.ColormapAlloc._None, cmid, root, visual32).check()
-
-# Create window
-client_wins = []
-for i in range(0,2):
- client_wins.append(create_client_window(str(i)))
-
-# Create frame window
-frame_win = conn.generate_id()
-print("Window : ", hex(frame_win))
-conn.core.CreateWindowChecked(depth, frame_win, root, 0, 0, 200, 200, 0,
- xproto.WindowClass.InputOutput, visual, 0, []).check()
-set_window_name(conn, frame_win, "Frame")
-conn.core.MapWindowChecked(frame_win).check()
-
-# Scenario 1.1
-# 1. reparent placeholder to frame
-conn.core.ReparentWindowChecked(client_wins[0], frame_win, 0, 0).check()
-wait()
-# 2. reparent real client to frame
-conn.core.ReparentWindowChecked(client_wins[1], frame_win, 0, 0).check()
-wait()
-# 3. detach the placeholder
-conn.core.ReparentWindowChecked(client_wins[0], root, 0, 0).check()
-wait()
-assert get_client_win(frame_win) == client_wins[1]
-
-# Scenario 1.2
-# 1. reparent placeholder to frame
-conn.core.ReparentWindowChecked(client_wins[0], frame_win, 0, 0).check()
-wait()
-# 2. reparent real client to frame
-conn.core.ReparentWindowChecked(client_wins[1], frame_win, 0, 0).check()
-wait()
-# 3. destroy the placeholder
-conn.core.DestroyWindowChecked(client_wins[0]).check()
-wait()
-assert get_client_win(frame_win) == client_wins[1]
-
-client_wins[0] = create_client_window("0")
-
-# Scenario 2
-# 1. frame is unmapped
-conn.core.UnmapWindowChecked(frame_win).check()
-wait()
-# 2. reparent placeholder to frame
-conn.core.ReparentWindowChecked(client_wins[0], frame_win, 0, 0).check()
-wait()
-# 3. destroy placeholder, map frame and reparent real client to frame
-conn.core.DestroyWindowChecked(client_wins[0]).check()
-conn.core.MapWindowChecked(frame_win).check()
-conn.core.ReparentWindowChecked(client_wins[1], frame_win, 0, 0).check()
-wait()
-assert get_client_win(frame_win) == client_wins[1]
-
-client_wins[0] = create_client_window("0")
-
-# Destroy the windows
-for wid in client_wins:
- conn.core.DestroyWindowChecked(wid).check()
-conn.core.DestroyWindowChecked(frame_win).check()
diff --git a/tests/testcases/issue314.py b/tests/testcases/issue314.py
deleted file mode 100644
index ee29fc4..0000000
--- a/tests/testcases/issue314.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python
-
-import xcffib.xproto as xproto
-import xcffib
-import time
-from common import set_window_name, trigger_root_configure
-
-conn = xcffib.connect()
-setup = conn.get_setup()
-root = setup.roots[0].root
-visual = setup.roots[0].root_visual
-depth = setup.roots[0].root_depth
-x = xproto.xprotoExtension(conn)
-
-# issue 314 is caused by changing a windows target opacity during its fade-in/-out transition
-wid1 = conn.generate_id()
-print("Window 1: ", hex(wid1))
-wid2 = conn.generate_id()
-print("Window 2: ", hex(wid2))
-
-# Create windows
-conn.core.CreateWindowChecked(depth, wid1, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-conn.core.CreateWindowChecked(depth, wid2, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-
-# Set Window names
-set_window_name(conn, wid1, "Test window 1")
-set_window_name(conn, wid2, "Test window 2")
-
-# Check updating opacity while UNMAPPING/DESTROYING windows
-print("Mapping 1")
-conn.core.MapWindowChecked(wid1).check()
-print("Mapping 2")
-conn.core.MapWindowChecked(wid2).check()
-time.sleep(0.5)
-
-x.SetInputFocusChecked(0, wid1, xproto.Time.CurrentTime).check()
-time.sleep(0.5)
-
-# Destroy the windows
-print("Destroy 1 while fading out")
-conn.core.DestroyWindowChecked(wid1).check()
-x.SetInputFocusChecked(0, wid2, xproto.Time.CurrentTime).check()
-time.sleep(1)
-conn.core.DestroyWindowChecked(wid2).check()
diff --git a/tests/testcases/issue314_2.py b/tests/testcases/issue314_2.py
deleted file mode 100644
index c19d6cd..0000000
--- a/tests/testcases/issue314_2.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/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
-x = xproto.xprotoExtension(conn)
-
-opacity_80 = [int(0xffffffff * 0.8), ]
-opacity_single = [int(0xffffffff * 0.002), ]
-
-# issue 314 is caused by changing a windows target opacity during its fade-in/-out transition
-wid1 = conn.generate_id()
-print("Window 1: ", hex(wid1))
-
-atom = "_NET_WM_WINDOW_OPACITY"
-opacity_atom = conn.core.InternAtom(False, len(atom), atom).reply().atom
-
-# Create windows
-conn.core.CreateWindowChecked(depth, wid1, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-
-# Set Window names
-set_window_name(conn, wid1, "Test window 1")
-
-# Check updating opacity while MAPPING windows
-print("Mapping window")
-conn.core.MapWindowChecked(wid1).check()
-time.sleep(0.5)
-
-print("Update opacity while fading in")
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_80).check()
-time.sleep(0.2)
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_single).check()
-time.sleep(1)
-
-conn.core.DeletePropertyChecked(wid1, opacity_atom).check()
-time.sleep(0.5)
-
-# Destroy the windows
-conn.core.DestroyWindowChecked(wid1).check()
diff --git a/tests/testcases/issue314_3.py b/tests/testcases/issue314_3.py
deleted file mode 100644
index 9d4ee3a..0000000
--- a/tests/testcases/issue314_3.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/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
-x = xproto.xprotoExtension(conn)
-
-opacity_100 = [0xffffffff, ]
-opacity_80 = [int(0xffffffff * 0.8), ]
-opacity_single = [int(0xffffffff * 0.002), ]
-opacity_0 = [0, ]
-
-# issue 314 is caused by changing a windows target opacity during its fade-in/-out transition
-wid1 = conn.generate_id()
-print("Window 1: ", hex(wid1))
-
-atom = "_NET_WM_WINDOW_OPACITY"
-opacity_atom = conn.core.InternAtom(False, len(atom), atom).reply().atom
-
-# Create windows
-conn.core.CreateWindowChecked(depth, wid1, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-
-# Set Window names
-set_window_name(conn, wid1, "Test window 1")
-
-# Check updating opacity while FADING windows
-print("Mapping window")
-conn.core.MapWindowChecked(wid1).check()
-time.sleep(1.2)
-
-print("Update opacity while fading out")
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_single).check()
-time.sleep(0.2)
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_0).check()
-time.sleep(1)
-
-print("Change from fading in to fading out")
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_80).check()
-time.sleep(0.5)
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_0).check()
-time.sleep(1)
-
-print("Update opacity while fading in")
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_80).check()
-time.sleep(0.2)
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_100).check()
-time.sleep(1)
-
-print("Change from fading out to fading in")
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_0).check()
-time.sleep(0.5)
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid1, opacity_atom, xproto.Atom.CARDINAL, 32, 1, opacity_80).check()
-time.sleep(1)
-
-# Destroy the windows
-conn.core.DestroyWindowChecked(wid1).check()
diff --git a/tests/testcases/issue357.py b/tests/testcases/issue357.py
deleted file mode 100644
index 9f95a4d..0000000
--- a/tests/testcases/issue357.py
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env python
-
-import xcffib.xproto as xproto
-import xcffib
-import time
-from common import set_window_name, trigger_root_configure, prepare_root_configure
-
-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 357 is triggered when a window is destroyed right after configure_root
-wid = conn.generate_id()
-print("Window 1: ", hex(wid))
-
-# Create a window
-conn.core.CreateWindowChecked(depth, wid, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-
-# Set Window name
-set_window_name(conn, wid, "Test window 1")
-
-print("mapping 1")
-conn.core.MapWindowChecked(wid).check()
-time.sleep(0.5)
-
-reply, mode, output = prepare_root_configure(conn)
-trigger_root_configure(conn, reply, mode, output).reply()
-
-# Destroy the windows
-conn.core.DestroyWindowChecked(wid).check()
-
-time.sleep(1)
diff --git a/tests/testcases/issue394.py b/tests/testcases/issue394.py
deleted file mode 100644
index 3bc4877..0000000
--- a/tests/testcases/issue394.py
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-
-import xcffib.xproto as xproto
-import xcffib
-import time
-from common import set_window_name, set_window_size_async
-
-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 394 is caused by a window getting a size update just before destroying leading to a shadow update on destroyed window.
-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()
-
-# Set Window name so it doesn't get a shadow
-set_window_name(conn, wid, "Test Window")
-
-# Map the window
-print("mapping")
-conn.core.MapWindowChecked(wid).check()
-
-time.sleep(0.5)
-
-# Resize the window and destroy
-print("resize and destroy")
-set_window_size_async(conn, wid, 150, 150)
-conn.core.DestroyWindowChecked(wid).check()
-
-time.sleep(0.5)
diff --git a/tests/testcases/issue465.py b/tests/testcases/issue465.py
deleted file mode 100644
index 588be91..0000000
--- a/tests/testcases/issue465.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/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
-x = xproto.xprotoExtension(conn)
-
-# issue 465 is triggered when focusing a new window with a shadow-exclude rule for unfocused windows.
-wid1 = conn.generate_id()
-print("Window 1: ", hex(wid1))
-wid2 = conn.generate_id()
-print("Window 2: ", hex(wid2))
-
-# Create a window
-conn.core.CreateWindowChecked(depth, wid1, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-conn.core.CreateWindowChecked(depth, wid2, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-
-# Set Window name
-set_window_name(conn, wid1, "Test window 1")
-set_window_name(conn, wid2, "Test window 2")
-
-print("mapping 1")
-conn.core.MapWindowChecked(wid1).check()
-print("mapping 2")
-conn.core.MapWindowChecked(wid2).check()
-time.sleep(0.5)
-
-x.SetInputFocusChecked(0, wid1, xproto.Time.CurrentTime).check()
-time.sleep(0.5)
-
-# Destroy the windows
-conn.core.DestroyWindowChecked(wid1).check()
-time.sleep(1)
diff --git a/tests/testcases/issue525.py b/tests/testcases/issue525.py
deleted file mode 100644
index 317e308..0000000
--- a/tests/testcases/issue525.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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()
diff --git a/tests/testcases/redirect_when_unmapped_window_has_shadow.py b/tests/testcases/redirect_when_unmapped_window_has_shadow.py
deleted file mode 100644
index aeceb33..0000000
--- a/tests/testcases/redirect_when_unmapped_window_has_shadow.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/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
-
-name = "_NET_WM_STATE"
-name_atom = conn.core.InternAtom(False, len(name), name).reply().atom
-atom = "ATOM"
-atom_atom = conn.core.InternAtom(False, len(atom), atom).reply().atom
-fs = "_NET_WM_STATE_FULLSCREEN"
-fs_atom = conn.core.InternAtom(False, len(fs), fs).reply().atom
-
-wid1 = conn.generate_id()
-print("Window 1 id is ", hex(wid1))
-
-# Create a window
-conn.core.CreateWindowChecked(depth, wid1, root, 0, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-
-# Map the window
-print("mapping 1")
-conn.core.MapWindowChecked(wid1).check()
-
-time.sleep(0.5)
-
-print("unmapping 1")
-# Unmap the window
-conn.core.UnmapWindowChecked(wid1).check()
-
-time.sleep(0.5)
-
-# create and map a second window
-wid2 = conn.generate_id()
-print("Window 2 id is ", hex(wid2))
-conn.core.CreateWindowChecked(depth, wid2, root, 200, 0, 100, 100, 0, xproto.WindowClass.InputOutput, visual, 0, []).check()
-print("mapping 2")
-conn.core.MapWindowChecked(wid2).check()
-time.sleep(0.5)
-
-# Set fullscreen property on the second window, causing screen to be unredirected
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid2, name_atom, atom_atom, 32, 1, [fs_atom]).check()
-
-time.sleep(0.5)
-
-# Unset fullscreen property on the second window, causing screen to be redirected
-conn.core.ChangePropertyChecked(xproto.PropMode.Replace, wid2, name_atom, atom_atom, 32, 0, []).check()
-
-time.sleep(0.5)
-
-# map the first window again
-print("mapping 1")
-conn.core.MapWindowChecked(wid1).check()
-
-time.sleep(0.5)
-
-# Destroy the windows
-conn.core.DestroyWindowChecked(wid1).check()
-conn.core.DestroyWindowChecked(wid2).check()