# Usage: mtr-suites.sh <plugin>...
#
# Run this after `cmake -P run.cmake <plugin>...`, passing the same
# plugin list, from the same directory (the build workspace).
#
# A plugin's MTR suite name does not necessarily match its Foundry
# plugin directory name — e.g. plugin dir "disabled-functions" ships
# a suite named "disabled_functions", and plugin dir "tidesql" ships
# a suite named "tidesdb" under mysql-test/suite/ instead of directly
# under mysql-test/. So suites are discovered from each successfully
# built plugin's fetched source tree: any directory under a
# mysql-test/ (or mysql-test/suite/) directory that contains a
# suite.opt file is taken to be an MTR suite.
#
# Plugins that failed to build (see failed-plugins.sh) or that ship
# no MTR suite at all are silently left out, since MTR aborts the
# entire run if any listed suite doesn't exist.
#
# Prints the discovered suite names, comma-separated and deduped,
# suitable for mysql-test-run.pl --suite=.

scriptdir=$(dirname "$0")
failed=" $("$scriptdir/failed-plugins.sh" "$@") "

suites=
for p in "$@"; do
  case "$failed" in
    *" $p "*) continue ;;
  esac
  b="$p.build"
  for mt in $(find "$b" -type d -name mysql-test 2>/dev/null); do
    for d in "$mt"/*/ "$mt"/suite/*/; do
      [ -f "${d}suite.opt" ] || continue
      suites="$suites
$(basename "$d")"
    done
  done
done

echo "$suites" | sed '/^$/d' | sort -u | tr '\n' ',' | sed 's/,$//'
echo
