mirror of
https://github.com/LGUG2Z/komorebi.git
synced 2026-11-14 21:04:04 +01:00
scripts/sync-e2e-core copies komorebi_vm.core and the unit tests that belong to it into another directory, and --check says whether the copy is in step, so that kfw's Windows platform can be written against the code it will run with while the move is not made. This repository is the source until the move, and the script goes with it. Two of those tests imported Rect and Checks from komorebi_vm, which pulls in the KDE half; they import them from komorebi_vm.core now. The copy passes its 25 tests in a directory with nothing but pytest and Pillow.
52 lines
1.6 KiB
Bash
Executable File
52 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Keeps a copy of the platform-neutral part of the VM library in step with this repository, while
|
|
# that part is on its way to kfw (the plan in docs/dev/vm-tests.md, "Writing a scenario"): the
|
|
# package komorebi_vm.core, and the unit tests that belong to it. The source is this repository until
|
|
# the move is made, and the script goes with it.
|
|
#
|
|
# scripts/sync-e2e-core DEST copy into DEST/komorebi_vm/core and DEST/tests
|
|
# scripts/sync-e2e-core --check DEST say what differs, and exit 1 if anything does
|
|
#
|
|
# Nothing else of DEST is touched, and a file of DEST that is not here is reported and left alone.
|
|
set -euo pipefail
|
|
|
|
check=0
|
|
if [ "${1:-}" = --check ]; then
|
|
check=1
|
|
shift
|
|
fi
|
|
dest=${1:?usage: sync-e2e-core [--check] DEST}
|
|
repo=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
|
|
lib=$repo/nix/tests/vm/lib
|
|
|
|
tests=(fake_platform.py test_checks.py test_pixels.py test_snapshot.py test_tiling.py test_focus_moving.py)
|
|
|
|
status=0
|
|
sync() {
|
|
local from=$1 to=$2
|
|
if [ "$check" = 1 ]; then
|
|
diff -r -x __pycache__ "$from" "$to" >/dev/null 2>&1 || { echo "differs: $to"; status=1; }
|
|
else
|
|
mkdir -p "$to"
|
|
rsync -a --delete --exclude __pycache__ "$from"/ "$to"/
|
|
fi
|
|
}
|
|
|
|
sync "$lib/komorebi_vm/core" "$dest/komorebi_vm/core"
|
|
|
|
for t in "${tests[@]}"; do
|
|
if [ "$check" = 1 ]; then
|
|
cmp -s "$lib/tests/$t" "$dest/tests/$t" || { echo "differs: $dest/tests/$t"; status=1; }
|
|
else
|
|
mkdir -p "$dest/tests"
|
|
cp "$lib/tests/$t" "$dest/tests/$t"
|
|
fi
|
|
done
|
|
|
|
if [ "$check" = 0 ]; then
|
|
echo "synced komorebi_vm/core and ${#tests[@]} tests into $dest"
|
|
else
|
|
[ "$status" = 0 ] && echo "in step"
|
|
fi
|
|
exit "$status"
|