Use multipass if LAUNCHER_SHELLS is set on command line

This is primarily for DejaGnu development, and allows the dejagnu(1)
script to be easily tested under a variety of shells.
diff --git a/ChangeLog b/ChangeLog
index fbb4fcd..8984e93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,9 @@
 	testing the dejagnu(1) launcher with a shell specified as
 	LAUNCHER_SHELL on the command line.
 
+	Also add support for multipass testing with multiple shells by
+	setting LAUNCHER_SHELLS to a Tcl list on the command line.
+
 2024-09-12  Jacob Bachmeyer  <jcb@gnu.org>
 
 	* dejagnu: Adjust #! line according to recommendation in the
diff --git a/testsuite/lib/launcher.exp b/testsuite/lib/launcher.exp
index 56e288e..69a8752 100644
--- a/testsuite/lib/launcher.exp
+++ b/testsuite/lib/launcher.exp
@@ -29,6 +29,14 @@
     exit 2
 }
 
+if { [info exists LAUNCHER_SHELLS] } {
+    set MULTIPASS [list [list default LAUNCHER_SHELL= ]]
+    foreach shell $LAUNCHER_SHELLS {
+	lappend MULTIPASS [list $shell \
+			       [join [list LAUNCHER_SHELL $shell] =]]
+    }
+}
+
 # run dejagnu(1) LAUNCHER with ARGLIST, returning { output exit_code }
 proc dejagnu_run { launcher arglist envlist } {
     global LAUNCHER_SHELL errorCode