feat: add Lima VM E2E tests and fix princeprocessor build

Add Ubuntu 24.04 Lima VM test track that runs hate_crack installation
end-to-end in a real VM, giving higher confidence than Docker-based tests.

- Add lima/hate-crack-test.yaml: Ubuntu 24.04 VM config with hashcat and
  build deps pre-installed via apt; uv installed via official installer
- Add tests/test_lima_vm_install.py: mirrors Docker E2E test structure;
  uses rsync with targeted excludes (wordlists, compiled host binaries)
  and builds wheel directly to avoid setuptools-scm sdist file filtering
- Fix Makefile: add princeprocessor build step with aarch64-compatible
  CFLAGS (drops -m64); copy binary to submodule root for vendor-assets
- Add Lima tests to prek.toml pre-push hook
- Document Lima VM tests in TESTING.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Justin Bollinger
2026-02-20 18:27:09 -05:00
parent 858d343e44
commit 6b6c2f8b4b
5 changed files with 230 additions and 0 deletions

41
lima/hate-crack-test.yaml Normal file
View File

@@ -0,0 +1,41 @@
# Lima VM configuration for hate_crack E2E testing
# Ubuntu 24.04 LTS with hashcat and build dependencies pre-installed.
# Usage: limactl start --name hate-crack-e2e lima/hate-crack-test.yaml
images:
- location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-amd64.img"
arch: "x86_64"
- location: "https://cloud-images.ubuntu.com/releases/24.04/release/ubuntu-24.04-server-cloudimg-arm64.img"
arch: "aarch64"
cpus: 2
memory: "4GiB"
disk: "20GiB"
# No host mounts - full isolation mirrors a real user install
mounts: []
provision:
- mode: system
script: |
#!/bin/bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
curl \
git \
gzip \
hashcat \
ocl-icd-libopencl1 \
pocl-opencl-icd \
p7zip-full \
transmission-cli
- mode: user
script: |
#!/bin/bash
set -euo pipefail
curl -LsSf https://astral.sh/uv/install.sh | sh