188 lines
5.0 KiB
Bash
Executable File
188 lines
5.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_DIR="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
PARSER="$SCRIPT_DIR/parse_205_runner_output.py"
|
|
WRAPPER="$SCRIPT_DIR/run_205_followup_via_agy.sh"
|
|
|
|
REAL_REPO="$(git -C "$REPO_DIR" config --get remote.origin.url)"
|
|
REAL_BRANCH="$(git -C "$REPO_DIR" rev-parse --abbrev-ref HEAD)"
|
|
REAL_COMMIT="$(git -C "$REPO_DIR" rev-parse HEAD)"
|
|
|
|
echo "=== ESECUZIONE TEST AUTOMATICI WRAPPER E PARSER AGY 1.1.11 ==="
|
|
|
|
# Test 1: Output Jetski negato -> wrapper fallisce
|
|
echo -n "Test 1: Output Jetski negato -> "
|
|
TEST_BIN_DIR="$(mktemp -d)"
|
|
cat << 'EOF' > "$TEST_BIN_DIR/agy-ultra"
|
|
#!/usr/bin/env bash
|
|
echo 'jetski: no output produced — a tool required permission auto-denied'
|
|
exit 0
|
|
EOF
|
|
chmod +x "$TEST_BIN_DIR/agy-ultra"
|
|
|
|
set +e
|
|
TEST1_OUT="$(PATH="$TEST_BIN_DIR:$PATH" "$WRAPPER" <<< "test prompt" 2>&1)"
|
|
TEST1_EXIT=$?
|
|
set -e
|
|
rm -rf "$TEST_BIN_DIR"
|
|
|
|
if [ $TEST1_EXIT -ne 0 ]; then
|
|
echo "PASS (Exit Code: $TEST1_EXIT)"
|
|
else
|
|
echo "FAIL (Expected non-zero exit code, got 0)"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 2: Output vuoto -> wrapper fallisce
|
|
echo -n "Test 2: Output vuoto -> "
|
|
TEST_BIN_DIR="$(mktemp -d)"
|
|
cat << 'EOF' > "$TEST_BIN_DIR/agy-ultra"
|
|
#!/usr/bin/env bash
|
|
echo ''
|
|
exit 0
|
|
EOF
|
|
chmod +x "$TEST_BIN_DIR/agy-ultra"
|
|
|
|
set +e
|
|
TEST2_OUT="$(PATH="$TEST_BIN_DIR:$PATH" "$WRAPPER" <<< "test prompt" 2>&1)"
|
|
TEST2_EXIT=$?
|
|
set -e
|
|
rm -rf "$TEST_BIN_DIR"
|
|
|
|
if [ $TEST2_EXIT -ne 0 ]; then
|
|
echo "PASS (Exit Code: $TEST2_EXIT)"
|
|
else
|
|
echo "FAIL (Expected non-zero exit code, got 0)"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 3: task_id null -> parser fallisce
|
|
echo -n "Test 3: task_id null -> "
|
|
INCOMPLETE_REPORT="ESITO_205: riuscito
|
|
REPOSITORY: ${REAL_REPO}
|
|
BRANCH: ${REAL_BRANCH}
|
|
COMMIT: ${REAL_COMMIT}
|
|
CONSOLIDATED_UNIT_ID: 1545
|
|
DATES_USED:
|
|
- 2026-08-10
|
|
TEST_ESEGUITI:
|
|
- pest
|
|
BLOCCO_DATI: no
|
|
NOTE:
|
|
- Incompleto
|
|
ABSORBED_LEGACY_FRAGMENTS:
|
|
- id_cond=12"
|
|
|
|
set +e
|
|
TEST3_OUT="$(python3 "$PARSER" --expected-repo "$REAL_REPO" --expected-branch "$REAL_BRANCH" --expected-commit "$REAL_COMMIT" <<< "$INCOMPLETE_REPORT" 2>&1)"
|
|
TEST3_EXIT=$?
|
|
set -e
|
|
|
|
if [ $TEST3_EXIT -eq 1 ] && [[ "$TEST3_OUT" == *'"ok": false'* ]] && [[ "$TEST3_OUT" == *'"task_id"'* ]]; then
|
|
echo "PASS (Exit Code: $TEST3_EXIT)"
|
|
else
|
|
echo "FAIL (Expected exit code 1 with task_id in missing list)"
|
|
echo "$TEST3_OUT"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 4: '- nessuno' viene scartato e restituisce lista vuota []
|
|
echo -n "Test 4: '- nessuno' viene scartato -> "
|
|
NONE_REPORT="TASK_ID: CT-2026-08-10-TEST-NONE
|
|
ESITO_205: riuscito
|
|
REPOSITORY: ${REAL_REPO}
|
|
BRANCH: ${REAL_BRANCH}
|
|
COMMIT: ${REAL_COMMIT}
|
|
CONSOLIDATED_UNIT_ID: 1545
|
|
ABSORBED_LEGACY_FRAGMENTS:
|
|
- artisan-ultra-real-24825cbb
|
|
OPEN_LEGACY_FRAGMENTS:
|
|
- nessuno
|
|
DATES_USED:
|
|
- 2026-08-09
|
|
TEST_ESEGUITI:
|
|
- test
|
|
BLOCCO_DATI: no
|
|
NOTE:
|
|
- ARTISAN_ULTRA_OK"
|
|
|
|
set +e
|
|
TEST4_OUT="$(python3 "$PARSER" --expected-repo "$REAL_REPO" --expected-branch "$REAL_BRANCH" --expected-commit "$REAL_COMMIT" <<< "$NONE_REPORT" 2>&1)"
|
|
TEST4_EXIT=$?
|
|
set -e
|
|
|
|
if [ $TEST4_EXIT -eq 0 ] && [[ "$TEST4_OUT" == *'"open_legacy_fragments": []'* ]]; then
|
|
echo "PASS (Exit Code: $TEST4_EXIT)"
|
|
else
|
|
echo "FAIL (Expected open_legacy_fragments to be empty array [])"
|
|
echo "$TEST4_OUT"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 5: Liste restituite come array e smoke completo produce ok=true
|
|
echo -n "Test 5: Smoke completo con liste array -> "
|
|
COMPLETE_REPORT="TASK_ID: task-348c024293
|
|
ESITO_205: riuscito
|
|
REPOSITORY: ${REAL_REPO}
|
|
BRANCH: ${REAL_BRANCH}
|
|
COMMIT: ${REAL_COMMIT}
|
|
CONSOLIDATED_UNIT_ID: SMOKE-24825CBB
|
|
ABSORBED_LEGACY_FRAGMENTS:
|
|
- artisan-ultra-real-24825cbb
|
|
OPEN_LEGACY_FRAGMENTS:
|
|
DATES_USED:
|
|
- 2026-08-09
|
|
TEST_ESEGUITI:
|
|
- lettura AGENTS.md e parser rigoroso
|
|
BLOCCO_DATI: no
|
|
NOTE:
|
|
- ARTISAN_ULTRA_24825CBB_REAL_OK"
|
|
|
|
set +e
|
|
TEST5_OUT="$(python3 "$PARSER" --expected-repo "$REAL_REPO" --expected-branch "$REAL_BRANCH" --expected-commit "$REAL_COMMIT" <<< "$COMPLETE_REPORT" 2>&1)"
|
|
TEST5_EXIT=$?
|
|
set -e
|
|
|
|
if [ $TEST5_EXIT -eq 0 ] && [[ "$TEST5_OUT" == *'"ok": true'* ]] && [[ "$TEST5_OUT" == *'"absorbed_legacy_fragments": ['* ]]; then
|
|
echo "PASS (Exit Code: $TEST5_EXIT)"
|
|
else
|
|
echo "FAIL (Expected ok: true with array fields)"
|
|
echo "$TEST5_OUT"
|
|
exit 1
|
|
fi
|
|
|
|
# Test 6: Git diverso dal reale -> fallisce
|
|
echo -n "Test 6: Git diverso dal reale -> "
|
|
MISMATCH_REPORT="TASK_ID: CT-2026-08-10-TEST-001
|
|
ESITO_205: riuscito
|
|
REPOSITORY: ssh://git@wrong-repo.git
|
|
BRANCH: wrong-branch
|
|
COMMIT: deadbeef1234
|
|
CONSOLIDATED_UNIT_ID: 1545
|
|
DATES_USED:
|
|
- 2026-08-10
|
|
TEST_ESEGUITI:
|
|
- pest
|
|
BLOCCO_DATI: no
|
|
NOTE:
|
|
- Mismatch test
|
|
ABSORBED_LEGACY_FRAGMENTS:
|
|
- id_cond=12"
|
|
|
|
set +e
|
|
TEST6_OUT="$(python3 "$PARSER" --expected-repo "$REAL_REPO" --expected-branch "$REAL_BRANCH" --expected-commit "$REAL_COMMIT" <<< "$MISMATCH_REPORT" 2>&1)"
|
|
TEST6_EXIT=$?
|
|
set -e
|
|
|
|
if [ $TEST6_EXIT -eq 1 ] && [[ "$TEST6_OUT" == *'"ok": false'* ]] && [[ "$TEST6_OUT" == *'"repository"'* ]]; then
|
|
echo "PASS (Exit Code: $TEST6_EXIT)"
|
|
else
|
|
echo "FAIL (Expected exit code 1 with git mismatch)"
|
|
echo "$TEST6_OUT"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== TUTTI I TEST HANNO AVUTO ESITO POSITIVO ==="
|