up
This commit is contained in:
36
scripts/cli/parity-diff.sh
Normal file
36
scripts/cli/parity-diff.sh
Normal file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# DEVOPS-CLI-43-003: parity diff for CLI golden outputs
|
||||
|
||||
EXPECTED_DIR=${EXPECTED_DIR:-"tests/goldens"}
|
||||
ACTUAL_DIR=${ACTUAL_DIR:-"out/cli-goldens"}
|
||||
CLI=${CLI:-"dotnet run --project src/Cli/StellaOps.Cli/StellaOps.Cli.csproj --no-build --"}
|
||||
|
||||
mkdir -p "$ACTUAL_DIR"
|
||||
|
||||
run_case() {
|
||||
local name=$1
|
||||
local args=$2
|
||||
local outfile="${ACTUAL_DIR}/${name}.txt"
|
||||
echo "[parity] running ${name}: ${args}"
|
||||
$CLI $args > "$outfile"
|
||||
}
|
||||
|
||||
run_case "help" "--help"
|
||||
run_case "scan-help" "scan --help"
|
||||
|
||||
diffs=0
|
||||
for expected in $(find "$EXPECTED_DIR" -name '*.txt'); do
|
||||
rel=${expected#$EXPECTED_DIR/}
|
||||
actual="${ACTUAL_DIR}/${rel}"
|
||||
if ! diff -u "$expected" "$actual" > "${ACTUAL_DIR}/${rel}.diff" 2>/dev/null; then
|
||||
echo "[parity] diff for $rel"
|
||||
diffs=$((diffs+1))
|
||||
else
|
||||
rm -f "${ACTUAL_DIR}/${rel}.diff"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[parity] total diffs: $diffs"
|
||||
echo "$diffs" > "${ACTUAL_DIR}/summary.txt"
|
||||
Reference in New Issue
Block a user