unstructured/test_unstructured_ingest/check-diff-evaluation-metrics.sh
Klaijan 777a428071
chore: for ingest-test metrics, also check subdirs (#2079)
- Copy script only went through one layer of subdirectory so it did not
found the match between manifest file and structured output. Now edited
to search all subdirectories.
- `set -e` causes the script to exit at any exit rather than `exit 0`,
fix all scripts that needs to run the copy script to be `set +e` right
before the check diff, then back to `set -e` after
- Edit the default evaluation metrics output from `metrics` to
`metrics-tmp` to account for diff check
- Add a script that checks the differences between old eval metric
output (metrics) and new eval metrics output (metrics-tmp)
2023-11-15 21:02:43 -08:00

52 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# Description: Compare the current evaluation metrics to the previoud evaluation metrics and exit
# with an error if they are different. If the environment variable OVERWRITE_FIXTURES
# is not "false", then this script will instead copy the output files to the expected
# output directory.
#
# Environment Variables:
# - OVERWRITE_FIXTURES: Controls whether to overwrite fixtures or not. default: "false"
set +e
SCRIPT_DIR=$(dirname "$(realpath "$0")")
OVERWRITE_FIXTURES=${OVERWRITE_FIXTURES:-false}
TMP_DIRECTORY_CLEANUP=${TMP_DIRECTORY_CLEANUP:-true}
OUTPUT_ROOT=${OUTPUT_ROOT:-$SCRIPT_DIR}
OUTPUT_DIR=$OUTPUT_ROOT/metrics-tmp
EXPECTED_OUTPUT_DIR=$OUTPUT_ROOT/metrics
# shellcheck disable=SC1091
source "$SCRIPT_DIR"/cleanup.sh
function cleanup() {
cleanup_dir "$OUTPUT_DIR"
}
trap cleanup EXIT
# to update ingest test fixtures, run scripts/ingest-test-fixtures-update.sh on x86_64
if [ "$OVERWRITE_FIXTURES" != "false" ]; then
# force copy (overwrite) files from metrics-tmp (new eval metrics) to metrics (old eval metrics)
cp -rf "$EXPECTED_OUTPUT_DIR" "$EXPECTED_OUTPUT"
# elif ! diff -ru "$EXPECTED_OUTPUT_DIR" "$OUTPUT_DIR" ; then
# "$SCRIPT_DIR"/clean-permissions-files.sh "$OUTPUT_DIR"
# diff -r "$EXPECTED_OUTPUT_DIR" "$OUTPUT_DIR"> outputdiff.txt
# cat outputdiff.txt
# diffstat -c outputdiff.txt
# echo
# echo "There are differences from the previously checked-in structured outputs."
# echo
# echo "If these differences are acceptable, overwrite by the fixtures by setting the env var:"
# echo
# echo " export OVERWRITE_FIXTURES=true"
# echo
# echo "and then rerun this script."
# echo
# echo "NOTE: You'll likely just want to run scripts/ingest-test-fixtures-update.sh on x86_64 hardware"
# echo "to update fixtures for CI."
# echo
# exit 1
fi