diff --git a/testsuite/expect/Makefile.am b/testsuite/expect/Makefile.am
index a8e133394bd92e82d4e1ba1b2a44a483109f4d3d..5f0ca52bffe82e438d18fbadda0a581f76d2995a 100644
--- a/testsuite/expect/Makefile.am
+++ b/testsuite/expect/Makefile.am
@@ -103,6 +103,7 @@ EXTRA_DIST = \
 	test2.9				\
 	test2.10			\
 	test2.11			\
+	test2.12			\
 	test3.1				\
 	test3.2				\
 	test3.3				\
diff --git a/testsuite/expect/Makefile.in b/testsuite/expect/Makefile.in
index ab59b71c6ec96bea173f1b1b6f141cbcfeb0406d..20bdb0ff89eea35971935eb49651ae0dabadacd0 100644
--- a/testsuite/expect/Makefile.in
+++ b/testsuite/expect/Makefile.in
@@ -347,6 +347,7 @@ EXTRA_DIST = \
 	test2.9				\
 	test2.10			\
 	test2.11			\
+	test2.12			\
 	test3.1				\
 	test3.2				\
 	test3.3				\
diff --git a/testsuite/expect/README b/testsuite/expect/README
index d13ee304c40359c8353f84b50e305a5fd3d93179..8da01f22b2d7e2e398c7baff7897f4ec723bd585 100644
--- a/testsuite/expect/README
+++ b/testsuite/expect/README
@@ -199,6 +199,7 @@ test2.8    Validate scontrol show commands for jobs and steps.
 test2.9    Validate scontrol completing command.
 test2.10   Validate scontrol oneliner mode (--oneliner option).
 test2.11   Validate scontrol listpids command.
+test2.12   Validate scontrol show topology option.
 
 
 test3.#    Testing of scontrol options (best run as SlurmUser or root). 
diff --git a/testsuite/expect/test2.12 b/testsuite/expect/test2.12
new file mode 100755
index 0000000000000000000000000000000000000000..6753b534a3fa69f8b54e82de485fccb6d2af9840
--- /dev/null
+++ b/testsuite/expect/test2.12
@@ -0,0 +1,112 @@
+#!/usr/bin/expect
+############################################################################
+# Purpose: Test of SLURM functionality
+#          Validate scontrol show topology option.
+#
+# Output:  "TEST: #.#" followed by "SUCCESS" if test was successful, OR
+#          "FAILURE: ..." otherwise with an explanation of the failure, OR
+#          anything else indicates a failure mode that must be investigated.
+############################################################################
+# Copyright (C) 2009 The Regents of the University of California.
+# Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
+# Written by Morris Jette <jette1@llnl.gov>
+# CODE-OCEC-09-009. All rights reserved.
+# 
+# This file is part of SLURM, a resource management program.
+# For details, see <https://computing.llnl.gov/linux/slurm/>.
+# Please also read the included file: DISCLAIMER.
+#  
+# SLURM is free software; you can redistribute it and/or modify it under
+# the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 2 of the License, or (at your option)
+# any later version.
+# 
+# SLURM is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+# details.
+# 
+# You should have received a copy of the GNU General Public License along
+# with SLURM; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA.
+############################################################################
+source ./globals
+
+set test_id     "2.12"
+set exit_code   0
+
+print_header $test_id
+
+# test if running with Topology/Tree
+set topology_tree 0
+log_user 0
+spawn $scontrol show config
+expect {
+	-re "TopologyPlugin *= *topology/tree" {
+		set topology_tree 1
+		exp_continue
+	}
+	eof {
+		wait
+	}
+}
+log_user 1
+
+if {$topology_tree == 0} {
+	send_user "\nWARNING: This test is only valid with a topology/tree configuration\n"
+	exit 0
+}
+
+#
+# Report the slurm configuration
+#
+set matches     0
+spawn $scontrol show topology
+expect {
+	-re "SwitchName=($alpha_numeric_under)" {
+		if {$matches == 0} {
+			set switch_name $expect_out(1,string)
+		}
+		incr matches
+	}
+	timeout {
+		send_user "\nFAILURE: scontrol not responding\n"
+		set exit_code 1
+	}
+	eof {
+		wait
+	}
+}
+
+if {$matches == 0} {
+	send_user "\nFAILURE: scontrol reported no switches\n"
+	exit 1
+}
+
+#
+# Report one slurm switch
+#
+set matches     0
+spawn $scontrol show topology $switch_name 
+expect {
+	-re "SwitchName" {
+		incr matches
+		exp_continue
+	}
+	timeout {
+		send_user "\nFAILURE: scontrol not responding\n"
+		set exit_code 1
+	}
+	eof {
+		wait
+	}
+}
+if {$matches != 1} {
+	send_user "\nFAILURE: scontrol topology with switch name filter failed\n"
+	set exit_code 1
+}
+
+if {$exit_code == 0} {
+	send_user "\nSUCCESS\n"
+}
+exit $exit_code