| #!/bin/sh |
| |
| # Renumber a test |
| dir="$(dirname "$0")" |
| |
| if [ -z "$1" ] || [ "$1" = "--help" ]; then |
| echo "Usage: $0 path_to_test new_path_to_test" |
| exit 1 |
| fi |
| |
| src="$1" |
| dest="$2" |
| |
| die() { |
| echo "$@" |
| exit 1 |
| } |
| |
| append() { |
| out="$1" |
| shift |
| echo "$@" >> "${out}" |
| } |
| |
| test "${src}" != "${dest}" || die "Test \"${src}\" is the same as dest." |
| test -e "tests/${src}" || die "Test \"${src}\" does not exist." |
| test ! -e "tests/${dest}" || die "Test \"${src}\" already exists." |
| |
| sid="$(basename "${src}")" |
| did="$(basename "${dest}")" |
| |
| sgroup="$(basename "$(dirname "tests/${src}")")" |
| dgroup="$(basename "$(dirname "tests/${dest}")")" |
| |
| sgroupfile="tests/${sgroup}/group" |
| dgroupfile="tests/${dgroup}/group" |
| |
| git mv "tests/${src}" "tests/${dest}" |
| git mv "tests/${src}.out" "tests/${dest}.out" |
| sed -e "s/^# FS[[:space:]]*QA.*Test.*[0-9]\+$/# FS QA Test No. ${did}/g" -i "tests/${dest}" |
| sed -e "s/^QA output created by ${sid}$/QA output created by ${did}/g" -i "tests/${dest}.out" |
| sed -e "s/test-${sid}/test-${did}/g" -i "tests/${dest}.out" |
| |
| grpline="$(grep "^${sid} " "${sgroupfile}")" |
| newgrpline="$(echo "${grpline}" | sed -e "s/^${sid} /${did} /g")" |
| |
| sed -e "/^${sid} .*$/d" -i "${sgroupfile}" |
| cp "${dgroupfile}" "${dgroupfile}.new" |
| append "${dgroupfile}.new" "${newgrpline}" |
| "${dir}/sort-group" "${dgroupfile}.new" |
| mv "${dgroupfile}.new" "${dgroupfile}" |
| |
| echo "Moved \"${src}\" to \"${dest}\"." |
| |
| exit 0 |