CentOS 与 Compton 兼容性测试方案
一 测试目标与环境准备
二 安装与基线验证
三 测试用例与判定标准
| 测试项 | 前置条件 | 操作步骤 | 判定标准 |
|---|---|---|---|
| 安装与启动 | EPEL 已启用 | yum/dnf 安装后执行 compton | 进程存在,无启动报错 |
| 配置文件加载 | 存在 /etc/compton.conf 或 ~/.config/compton.conf | 启动时指定配置文件 | 配置项生效(如阴影、透明度) |
| 合成效果 | 桌面环境运行 | 打开多窗口切换、拖拽、Alt+Tab | 透明/阴影/淡入淡出正常,无明显撕裂 |
| 资源占用 | 空闲与负载场景 | 执行 glxgears/浏览器多标签 | CPU/内存占用稳定,无明显抖动 |
| 多显示器 | 双屏/HiDPI | xrandr 调整分辨率与缩放 | 各显示器合成一致,无黑边/错位 |
| 驱动兼容 | Intel/AMD/NVIDIA | 专有/开源驱动切换后重启会话 | 合成正常,无花屏/闪屏 |
| 与桌面环境 | Openbox/i3/Xfce | 登录对应会话后启动 Compton | 与 WM/DE 无冲突,快捷键与窗口行为正常 |
| 日志与故障恢复 | 前台/后台运行 | 触发异常后查看日志并重启 | 日志定位清晰,killall 后重启可恢复 |
| 长期稳定性 | 持续运行 | 8–24 小时日常使用 | 无崩溃/内存泄漏/显著性能衰减 |
| 安全与策略 | SELinux/AppArmor 启用 | 正常启动与合成 | 无 AVC/拒绝日志,策略不阻断必要操作 |
四 自动化测试脚本示例
#!/usr/bin/env bash
set -Eeuo pipefail
LOGFILE="/tmp/compton_test_$(date +%F_%H-%M-%S).log"
exec >"$LOGFILE" 2>&1
echo "=== [1/5] 环境信息 ==="
uname -a
echo "Session: $XDG_SESSION_TYPE"
lspci -nnk | grep -iA3 "VGA\|Display"
glxinfo | egrep -i "vendor|device|opengl"
echo "=== [2/5] 安装与启动 ==="
if ! command -v compton >/dev/null 2>&1; then
sudo yum install -y epel-release || sudo dnf install -y epel-release
sudo yum install -y compton || sudo dnf install -y compton
fi
compton --version
echo "=== [3/5] 基线验证(前台10秒)==="
timeout 10 compton --config "${XDG_CONFIG_HOME:-$HOME/.config}/compton.conf" \
--backend glx --vsync both --paint-on-overlay --log-level 0 || true
echo "=== [4/5] 稳定性跑测(600秒)==="
timeout 600 compton --config "${XDG_CONFIG_HOME:-$HOME/.config}/compton.conf" \
--backend glx --vsync both --paint-on-overlay --log-level 0 || true
echo "=== [5/5] 日志与结果 ==="
echo "Compton 日志:"
tail -n 100 "${XDG_CACHE_HOME:-$HOME/.cache}/compton/compton.log" 2>/dev/null || echo "未找到 compton.log"
echo "系统日志(最近20行):"
journalctl -xe --since "5 minutes ago" | tail -n 20 || true
echo "测试完成,详细日志见:$LOGFILE"
五 常见问题与排查要点