77 lines
2.1 KiB
Bash
77 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Sorts .rpl tests into several categories.
|
|
# Takes a diretory with the tests as an argument and moves the test to its subdirectories.
|
|
# Env variable SCRIPT= sets *_run.sh script for finding working tests, default script is kresd_run.sh
|
|
# Env variable DEST= sets output directory where the tests will be copied and divided into subfolders. Default value is working directory.
|
|
|
|
set -o nounset
|
|
set -o errexit
|
|
|
|
SOURCE="$1"
|
|
|
|
SCRIPT=${SCRIPT:-"./../kresd_run.sh"}
|
|
DEST=${DEST:-"."}
|
|
|
|
rm -rf "$DEST/sorted_tests"
|
|
mkdir "$DEST/sorted_tests"
|
|
for TEST in "$SOURCE/"*.rpl
|
|
do
|
|
cp "$TEST" "$DEST/sorted_tests"
|
|
done
|
|
|
|
# Test with the same name is already imported in deckard/sets/resolver
|
|
echo Already imported:
|
|
mkdir -p "$DEST/sorted_tests/imported"
|
|
for TEST in `comm -12 <(ls -F ../sets/resolver/*.rpl | xargs -n 1 basename) <(ls -F "$DEST/sorted_tests" | xargs -n 1 basename)`
|
|
do
|
|
echo -e '\t' "$TEST"
|
|
mv "$DEST/sorted_tests/$TEST" "$DEST/sorted_tests/imported"
|
|
done
|
|
|
|
# Parse failed
|
|
echo Parse failed:
|
|
mkdir -p "$DEST/sorted_tests/parsefail"
|
|
for TEST in "$DEST/sorted_tests/"*.rpl
|
|
do
|
|
if ! python3 parse.py "$TEST" >/dev/null 2>/dev/null
|
|
then
|
|
echo -e '\t' $(basename "$TEST")
|
|
mv "$TEST" "$DEST/sorted_tests/parsefail"
|
|
fi
|
|
done
|
|
|
|
|
|
# Invalid DSA signatures (common in old testbound tests)
|
|
echo Invalid DSA signatures:
|
|
mkdir -p "$DEST/sorted_tests/invaliddsa"
|
|
for TEST in "$DEST/sorted_tests/"*.rpl
|
|
do
|
|
if ! python3 invalid_dsa.py "$TEST" >/dev/null 2>/dev/null
|
|
then
|
|
echo -e '\t' $(basename "$TEST")
|
|
mv "$TEST" "$DEST/sorted_tests/invaliddsa"
|
|
fi
|
|
done
|
|
|
|
|
|
# Working in selected script
|
|
echo Working in $SCRIPT:
|
|
mkdir -p "$DEST/sorted_tests/working"
|
|
for TEST in "$DEST/sorted_tests/"*.rpl
|
|
do
|
|
if TESTS="$(readlink -m $TEST)" $SCRIPT >/dev/null 2>/dev/null
|
|
then
|
|
echo -e '\t' $(basename "$TEST")
|
|
mv "$TEST" "$DEST/sorted_tests/working"
|
|
fi
|
|
done
|
|
|
|
echo Others:
|
|
mkdir -p "$DEST/sorted_tests/others"
|
|
for TEST in "$DEST/sorted_tests/"*.rpl
|
|
do
|
|
echo -e '\t' $(basename "$TEST")
|
|
mv "$TEST" "$DEST/sorted_tests/others"
|
|
done
|
|
|