diff --git a/tests-ng/compare.sh b/tests-ng/compare.sh new file mode 100755 index 0000000..1fde1dd --- /dev/null +++ b/tests-ng/compare.sh @@ -0,0 +1,76 @@ +#!/usr/bin/env bash +# author: deadc0de6 (https://github.com/deadc0de6) +# Copyright (c) 2023, deadc0de6 + +# exit on first error +set -e + +# get current path +rl="readlink -f" +if ! ${rl} "${0}" >/dev/null 2>&1; then + rl="realpath" + + if ! command -v ${rl}; then + echo "\"${rl}\" not found !" && exit 1 + fi +fi +cur=$(dirname "$(${rl} "${0}")") + +# pivot +prev="${cur}/.." +cd "${prev}" + +# coverage +#export PYTHONPATH=".:${PYTHONPATH}" +bin="python3 -m catcli.catcli" +if command -v coverage 2>/dev/null; then + bin="coverage run -p --source=catcli -m catcli.catcli" + #bin="coverage run -p --source=${prev}/catcli -m catcli.catcli" +fi + +echo "current dir: $(pwd)" +echo "pythonpath: ${PYTHONPATH}" +echo "bin: ${bin}" +${bin} --version + +# get the helpers +# shellcheck source=tests-ng/helper +source "${cur}"/helper +echo -e "$(tput setaf 6)==> RUNNING $(basename "${BASH_SOURCE[0]}") <==$(tput sgr0)" + +########################################################## +# the test +########################################################## + +# create temp dirs +tmpd=$(mktemp -d) +clear_on_exit "${tmpd}" + +catalog="${tmpd}/catalog" + +# index +${bin} -B index -c --catalog="${catalog}" github .github + +cat "${catalog}" +echo "" + +# compare keys +src="tests-ng/assets/github.catalog.json" +src_keys="${tmpd}/src-keys" +dst_keys="${tmpd}/dst-keys" +cat "${src}" | jq '.. | keys?' | jq '.[]' > "${src_keys}" +cat "${catalog}" | jq '.. | keys?' | jq '.[]' > "${dst_keys}" +diff "${src_keys}" "${dst_keys}" + +# native +native="${tmpd}/native.txt" +${bin} -B ls -s -r --format=native --catalog="${catalog}" > "${native}" + +# csv +csv="${tmpd}/csv.txt" +${bin} -B ls -s -r --format=csv --catalog="${catalog}" > "${csv}" + +# the end +echo "test \"$(basename "$0")\" success" +cd "${cur}" +exit 0