From 3cb1cb3d5f9b79a3f1a4913f5277891aeae7fbc9 Mon Sep 17 00:00:00 2001
From: Scott Jackson <scottmo@schedmd.com>
Date: Mon, 25 May 2020 20:06:42 +0200
Subject: [PATCH] Testsuite - Replaced send_user calls with calls to log_*
 procedures

Bug 6597
---
 testsuite/expect/globals        |  6 +--
 testsuite/expect/inc12.3.1      |  6 +--
 testsuite/expect/inc12.3.2      | 11 ++--
 testsuite/expect/inc21.21_tests | 18 +++----
 testsuite/expect/inc21.30.1     |  6 +--
 testsuite/expect/inc21.30.10    |  8 +--
 testsuite/expect/inc21.30.11    |  8 +--
 testsuite/expect/inc21.30.12    |  6 +--
 testsuite/expect/inc21.30.13    |  6 +--
 testsuite/expect/inc21.30.14    |  6 +--
 testsuite/expect/inc21.30.15    |  8 +--
 testsuite/expect/inc21.30.16    |  6 +--
 testsuite/expect/inc21.30.17    |  4 +-
 testsuite/expect/inc21.30.2     |  6 +--
 testsuite/expect/inc21.30.3     |  6 +--
 testsuite/expect/inc21.30.4     |  6 +--
 testsuite/expect/inc21.30.5     |  6 +--
 testsuite/expect/inc21.30.6     |  6 +--
 testsuite/expect/inc21.30.7     |  6 +--
 testsuite/expect/inc21.30.8     |  6 +--
 testsuite/expect/inc21.30.9     |  6 +--
 testsuite/expect/inc21.34.1     |  6 +--
 testsuite/expect/inc21.34.2     |  6 +--
 testsuite/expect/inc22.1.1      |  2 +-
 testsuite/expect/inc22.1.2      |  5 +-
 testsuite/expect/inc22.1.3      | 15 +++---
 testsuite/expect/inc22.1.4      | 10 ++--
 testsuite/expect/inc22.1.5      |  2 +-
 testsuite/expect/inc22.1.fed    | 15 ++----
 testsuite/expect/inc3.11.1      |  8 +--
 testsuite/expect/inc3.11.10     |  6 +--
 testsuite/expect/inc3.11.11     |  2 +-
 testsuite/expect/inc3.11.2      |  4 +-
 testsuite/expect/inc3.11.3      |  4 +-
 testsuite/expect/inc3.11.4      |  4 +-
 testsuite/expect/inc3.11.5      |  4 +-
 testsuite/expect/inc3.11.6      |  7 ++-
 testsuite/expect/inc3.11.7      |  8 +--
 testsuite/expect/inc3.11.8      |  4 +-
 testsuite/expect/inc3.11.9      | 23 ++++----
 testsuite/expect/slurm_status   |  4 +-
 testsuite/expect/test1.100      |  8 +--
 testsuite/expect/test1.101      |  2 +-
 testsuite/expect/test1.103      |  4 +-
 testsuite/expect/test1.104      |  6 +--
 testsuite/expect/test1.105      |  4 +-
 testsuite/expect/test1.106      |  2 +-
 testsuite/expect/test1.13       |  4 +-
 testsuite/expect/test1.14       |  4 +-
 testsuite/expect/test1.15       |  2 +-
 testsuite/expect/test1.17       |  4 +-
 testsuite/expect/test1.18       |  6 +--
 testsuite/expect/test1.19       |  4 +-
 testsuite/expect/test1.20       |  2 +-
 testsuite/expect/test1.21       |  4 +-
 testsuite/expect/test1.23       |  8 +--
 testsuite/expect/test1.24       |  2 +-
 testsuite/expect/test1.26       | 10 ++--
 testsuite/expect/test1.27       |  1 -
 testsuite/expect/test1.29       | 10 ++--
 testsuite/expect/test1.30       |  6 +--
 testsuite/expect/test1.31       |  2 +-
 testsuite/expect/test1.32       |  8 +--
 testsuite/expect/test1.33       |  4 +-
 testsuite/expect/test1.34       |  2 +-
 testsuite/expect/test1.38       |  2 +-
 testsuite/expect/test1.41       |  2 +-
 testsuite/expect/test1.43       |  2 +-
 testsuite/expect/test1.44       |  6 +--
 testsuite/expect/test1.46       |  2 +-
 testsuite/expect/test1.49       |  2 +-
 testsuite/expect/test1.50       |  4 +-
 testsuite/expect/test1.52       |  2 +-
 testsuite/expect/test1.54       |  6 +--
 testsuite/expect/test1.55       |  6 +--
 testsuite/expect/test1.56       |  2 +-
 testsuite/expect/test1.59       | 14 ++---
 testsuite/expect/test1.60       |  2 +-
 testsuite/expect/test1.62       |  6 +--
 testsuite/expect/test1.64       |  4 +-
 testsuite/expect/test1.7        |  4 +-
 testsuite/expect/test1.71       |  4 +-
 testsuite/expect/test1.72       |  2 +-
 testsuite/expect/test1.74       |  8 +--
 testsuite/expect/test1.75       | 10 ++--
 testsuite/expect/test1.76       | 16 +++---
 testsuite/expect/test1.77       |  2 +-
 testsuite/expect/test1.8        |  2 +-
 testsuite/expect/test1.80       |  8 +--
 testsuite/expect/test1.81       |  2 +-
 testsuite/expect/test1.84       |  4 +-
 testsuite/expect/test1.85       |  4 +-
 testsuite/expect/test1.86       | 26 ++++-----
 testsuite/expect/test1.87       | 14 ++---
 testsuite/expect/test1.88       |  2 +-
 testsuite/expect/test1.89       | 17 +++---
 testsuite/expect/test1.90       | 17 +++---
 testsuite/expect/test1.91       |  4 +-
 testsuite/expect/test1.93       |  4 +-
 testsuite/expect/test1.94       |  2 +-
 testsuite/expect/test1.96       |  2 +-
 testsuite/expect/test1.97       |  4 +-
 testsuite/expect/test1.99       | 12 ++---
 testsuite/expect/test10.7       |  3 +-
 testsuite/expect/test10.8       |  4 +-
 testsuite/expect/test12.4       | 48 ++++++++---------
 testsuite/expect/test12.5       |  6 +--
 testsuite/expect/test12.6       | 12 ++---
 testsuite/expect/test12.7       | 22 ++++----
 testsuite/expect/test12.8       |  2 +-
 testsuite/expect/test12.9       |  4 +-
 testsuite/expect/test13.1       |  4 +-
 testsuite/expect/test14.10      |  5 +-
 testsuite/expect/test14.7       |  8 +--
 testsuite/expect/test14.9       |  8 +--
 testsuite/expect/test15.10      |  4 +-
 testsuite/expect/test15.12      |  2 +-
 testsuite/expect/test15.13      |  1 -
 testsuite/expect/test15.18      |  2 +-
 testsuite/expect/test15.23      |  2 +-
 testsuite/expect/test15.26      |  4 +-
 testsuite/expect/test15.31      |  4 +-
 testsuite/expect/test15.32      |  6 +--
 testsuite/expect/test15.33      |  4 +-
 testsuite/expect/test15.5       |  2 +-
 testsuite/expect/test15.7       | 10 ++--
 testsuite/expect/test15.8       |  6 +--
 testsuite/expect/test17.10      | 10 ++--
 testsuite/expect/test17.12      | 48 ++++++++---------
 testsuite/expect/test17.13      |  1 -
 testsuite/expect/test17.14      |  2 +-
 testsuite/expect/test17.15      | 10 ++--
 testsuite/expect/test17.19      |  6 +--
 testsuite/expect/test17.21      |  2 +-
 testsuite/expect/test17.22      |  2 +-
 testsuite/expect/test17.24      |  2 +-
 testsuite/expect/test17.28      |  4 +-
 testsuite/expect/test17.31      |  2 +-
 testsuite/expect/test17.32      |  2 +-
 testsuite/expect/test17.33      |  4 +-
 testsuite/expect/test17.34      |  8 +--
 testsuite/expect/test17.35      |  2 +-
 testsuite/expect/test17.36      |  8 +--
 testsuite/expect/test17.38      |  6 +--
 testsuite/expect/test17.40      |  8 +--
 testsuite/expect/test17.41      |  8 +--
 testsuite/expect/test17.44      |  2 +-
 testsuite/expect/test17.5       |  6 +--
 testsuite/expect/test17.51      | 60 ++++++++++-----------
 testsuite/expect/test17.52      | 32 +++++------
 testsuite/expect/test17.55      |  6 +--
 testsuite/expect/test17.56      |  4 +-
 testsuite/expect/test17.6       |  2 +-
 testsuite/expect/test17.62      |  2 +-
 testsuite/expect/test17.64      | 30 +++++------
 testsuite/expect/test19.5       |  5 +-
 testsuite/expect/test19.9       |  2 +-
 testsuite/expect/test2.14       |  2 +-
 testsuite/expect/test2.17       | 20 +++----
 testsuite/expect/test2.18       |  8 +--
 testsuite/expect/test2.19       |  9 ++--
 testsuite/expect/test2.26       |  8 +--
 testsuite/expect/test2.8        | 14 ++---
 testsuite/expect/test20.1       |  2 +-
 testsuite/expect/test20.12      |  6 +--
 testsuite/expect/test20.3       |  2 +-
 testsuite/expect/test21.10      |  2 +-
 testsuite/expect/test21.11      |  5 +-
 testsuite/expect/test21.12      |  5 +-
 testsuite/expect/test21.14      | 47 ++++++++--------
 testsuite/expect/test21.22      | 18 +++----
 testsuite/expect/test21.24      | 24 ++++-----
 testsuite/expect/test21.26      |  3 --
 testsuite/expect/test21.32      |  8 +--
 testsuite/expect/test21.34      |  4 +-
 testsuite/expect/test21.35      |  5 +-
 testsuite/expect/test21.40      |  6 +--
 testsuite/expect/test21.8       |  2 +-
 testsuite/expect/test21.9       |  2 +-
 testsuite/expect/test22.1       | 26 ++++-----
 testsuite/expect/test22.2       | 20 +++----
 testsuite/expect/test23.1       | 24 ++++-----
 testsuite/expect/test23.2       | 52 +++++++++---------
 testsuite/expect/test24.1       |  4 +-
 testsuite/expect/test24.2       | 24 ++++-----
 testsuite/expect/test24.3       |  4 +-
 testsuite/expect/test24.4       | 10 ++--
 testsuite/expect/test25.1       | 56 +++++++++----------
 testsuite/expect/test28.1       |  2 +-
 testsuite/expect/test28.10      |  2 +-
 testsuite/expect/test28.11      |  6 +--
 testsuite/expect/test28.12      |  4 +-
 testsuite/expect/test28.13      |  2 +-
 testsuite/expect/test28.2       |  4 +-
 testsuite/expect/test28.3       |  2 +-
 testsuite/expect/test28.5       | 12 ++---
 testsuite/expect/test28.7       |  2 +-
 testsuite/expect/test28.8       |  2 +-
 testsuite/expect/test28.9       |  2 +-
 testsuite/expect/test29.5       |  2 +-
 testsuite/expect/test29.6       |  2 +-
 testsuite/expect/test29.8       |  2 +-
 testsuite/expect/test3.10       |  2 +-
 testsuite/expect/test3.13       |  4 +-
 testsuite/expect/test3.15       |  4 +-
 testsuite/expect/test3.16       |  3 +-
 testsuite/expect/test3.17       |  2 +-
 testsuite/expect/test3.18       |  6 +--
 testsuite/expect/test3.2        |  2 +-
 testsuite/expect/test3.5        |  6 +--
 testsuite/expect/test3.6        |  8 ++-
 testsuite/expect/test3.8        |  2 +-
 testsuite/expect/test32.11      |  2 +-
 testsuite/expect/test32.12      |  2 +-
 testsuite/expect/test32.6       |  2 +-
 testsuite/expect/test32.7       |  2 +-
 testsuite/expect/test32.8       |  2 +-
 testsuite/expect/test32.9       |  2 +-
 testsuite/expect/test33.1       | 12 ++---
 testsuite/expect/test34.1       |  8 +--
 testsuite/expect/test34.2       |  4 +-
 testsuite/expect/test35.1       |  4 +-
 testsuite/expect/test35.3       |  2 +-
 testsuite/expect/test35.4       |  6 +--
 testsuite/expect/test35.5       |  3 --
 testsuite/expect/test36.4       |  2 +-
 testsuite/expect/test37.10      | 14 ++---
 testsuite/expect/test37.11      | 12 ++---
 testsuite/expect/test37.12      | 18 +++----
 testsuite/expect/test37.13      | 12 ++---
 testsuite/expect/test37.14      | 16 +++---
 testsuite/expect/test37.15      | 16 +++---
 testsuite/expect/test37.16      | 34 ++++++------
 testsuite/expect/test37.2       |  8 +--
 testsuite/expect/test37.3       | 47 ++++++++--------
 testsuite/expect/test37.4       | 66 +++++++++++------------
 testsuite/expect/test37.5       | 90 +++++++++++++++----------------
 testsuite/expect/test37.6       | 96 ++++++++++++++++-----------------
 testsuite/expect/test37.7       | 15 +++---
 testsuite/expect/test37.8       | 18 +++----
 testsuite/expect/test38.1       |  6 +--
 testsuite/expect/test38.10      |  2 +-
 testsuite/expect/test38.11      |  7 ++-
 testsuite/expect/test38.12      | 11 ++--
 testsuite/expect/test38.13      |  2 +-
 testsuite/expect/test38.15      |  4 +-
 testsuite/expect/test38.16      | 11 ++--
 testsuite/expect/test38.2       |  6 +--
 testsuite/expect/test38.3       |  6 +--
 testsuite/expect/test38.4       |  6 +--
 testsuite/expect/test38.5       | 12 ++---
 testsuite/expect/test38.6       |  8 ++-
 testsuite/expect/test38.7       | 10 ++--
 testsuite/expect/test38.8       |  5 +-
 testsuite/expect/test38.9       | 15 +++---
 testsuite/expect/test39.1       |  8 +--
 testsuite/expect/test39.10      |  8 +--
 testsuite/expect/test39.11      |  8 +--
 testsuite/expect/test39.12      | 26 ++++-----
 testsuite/expect/test39.13      |  8 +--
 testsuite/expect/test39.14      |  6 +--
 testsuite/expect/test39.15      |  8 +--
 testsuite/expect/test39.16      |  8 +--
 testsuite/expect/test39.17      | 32 +++++------
 testsuite/expect/test39.18      | 18 +++----
 testsuite/expect/test39.19      | 34 ++++++------
 testsuite/expect/test39.2       |  8 +--
 testsuite/expect/test39.20      | 18 +++----
 testsuite/expect/test39.21      |  2 +-
 testsuite/expect/test39.22      |  2 +-
 testsuite/expect/test39.23      | 18 +++----
 testsuite/expect/test39.3       |  8 +--
 testsuite/expect/test39.4       | 26 ++++-----
 testsuite/expect/test39.5       | 22 ++++----
 testsuite/expect/test39.6       | 10 ++--
 testsuite/expect/test39.7       | 12 ++---
 testsuite/expect/test39.8       | 18 +++----
 testsuite/expect/test39.9       | 18 +++----
 testsuite/expect/test4.12       |  2 +-
 testsuite/expect/test4.13       |  4 +-
 testsuite/expect/test4.14       |  4 +-
 testsuite/expect/test4.5        |  8 +--
 testsuite/expect/test40.1       | 10 ++--
 testsuite/expect/test40.2       | 27 +++++-----
 testsuite/expect/test40.3       | 12 ++---
 testsuite/expect/test40.4       |  8 +--
 testsuite/expect/test40.5       | 12 ++---
 testsuite/expect/test40.6       | 10 ++--
 testsuite/expect/test40.8       |  8 +--
 testsuite/expect/test5.10       | 10 ++--
 testsuite/expect/test5.11       |  4 +-
 testsuite/expect/test5.6        |  2 +-
 testsuite/expect/test6.11       |  2 +-
 testsuite/expect/test6.14       |  4 +-
 testsuite/expect/test6.15       |  8 +--
 testsuite/expect/test6.17       |  5 +-
 testsuite/expect/test6.3        |  2 +-
 testsuite/expect/test7.10       |  2 +-
 testsuite/expect/test7.11       | 17 +++---
 testsuite/expect/test7.15       |  2 +-
 testsuite/expect/test7.16       |  2 +-
 testsuite/expect/test7.17       | 20 +++----
 testsuite/expect/test7.19       |  6 +--
 testsuite/expect/test7.2        |  4 +-
 testsuite/expect/test7.20       |  4 +-
 testsuite/expect/test7.4        | 20 +++----
 testsuite/expect/test7.5        | 22 ++++----
 testsuite/expect/test7.6        | 10 ++--
 testsuite/expect/test7.7        |  4 +-
 testsuite/expect/test7.9        | 10 ++--
 testsuite/expect/test9.8        | 10 ++--
 testsuite/expect/test9.9        |  2 +-
 312 files changed, 1365 insertions(+), 1457 deletions(-)

diff --git a/testsuite/expect/globals b/testsuite/expect/globals
index 63afe0c621e..18452e9c863 100755
--- a/testsuite/expect/globals
+++ b/testsuite/expect/globals
@@ -493,20 +493,18 @@ proc fail_on_error { message } {
 #
 # Proc: print_time
 #
-# Purpose:  Print the current data and time
+# Purpose:  Print the current date and time
 #
 ################################################################
 proc print_time { } {
 	global bin_date
 
-	send_user "\n"
 	spawn $bin_date
 	expect {
 		eof {
 			wait
 		}
 	}
-	send_user "\n"
 
 	return
 }
@@ -531,7 +529,7 @@ proc cancel_job { job_id {het_job 0}} {
 		return 1
 	}
 
-	send_user "cancelling $job_id\n"
+	log_debug "Cancelling $job_id"
 	set status [catch [exec $scancel -Q $job_id] result]
 	exec $bin_sleep 1
 	return [wait_for_job $job_id "DONE" $het_job]
diff --git a/testsuite/expect/inc12.3.1 b/testsuite/expect/inc12.3.1
index 4354aa0f81e..a4a915c9d15 100644
--- a/testsuite/expect/inc12.3.1
+++ b/testsuite/expect/inc12.3.1
@@ -32,8 +32,8 @@ proc inc12_3_1 {job_id_1 job_id_2 job_name_1 job_name_2 test_acct} {
 	global exit_code
 
 	set idmatch 0
-	send_user "\nSearch for job ID $job_id_1 having name $job_name_1 (Within: inc12.3.1)\n"
-	send_user "\nJob id1 number: $job_id_1\n"
+	log_info "Search for job ID $job_id_1 having name $job_name_1 (Within: inc12.3.1)"
+	log_debug "Job id1 number: $job_id_1"
 	spawn $sacct -A '$test_acct' --name=$job_name_1 -X -p -o jobid
 	expect {
 		-re "$job_id_1" {
@@ -59,7 +59,7 @@ proc inc12_3_1 {job_id_1 job_id_2 job_name_1 job_name_2 test_acct} {
 	}
 
 	set idmatch 0
-	send_user "\nSearch for job ID $job_id_2 having name $job_name_2 (Within: inc12.3.1)\n"
+	log_info "Search for job ID $job_id_2 having name $job_name_2 (Within: inc12.3.1)"
 	spawn $sacct -A '$test_acct' --name=$job_name_2 -X -p -o jobid
 	expect {
 		-re "$job_id_1" {
diff --git a/testsuite/expect/inc12.3.2 b/testsuite/expect/inc12.3.2
index a3380b8cba4..ad44b903e26 100755
--- a/testsuite/expect/inc12.3.2
+++ b/testsuite/expect/inc12.3.2
@@ -32,7 +32,7 @@ proc inc12_3_2 {job_id_1 job_id_2 job_id_3 job_name_1 job_name_2 test_acct job_1
 	global alpha_numeric_under sacct
 	global exit_code
 
-	send_user "\nSearch for jobs $job_id_1 and $job_id_3 on node: $job_1_node_0 (Within: inc12.3.2)\n"
+	log_info "Search for jobs $job_id_1 and $job_id_3 on node: $job_1_node_0 (Within: inc12.3.2)"
 	set job_1_match 0
 	set job_2_match 0
 	spawn $sacct -A '$test_acct' -N$job_1_node_0 -X -p -o jobid,jobname
@@ -62,8 +62,7 @@ proc inc12_3_2 {job_id_1 job_id_2 job_id_3 job_name_1 job_name_2 test_acct job_1
 		set exit_code 1
 	}
 
-
-	send_user "\nSearch for jobs $job_id_1 and $job_id_2 on node: $job_1_node_2 (Within: inc12.3.2))\n"
+	log_info "Search for jobs $job_id_1 and $job_id_2 on node: $job_1_node_2 (Within: inc12.3.2))"
 	set job_1_match 0
 	set job_2_match 0
 	spawn $sacct -A '$test_acct' -N$job_1_node_2 -X -p -o jobid,jobname
@@ -89,8 +88,7 @@ proc inc12_3_2 {job_id_1 job_id_2 job_id_3 job_name_1 job_name_2 test_acct job_1
 		set exit_code 1
 	}
 
-
-	send_user "\nSearch for jobs $job_id_1 and $job_id_2 on node: $job_2_node_0 (Within: inc12.3.2)\n"
+	log_info "Search for jobs $job_id_1 and $job_id_2 on node: $job_2_node_0 (Within: inc12.3.2)"
 	set job_1_match 0
 	set job_2_match 0
 	spawn $sacct -A '$test_acct' -N$job_2_node_0 -X -p -o jobid,jobname
@@ -116,8 +114,7 @@ proc inc12_3_2 {job_id_1 job_id_2 job_id_3 job_name_1 job_name_2 test_acct job_1
 		set exit_code 1
 	}
 
-
-	send_user "\nSearch for jobs $job_id_2 and $job_id_3 on node: $job_2_node_1 (Within: inc12.3.2)\n"
+	log_info "Search for jobs $job_id_2 and $job_id_3 on node: $job_2_node_1 (Within: inc12.3.2)"
 	set job_1_match 0
 	set job_2_match 0
 	spawn $sacct -A '$test_acct' -N$job_2_node_1 -X -p -o jobid,jobname
diff --git a/testsuite/expect/inc21.21_tests b/testsuite/expect/inc21.21_tests
index f65d59c51f5..309b9a04df3 100644
--- a/testsuite/expect/inc21.21_tests
+++ b/testsuite/expect/inc21.21_tests
@@ -45,8 +45,7 @@ proc inc21_21_good { test_type limit } {
 	# Wait for old jobs to clean up
 	sleep 2
 
-	send_user "\n====== Test $test_type "
-	send_user "(Within: inc21.21_tests function: inc21_21_good) ======\n"
+	log_info "====== Test $test_type within: inc21.21_tests function: inc21_21_good) ======"
 
 	if { [string compare $test_type "maxcpus"] == 0 ||
 	     [string compare $test_type "maxcpumins"] == 0 &&
@@ -112,8 +111,7 @@ proc inc21_21_bad { test_type limit } {
 	set over_lim [expr [lindex $limit 1] + 1]
 	set add ""
 
-	send_user "\n====== Test $test_type"
-	send_user "(Within: inc21.21_tests function: inc21_21_bad) ======\n"
+	log_info "====== Test $test_type within: inc21.21_tests function: inc21_21_bad) ======"
 
 	if { [string compare $test_type "maxnode"] == 0 } {
 		set add "--exclusive"
@@ -164,8 +162,7 @@ proc inc21_21_grp_test { test_type limit } {
 	set val 0
 	set exclusive ""
 
-	send_user "\n===== Test $test_type "
-	send_user "(Within: inc21.21_tests function: inc21_21_grp_test) =====\n"
+	log_info "===== Test $test_type within: inc21.21_tests function: inc21_21_grp_test) ====="
 
 	if  { ![string compare $test_type "grpcpumins"] &&
 	      ![test_enforce_safe_set] } {
@@ -336,8 +333,7 @@ proc inc21_21_submit_test { limit } {
 
 	# Test to make sure that the grpsubmit and maxsubmit
 	# are enforced with jobs
-	send_user "\n==== Test $limit (Within: inc21.21_tests function: "
-	send_user "inc21_21_submit_test) ====\n"
+	log_info "==== Test $limit (within: inc21.21_tests function: inc21_21_submit_test) ===="
 
 	# Submit jobs to test the limit set in the association
 	for {set inx 0} {$inx < $acct_mod_assoc_test_vals($limit_sub)} \
@@ -479,8 +475,7 @@ proc inc21_21_submit_test { limit } {
 	# Test to make sure that the grpsubmit and maxsubmit
 	# are enforced with job arrays
 
-	send_user "\n==== Test $limit with job arrays(Within: inc21.21_tests function: "
-	send_user "inc21_21_submit_test) ====\n"
+	log_info "==== Test $limit with job arrays (within: inc21.21_tests function: inc21_21_submit_test) ===="
 
 	# Submit jobs to test the limit set in the association
 	for {set inx 0} {$inx < $acct_mod_assoc_test_vals($limit_sub)} \
@@ -633,8 +628,7 @@ proc inc21_21_grpwall { test_type limit } {
 	set job_id 0
 	set timeout 120
 
-	send_user "\n====== Test $test_type"
-	send_user "(Within: inc21.21_tests function: inc21_21_grpwall) ======\n"
+	log_info "====== Test $test_type within: inc21.21_tests function: inc21_21_grpwall) ======"
 
 	# Wait for old jobs to clean up
 	sleep 2
diff --git a/testsuite/expect/inc21.30.1 b/testsuite/expect/inc21.30.1
index 6c194d314ef..72772f4bdbb 100644
--- a/testsuite/expect/inc21.30.1
+++ b/testsuite/expect/inc21.30.1
@@ -32,14 +32,14 @@ proc inc21_30_1 { wait_reason } {
 	global srun salloc acct bin_sleep number grn_num check_reason
 	global exit_code
 
-	send_user "\nStarting GrpNode limit test (Within: inc21.30.1)\n\n"
+	log_info "Starting GrpNode limit test (Within: inc21.30.1)"
 	set job_id1  0
 	set job_id2  0
 	spawn $salloc -N$grn_num --account=$acct --exclusive -t1 $srun $bin_sleep 10
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\njob $job_id1 has been submitted. (Within: inc21.30.1)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.30.1)"
 		}
 		-re "Pending job allocation ($number)" {
 			log_error "Job should be running, but is not. (Within: inc21.30.1)"
@@ -68,7 +68,7 @@ proc inc21_30_1 { wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resources. This is expected. (Within: inc21.30.1)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.30.1)"
 		}
 		-re "Granted job allocation ($number)" {
 			log_error "This should be pended but is not. (Within: inc21.30.1)"
diff --git a/testsuite/expect/inc21.30.10 b/testsuite/expect/inc21.30.10
index 33795da444d..c430fdf79a8 100644
--- a/testsuite/expect/inc21.30.10
+++ b/testsuite/expect/inc21.30.10
@@ -30,13 +30,13 @@ proc inc21_30_10 { wait_reason } {
 
 	global salloc srun acct bin_sleep grpcpurunmin_num number exit_code
 
-	send_user "\nStarting GrpCpuRunMins test (Within: inc21.30.10)\n\n"
+	log_info "Starting GrpCpuRunMins test (Within: inc21.30.10)"
 	set job_id1 0
 	set job_id2 0
 	set target_time [expr $grpcpurunmin_num / 4]
 	set time_limit [expr $target_time - 3]
 	if {$time_limit < 1} {
-		send_user "\nInvalid time limit. (Within: inc21.30.10)\n"
+		log_warn "Invalid time limit. (Within: inc21.30.10)"
 		return
 	}
 
@@ -45,7 +45,7 @@ proc inc21_30_10 { wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted. (Within: inc21.30.10)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.30.10)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -69,7 +69,7 @@ proc inc21_30_10 { wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resources. This is expected. (Within: inc21.30.10)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.30.10)"
 		}
 		-re "Granted job allocation ($number)" {
 			log_error "Job should be pending, but is not. (Within: inc21.30.10)"
diff --git a/testsuite/expect/inc21.30.11 b/testsuite/expect/inc21.30.11
index f3cfde42835..32749bd4550 100644
--- a/testsuite/expect/inc21.30.11
+++ b/testsuite/expect/inc21.30.11
@@ -32,11 +32,11 @@ proc inc21_30_11 { wait_reason } {
 	global test_select_type_params
 
 	if {![test_select_type_params "MEMORY"]} {
-		send_user "\nMemory management not configured (Within: inc21.30.11)\n\n"
+		log_warn "Memory management not configured (Within: inc21.30.11)"
 		return
 	}
 
-	send_user "\nStarting GrpMem test (Within: inc21.30.11)\n\n"
+	log_info "Starting GrpMem test (Within: inc21.30.11)"
 	set job_id1 0
 	set job_id2 0
 
@@ -44,7 +44,7 @@ proc inc21_30_11 { wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted (Within: inc21.30.11)\n"
+			log_debug "Job $job_id1 has been submitted (Within: inc21.30.11)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -68,7 +68,7 @@ proc inc21_30_11 { wait_reason } {
 	expect  {
 		-re "Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resources. This is expected. (Within: inc21.30.11)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.30.11)"
 		}
 		-re "Granted job allocation ($number)" {
 			log_error "Job should have pended, but did not. (Within: inc21.30.11)"
diff --git a/testsuite/expect/inc21.30.12 b/testsuite/expect/inc21.30.12
index e4c0ac648b7..40518c2fafe 100644
--- a/testsuite/expect/inc21.30.12
+++ b/testsuite/expect/inc21.30.12
@@ -29,7 +29,7 @@
 proc inc21_30_12 { } {
 	global salloc srun acct bin_sleep grpwall_num number exit_code qostest
 
-	send_user "\nStarting Grpwall test (Within: inc21.30.12)\n\n"
+	log_info "Starting Grpwall test (Within: inc21.30.12)"
 	set job_id1 0
 	set job_id2 0
 	set timeout 120
@@ -42,7 +42,7 @@ proc inc21_30_12 { } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted. (Within: inc21.30.12)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.30.12)"
 		}
 		-re "Job violates accounting/QOS policy" {
 			log_error "This job should not be pending, but is. (Within: inc21.30.12)"
@@ -73,7 +73,7 @@ proc inc21_30_12 { } {
 	spawn $salloc -I --account=$acct --qos=$qostest -N2 -t1 $srun -I $bin_sleep 10
 	expect {
 		-re "Job violates accounting/QOS policy" {
-			send_user "\nJob waiting for resources. This is expected. (Within: inc21.30.12)\n"
+			log_debug "Job waiting for resources. This is expected. (Within: inc21.30.12)"
 			set match 1
 		}
 		-re "Granted job allocation ($number)" {
diff --git a/testsuite/expect/inc21.30.13 b/testsuite/expect/inc21.30.13
index 0e9c0e65f48..a257fcd477d 100644
--- a/testsuite/expect/inc21.30.13
+++ b/testsuite/expect/inc21.30.13
@@ -29,7 +29,7 @@
 proc inc21_30_13 { wait_reason } {
 	global salloc srun acct bin_sleep maxcpumin_num number exit_code
 
-	send_user "\nStarting MaxCpuMins test (Within: inc21.30.13)\n"
+	log_info "Starting MaxCpuMins test (Within: inc21.30.13)"
 	set job_id1 0
 	set job_id2 0
 
@@ -37,7 +37,7 @@ proc inc21_30_13 { wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted (Within: inc21.30.13)\n"
+			log_debug "Job $job_id1 has been submitted (Within: inc21.30.13)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -61,7 +61,7 @@ proc inc21_30_13 { wait_reason } {
 	expect {
 		-re " Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resources. This is expected. (Within: inc21.30.13)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.30.13)"
 
 		}
 		-re "Granted job allocation ($number)" {
diff --git a/testsuite/expect/inc21.30.14 b/testsuite/expect/inc21.30.14
index 19120d264b6..b1fffaa2eb4 100644
--- a/testsuite/expect/inc21.30.14
+++ b/testsuite/expect/inc21.30.14
@@ -29,7 +29,7 @@
 proc inc21_30_14 { wait_reason } {
 	global salloc srun acct bin_sleep number maxwall_num exit_code
 
-	send_user "\nStarting MaxWall test (Within: inc21.30.14)\n"
+	log_info "Starting MaxWall test (Within: inc21.30.14)"
 	set job_id 0
 
 	spawn $salloc --account=$acct -N1 -t$maxwall_num $srun $bin_sleep 10
@@ -40,7 +40,7 @@ proc inc21_30_14 { wait_reason } {
 		}
 		-re "Granted job allocation ($number)" {
 			set job_id $expect_out(1,string)
-			send_user "\nJob $job_id has been submitted\n"
+			log_debug "Job $job_id has been submitted"
 		}
 		-re "error" {
 			log_error "Job allocation should not have failed. (Within: inc21.30.14)"
@@ -62,7 +62,7 @@ proc inc21_30_14 { wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id $expect_out(1,string)
-			send_user "\nJob $job_id is waiting for resources. This is expected (Within: inc21.30.14)\n"
+			log_debug "Job $job_id is waiting for resources. This is expected (Within: inc21.30.14)"
 		}
 		-re "Granted job allocation ($number)" {
 			set job_id $expect_out(1,string)
diff --git a/testsuite/expect/inc21.30.15 b/testsuite/expect/inc21.30.15
index 7e229fa6ccb..2e52b7e642e 100644
--- a/testsuite/expect/inc21.30.15
+++ b/testsuite/expect/inc21.30.15
@@ -29,7 +29,7 @@
 proc inc21_30_15 { wait_reason } {
 	global salloc srun exit_code bin_sleep number maxcpuspu_num acct
 
-	send_user "\nStarting MaxCPUsPerUser test (Within: inc21.30.15)\n"
+	log_info "Starting MaxCPUsPerUser test (Within: inc21.30.15)"
 
 	set job_id1 0
 	set job_id2 0
@@ -38,7 +38,7 @@ proc inc21_30_15 { wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted (Within: inc21.30.15)\n"
+			log_debug "Job $job_id1 has been submitted (Within: inc21.30.15)"
 		}
 		-re "job ($number) queued and waiting for resources" {
 			set job_id1 $expect_out(1,string)
@@ -59,7 +59,7 @@ proc inc21_30_15 { wait_reason } {
 	}
 
 	if { $job_id1 == 0 } {
-		send_user "\nFAILUIRE: Job was not submitted (Within: inc21.30.15)\n"
+		log_error "Job was not submitted (Within: inc21.30.15)"
 		set exit_code 1
 	}
 
@@ -67,7 +67,7 @@ proc inc21_30_15 { wait_reason } {
 	expect {
 		-re "job ($number) queued and waiting for resources" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resource. This is expected do not worry (Within: inc21.30.15)\n"
+			log_debug "Job $job_id2 is waiting for resource. This is expected do not worry (Within: inc21.30.15)"
 		}
 		-re "Granted job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
diff --git a/testsuite/expect/inc21.30.16 b/testsuite/expect/inc21.30.16
index 72e933df694..f3976dc7dcd 100644
--- a/testsuite/expect/inc21.30.16
+++ b/testsuite/expect/inc21.30.16
@@ -30,7 +30,7 @@ proc inc21_30_16 { wait_reason } {
 
 	global salloc srun acct number bin_sleep maxnodespu_num exit_code
 
-	send_user "\nStarting MaxNodesPerUser test (Within: inc21.30.16)\n"
+	log_info "Starting MaxNodesPerUser test (Within: inc21.30.16)"
 
 	set job_id 0
 
@@ -38,7 +38,7 @@ proc inc21_30_16 { wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id $expect_out(1,string)
-			send_user "\nJob $job_id was submitted (Within: inc21.30.16)\n"
+			log_debug "Job $job_id was submitted (Within: inc21.30.16)"
 		}
 		-re "error" {
 			log_error "Job allocation should not have failed. (Within: inc21.30.16)"
@@ -65,7 +65,7 @@ proc inc21_30_16 { wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id $expect_out(1,string)
-			send_user "\nThis error is expected. Do not worry (Within: inc21.30.16)\n"
+			log_debug "This error is expected. Do not worry (Within: inc21.30.16)"
 		}
 		-re "Granted job allocation" {
 			log_error "salloc should not have granted an allocation (Within: inc21.30.16)"
diff --git a/testsuite/expect/inc21.30.17 b/testsuite/expect/inc21.30.17
index c954737528b..7749af0c017 100644
--- a/testsuite/expect/inc21.30.17
+++ b/testsuite/expect/inc21.30.17
@@ -56,14 +56,14 @@ proc check_timelimit { job } {
 proc inc21_30_17 { } {
 	global salloc srun acct bin_sleep number maxwall_num exit_code
 
-	send_user "\nStarting Qos/Parent MaxWall applied to job without -t test (Within: inc21.31.17)\n"
+	log_info "Starting Qos/Parent MaxWall applied to job without -t test (Within: inc21.31.17)"
 	set job_id 0
 
 	spawn $salloc --account=$acct -N1 $srun $bin_sleep 10
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id $expect_out(1,string)
-			send_user "\nJob $job_id has been submitted\n"
+			log_debug "Job $job_id has been submitted"
 			check_timelimit $job_id
 		}
 		-re "Pending job allocation ($number)" {
diff --git a/testsuite/expect/inc21.30.2 b/testsuite/expect/inc21.30.2
index a7afc8c2c13..add4004f8ab 100644
--- a/testsuite/expect/inc21.30.2
+++ b/testsuite/expect/inc21.30.2
@@ -35,13 +35,13 @@ proc inc21_30_2 { wait_reason } {
 	set job_id1 0
 	set job_id2 0
 
-	send_user "\nStarting GrpCPUs limit test (Within: inc21.30.2)\n\n"
+	log_info "Starting GrpCPUs limit test (Within: inc21.30.2)"
 	set jobmatch 0
 	spawn $salloc --account=$acct -w$test_node -t1 -n$grcpu_num $srun $bin_sleep 5
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\njob $job_id1 has been submitted. (Within: inc21.30.2)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.30.2)"
 			incr jobmatch
 		}
 		-re "Pending job allocation ($number)" {
@@ -71,7 +71,7 @@ proc inc21_30_2 { wait_reason } {
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\njob $job_id2 is waiting for resources. This is expected. (Within: inc21.30.2)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.30.2)"
 			incr jobmatch
 		}
 		timeout {
diff --git a/testsuite/expect/inc21.30.3 b/testsuite/expect/inc21.30.3
index 08bb4e0c9d9..bde63fb8a65 100644
--- a/testsuite/expect/inc21.30.3
+++ b/testsuite/expect/inc21.30.3
@@ -31,7 +31,7 @@ proc inc21_30_3 { wait_reason } {
 
 	global salloc scontrol srun acct alpha bin_sleep jobmatch job_id1 job_id2 job_id3 number exit_code grjobs_num
 
-	send_user "\nStarting GrpJob limit test (Within: inc21.30.3)\n\n"
+	log_info "Starting GrpJob limit test (Within: inc21.30.3)"
 	set check_num $grjobs_num
 
 	set jobmatch 0
@@ -42,7 +42,7 @@ proc inc21_30_3 { wait_reason } {
 			-re "Granted job allocation ($number)" {
 				set job_id($inx) $expect_out(1,string)
 				if {$inx < $check_num} {
-					send_user "\njob $inx $job_id($inx) was submitted. (Within: inc21.30.3)\n"
+					log_debug "Job $inx $job_id($inx) was submitted. (Within: inc21.30.3)"
 					incr jobmatch
 				} else {
 					log_error "Job $inx $job_id($inx) wasn't suppose to work but it did, limit was $check_num? (Within: inc21.30.3)"
@@ -52,7 +52,7 @@ proc inc21_30_3 { wait_reason } {
 			-re "job ($number) queued and waiting for resources" {
 				set job_id($inx) $expect_out(1,string)
 				if {$inx >= $check_num} {
-					send_user "\nJob $inx $job_id($inx) is waiting for resources. This is expected. (Within: inc21.30.3)\n"
+					log_debug "Job $inx $job_id($inx) is waiting for resources. This is expected. (Within: inc21.30.3)"
 					incr jobmatch
 				} else {
 					set test_reason 1
diff --git a/testsuite/expect/inc21.30.4 b/testsuite/expect/inc21.30.4
index fa2f02877db..39032405073 100644
--- a/testsuite/expect/inc21.30.4
+++ b/testsuite/expect/inc21.30.4
@@ -32,7 +32,7 @@ proc inc21_30_4 {} {
 	global salloc sbatch srun acct bin_rm bin_sleep jobmatch
 	global job_id1 job_id2 job_id3 number exit_code grsub_num
 
-	send_user "\nStarting GrpSubmit limit test (Within: inc21.30.4)\n\n"
+	log_info "Starting GrpSubmit limit test (Within: inc21.30.4)"
 	set check_num $grsub_num
 	set file_in "in21.30.4_script"
 	set tmp_job_id 0
@@ -46,7 +46,7 @@ proc inc21_30_4 {} {
 			-re "Granted job allocation ($number)" {
 				set job_id($inx) $expect_out(1,string)
 				if {$inx < $check_num} {
-					send_user "\njob $inx $job_id($inx) was submitted. (Within: inc21.30.4)\n"
+					log_debug "Job $inx $job_id($inx) was submitted. (Within: inc21.30.4)"
 					incr jobmatch
 				} else {
 					log_error "Job $inx $job_id($inx) wasn't suppose to work but it did, limit was $check_num? (Within: inc21.30.4)"
@@ -55,7 +55,7 @@ proc inc21_30_4 {} {
 			}
 			-re "error" {
 				if {$inx >= $check_num} {
-					send_user "\nJob $inx didn't get submitted. This is expected (Within: inc21.30.4)\n"
+					log_debug "Job $inx didn't get submitted. This is expected (Within: inc21.30.4)"
 					incr jobmatch
 				} else {
 					log_error "Job $inx $job_id($inx) was suppose to work but it didn't, limit was $check_num? (Within: inc21.30.4)"
diff --git a/testsuite/expect/inc21.30.5 b/testsuite/expect/inc21.30.5
index 5020dbb8965..40130401a3c 100644
--- a/testsuite/expect/inc21.30.5
+++ b/testsuite/expect/inc21.30.5
@@ -32,14 +32,14 @@ proc inc21_30_5 { wait_reason } {
 	global salloc acct number srun bin_sleep maxcpu_num
 	global test_node exit_code
 
-	send_user "\nStarting MaxCPUs limit test (Within: inc21.30.5)\n\n"
+	log_info "Starting MaxCPUs limit test (Within: inc21.30.5)"
 	set job_id1 0
 
 	spawn $salloc --account=$acct -t1 -w$test_node -n$maxcpu_num $srun $bin_sleep 2
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\njob $job_id1 has been submitted. (Within: inc21.30.5)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.30.5)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -66,7 +66,7 @@ proc inc21_30_5 { wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 is waiting for resources. This is expected. (Within: inc21.30.5)\n"
+			log_debug "Job $job_id1 is waiting for resources. This is expected. (Within: inc21.30.5)"
 		}
 		-re "Granted job allocation ($number)" {
 			log_error "This should have pended but did not (Within: inc21.30.5)"
diff --git a/testsuite/expect/inc21.30.6 b/testsuite/expect/inc21.30.6
index 03430954352..d4b8af04cd0 100644
--- a/testsuite/expect/inc21.30.6
+++ b/testsuite/expect/inc21.30.6
@@ -31,14 +31,14 @@ proc inc21_30_6 { wait_reason } {
 
 	global salloc acct number srun job_id1 bin_sleep maxnode_num exit_code
 
-	send_user "\nStarting MaxNode limit test (Within: inc21.30.6)\n\n"
+	log_info "Starting MaxNode limit test (Within: inc21.30.6)"
 	set job_id1 0
 
 	spawn $salloc --account=$acct -N$maxnode_num --exclusive -t1 $srun $bin_sleep 2
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\njob $job_id1 has been submitted (Within: inc21.30.6)\n"
+			log_debug "Job $job_id1 has been submitted (Within: inc21.30.6)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -65,7 +65,7 @@ proc inc21_30_6 { wait_reason } {
 	expect {
 		-re "job ($number) queued and waiting for resources" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 is waiting for resources. This is expected. (Within: inc21.30.6)\n"
+			log_debug "Job $job_id1 is waiting for resources. This is expected. (Within: inc21.30.6)"
 		}
 		-re "Granted job allocation ($number)" {
 			log_error "This should have pended but did not. (Within: inc21.30.6)"
diff --git a/testsuite/expect/inc21.30.7 b/testsuite/expect/inc21.30.7
index 52286cf8a33..78b6a9a384e 100644
--- a/testsuite/expect/inc21.30.7
+++ b/testsuite/expect/inc21.30.7
@@ -31,7 +31,7 @@ proc inc21_30_7 { wait_reason } {
 
 	global salloc scontrol srun acct alpha bin_sleep jobmatch job_id1 job_id2 job_id3 number exit_code maxjobs_num
 
-	send_user "\nStarting MaxJob limit test (Within: inc21.30.7)\n\n"
+	log_info "Starting MaxJob limit test (Within: inc21.30.7)"
 	set check_num $maxjobs_num
 
 	set jobmatch 0
@@ -42,7 +42,7 @@ proc inc21_30_7 { wait_reason } {
 			-re "Granted job allocation ($number)" {
 				set job_id($inx) $expect_out(1,string)
 				if {$inx < $check_num} {
-					send_user "\njob $inx $job_id($inx) was submitted. (inc21.30.7)\n"
+					log_debug "Job $inx $job_id($inx) was submitted. (inc21.30.7)"
 					incr jobmatch
 				} else {
 					log_error "Job $inx $job_id($inx) wasn't suppose to work but it did, limit was $check_num? (Within: inc21.30.7)"
@@ -52,7 +52,7 @@ proc inc21_30_7 { wait_reason } {
 			-re "job ($number) queued and waiting for resources" {
 				set job_id($inx) $expect_out(1,string)
 				if {$inx >= $check_num} {
-					send_user "\nJob $inx $job_id($inx) is waiting for resources. This is expected (Within: inc21.30.7)\n"
+					log_debug "Job $inx $job_id($inx) is waiting for resources. This is expected (Within: inc21.30.7)"
 					incr jobmatch
 				} else {
 					set test_reason 1
diff --git a/testsuite/expect/inc21.30.8 b/testsuite/expect/inc21.30.8
index ee155d55e8a..fa95eeb0059 100644
--- a/testsuite/expect/inc21.30.8
+++ b/testsuite/expect/inc21.30.8
@@ -32,7 +32,7 @@ proc inc21_30_8 {} {
 	global sbatch salloc srun acct bin_rm bin_sleep jobmatch
 	global job_id1 job_id2 job_id3 number exit_code maxjobsub_num
 
-	send_user "\nStarting MaxJobsSubmits limit test (Within: inc21.30.8)\n\n"
+	log_info "Starting MaxJobsSubmits limit test (Within: inc21.30.8)"
 	set check_num $maxjobsub_num
 	set file_in "in21.30.8_script"
 	set tmp_job_id 0
@@ -46,7 +46,7 @@ proc inc21_30_8 {} {
 			-re "Granted job allocation ($number)" {
 				set job_id($inx) $expect_out(1,string)
 				if {$inx < $check_num} {
-					send_user "\njob $inx $job_id($inx) was submitted (Within: inc21.30.8)\n"
+					log_debug "Job $inx $job_id($inx) was submitted (Within: inc21.30.8)"
 					incr jobmatch
 				} else {
 					log_error "Job $inx $job_id($inx) wasn't suppose to work but it did, limit was $check_num? (Within: inc21.30.8)"
@@ -55,7 +55,7 @@ proc inc21_30_8 {} {
 			}
 			-re "error" {
 				if {$inx >= $check_num} {
-					send_user "\nJob $inx didn't get submitted. This is expected (Within: inc21.30.8)\n"
+					log_debug "Job $inx didn't get submitted. This is expected (Within: inc21.30.8)"
 					incr jobmatch
 				} else {
 					log_error "Job $inx was suppose to work but it didn't, limit was $check_num? (Within: inc21.30.8)"
diff --git a/testsuite/expect/inc21.30.9 b/testsuite/expect/inc21.30.9
index 57d159fbcd9..05d88586b5a 100644
--- a/testsuite/expect/inc21.30.9
+++ b/testsuite/expect/inc21.30.9
@@ -31,7 +31,7 @@ proc inc21_30_9 { wait_reason } {
 	global salloc srun nthreads acct bin_sleep grpcpumin_num number
 	global totcpus test_node qostest exit_code
 
-	send_user "\nStarting GrpCpuMins test (Within: inc21.30.9) \n\n"
+	log_info "Starting GrpCpuMins test (Within: inc21.30.9) "
 
 	if  { [test_enforce_safe_set] == 0 } {
 		log_warn "This test can't be run without AccountingStorageEnforce having \"safe\" in it"
@@ -50,7 +50,7 @@ proc inc21_30_9 { wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted. (Within: inc21.30.9)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.30.9)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -77,7 +77,7 @@ proc inc21_30_9 { wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resources. This is expected. (Within: inc21.30.9)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.30.9)"
 		}
 		-re "Granted job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
diff --git a/testsuite/expect/inc21.34.1 b/testsuite/expect/inc21.34.1
index 1b13cc0b3cf..402d3af789a 100644
--- a/testsuite/expect/inc21.34.1
+++ b/testsuite/expect/inc21.34.1
@@ -31,7 +31,7 @@ proc inc21_34_1 { qostest wait_reason } {
 	global salloc srun nthreads acct bin_sleep grpcpumin_num number
 	global totcpus test_node exit_code
 
-	send_user "\nStarting GrpCpuMins test (Within: inc21.34.1) \n\n"
+	log_info "Starting GrpCpuMins test (Within: inc21.34.1) "
 
 	if  { [test_enforce_safe_set] == 0 } {
 		log_warn "This test can't be run without AccountingStorageEnforce having \"safe\" in it"
@@ -50,7 +50,7 @@ proc inc21_34_1 { qostest wait_reason } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted. (Within: inc21.34.1)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.34.1)"
 		}
 		-re "Pending job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
@@ -77,7 +77,7 @@ proc inc21_34_1 { qostest wait_reason } {
 	expect {
 		-re "Pending job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
-			send_user "\nJob $job_id2 is waiting for resources. This is expected. (Within: inc21.34.1)\n"
+			log_debug "Job $job_id2 is waiting for resources. This is expected. (Within: inc21.34.1)"
 		}
 		-re "Granted job allocation ($number)" {
 			set job_id2 $expect_out(1,string)
diff --git a/testsuite/expect/inc21.34.2 b/testsuite/expect/inc21.34.2
index 4edf6156ee4..11dcf141eaa 100644
--- a/testsuite/expect/inc21.34.2
+++ b/testsuite/expect/inc21.34.2
@@ -29,7 +29,7 @@
 proc inc21_34_2 { qostest } {
 	global salloc srun acct bin_sleep grpwall_num number exit_code
 
-	send_user "\nStarting Grpwall test (Within: inc21.34.2)\n\n"
+	log_info "Starting Grpwall test (Within: inc21.34.2)"
 	set job_id1 0
 	set job_id2 0
 	set timeout 120
@@ -42,7 +42,7 @@ proc inc21_34_2 { qostest } {
 	expect {
 		-re "Granted job allocation ($number)" {
 			set job_id1 $expect_out(1,string)
-			send_user "\nJob $job_id1 has been submitted. (Within: inc21.34.2)\n"
+			log_debug "Job $job_id1 has been submitted. (Within: inc21.34.2)"
 		}
 		-re "Job violates accounting/QOS policy" {
 			log_error "This job should not be pending, but is. (Within: inc21.34.2)"
@@ -73,7 +73,7 @@ proc inc21_34_2 { qostest } {
 	spawn $salloc -I --account=$acct -N2 -t1 $srun $bin_sleep 10
 	expect {
 		-re "Job violates accounting/QOS policy" {
-			send_user "\nJob is waiting for resources. This is exected. (Within: inc21.34.2)\n"
+			log_debug "Job is waiting for resources. This is exected. (Within: inc21.34.2)"
 			set match 1
 		}
 		-re "Granted job allocation ($number)" {
diff --git a/testsuite/expect/inc22.1.1 b/testsuite/expect/inc22.1.1
index 9e545533f3c..0d8d7b2db84 100644
--- a/testsuite/expect/inc22.1.1
+++ b/testsuite/expect/inc22.1.1
@@ -66,7 +66,7 @@ proc inc22_1_1 { } {
 	set idle [format "%d\\\(%.2f%%\\\)" $idle [expr double($idle * 100)/$reported]]
 	set reported [format "%d\\\(%.2f%%\\\)" $reported 100]
 
-	send_user "\nTesting sreport for first hour (Within: inc22.1.1)\n"
+	log_info "Testing sreport for first hour (Within: inc22.1.1)"
 
 	set matches 0
 	set my_pid [spawn $sreport -M$cluster2 cluster utilization start=$start_str end=$end_str -tsecper -p -n format=cluster,idle,down,alloc,res,reported]
diff --git a/testsuite/expect/inc22.1.2 b/testsuite/expect/inc22.1.2
index 10ac683a410..0f86c00b048 100644
--- a/testsuite/expect/inc22.1.2
+++ b/testsuite/expect/inc22.1.2
@@ -78,7 +78,7 @@ proc inc22_1_2 {} {
 	set idle [format "%d\\\(%.2f%%\\\)" $idle [expr double($idle * 100)/$reported]]
 	set reported [format "%d\\\(%.2f%%\\\)" $reported 100]
 
-	send_user "\nTesting sreport for second hour (Within: inc22.1.2)\n"
+	log_info "Testing sreport for second hour (Within: inc22.1.2)"
 	set matches 0
 	set my_pid [spawn $sreport --local cluster utilization cluster='$cluster' start=$start_str end=$end_str -tsecper -p -n format=cluster,idle,down,alloc,res,reported]
 	expect {
@@ -101,8 +101,7 @@ proc inc22_1_2 {} {
 	}
 
 	if {$matches != 1} {
-		log_error "sreport didn't give good info 9 $matches. (Within: inc22.1.2)"
-		send_user "we are looking for $cluster.$idle.$down.$alloc.$resv.$reported. (Within inc22.1.2)\n"
+		log_error "sreport didn't give good info 9 $matches. We are looking for $cluster.$idle.$down.$alloc.$resv.$reported. (Within inc22.1.2)"
 		incr exit_code 1
 	}
 
diff --git a/testsuite/expect/inc22.1.3 b/testsuite/expect/inc22.1.3
index 980c0c6bc56..fdf93e9977d 100644
--- a/testsuite/expect/inc22.1.3
+++ b/testsuite/expect/inc22.1.3
@@ -103,7 +103,7 @@ proc inc22_1_3 { } {
 	set reported [format "%d\\\(%.2f%%\\\)" $reported 100]
 
 
-	send_user "\nTesting sreport for 3 days (Within: inc22.1.3)\n"
+	log_info "Testing sreport for 3 days (Within: inc22.1.3)"
 	set matches 0
 	set my_pid [spawn $sreport --local cluster utilization cluster='$cluster' start=$start_str end=$end_str -tsecper -p -n format=cluster,idle,down,alloc,res,over,reported]
 	expect {
@@ -126,8 +126,7 @@ proc inc22_1_3 { } {
 	}
 
 	if {$matches != 1} {
-		log_error "sreport didn't give good info 17 $matches. (Within: inc22.1.3)"
-		send_user "we are looking for $cluster.$idle.$down.$alloc.$resv.$over.$reported. (Within: inc22.1.3)\n"
+		log_error "sreport didn't give good info 17 $matches. We are looking for $cluster.$idle.$down.$alloc.$resv.$over.$reported. (Within: inc22.1.3)"
 		incr exit_code 1
 	}
 
@@ -144,17 +143,17 @@ proc inc22_1_3 { } {
 			incr exit_code 1
 		}
 		-re "$cluster.$user2.$account3.$job2_alloc_str." {
-			send_user "got 2\n"
+			log_debug "Got 2"
 			incr matches
 			exp_continue
 		}
 		-re "$cluster.$user1.$account1.$job1_alloc_str." {
-			send_user "got 1\n"
+			log_debug "Got 1"
 			incr matches
 			exp_continue
 		}
 		-re "$cluster.$user1.$account2.$job3_alloc_str." {
-			send_user "got 3\n"
+			log_debug "Got 3"
 			incr matches
 			exp_continue
 		}
@@ -241,12 +240,12 @@ proc inc22_1_3 { } {
 			incr exit_code 1
 		}
 		-re "$cluster.$user2.$wckey1.$user2_wckey1_alloc_str." {
-			send_user "got 2\n"
+			log_debug "Got 2"
 			incr matches
 			exp_continue
 		}
 		-re "$cluster.$user1.$wckey1.$user1_wckey1_alloc_str." {
-			send_user "got 1\n"
+			log_debug "Got 1"
 			incr matches
 			exp_continue
 		}
diff --git a/testsuite/expect/inc22.1.4 b/testsuite/expect/inc22.1.4
index d86fedd229b..8d40f31cfc2 100644
--- a/testsuite/expect/inc22.1.4
+++ b/testsuite/expect/inc22.1.4
@@ -48,7 +48,7 @@ proc inc22_1_4 {} {
 	set cluster $cluster1
 
 	#Test for job 1
-	send_user "\nSearch for job1 on cluster $cluster (Within: inc21.1.4)\n"
+	log_info "Search for job1 on cluster $cluster (Within: inc21.1.4)"
 	set usermatch 0
 	spawn $sacct -p -M $cluster --state=completed --start=$job1_start_str --end=$job1_end_str --format=jobname
 	expect {
@@ -79,7 +79,7 @@ proc inc22_1_4 {} {
 	}
 
 	# Test for job2
-	send_user "\nSearch for job2 on cluster $cluster (Within: inc21.1.4)\n"
+	log_info "Search for job2 on cluster $cluster (Within: inc21.1.4)"
 	set usermatch 0
 	spawn $sacct -p -M $cluster --state=completed --start=$job2_start_str --end=$job2_end_str --format=jobname
 	expect {
@@ -109,7 +109,7 @@ proc inc22_1_4 {} {
 	}
 
 	# Test for job3
-	send_user "\nSearch for job3 on cluster $cluster (Within: inc21.1.4)\n"
+	log_info "Search for job3 on cluster $cluster (Within: inc21.1.4)"
 	set usermatch 0
 	spawn $sacct -p -M $cluster --state=completed --start=$job3_start_str --end=$job3_end_str --format=jobname
 	expect {
@@ -118,8 +118,8 @@ proc inc22_1_4 {} {
 			exp_continue
 		}
 		timeout {
-			send_user "sacct not responding (Within: inc21.1.4)"
-			exit_code 1
+			log_error "sacct not responding (Within: inc21.1.4)"
+			set exit_code 1
 		}
 		eof {
 			wait
diff --git a/testsuite/expect/inc22.1.5 b/testsuite/expect/inc22.1.5
index 576ae74f1e4..daf1480f3c5 100644
--- a/testsuite/expect/inc22.1.5
+++ b/testsuite/expect/inc22.1.5
@@ -49,7 +49,7 @@ proc inc22_1_5 { } {
 	set start_str [timestamp -format %Y-%m-%dT%X -seconds $period_start]
 	set end_str [timestamp -format %Y-%m-%dT%X -seconds $period_end]
 
-	send_user "\nTesting sreport for default (non-AcctAsParent) and FlatView (Within: inc22.1.5)\n"
+	log_info "Testing sreport for default (non-AcctAsParent) and FlatView (Within: inc22.1.5)"
 
 	# test the job report for root account
 	set matches 0
diff --git a/testsuite/expect/inc22.1.fed b/testsuite/expect/inc22.1.fed
index 8aac58f82e0..ab3af70b45f 100644
--- a/testsuite/expect/inc22.1.fed
+++ b/testsuite/expect/inc22.1.fed
@@ -80,10 +80,9 @@ proc inc22_1_fed {} {
 	set idle [format "%d\\\(%.2f%%\\\)" $idle [expr double($idle * 100)/$reported]]
 	set reported [format "%d\\\(%.2f%%\\\)" $reported 100]
 
-	send_user "\nregexes\n"
-	send_user "$cluster.$idle.$down.$alloc.$resv.$reported.\n\n"
+	log_debug "Regexes cluster.$idle.$down.$alloc.$resv.$reported"
 
-	send_user "\nTesting sreport for second hour (Within: inc22.1.fed)\n"
+	log_info "Testing sreport for second hour (Within: inc22.1.fed)"
 	set matches 0
 	spawn $sreport --federation cluster utilization  start=$start_str end=$end_str -tsecper -p -n format=cluster,idle,down,alloc,res,reported
 	expect {
@@ -106,8 +105,7 @@ proc inc22_1_fed {} {
 	}
 
 	if {$matches != 1} {
-		log_error "sreport didn't give good info 9 $matches. (Within: inc22.1.fed)"
-		send_user "we are looking for $cluster.$idle.$down.$alloc.$resv.$reported. (Within inc22.1.fed)\n"
+		log_error "sreport didn't give good info 9 $matches. We are looking for $cluster.$idle.$down.$alloc.$resv.$reported. (Within inc22.1.fed)"
 		incr exit_code 1
 	}
 
@@ -177,8 +175,7 @@ proc inc22_1_fed {} {
 	}
 
 	if {$matches != 1} {
-		log_error "sreport didn't give good info 12. (Within: inc22.1.fed)"
-		send_user "we are looking for $cluster.$user1.$wckey1.$alloc. (Within inc22.1.fed)\n"
+		log_error "sreport didn't give good info 12. (Within: inc22.1.fed). We are looking for $cluster.$user1.$wckey1.$alloc. (Within inc22.1.fed)"
 		incr exit_code 1
 	}
 
@@ -244,8 +241,7 @@ proc inc22_1_fed {} {
 	}
 
 	if {$matches != 1} {
-		log_error "sreport didn't give good info 14. (Within: inc22.1.fed)"
-		send_user "We expected $cluster.$user1..$account1.$alloc.$idle. \n"
+		log_error "sreport didn't give good info 14. (Within: inc22.1.fed). We expected $cluster.$user1..$account1.$alloc.$idle"
 		incr exit_code 1
 	}
 
@@ -312,5 +308,4 @@ proc inc22_1_fed {} {
 	}
 
 	return $exit_code
-
 }
diff --git a/testsuite/expect/inc3.11.1 b/testsuite/expect/inc3.11.1
index 2521eac240a..e87a8bc9bce 100644
--- a/testsuite/expect/inc3.11.1
+++ b/testsuite/expect/inc3.11.1
@@ -43,7 +43,7 @@ proc inc3_11_1 {} {
 	# Make a list of lists with a series of parameters to test.  All the tests
 	# in goodtests should pass, all those in badtests should fail.
 	#
-	send_user "\n+++++ STARTING TEST 1 (Within: inc3.11.1) +++++\n"
+	log_info "+++++ STARTING TEST 1 (Within: inc3.11.1) +++++"
 	set badtests "
 	{}
 	{Duration=5   Nodes=$def_node   User=$user_name Flags=ignore_jobs}
@@ -74,7 +74,7 @@ proc inc3_11_1 {} {
 			delete_res $res_name
 			fail "Reservation $test did not fail but should have (Within: inc3.11.1)"
 		} else {
-			send_user "\033\[32mExpected error. You can turn that frown upside-down. (Within: inc3.11.1)\033\[m\n"
+			log_debug "\033\[32mExpected error. You can turn that frown upside-down. (Within: inc3.11.1)"
 		}
 	}
 
@@ -103,13 +103,13 @@ proc inc3_11_1 {} {
 		if {$ret_code != 0} {
 			fail "Unable to create a valid reservation (Within: inc3.11.1)"
 		} else {
-			send_user "\033\[32mReservation created as expected. (Within: inc3.11.1)\033\[m\n"
+			log_debug "\033\[32mReservation created as expected. (Within: inc3.11.1)"
 		}
 		set ret_code [delete_res $res_name]
 		if {$ret_code != 0} {
 			fail "Unable to delete a reservation (Within: inc3.11.1)"
 		} else {
-			send_user "\033\[32mReservation deleted as expected. (Within: inc3.11.1)\033\[m\n"
+			log_debug "\033\[32mReservation deleted as expected. (Within: inc3.11.1)"
 		}
 	}
 }
diff --git a/testsuite/expect/inc3.11.10 b/testsuite/expect/inc3.11.10
index 6fc111a9ca3..d2fc4f8d12d 100644
--- a/testsuite/expect/inc3.11.10
+++ b/testsuite/expect/inc3.11.10
@@ -29,7 +29,7 @@ proc inc3_11_10 {} {
 	# TEST 10
 	# Test node reservation conflict
 	#
-	send_user "\n+++++ STARTING TEST 10 (Within: inc3.11.10) +++++\n"
+	log_info "+++++ STARTING TEST 10 (Within: inc3.11.10) +++++"
 	# Make the reservation
 	set ret_code [create_res "StartTime=now+60minutes Duration=60 Nodes=[available_nodes_hostnames "" true] flags=DAILY user=$user_name" 0]
 	if {$ret_code != 0} {
@@ -45,7 +45,7 @@ proc inc3_11_10 {} {
 		delete_res $res_name
 		fail "Reservation did not fail but should have (Within: inc3.11.10)"
 	} else {
-		send_user "\033\[32mExpected error.  You can turn that frown upside-down.(Within: inc3.11.10)\033\[m\n"
+		log_debug "\033\[32mExpected error. You can turn that frown upside-down.(Within: inc3.11.10)"
 	}
 
 	# Test for reservation conflict
@@ -55,7 +55,7 @@ proc inc3_11_10 {} {
 		delete_res $res_name
 		fail "Reservation did not fail but should have (Within: inc3.11.10)"
 	} else {
-		send_user "\033\[32mExpected error.  You can turn that frown upside-down.(Within: inc3.11.10)\033\[m\n"
+		log_debug "\033\[32mExpected error. You can turn that frown upside-down.(Within: inc3.11.10)"
 	}
 
 
diff --git a/testsuite/expect/inc3.11.11 b/testsuite/expect/inc3.11.11
index 96c974d71d1..67a691c30db 100644
--- a/testsuite/expect/inc3.11.11
+++ b/testsuite/expect/inc3.11.11
@@ -96,7 +96,7 @@ proc inc3_11_11 {} {
 
     global def_partition
 
-	send_user "\n+++++ STARTING TEST 11 (Within: inc3.11.11) +++++\n"
+	log_info "+++++ STARTING TEST 11 (Within: inc3.11.11) +++++"
 
     set part_nodes [available_nodes_hostnames $def_partition true]
     set one_node [get_idle_node_in_part $def_partition]
diff --git a/testsuite/expect/inc3.11.2 b/testsuite/expect/inc3.11.2
index c7a9ae5d947..a922e51003c 100644
--- a/testsuite/expect/inc3.11.2
+++ b/testsuite/expect/inc3.11.2
@@ -35,7 +35,7 @@ proc inc3_11_2 {} {
 
 	# TEST 2
 
-	send_user "\n+++++ STARTING TEST 2 (Within inc3.11.2) +++++\n"
+	log_info "+++++ STARTING TEST 2 (Within inc3.11.2) +++++"
 	set ret_code [create_res "StartTime=now+60minutes Duration=60 NodeCnt=1 User=$user_name" 0]
 	if {$ret_code != 0} {
 		fail "Unable to create a valid reservation (Within inc3.11.2)"
@@ -63,7 +63,7 @@ proc inc3_11_2 {} {
 			set exit_code 1
 			break
 		} else {
-			send_user "\n\033\[32mReservation was updated as expected (Within: inc3.11.2)\033\[m\n"
+			log_debug "\033\[32mReservation was updated as expected (Within: inc3.11.2)"
 		}
 
 	}
diff --git a/testsuite/expect/inc3.11.3 b/testsuite/expect/inc3.11.3
index acb42be58ea..c730c860a35 100644
--- a/testsuite/expect/inc3.11.3
+++ b/testsuite/expect/inc3.11.3
@@ -38,7 +38,7 @@ proc inc3_11_3 {} {
 
 	# TEST 3
 
-	send_user "\n+++++ STARTING TEST 3 (Within: inc3.11.3) +++++\n"
+	log_info "+++++ STARTING TEST 3 (Within: inc3.11.3) +++++"
 	# Make the reservation
 	set ret_code [create_res "StartTime=now+60minutes Duration=60 NodeCnt=1 User=$user_name" 0]
 	if {$ret_code != 0} {
@@ -95,7 +95,7 @@ proc inc3_11_3 {} {
 		}
 	}
 
-	send_user "\n\033\[32mJOB is running as expected (Within: inc3.11.3)\033\[m\n"
+	log_debug "\033\[32mJOB is running as expected (Within: inc3.11.3)"
 
 	# Cancel the job
 	spawn $scancel -v $job_id
diff --git a/testsuite/expect/inc3.11.4 b/testsuite/expect/inc3.11.4
index b4823ccf594..59fb47d5086 100644
--- a/testsuite/expect/inc3.11.4
+++ b/testsuite/expect/inc3.11.4
@@ -39,7 +39,7 @@ proc inc3_11_4 {} {
 	# If not running as root, make a reservation restricted to root, submit a job,
 	# and confirm that the job is rejected.
 	#
-	send_user "\n+++++ STARTING TEST 4 (Within: inc3.11.4) +++++\n"
+	log_info "+++++ STARTING TEST 4 (Within: inc3.11.4) +++++"
 
 	if {$user_name == "root"} {
 		return;
@@ -81,7 +81,7 @@ proc inc3_11_4 {} {
 		log_error "Job $job_id should have been rejected from reservation restricted to root.  Expected rejection message not given. (Within: inc3.11.4)"
 		set exit_code 1
 	} else {
-		send_user "\033\[32mExpected error, no worries mate. (Within: inc3.11.4)\033\[m\n"
+		log_debug "\033\[32mExpected error, no worries mate. (Within: inc3.11.4)"
 	}
 	# Delete the reservation
 	set ret_code [delete_res $res_name]
diff --git a/testsuite/expect/inc3.11.5 b/testsuite/expect/inc3.11.5
index 43898d7bf4a..3533283a258 100644
--- a/testsuite/expect/inc3.11.5
+++ b/testsuite/expect/inc3.11.5
@@ -35,7 +35,7 @@ proc inc3_11_5 {} {
 	# TEST 5
 	# Test node reservation conflict
 	#
-	send_user "\n+++++ STARTING TEST 5 (Within: inc3.11.5) +++++\n"
+	log_info "+++++ STARTING TEST 5 (Within: inc3.11.5) +++++"
 	# Make the reservation
 	set ret_code [create_res "StartTime=now+60minutes Duration=60 Nodes=[available_nodes_hostnames "" true] user=$user_name" 0]
 	if {$ret_code != 0} {
@@ -51,7 +51,7 @@ proc inc3_11_5 {} {
 		delete_res $res_name
 		fail "Reservation did not fail but should have (Within: inc3.11.5)"
 	} else {
-		send_user "\033\[32mExpected error.  You can turn that frown upside-down.(Within: inc3.11.5)\033\[m\n"
+		log_debug "\033\[32mExpected error. You can turn that frown upside-down.(Within: inc3.11.5)"
 	}
 
 	# Delete the reservation
diff --git a/testsuite/expect/inc3.11.6 b/testsuite/expect/inc3.11.6
index 0a8a500c95a..4ade6fc4289 100644
--- a/testsuite/expect/inc3.11.6
+++ b/testsuite/expect/inc3.11.6
@@ -10,7 +10,6 @@
 # Written by Dave Bremer <dbremer@llnl.gov>
 # CODE-OCEC-09-009. All rights reserved.
 #
-#
 # This file is part of Slurm, a resource management program.
 # For details, see <https://slurm.schedmd.com/>.
 # Please also read the included file: DISCLAIMER.
@@ -36,7 +35,7 @@ proc inc3_11_6 {} {
 	# TEST 6
 	# Test time reservation conflict
 	#
-	send_user "\n+++++ STARTING TEST 6 (Within: inc3.11.6) +++++\n"
+	log_info "+++++ STARTING TEST 6 (Within: inc3.11.6) +++++"
 	# Make the reservation
 	set ret_code [create_res "StartTime=now+60minutes Duration=60 Nodes=[available_nodes_hostnames ""] user=$user_name" 0]
 	if {$ret_code != 0} {
@@ -52,7 +51,7 @@ proc inc3_11_6 {} {
 		delete_res $res_name
 		fail "Reservation $test did not fail but should have (Within: inc3.11.6)"
 	} else {
-		send_user "\033\[32mExpected error.  You can turn that frown upside-down.(Within: inc3.11.6)\033\[m\n"
+		log_debug "\033\[32mExpected error. You can turn that frown upside-down.(Within: inc3.11.6)"
 	}
 
 	# Delete the reservation
@@ -77,7 +76,7 @@ proc inc3_11_6 {} {
 		delete_res $res_name
 		fail "Reservation $test did not fail but should have. (Within: inc3.11.6)"
 	} else {
-		send_user "\033\[32mExpected error.  You can turn that frown upside-down.(Within: inc3.11.6)\033\[m\n"
+		log_debug "\033\[32mExpected error. You can turn that frown upside-down.(Within: inc3.11.6)"
 	}
 	# Delete the reservation
 	set ret_code [delete_res $res_name_save]
diff --git a/testsuite/expect/inc3.11.7 b/testsuite/expect/inc3.11.7
index 031711519c7..6452bd0b1c1 100644
--- a/testsuite/expect/inc3.11.7
+++ b/testsuite/expect/inc3.11.7
@@ -37,7 +37,7 @@ proc inc3_11_7 {} {
 	global part_node_cnt part_node_cores res_name res_name res_nodes
 	global res_thread_cnt sbatch scancel scontrol user_name wait_for_job
 
-	send_user "\n+++++ STARTING TEST 7 (Within: inc3.11.7) +++++\n"
+	log_info "+++++ STARTING TEST 7 (Within: inc3.11.7) +++++"
 
 	# Make a reservation, just to get node size information
 	set ret_code [create_res "StartTime=now Duration=1 Nodes=$part_node User=$user_name" 0]
@@ -92,7 +92,7 @@ proc inc3_11_7 {} {
 		log_error "Job $job_id failed to start (Within: inc3.11.7)"
 		set exit_code 1
 	} else {
-		send_user "\n\033\[32mJOB is running as expected (Within: inc3.11.7)\033\[m\n"
+		log_debug "Job is running as expected (Within: inc3.11.7)"
 	}
 	cancel_job $job_id
 
@@ -124,7 +124,7 @@ proc inc3_11_7 {} {
 		log_error "Job $job_id failed to start (Within: inc3.11.7)"
 		set exit_code 1
 	} else {
-		send_user "\n\033\[32mJOB is running as expected (Within: inc3.11.7)\033\[m\n"
+		log_debug "Job is running as expected (Within: inc3.11.7)"
 	}
 	cancel_job $job_id
 
@@ -156,7 +156,7 @@ proc inc3_11_7 {} {
 		log_error "Job $job_id failed to start (Within: inc3.11.7)"
 		set exit_code 1
 	} else {
-		send_user "\n\033\[32mJOB is running as expected (Within: inc3.11.7)\033\[m\n"
+		log_debug "Job is running as expected (Within: inc3.11.7)"
 	}
 	cancel_job $job_id
 
diff --git a/testsuite/expect/inc3.11.8 b/testsuite/expect/inc3.11.8
index 168a1d22923..97391071055 100644
--- a/testsuite/expect/inc3.11.8
+++ b/testsuite/expect/inc3.11.8
@@ -37,7 +37,7 @@ proc inc3_11_8 {} {
 	global alpha_numeric_under scancel
 	global cluster_cpus def_partition
 
-	send_user "\n+++++ STARTING TEST 8 (Within: inc3.11.8) +++++\n"
+	log_info "+++++ STARTING TEST 8 (Within: inc3.11.8) +++++"
 
 	# Make the job script
 	exec $bin_rm -f $file_in
@@ -128,7 +128,7 @@ proc inc3_11_8 {} {
 		cancel_job $job_id
 		fail "job failed to start"
 	}
-	send_user "\nJob is running as expected\n"
+	log_debug "Job is running as expected"
 
 	# Make the reservation using free cores in a node
 	set ret_code [create_res "StartTime=now Duration=60 Nodes=$host_name CoreCnt=$core_res_num User=$user_name" 0]
diff --git a/testsuite/expect/inc3.11.9 b/testsuite/expect/inc3.11.9
index 9e7b05ae34e..693b9631dd4 100644
--- a/testsuite/expect/inc3.11.9
+++ b/testsuite/expect/inc3.11.9
@@ -35,7 +35,7 @@ proc inc3_11_9 {} {
 	global res_nodes res_thread_cnt node_count
 	global def_node_name def_node_inx_min def_node_inx_max
 
-	send_user "\n+++++ STARTING TEST 9 (Within: inc3.11.9) +++++\n"
+	log_info "+++++ STARTING TEST 9 (Within: inc3.11.9) +++++"
 
 #	Assumes nodes have sequential suffix numbers
 	set min_node_inx $def_node_inx_min
@@ -94,7 +94,7 @@ proc inc3_11_9 {} {
 		cancel_job $job_id
 		fail "Job failed to start"
 	}
-	send_user "\nJOB is running as expected\n"
+	log_debug "JOB is running as expected"
 
 	spawn $scontrol show job $job_id
 	expect {
@@ -187,7 +187,7 @@ proc inc3_11_9 {} {
 
 	cancel_job $job_id
 
-	send_user "\n\nLet's check overlapping reservations (Within: inc3.11.9)\n\n";
+	log_info "Let's check overlapping reservations (Within: inc3.11.9)";
 
 	set core_res_num   [ expr $cores_per_node / 2 ]
 	set total_core_res   [ expr $core_res_num * $node_count ]
@@ -285,8 +285,7 @@ proc inc3_11_9 {} {
 		fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 	}
 
-	send_user "\n\033\[32mJOB is running as expected (Within: inc3.11.9)\033\[m\n"
-
+	log_debug "\033\[32mJOB is running as expected (Within: inc3.11.9)"
 
 	# Submit a batch job: a job using more cores than available in first 5 nodes
 	set core_res_num   [ expr $cores_per_node / 2 ]
@@ -322,7 +321,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=PENDING" {
-			send_user "\n\033\[32m Job is PENDING as expected (Within: inc3.11.9)\033\[m\n"
+			log_debug "Job is PENDING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
@@ -381,7 +380,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
-			send_user "\n\033\[32m Job is RUNNING as expected (Within: inc3.11.9)\033\[m\n"
+			log_debug "Job is RUNNING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		-re "JobState=PENDING" {
@@ -442,7 +441,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=PENDING" {
-			send_user "\n\033\[32m Job is PENDING as expected (Within: inc3.11.9)\033\[m\n"
+			log_debug "Job is PENDING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
@@ -500,7 +499,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
-			send_user "\n\033\[32m Job is RUNNING as expected (Within: inc3.11.9)\033\[m\n"
+			log_debug "Job is RUNNING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		-re "JobState=PENDING" {
@@ -558,7 +557,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=PENDING" {
-			send_user "\n\033\[32m Job is PENDING as expected (Within: inc3.11.9)\033\[m\n"
+			log_debug "Job is PENDING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
@@ -624,7 +623,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
-			send_user "\nJob is RUNNING as expected (Within: inc3.11.9)\n"
+			log_debug "Job is RUNNING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		timeout {
@@ -764,7 +763,7 @@ proc inc3_11_9 {} {
 			exp_continue
 		}
 		-re "JobState=RUNNING" {
-			send_user "\nJob is RUNNING as expected (Within: inc3.11.9)\n"
+			log_debug "Job is RUNNING as expected (Within: inc3.11.9)"
 			exp_continue
 		}
 		timeout {
diff --git a/testsuite/expect/slurm_status b/testsuite/expect/slurm_status
index 8dde370b1fb..74d71c6ba66 100755
--- a/testsuite/expect/slurm_status
+++ b/testsuite/expect/slurm_status
@@ -24,7 +24,7 @@
 ############################################################################
 source ./globals
 
-send_user "<<<<<<<<<<<<<<<<<<<< SLURM STATUS, START >>>>>>>>>>>>>>>>>>>>\n"
+puts "<<<<<<<<<<<<<<<<<<<< SLURM STATUS, START >>>>>>>>>>>>>>>>>>>>"
 spawn $sinfo -l
 expect {
 	eof {
@@ -38,6 +38,6 @@ expect {
 		wait
 	}
 }
-send_user "<<<<<<<<<<<<<<<<<<<< SLURM STATUS, END >>>>>>>>>>>>>>>>>>>>\n"
+puts "<<<<<<<<<<<<<<<<<<<< SLURM STATUS, END >>>>>>>>>>>>>>>>>>>>"
 
 exit 0
diff --git a/testsuite/expect/test1.100 b/testsuite/expect/test1.100
index 2a0e0b51360..b1e68b228fd 100755
--- a/testsuite/expect/test1.100
+++ b/testsuite/expect/test1.100
@@ -120,8 +120,8 @@ expect {
 #
 # Verify "pack" distribution of tasks
 #
-send_user "Optimal task layout was: $expected_layout\n"
-send_user "Actual task layout was : $tested_layout\n"
+log_debug "Optimal task layout was: $expected_layout"
+log_debug "Actual task layout was : $tested_layout"
 if {[string compare $tested_layout $expected_layout]} {
 	log_error "Failed to distribute tasks in nopack fashion"
 	set exit_code 1
@@ -172,8 +172,8 @@ expect {
 #
 # Verify "nopack" distribution of tasks
 #
-send_user "Optimal task layout was: $expected_layout\n"
-send_user "Actual task layout was : $tested_layout\n"
+log_debug "Optimal task layout was: $expected_layout"
+log_debug "Actual task layout was : $tested_layout"
 if {[string compare $tested_layout $expected_layout]} {
 	fail "Failed to distribute tasks in nopack fashion"
 }
diff --git a/testsuite/expect/test1.101 b/testsuite/expect/test1.101
index ee7aaf468b1..a0d428d5923 100755
--- a/testsuite/expect/test1.101
+++ b/testsuite/expect/test1.101
@@ -56,7 +56,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		if {$job_id != 0} {
diff --git a/testsuite/expect/test1.103 b/testsuite/expect/test1.103
index 67a1a556044..5a8cd0947c9 100755
--- a/testsuite/expect/test1.103
+++ b/testsuite/expect/test1.103
@@ -96,10 +96,10 @@ if {$job_id == 0} {
 	spawn $scontrol show job $job_id
 	expect {
 		-re "TimeLimit=01:00:00" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=00:59:" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=" {
 			log_error "Timelimit not OK with deadline"
diff --git a/testsuite/expect/test1.104 b/testsuite/expect/test1.104
index 444954270ab..7594465f05c 100755
--- a/testsuite/expect/test1.104
+++ b/testsuite/expect/test1.104
@@ -53,7 +53,7 @@ set found -1
 spawn $scontrol -a show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
@@ -134,7 +134,7 @@ set found 0
 
 # Check EnforcePartLimits value
 set enforcepartlimits [test_enforce_part_limits]
-send_user "\nEnforcePartLimits=$enforcepartlimits\n\n"
+log_debug "EnforcePartLimits=$enforcepartlimits"
 
 #
 # Run a job in this new partition and validate the time limit
@@ -251,7 +251,7 @@ set found -1
 spawn $scontrol show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.105 b/testsuite/expect/test1.105
index e8e874423ce..a1433120bc2 100755
--- a/testsuite/expect/test1.105
+++ b/testsuite/expect/test1.105
@@ -71,10 +71,10 @@ if {$job_id == 0} {
 	spawn $scontrol show job $job_id
 	expect {
 		-re "TimeLimit=00:10:" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=00:09:" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=" {
 			log_error "Timelimit not OK with deadline"
diff --git a/testsuite/expect/test1.106 b/testsuite/expect/test1.106
index f6041c121ae..c30bbb979de 100755
--- a/testsuite/expect/test1.106
+++ b/testsuite/expect/test1.106
@@ -68,7 +68,7 @@ if {$time_error == 0} {
 	log_error "No time-min limit error"
 	set exit_code 1
 } else {
-	send_user "\nTime limit error expected, no worries\n"
+	log_debug "Time limit error expected, no worries"
 }
 
 if {$exit_code != 0} {
diff --git a/testsuite/expect/test1.13 b/testsuite/expect/test1.13
index 335e4634e93..394c2ce10df 100755
--- a/testsuite/expect/test1.13
+++ b/testsuite/expect/test1.13
@@ -46,7 +46,7 @@ set timeout 10
 set srun_pid [spawn $srun --immediate --hold -t1 $bin_pwd]
 expect {
 	-re "Unable to allocate resources" {
-		send_user "\nThis error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr matches
 		exp_continue
 	}
@@ -74,7 +74,7 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun --immediate -v -t1 $bin_pwd]
 expect {
 	-re "error" {
-		send_user "\nThis error is not unexpected, no worries\n"
+		log_debug "This error is not unexpected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.14 b/testsuite/expect/test1.14
index 1f8b4b0e780..41c6cff49d0 100755
--- a/testsuite/expect/test1.14
+++ b/testsuite/expect/test1.14
@@ -134,7 +134,7 @@ if { $matches > $tasks_per_node } {
 }
 
 if {$exit_code == 0} {
-	send_user "\nSo far, so good. Trying with --immediate option\n\n"
+	log_info "So far, so good. Trying with --immediate option"
 } else {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
@@ -209,7 +209,7 @@ expect {
 		exp_continue
 	}
 	-re "Unable to create " {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.15 b/testsuite/expect/test1.15
index ab85bd81adb..9772cc75481 100755
--- a/testsuite/expect/test1.15
+++ b/testsuite/expect/test1.15
@@ -46,7 +46,7 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun -n10 -N1 -O -W2 -t2 ./$file_in]
 expect {
 	-re "First task exited" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.17 b/testsuite/expect/test1.17
index 84a495bdfb3..49826db5251 100755
--- a/testsuite/expect/test1.17
+++ b/testsuite/expect/test1.17
@@ -115,7 +115,7 @@ if {[wait_for_file $file_err] == 0} {
 			set exit_code 1
 		}
 		-re "$sleep_error_message" {
-			send_user "\nNo worries, this error is expected\n"
+			log_debug "No worries, this error is expected"
 			incr got_sleep_err
 			exp_continue
 		}
@@ -183,7 +183,7 @@ if {[wait_for_file $file_err] == 0} {
 	spawn $bin_cat $file_err
 	expect {
 		-re "$sleep_error_message" {
-			send_user "\nNo worries, this error is expected\n"
+			log_debug "No worries, this error is expected"
 			incr got_sleep_err
 			exp_continue
 		}
diff --git a/testsuite/expect/test1.18 b/testsuite/expect/test1.18
index bb94613a54e..08c013ced8d 100755
--- a/testsuite/expect/test1.18
+++ b/testsuite/expect/test1.18
@@ -47,7 +47,7 @@ set srun_pid [spawn $srun --licenses=DUMMY_FOR_TESTING $bin_printenv SLURMD_NODE
 expect {
 	-re "Invalid license" {
 		set match 1
-		send_user "This error was expected, no worries\n\n"
+		log_debug "This error was expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -89,9 +89,7 @@ if {[string compare $licenses ""] != 0} {
 			exp_continue
 		}
 		timeout {
-			send_user "\nNOTE: srun not responding\n"
-			send_user "  This test can fail if the selected "
-			send_user "license is in use.\n"
+			log_error "srun not responding. This test can fail if the selected license is in use"
 			set exit_code 1
 		}
 		eof {
diff --git a/testsuite/expect/test1.19 b/testsuite/expect/test1.19
index 3526b3e3a0c..d7c0543ae70 100755
--- a/testsuite/expect/test1.19
+++ b/testsuite/expect/test1.19
@@ -111,7 +111,7 @@ expect {
 		exp_continue
 	}
 	-re "exit code $number" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set srun_exit 1
 		exp_continue;
 	}
@@ -247,7 +247,7 @@ expect {
 		exp_continue
 	}
 	-re "error" {
-		send_user "\nDo not worry this error is expected\n"
+		log_debug "Do not worry this error is expected"
 		set srun_exit 1
 		exp_continue;
 	}
diff --git a/testsuite/expect/test1.20 b/testsuite/expect/test1.20
index 78ea07e11b0..35739915303 100755
--- a/testsuite/expect/test1.20
+++ b/testsuite/expect/test1.20
@@ -76,7 +76,7 @@ expect {
 		exp_continue
 	}
 	-re "exit code $number" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set matches 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.21 b/testsuite/expect/test1.21
index 94375b4ee3d..2bf0faf3207 100755
--- a/testsuite/expect/test1.21
+++ b/testsuite/expect/test1.21
@@ -65,7 +65,7 @@ expect {
 		exp_continue
 	}
 	-re "error: First task exited" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -87,7 +87,7 @@ if {[test_front_end]} {
 }
 
 if {$exit_code == 0} {
-	send_user "\nSo far... stdin to specific task worked fine\n\n\n"
+	log_info "So far... stdin to specific task worked fine"
 }
 
 #
diff --git a/testsuite/expect/test1.23 b/testsuite/expect/test1.23
index 73af1d388c9..ba9ef2e3a66 100755
--- a/testsuite/expect/test1.23
+++ b/testsuite/expect/test1.23
@@ -48,7 +48,7 @@ set timeout	$max_job_delay
 set srun_pid [spawn $srun -N1 -l --mincpus=999999 -t1 $bin_date]
 expect {
 	-re "configuration is not available" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set err_msg 1
 		exp_continue
 	}
@@ -115,7 +115,7 @@ set timeout	$max_job_delay
 set srun_pid [spawn $srun -N1 -l --mem=999999 -t1 $bin_date]
 expect {
 	-re "not available" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set err_msg 1
 		exp_continue
 	}
@@ -155,7 +155,7 @@ set timeout	$max_job_delay
 set srun_pid [spawn $srun -N1 -l --mem=10 -t1 $bin_date]
 expect {
 	-re "not available" {
-		send_user "This error is not unexpected, no worries\n"
+		log_debug "This error is not unexpected, no worries"
 		set err_msg 1
 		exp_continue
 	}
@@ -192,7 +192,7 @@ set timeout	$max_job_delay
 set srun_pid [spawn $srun -N1 -l --tmp=999999999 -t1 $bin_date]
 expect {
 	-re "configuration is not available" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set err_msg 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.24 b/testsuite/expect/test1.24
index f29cc6eea7a..80b44a73779 100755
--- a/testsuite/expect/test1.24
+++ b/testsuite/expect/test1.24
@@ -47,7 +47,7 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun -N1 -l --constraint=invalid,constraint -t1 $bin_printenv SLURMD_NODENAME]
 expect {
 	-re "error:.*Invalid feature specification" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set err_msg 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.26 b/testsuite/expect/test1.26
index 2b91eac4b08..5b560609ec3 100755
--- a/testsuite/expect/test1.26
+++ b/testsuite/expect/test1.26
@@ -116,12 +116,12 @@ expect {
 		exp_continue
 	}
 	-re "error: .*try again" {
-		send_user "Can't avoid this possible error\n"
+		log_debug "Can't avoid this possible error"
 		set host_1 $host_0
 		exp_continue
 	}
 	-re "error: .*already in shared memory" {
-		send_user "Can't avoid this possible error\n"
+		log_debug "Can't avoid this possible error"
 		set host_1 $host_0
 		exp_continue
 	}
@@ -178,7 +178,7 @@ for {set inx 0} {$inx < $iterations} {incr inx} {
 	expect {
 		-i $noalloc2
 		-re "error:.*configuring interconnect" {
-			send_user "Can't avoid this possible error\n"
+			log_debug "Can't avoid this possible error"
 			exp_continue
 		}
 		-re "error:" {
@@ -200,7 +200,7 @@ for {set inx 0} {$inx < $iterations} {incr inx} {
 	expect {
 		-i $noalloc1
 		-re "error:.*configuring interconnect" {
-			send_user "Can't avoid this possible error\n"
+			log_debug "Can't avoid this possible error"
 			exp_continue
 		}
 		-re "error:" {
@@ -228,7 +228,7 @@ for {set inx 0} {$inx < $iterations} {incr inx} {
 			exp_continue
 		}
 		-re "error:.*configuring interconnect" {
-			send_user "Can't avoid this possible error\n"
+			log_debug "Can't avoid this possible error"
 			exp_continue
 		}
 		-re "error:" {
diff --git a/testsuite/expect/test1.27 b/testsuite/expect/test1.27
index eec0a9a8a88..e1728c54558 100755
--- a/testsuite/expect/test1.27
+++ b/testsuite/expect/test1.27
@@ -104,7 +104,6 @@ expect {
 
 set total 0
 set good 0
-send_user "\n"
 foreach {slurm_var check_flag} [array get good_vars] {
 	incr total
 	if {[info exists found_vars($slurm_var)]} {
diff --git a/testsuite/expect/test1.29 b/testsuite/expect/test1.29
index dc4191d3851..fd4a5b0aeff 100755
--- a/testsuite/expect/test1.29
+++ b/testsuite/expect/test1.29
@@ -179,7 +179,7 @@ expect {
 		if {$expect_out(1,string) == $target} {
 			incr matches
 		} else {
-			send_user "\nCORE value bad ($expect_out(1,string) != $target)\n"
+			log_warn "CORE value bad ($expect_out(1,string) != $target)"
 		}
 		exp_continue
 	}
@@ -188,7 +188,7 @@ expect {
 		if {$expect_out(1,string) == $target} {
 			incr matches
 		} else {
-			send_user "\nFSIZE value bad ($expect_out(1,string) != $target)\n"
+			log_warn "FSIZE value bad ($expect_out(1,string) != $target)"
 		}
 		exp_continue
 	}
@@ -196,7 +196,7 @@ expect {
 		if {$expect_out(1,string) == $limit_nofile} {
 			incr matches
 		} else {
-			send_user "\nNOFILE value bad ($expect_out(1,string) != $limit_nofile)\n"
+			log_warn "NOFILE value bad ($expect_out(1,string) != $limit_nofile)"
 		}
 		exp_continue
 	}
@@ -204,7 +204,7 @@ expect {
 		if {$expect_out(1,string) == $limit_nproc} {
 			incr matches
 		} else {
-			send_user "\nNPROC value bad ($expect_out(1,string) != $limit_nproc)\n"
+			log_warn "NPROC value bad ($expect_out(1,string) != $limit_nproc)"
 		}
 		exp_continue
 	}
@@ -217,7 +217,7 @@ expect {
 		if {$expect_out(1,string) == [expr $limit_stack * 1024]} {
 			incr matches
 		} else {
-			send_user "\nSTACK value bad ($expect_out(1,string) != $target)\n"
+			log_warn "STACK value bad ($expect_out(1,string) != $target)"
 		}
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.30 b/testsuite/expect/test1.30
index 21679c35797..c6929d0a4af 100755
--- a/testsuite/expect/test1.30
+++ b/testsuite/expect/test1.30
@@ -53,7 +53,7 @@ for {set node_cnt 1} {$node_cnt < $max_node_cnt} {set node_cnt [expr $node_cnt *
 	set srun_pid [spawn $srun --immediate -N$node_cnt $srun_opts -t2 $bin_printenv SLURMD_NODENAME]
 	expect {
 		-re "Immediate execution impossible" {
-			send_user "This error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 			set node_cnt $max_node_cnt
 			set error 0
 			exp_continue
@@ -64,13 +64,13 @@ for {set node_cnt 1} {$node_cnt < $max_node_cnt} {set node_cnt [expr $node_cnt *
 			exp_continue
 		}
 		-re "Unable to allocate resources" {
-			send_user "This error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 			set node_cnt $max_node_cnt
 			set error 0
 			exp_continue
 		}
 		-re "Too many open files" {
-			send_user "This error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 			set node_cnt $max_node_cnt
 			exp_continue
 		}
diff --git a/testsuite/expect/test1.31 b/testsuite/expect/test1.31
index 2020d7356cc..60fd2b23bf0 100755
--- a/testsuite/expect/test1.31
+++ b/testsuite/expect/test1.31
@@ -62,7 +62,7 @@ set timeout          $max_job_delay
 global env
 set env($env_name_debug)   $env_valu_debug
 set env($env_name_nnodes)  $env_valu_nnodes
-send_user "$env_valu_nnodes $env_valu_nprocs\n";
+log_debug "$env_valu_nnodes $env_valu_nprocs";
 set env($env_name_nprocs)  $env_valu_nprocs
 set env($env_name_stdout)  $env_valu_stdout
 set env($env_name_overcom) $env_valu_overcom
diff --git a/testsuite/expect/test1.32 b/testsuite/expect/test1.32
index 21d00d1633b..5d531c30e21 100755
--- a/testsuite/expect/test1.32
+++ b/testsuite/expect/test1.32
@@ -78,12 +78,12 @@ expect {
 			sleep 1
 			exec $bin_kill -USR1 $srun_pid
 		}
-		send_user "\nSent signal USR1 $usr1target times\n"
+		log_debug "Sent signal USR1 $usr1target times"
 		for {set inx 0} {$inx < $usr2target} {incr inx} {
 			sleep 1
 			exec $bin_kill -USR2 $srun_pid
 		}
-		send_user "\nSent signal USR2 $usr2target times\n"
+		log_debug "Sent signal USR2 $usr2target times"
 		exp_continue
 	}
 	-re "SIGUSR($number)" {
@@ -95,7 +95,7 @@ expect {
 		exp_continue
 	}
 	-re "error.*not running" {
-		send_user "\nDon't worry about the error...\n"
+		log_debug "Don't worry about the error.."
 		exp_continue
 	}
 	-re "FINI" {
@@ -108,7 +108,7 @@ expect {
 		set exit_code 1
 	}
 	eof {
-		send_user "\nEOF\n"
+		log_debug "EOF"
 		wait
 	}
 }
diff --git a/testsuite/expect/test1.33 b/testsuite/expect/test1.33
index 49ea6bceab9..3baeff946f2 100755
--- a/testsuite/expect/test1.33
+++ b/testsuite/expect/test1.33
@@ -69,7 +69,7 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun -N1 -n $task_cnt -O -t1 $exit_script]
 expect {
 	-re "exit code ($number)" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr sum $expect_out(1,string)
 		exp_continue
 	}
@@ -95,7 +95,7 @@ set matches 0
 spawn $test_script
 expect {
 	-re "srun_exit_code_11" {
-		send_user "Above error are expected, no worries\n"
+		log_debug "Above error are expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.34 b/testsuite/expect/test1.34
index 89e0405c933..cd551b38d8d 100755
--- a/testsuite/expect/test1.34
+++ b/testsuite/expect/test1.34
@@ -62,7 +62,7 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun -n1 -t1 ./$file_in]
 expect {
 	-re "Segmentation fault" {
-		send_user "\nThis Seg Fault was expected, no worries\n"
+		log_debug "This Seg Fault was expected, no worries"
 		set matches 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.38 b/testsuite/expect/test1.38
index 16fc0cf72b0..b1b72bae3a6 100755
--- a/testsuite/expect/test1.38
+++ b/testsuite/expect/test1.38
@@ -103,7 +103,7 @@ if {[expr $match_wait + $match_int + $match_term] != 3} {
 	set exit_code 1
 }
 if {$exit_code == 0} {
-	send_user "\nSo far, so good\n\n"
+	log_debug "So far, so good"
 } else {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
diff --git a/testsuite/expect/test1.41 b/testsuite/expect/test1.41
index abad93d13c3..53f4c5448a3 100755
--- a/testsuite/expect/test1.41
+++ b/testsuite/expect/test1.41
@@ -86,7 +86,7 @@ expect {
 }
 
 if {$timed_out == 1} {
-	send_user "\nEarly termination is expected, no worries.\n"
+	log_debug "Early termination is expected, no worries"
 }
 
 if {$task_cnt != $resp_cnt} {
diff --git a/testsuite/expect/test1.43 b/testsuite/expect/test1.43
index 9633e2d3de2..c467d146098 100755
--- a/testsuite/expect/test1.43
+++ b/testsuite/expect/test1.43
@@ -74,7 +74,7 @@ for {set node_cnt 1} {$node_cnt > 0} {set node_cnt [expr $node_cnt * 2]} {
 if {$jobs_run == 0} {
 	fail "No jobs run"
 } elseif {$alloc_fail == 1} {
-	send_user "\nError expected. No worries.\n"
+	log_debug "Error expected. No worries"
 }
 
 if {$exit_code != 0} {
diff --git a/testsuite/expect/test1.44 b/testsuite/expect/test1.44
index 2fc6af3bbb8..49c98aafe67 100755
--- a/testsuite/expect/test1.44
+++ b/testsuite/expect/test1.44
@@ -52,7 +52,7 @@ print_header $test_id
 proc run_cat_backpressure { input_file output_file } {
 	global bin_cat bin_sleep bin_rm srun node_cnt task_cnt timeout file_err
 
-	send_user "Running run_cat_backpressure (This is slow)."
+	log_debug "Running run_cat_backpressure (This is slow)"
 	exec $bin_rm -f $file_err $output_file
 	set iter 0
 
@@ -62,12 +62,12 @@ proc run_cat_backpressure { input_file output_file } {
 		puts -nonewline $output [read $srun_output 1]
 		incr iter
 		if {[expr $iter % 1000] == 0} {
-			send_user "."
+			puts -nonewline "."
 			exec $bin_sleep 1
 		}
 	}
 
-	send_user "\n"
+	puts ""
 	flush $output
 	close $output
 }
diff --git a/testsuite/expect/test1.46 b/testsuite/expect/test1.46
index fab86be7cb4..175ff368c16 100755
--- a/testsuite/expect/test1.46
+++ b/testsuite/expect/test1.46
@@ -77,7 +77,7 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun -n10 -N1 -O --kill-on-bad-exit -t1 ./$file_in]
 expect {
 	-re "exit code 2" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.49 b/testsuite/expect/test1.49
index cce3f0b3391..3c39b01505a 100755
--- a/testsuite/expect/test1.49
+++ b/testsuite/expect/test1.49
@@ -109,7 +109,7 @@ if {$matches != $exp_matches} {
 	log_error "Prolog exported env var failure ($matches != $exp_matches)"
 	set exit_code 1
 } else {
-	send_user "\nSo far, so good\n\n"
+	log_debug "So far, so good"
 }
 
 #
diff --git a/testsuite/expect/test1.50 b/testsuite/expect/test1.50
index 623ca9133e0..ce28d2cc926 100755
--- a/testsuite/expect/test1.50
+++ b/testsuite/expect/test1.50
@@ -52,12 +52,12 @@ set timeout $max_job_delay
 set srun_pid [spawn $srun -N1 -t1 /bad/bad/bad]
 expect {
 	-re "No such file" {
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		set matches 1
 		exp_continue
 	}
 	-re "Unable to run executable" {
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		set matches 1
 		 exp_continue
 	}
diff --git a/testsuite/expect/test1.52 b/testsuite/expect/test1.52
index 0f47c1713de..2a85806f4f6 100755
--- a/testsuite/expect/test1.52
+++ b/testsuite/expect/test1.52
@@ -145,7 +145,7 @@ for {set i 0} {$i<3} {incr i} {
 		}
 	}
 	if { $task_cnt != 3 } {
-		send_user "\nNo worries, test just can not run here\n"
+		log_warn "No worries, test just can not run here"
 	} elseif { $i == 1 } {
 		if { [string compare $node0 $1node0] } {
 			log_error "Task 0 not distributed by hostfile ($node0 != $1node0)"
diff --git a/testsuite/expect/test1.54 b/testsuite/expect/test1.54
index 127222818f8..dea377968bb 100755
--- a/testsuite/expect/test1.54
+++ b/testsuite/expect/test1.54
@@ -96,7 +96,7 @@ if {$matches != 4} {
 if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 } else {
-	send_user "\nSo far, so good\n\n"
+	log_debug "So far, so good"
 }
 
 #
@@ -161,7 +161,7 @@ if {$job_id == 0} {
 if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 } else {
-	send_user "\nSo far, so good\n\n"
+	log_debug "So far, so good"
 }
 
 #
@@ -172,7 +172,7 @@ set matches   0
 set srun_pid [spawn $srun -N1 -n5 --overcommit -l -t1 --multi-prog  ./$file_in]
 expect {
 	-re "Configuration file .* invalid" {
-		send_user "\nNo worries. This error is expected\n"
+		log_debug "No worries. This error is expected"
 		incr matches
 	}
 	timeout {
diff --git a/testsuite/expect/test1.55 b/testsuite/expect/test1.55
index 608da1e038a..171d654a9ac 100755
--- a/testsuite/expect/test1.55
+++ b/testsuite/expect/test1.55
@@ -84,7 +84,7 @@ if {$jobid == 0 || $job_running == 0} {
 #
 # Kill srun's stdio streams
 #
-send_user "Test saw stepid $stepid\n"
+log_debug "Test saw stepid $stepid"
 set file [exp_open]
 close $file
 
@@ -104,14 +104,14 @@ while {[string compare $running ""]} {
 	}
 	incr i 1
 }
-send_user "Test sees step is gone, srun should have exited as well.\n"
+log_debug "Test sees step is gone, srun should have exited as well"
 
 #
 # And finally check to see if srun is still hanging around (it should
 # have exited by now) and job has completed
 #
 if [catch {exec kill -0 $srun_pid}] {
-	send_user "\nsrun command is terminated, as desired\n"
+	log_debug "Srun command is terminated, as desired"
 	set exit_code 0
 } else {
 	log_error "srun is still running after job exits!"
diff --git a/testsuite/expect/test1.56 b/testsuite/expect/test1.56
index 43f378b05bb..6cb44d77d55 100755
--- a/testsuite/expect/test1.56
+++ b/testsuite/expect/test1.56
@@ -43,7 +43,7 @@ set short_string "foo bar baz "
 set count [expr $slurmstepd_cbuf_size / [string length $short_string] + 1]
 set really_big_string [string repeat $short_string $count]
 unset count
-send_user "really_big_string is [string length $really_big_string] bytes\n"
+log_debug "Really_big_string is [string length $really_big_string] bytes"
 
 #
 # Create a test input file
diff --git a/testsuite/expect/test1.59 b/testsuite/expect/test1.59
index dc30084952a..daa8f53467f 100755
--- a/testsuite/expect/test1.59
+++ b/testsuite/expect/test1.59
@@ -79,7 +79,7 @@ expect {
 		exp_continue
 	}
 	-re $prompt {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc not responding"
@@ -105,7 +105,7 @@ for {set i 0} {$i<4} {incr i} {
 		send "export SLURM_HOSTFILE=$hostfile\r"
 		expect {
 			-re $prompt {
-				#send_user "srun completed\n"
+				#log_debug "Srun completed"
 			}
 		}
 		set 1node0 $node0
@@ -173,7 +173,7 @@ for {set i 0} {$i<4} {incr i} {
 			exp_continue
 		}
 		-re $prompt {
-			#send_user "srun completed\n"
+			#log_debug "Srun completed"
 		}
 		-re "Granted job allocation ($number)" {
 			set job_id $expect_out(1,string)
@@ -237,7 +237,7 @@ for {set i 0} {$i<4} {incr i} {
 send "unset SLURM_HOSTFILE\r"
 expect {
 	-re $prompt {
-		#send_user "srun completed\n"
+		#log_debug "Srun completed"
 	}
 }
 
@@ -316,14 +316,14 @@ for {set i 0} {$i<5} {incr i} {
 		}
 		-re "error" {
 			if { $i == 4 } {
-				send_user "\nThis error is expected, no worries\n"
+				log_debug "This error is expected, no worries"
 			} else {
 				set exit_code 1
 			}
 			exp_continue
 		}
 		-re $prompt {
-			#send_user "srun completed\n"
+			#log_debug "Srun completed"
 		}
 		-re "slurm job ($number)" {
 			set job_id $expect_out(1,string)
@@ -376,7 +376,7 @@ for {set i 0} {$i<5} {incr i} {
 send "exit\r"
 expect {
 	-re "error.*Exit 1" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test1.60 b/testsuite/expect/test1.60
index ad6d30ece6c..7f8f0d1b881 100755
--- a/testsuite/expect/test1.60
+++ b/testsuite/expect/test1.60
@@ -169,7 +169,7 @@ for {set node_id 0} {$node_id < $node_count} {incr node_id} {
 	set file_out_n_glob  "test$test_id.n.$node_id.output"
 	if {[wait_for_file $file_out_n_glob] != 0} {
 		if {$node_id == 1} {
-			send_user "\nNOTE: This failure is expected on front-end configurations\n"
+			log_debug "This failure is expected on front-end configurations"
 		}
 		set exit_code 1
 		break
diff --git a/testsuite/expect/test1.62 b/testsuite/expect/test1.62
index 6efec3b91dc..8324dc658b4 100755
--- a/testsuite/expect/test1.62
+++ b/testsuite/expect/test1.62
@@ -123,7 +123,7 @@ proc run_gpu_fail { gres_spec } {
 		log_error "Failure to reject job with invalid GRES specification"
 		set exit_code 1
 	} else {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 	}
 	return
 }
@@ -137,7 +137,7 @@ set gpu_cnt [get_gpu_count 1]
 if {$gpu_cnt < 1} {
 	skip "This test can not be run without gres/gpu configured"
 }
-send_user "\n GPUs:$gpu_cnt\n"
+log_debug "GPUs:$gpu_cnt"
 #
 # Spawn a job via srun to print environment variables and
 # check count GPU devices allocated
@@ -152,7 +152,7 @@ for {set inx 1} {$inx <= $gpu_cnt && $inx <= 3} {incr inx} {
 #
 # Spawn a job via srun with various invalid GRES specifications
 #
-send_user "\nTest various invalid GRES specifications\n"
+log_info "Test various invalid GRES specifications"
 run_gpu_fail "gpu:"
 run_gpu_fail "gpu::"
 run_gpu_fail "gpu:tesla:"
diff --git a/testsuite/expect/test1.64 b/testsuite/expect/test1.64
index 177226bcfb5..6ab1c6a0a0e 100755
--- a/testsuite/expect/test1.64
+++ b/testsuite/expect/test1.64
@@ -49,7 +49,7 @@ expect {
 		incr matches
 		sleep 1
 		exec $bin_kill -INT $srun_pid
-		send_user "\nSent SIGINT\n"
+		log_debug "Sent SIGINT"
 		exp_continue
 	}
 	-re "Job allocation ($number) has been revoked" {
@@ -63,7 +63,7 @@ expect {
 		set exit_code 1
 	}
 	eof {
-		send_user "\nEOF\n"
+		log_debug "EOF"
 		wait
 	}
 }
diff --git a/testsuite/expect/test1.7 b/testsuite/expect/test1.7
index f0a62c6568c..b9430ca0658 100755
--- a/testsuite/expect/test1.7
+++ b/testsuite/expect/test1.7
@@ -89,7 +89,7 @@ if {$over_time_limit > 0} {
 }
 if {$inactive_limit < $sleep_time} {
 	set sleep_time [expr $inactive_limit + $kill_wait]
-	send_user "\nReset job sleep time to $sleep_time seconds\n"
+	log_debug "Reset job sleep time to $sleep_time seconds"
 }
 
 #
@@ -132,7 +132,7 @@ expect {
 	}
 }
 if {$timed_out == 1} {
-	send_user "Early termination is expected, no worries.\n"
+	log_debug "Early termination is expected, no worries"
 } else {
 	log_error "Time limit not enforced"
 	set exit_code 1
diff --git a/testsuite/expect/test1.71 b/testsuite/expect/test1.71
index 4525fa83e3b..27e4316947c 100755
--- a/testsuite/expect/test1.71
+++ b/testsuite/expect/test1.71
@@ -66,7 +66,7 @@ spawn ./$script
 expect {
 
 	-re "Segmentation fault" {
-		send_user "\nThis error is expected do not worry\n"
+		log_debug "This error is expected do not worry"
 		incr error_match
 		exp_continue
 	}
@@ -113,7 +113,7 @@ expect {
 if {$error_match != 2} {
 	fail "srun did not have a segmentation error when running the program ($error_match != 2)"
 } else {
-	send_user "\nThis error is expected\n"
+	log_debug "This error is expected"
 }
 
 if {$exit_code == 0} {
diff --git a/testsuite/expect/test1.72 b/testsuite/expect/test1.72
index d573ab91348..c1fa2975307 100755
--- a/testsuite/expect/test1.72
+++ b/testsuite/expect/test1.72
@@ -76,7 +76,7 @@ set sub_match 0
 spawn $srun -v --mem=200 --acctg-freq=[expr $freq_val + 10] sleep 5
 expect {
 	-re "Invalid accounting frequency" {
-		send_user "\nThis error is expect do not worry.\n"
+		log_debug "This error is expect do not worry"
 		set sub_match 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test1.74 b/testsuite/expect/test1.74
index 14c1415b1af..52bb0ecf5c7 100755
--- a/testsuite/expect/test1.74
+++ b/testsuite/expect/test1.74
@@ -188,7 +188,7 @@ if {[add_child $acct_c1 $acct_c2 [expr $node_cnt - 2] -1]} {
 	fail "Unable to add child account ($acct_c2)"
 }
 
-send_user "############################# Test QoS Limits #################################\n"
+log_info "############################# Test QoS Limits #################################"
 
 if {[mod_acct $acct [array get mod_acct_desc_vals] [array get mod_acct_vals] [array get mod_acct_assoc_vals]] != 0} {
 	fail "Account was not modified"
@@ -242,12 +242,12 @@ srun_test 1 $acct
 set mod_acct_assoc_vals(maxnodes) -1
 
 
-send_user "##################### Test limits based on associations #####################\n"
+log_info "##################### Test limits based on associations #####################"
 
 #
 # MaxNodes Limit
 #
-send_user "\nTesting Association MaxNode Limits\n"
+log_info "Testing Association MaxNode Limits"
 
 set mod_qos_vals(GrpNodes) -1
 if {[mod_qos $qos [array get mod_qos_vals]]} {
@@ -268,7 +268,7 @@ srun_test [expr $node_cnt - 2] $acct_c2
 #
 # GrpNodes Limit
 #
-send_user "\nTesting GrpNode Limits\n"
+log_info "Testing GrpNode Limits"
 
 # Modify child with GrpNode
 set mod_acct_assoc_vals(MaxNode) -1
diff --git a/testsuite/expect/test1.75 b/testsuite/expect/test1.75
index b1dfb9b1c29..01ab3c01806 100755
--- a/testsuite/expect/test1.75
+++ b/testsuite/expect/test1.75
@@ -81,14 +81,14 @@ proc sub_job { freq } {
 	array set this_freq $freq
 
 	foreach option [array names this_freq] {
-		send_user "\n======= TESTING FREQUENCY/GOVERNOR $option =======\n"
+		log_info "======= TESTING FREQUENCY/GOVERNOR $option ======="
 		set skip false
 		set job_id 0
 		set srun_pid [spawn $srun -t1 --cpu-freq=$option -n$threads -w$node ./$file_id]
 		expect {
 			-re "not allowed" {
 				if {[string first $option $avail_governors] == -1} {
-					send_user "\nThis error is expected, no worries\n"
+					log_debug "This error is expected, no worries"
 					set skip true
 				} else {
 					log_error "This CPU frequency should be valid"
@@ -223,7 +223,7 @@ cancel_job $job_id
 # Test various CPU governor values
 #
 set avail_governors get_cpu_governors
-send_user "\nCpuFreqGovernors = $avail_governors\n"
+log_debug "CpuFreqGovernors = $avail_governors"
 
 array set freq_lvl_2 [sub_job [array get freq_lvl_2]]
 
@@ -238,9 +238,9 @@ if {($freq_lvl_2(conservative) == 0) || ($freq_lvl_2(ondemand) == 0) ||
 #
 array set freq_lvl_1 [sub_job [array get freq_lvl_1]]
 
-send_user "\n======= Reported frequencies =======\n"
+log_debug "======= Reported frequencies ======="
 foreach name [array names freq_lvl_1] {
-	send_user "$name is $freq_lvl_1($name) GHz\n"
+	log_debug "$name is $freq_lvl_1($name) GHz"
 }
 
 if { (($freq_lvl_1(low) > $freq_lvl_1(medium)) ||
diff --git a/testsuite/expect/test1.76 b/testsuite/expect/test1.76
index 683154a1de3..a7ff14815d3 100755
--- a/testsuite/expect/test1.76
+++ b/testsuite/expect/test1.76
@@ -153,10 +153,10 @@ proc test_freq {opt expmin expcur expmax expgov} {
 	}
 	close $fd
 
-	send_user "\n--cpu-freq=$opt\n"
-	send_user "start_freq: $start_value\n"
-	send_user "test_freq:  $test_value\n"
-	send_user "end_freq:   $end_value\n\n"
+	log_debug "--cpu-freq=$opt"
+	log_debug "Start_freq: $start_value"
+	log_debug "Test_freq:  $test_value"
+	log_debug "End_freq:   $end_value"
 
 	set strt_vals [split $start_value " "]
 	set sgov [string range [lindex $strt_vals 0] 4 end]
@@ -209,11 +209,11 @@ proc test_freq {opt expmin expcur expmax expgov} {
 			return 2
 		}
 	} elseif {$expcur != 0} {
-		send_user "\nDifference between requested and actual frequency is $percent_error percent ($tcur vs. $expcur)\n\n"
+		log_debug "Difference between requested and actual frequency is $percent_error percent ($tcur vs. $expcur)"
 	}
 	if {[string compare $expmax 0] !=0 
 	    && [string compare $tmax $expmax] != 0} {
-		send_user "\nERROR: --cpu-freq=$opt -- test max $tmax not expected ($expmax)\n"
+		log_error "--cpu-freq=$opt -- test max $tmax not expected ($expmax)"
 		log_user 1
 		return 1
 	}
@@ -309,7 +309,7 @@ if {$test_cpu == -1} {
 	fail "Failed to get CPU count on node $test_node"
 }
 incr test_cpu -1
-send_user "test node is $test_node, test_cpu is $test_cpu\n"
+log_debug "Test node is $test_node, test_cpu is $test_cpu"
 
 # Verify that selected CPU on selected node supports cpu_frequency
 set have_on_demand 0
@@ -356,7 +356,7 @@ set xlow [lindex $avail_freq 0]
 set xhigh [lindex $avail_freq $nfreq-1]
 set xhighm1 [lindex $avail_freq $nfreq-2]
 set xmed [lindex $avail_freq $xmx]
-send_user "\nFrequencies: low:$xlow medium:$xmed highm1:$xhighm1 high:$xhigh\n"
+log_debug "Frequencies: low:$xlow medium:$xmed highm1:$xhighm1 high:$xhigh"
 
 #
 # Now run the tests
diff --git a/testsuite/expect/test1.77 b/testsuite/expect/test1.77
index 89b393ceb1b..40440f2260e 100755
--- a/testsuite/expect/test1.77
+++ b/testsuite/expect/test1.77
@@ -93,7 +93,7 @@ set wait_file [wait_for_file $file_out]
 spawn $bin_grep SLURM_JOB_NAME=banana $file_out
 expect {
         -re "SLURM_JOB_NAME=($alpha_numeric)" {
-            send_user "Job name matched $expect_out(1,string)\n"
+            log_debug "Job name matched $expect_out(1,string)"
             set found 1
             exp_continue
 	}
diff --git a/testsuite/expect/test1.8 b/testsuite/expect/test1.8
index 67e5af4ba99..986e8526551 100755
--- a/testsuite/expect/test1.8
+++ b/testsuite/expect/test1.8
@@ -115,7 +115,7 @@ if {[wait_for_file $file_err] == 0} {
 	spawn $bin_cat $file_err
 	expect {
 		-re "$sleep_error_message" {
-			send_user "\nNo worries, this error is expected\n"
+			log_debug "No worries, this error is expected"
 			set got_sleep_err 1
 			exp_continue
 		}
diff --git a/testsuite/expect/test1.80 b/testsuite/expect/test1.80
index caf8a5a7a5c..a6a0cdfd71d 100755
--- a/testsuite/expect/test1.80
+++ b/testsuite/expect/test1.80
@@ -101,8 +101,8 @@ expect {
 # Verify block distribution of tasks
 #
 
-send_user "Optimal task layout was: $expected_layout2\n"
-send_user "Actual task layout was : $tested_layout\n"
+log_debug "Optimal task layout was: $expected_layout2"
+log_debug "Actual task layout was : $tested_layout"
 if {[string compare $tested_layout $expected_layout1] &&
     [string compare $tested_layout $expected_layout2] &&
     [string compare $tested_layout $expected_layout3]} {
@@ -165,8 +165,8 @@ expect {
 #
 # Verify cyclic distribution of tasks
 #
-send_user "Optimal task layout was: $expected_layout2\n"
-send_user "Actual task layout was : $tested_layout\n"
+log_debug "Optimal task layout was: $expected_layout2"
+log_debug "Actual task layout was : $tested_layout"
 if {[string compare $tested_layout $expected_layout1] &&
     [string compare $tested_layout $expected_layout2] &&
     [string compare $tested_layout $expected_layout3]} {
diff --git a/testsuite/expect/test1.81 b/testsuite/expect/test1.81
index 634ead4dd57..4bc296908b3 100755
--- a/testsuite/expect/test1.81
+++ b/testsuite/expect/test1.81
@@ -99,7 +99,7 @@ expect {
 		exp_continue
 	}
 	-re "Unable to allocate resources" {
-		send_user "\nThis error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set alloc_fail 1
 	}
 	timeout {
diff --git a/testsuite/expect/test1.84 b/testsuite/expect/test1.84
index 29b8f63a885..57ede0be863 100755
--- a/testsuite/expect/test1.84
+++ b/testsuite/expect/test1.84
@@ -138,7 +138,7 @@ if {[string compare $host ""] == 0} {
 	fail "Did not get hostname from idle node"
 }
 
-send_user "found idle node $host with $cpu_cnt processors\n"
+log_debug "Found idle node $host with $cpu_cnt processors"
 
 set srun_pid [spawn $srun -N1 -w$host --cpus-per-task=1 --exclusive -l -t1 $bin_printenv SLURM_PROCID]
 expect {
@@ -169,7 +169,7 @@ if {$cpu_cnt != $task_cnt} {
 		set cpu_cnt [expr $cpu_cnt * $threads_per_core]
 	}
 	if {$cpu_cnt == $task_cnt} {
-		send_user "NOTE: Allocated $core_cnt cores and $threads_per_core CPUs per core\n"
+		log_debug "Allocated $core_cnt cores and $threads_per_core CPUs per core"
 	}
 }
 if {$cpu_cnt != $task_cnt} {
diff --git a/testsuite/expect/test1.85 b/testsuite/expect/test1.85
index b551c46f864..f17d9c290b8 100755
--- a/testsuite/expect/test1.85
+++ b/testsuite/expect/test1.85
@@ -56,7 +56,7 @@ expect {
 	}
 	-re "Granted job allocation ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "Allocation started\n"
+		log_debug "Allocation started"
 		send "export PS1=\"$prompt\"\r"
 		exp_continue
 	}
@@ -118,7 +118,7 @@ expect {
 	-re $prompt {
 	}
 }
-send_user "Got exec hosts $host1 $host2\n"
+log_debug "Got exec hosts $host1 $host2"
 
 # reset the spawn process to be initial allocation
 # then srun a first task.
diff --git a/testsuite/expect/test1.86 b/testsuite/expect/test1.86
index 1036a2520d3..acb48af789a 100755
--- a/testsuite/expect/test1.86
+++ b/testsuite/expect/test1.86
@@ -89,7 +89,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "Job initiated\n"
+		log_debug "Job initiated"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -123,7 +123,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -168,7 +168,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -202,7 +202,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -240,7 +240,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -274,7 +274,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -304,12 +304,12 @@ expect {
 		exp_continue
 	}
 	"error:" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr matches
 		exp_continue
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -336,12 +336,12 @@ expect {
 		exp_continue
 	}
 	"error:" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr matches
 		exp_continue
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -382,7 +382,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -415,7 +415,7 @@ expect {
 		fail "Slurm appears to be down"
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
@@ -442,7 +442,7 @@ expect {
 		exp_continue
 	}
 	"$prompt" {
-		send_user "srun completed\n\n"
+		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $salloc_pid
diff --git a/testsuite/expect/test1.87 b/testsuite/expect/test1.87
index ca2bbf2798f..0c5ad3d4829 100755
--- a/testsuite/expect/test1.87
+++ b/testsuite/expect/test1.87
@@ -89,7 +89,7 @@ expect {
 	}
 	"$prompt" {
 #		Printing this message seems to damage expect's buffers
-#		send_user "Job initiated\n"
+#		log_debug "Job initiated"
 	}
 	timeout {
 		slow_kill $srun_pid
@@ -131,7 +131,7 @@ expect {
 	}
 	"$prompt" {
 #		Printing this message seems to damage expect's buffers
-#		send_user "srun completed\n"
+#		log_debug "Srun completed"
 	}
 	timeout {
 		slow_kill $srun_pid
@@ -165,7 +165,7 @@ if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
 
-#send_user "\nhost_0:$host_0:host_1:$host_1:host_2:$host_2:host_3:$host_3:\n"
+#log_debug "Host_0:$host_0:host_1:$host_1:host_2:$host_2:host_3:$host_3:"
 #
 # Get two nodes relative (starting at) node 0
 #
@@ -202,7 +202,7 @@ expect {
 	}
 	"$prompt" {
 #		Printing this message seems to damage expect's buffers
-#		send_user "srun completed\n"
+#		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $srun_pid
@@ -252,7 +252,7 @@ expect {
 	}
 	"$prompt" {
 #		Printing this message seems to damage expect's buffers
-#		send_user "srun completed\n"
+#		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $srun_pid
@@ -275,7 +275,7 @@ set error 0
 send "$srun -l -N2 -n2 -O --relative=3 $bin_printenv SLURMD_NODENAME\r"
 expect {
 	-re "error:" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr error
 		exp_continue
 	}
@@ -289,7 +289,7 @@ expect {
 	}
 	"$prompt" {
 #		Printing this message seems to damage expect's buffers
-#		send_user "srun completed\n"
+#		log_debug "srun completed"
 	}
 	timeout {
 		slow_kill $srun_pid
diff --git a/testsuite/expect/test1.88 b/testsuite/expect/test1.88
index 6b97787d723..2834624ef44 100755
--- a/testsuite/expect/test1.88
+++ b/testsuite/expect/test1.88
@@ -242,7 +242,7 @@ if {$exit_code == 0} {
 	if {$matches != 0} {
 		log_warn "If using MVAPICH then configure \"PropagateResourceLimitsExcept=MEMLOCK\". Also start slurmd with \"ulimit -l unlimited\""
 	} else {
-		send_user "Check contents of $file_err\n"
+		log_debug "Check contents of $file_err"
 	}
 }
 
diff --git a/testsuite/expect/test1.89 b/testsuite/expect/test1.89
index ea4a15bfbb7..1b1d50a16b1 100755
--- a/testsuite/expect/test1.89
+++ b/testsuite/expect/test1.89
@@ -46,7 +46,7 @@ print_header $test_id
 if {![test_cpu_affinity_or_cgroup]} {
 	skip "CPU affinity not supported on this system"
 }
-send_user "\ntask affinity plugin installed\n"
+log_info "Task affinity plugin installed"
 
 set force 0
 log_user 0
@@ -339,14 +339,13 @@ while {$cpu_cnt < $task_cnt} {
 	incr cpu_cnt 1
 }
 
-send_user "\n"
-send_user "full_mask: $full_mask\n"
-send_user "fwd_map:  $fwd_map\n"
-send_user "fwd_mask: $fwd_mask\n"
-send_user "rev_map:  $rev_map\n"
-send_user "rev_mask: $rev_mask\n"
-send_user "alt_map:  $alt_map\n"
-send_user "alt_mask: $alt_mask\n"
+log_debug "full_mask: $full_mask"
+log_debug "fwd_map:  $fwd_map"
+log_debug "fwd_mask: $fwd_mask"
+log_debug "rev_map:  $rev_map"
+log_debug "rev_mask: $rev_mask"
+log_debug "alt_map:  $alt_map"
+log_debug "alt_mask: $alt_mask"
 
 #
 # Run all tasks bound to a different CPU by specifying a forward map
diff --git a/testsuite/expect/test1.90 b/testsuite/expect/test1.90
index 0af4ad2bddd..3208aea349d 100755
--- a/testsuite/expect/test1.90
+++ b/testsuite/expect/test1.90
@@ -59,7 +59,7 @@ log_user 1
 if {$affinity == 0} {
 	skip "Memory affinity not supported on this system"
 }
-send_user "\ntask affinity plugin installed with numa support\n"
+log_info "Task affinity plugin installed with numa support"
 
 log_user 0
 set force 0
@@ -375,14 +375,13 @@ while {$cpu_cnt < $task_cnt} {
 	incr cpu_cnt 1
 }
 
-send_user "\n"
-send_user "full_mask: $full_mask\n"
-send_user "fwd_map:  $fwd_map\n"
-send_user "fwd_mask: $fwd_mask\n"
-send_user "rev_map:  $rev_map\n"
-send_user "rev_mask: $rev_mask\n"
-send_user "alt_map:  $alt_map\n"
-send_user "alt_mask: $alt_mask\n"
+log_debug "full_mask: $full_mask"
+log_debug "fwd_map:  $fwd_map"
+log_debug "fwd_mask: $fwd_mask"
+log_debug "rev_map:  $rev_map"
+log_debug "rev_mask: $rev_mask"
+log_debug "alt_map:  $alt_map"
+log_debug "alt_mask: $alt_mask"
 
 #
 # Run all tasks bound to a different CPU's memory by specifying a forward map
diff --git a/testsuite/expect/test1.91 b/testsuite/expect/test1.91
index 9d79d20ca18..31096f1a495 100755
--- a/testsuite/expect/test1.91
+++ b/testsuite/expect/test1.91
@@ -51,7 +51,7 @@ if {[test_select_type_params "CR_ONE_TASK_PER_CORE"]} {
 if {![test_cpu_affinity]} {
 	skip "CPU affinity not supported on this system"
 }
-send_user "\ntask affinity plugin installed\n"
+log_debug "Task affinity plugin installed"
 
 set task_params [string tolower [get_affinity_params]]
 if {[string first $task_params "boards"]  != -1 ||
@@ -137,7 +137,7 @@ set total_thread_count [expr $num_sockets * $num_cores * $num_threads]
 if {$total_thread_count > 64} {
 	skip "Total thread count too large for Expect to process ($total_thread_count > 64). Expect unable to work with more than 32-bit numbers"
 }
-send_user "Node config: CPUs=$num_cputot Sockets=$num_sockets Cores=$num_cores Threads=$num_threads\n\n"
+log_debug "Node config: CPUs=$num_cputot Sockets=$num_sockets Cores=$num_cores Threads=$num_threads"
 if {$num_cputot < $total_thread_count} {
 	skip "CPUs=$num_cputot < (Sockets($num_sockets)*Cores($num_cores)*Threads($num_threads)). Test incompatible with lowered CPUs count"
 }
diff --git a/testsuite/expect/test1.93 b/testsuite/expect/test1.93
index a8f4952ed3a..cbc2db16f8b 100755
--- a/testsuite/expect/test1.93
+++ b/testsuite/expect/test1.93
@@ -133,7 +133,7 @@ if {$nb_nodes < 2} {
 if {![test_cpu_affinity]} {
 	skip "CPU affinity not supported on this system"
 }
-send_user "\ntask affinity plugin installed\n"
+log_debug "Task affinity plugin installed"
 
 #
 # Identify some nodes to use
@@ -167,7 +167,7 @@ if {$node_cnt != 2} {
 	fail "Unexpected resource count ($node_cnt != 2)"
 }
 
-send_user "\nDetermine the node and partition current CpuBind configuration\n"
+log_debug "Determine the node and partition current CpuBind configuration"
 set partition_cpu_bind [get_cpu_bind "partition" $def_part_name]
 set node_cpu_bind_0 [get_cpu_bind "node" $node_0]
 set node_cpu_bind_1 [get_cpu_bind "node" $node_1]
diff --git a/testsuite/expect/test1.94 b/testsuite/expect/test1.94
index d86b567535e..299635e077d 100755
--- a/testsuite/expect/test1.94
+++ b/testsuite/expect/test1.94
@@ -196,7 +196,7 @@ if {$exit_code == 0} {
 	if {$matches != 0} {
 		log_warn "If using MVAPICH thenc onfigure \"PropagateResourceLimitsExcept=MEMLOCK\". Also start slurmd with \"ulimit -l unlimited\""
 	} else {
-		send_user "Check contents of $file_err\n"
+		log_debug "Check contents of $file_err"
 	}
 }
 
diff --git a/testsuite/expect/test1.96 b/testsuite/expect/test1.96
index e4364aff6f3..082be401015 100755
--- a/testsuite/expect/test1.96
+++ b/testsuite/expect/test1.96
@@ -146,7 +146,7 @@ if {[wait_for_file $file_out] == 0} {
 if {$exit_code == 0} {
 	exec $bin_rm -f $file_in $file_out $file_err $test_prog ${test_prog}.o
 } else {
-	send_user "Check contents of $file_err\n"
+	log_debug "Check contents of $file_err"
 }
 
 if {$exit_code != 0} {
diff --git a/testsuite/expect/test1.97 b/testsuite/expect/test1.97
index 8237e533dc0..bdc672742cb 100755
--- a/testsuite/expect/test1.97
+++ b/testsuite/expect/test1.97
@@ -338,7 +338,7 @@ expect {
 }
 
 ############# Test by CPU #############
-send_user "====================Testing CPUs per Task====================\n\n"
+log_info "====================Testing CPUs per Task===================="
 set ncpuspt [check_node_config]
 
 # Submit job with just one cpu per task
@@ -357,7 +357,7 @@ if {!$sys_homo} {
 }
 
 ############# Test by node task #############
-send_user "====================Testing Tasks per Node====================\n\n"
+log_info "====================Testing Tasks per Node===================="
 set ntask [expr $num_nodes * [check_node_config]]
 set ntaskpn [check_node_config]
 
diff --git a/testsuite/expect/test1.99 b/testsuite/expect/test1.99
index cafe3e25359..6e73f1bef9e 100755
--- a/testsuite/expect/test1.99
+++ b/testsuite/expect/test1.99
@@ -66,15 +66,13 @@ if {[expr $ports(1) - $ports(0)] < 5} {
 # Copy the slurm.conf file
 #
 set config_path [get_conf_path]
-if { $exit_code != 0 } {
-	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
-}
+fail_on_error "Test failed due to previous errors (\$exit_code = $exit_code)"
 set config_file $config_path/slurm.conf
 
 save_conf $config_file
 
 ### Check that SrunPortRange in scontrol show config and slurm.conf match ###
-send_user "\n---Checking SrunPortRange in slurm.conf and scontrol show conf---\n"
+log_info "---Checking SrunPortRange in slurm.conf and scontrol show conf---"
 
 set slurm_conf_range ""
 spawn  $bin_grep -i SrunPortRange $config_file
@@ -121,7 +119,7 @@ foreach p $range {
 }
 
 # Check to see that srun is using the correct ports specified in slurm.conf #
-send_user "\n---Checking that srun uses correct ports---\n"
+log_info "---Checking that srun uses correct ports---"
 
 make_bash_script $file_in "pid=\$(ps -ef|grep srun| egrep -v 'grep| gdb' | awk '{if (NR==1)print \$2}')
 echo \$pid
@@ -163,7 +161,7 @@ exec $bin_echo include $config_path/$port_dir >> $config_file
 reconfigure
 
 ###### Check that srun produces an error when all ports are exhausted ######
-send_user "\n---Checking srun error when ports are exhausted---\n"
+log_info "---Checking srun error when ports are exhausted---"
 
 make_bash_script $tmp_job "$srun -t1 sleep 10"
 
@@ -196,7 +194,7 @@ spawn $srun -t1 sleep 10
 expect {
 	-re "all ports in range" {
 		set match 1
-		send_user "\nThis error is expected, do not worry\n"
+		log_debug "This error is expected, do not worry"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test10.7 b/testsuite/expect/test10.7
index 497cf439ddf..0c482d57b19 100755
--- a/testsuite/expect/test10.7
+++ b/testsuite/expect/test10.7
@@ -109,8 +109,7 @@ if {$too_small != 0} {
 	skip "Screen is too small for test"
 }
 if {$matches != 8} {
-	#send_user $matches ."\n"
-	send_user $stuff
+	log_debug $stuff
 	fail "smap job information display"
 }
 
diff --git a/testsuite/expect/test10.8 b/testsuite/expect/test10.8
index 7c71d7276f8..f18a004c601 100755
--- a/testsuite/expect/test10.8
+++ b/testsuite/expect/test10.8
@@ -106,8 +106,8 @@ expect {
 }
 
 if {$matches != 8} {
-	#send_user $matches ."\n"
-	send_user $stuff
+	#log_debug $matches .""
+	log_debug $stuff
 	fail "smap job display in commandline mode."
 }
 
diff --git a/testsuite/expect/test12.4 b/testsuite/expect/test12.4
index a90f29d5ff8..6b059978808 100755
--- a/testsuite/expect/test12.4
+++ b/testsuite/expect/test12.4
@@ -188,8 +188,6 @@ proc sacct_job { soption job_id} {
 	set not_support 0
 	set total_opts "$sacct -$soption -X -p --starttime=00:00 -j $job_id"
 
-	send_user "\n"
-
 	eval spawn $total_opts
 
 	if { $soption == "-brief" || $soption == "b" } {
@@ -199,12 +197,12 @@ proc sacct_job { soption job_id} {
 				exp_continue
 			}
 			-re "JobID.State.ExitCode" {
-				if {$debug} {send_user "\nmatch1\n"}
+				if {$debug} {log_debug "Match1"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch2\n"}
+				if {$debug} {log_debug "Match2"}
 				incr matches
 				exp_continue
 			}
@@ -230,37 +228,37 @@ proc sacct_job { soption job_id} {
 				exp_continue
 			}
 			-re "JobID.JobIDRaw.JobName.Partition.MaxVMSize" {
-				if {$debug} {send_user "\nmatch3\n"}
+				if {$debug} {log_debug "Match3"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxVMSizeNode.MaxVMSizeTask.AveVMSize.MaxRSS" {
-				if {$debug} {send_user "\nmatch4\n"}
+				if {$debug} {log_debug "Match4"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxRSSNode.MaxRSSTask.AveRSS.MaxPages" {
-				if {$debug} {send_user "\nmatch5\n"}
+				if {$debug} {log_debug "Match5"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxPagesNode.MaxPagesTask.AvePages.MinCPU" {
-				if {$debug} {send_user "\nmatch6\n"}
+				if {$debug} {log_debug "Match6"}
 				incr matches
 				exp_continue
 			}
 			-re "MinCPUNode.MinCPUTask.AveCPU.NTasks" {
-				if {$debug} {send_user "\nmatch7\n"}
+				if {$debug} {log_debug "Match7"}
 				incr matches
 				exp_continue
 			}
 			-re "AllocCPUS.Elapsed.State.ExitCode" {
-				if {$debug} {send_user "\nmatch8\n"}
+				if {$debug} {log_debug "Match8"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch9\n"}
+				if {$debug} {log_debug "Match9"}
 				incr matches
 				exp_continue
 			}
@@ -297,12 +295,12 @@ proc sacct_job { soption job_id} {
 				|State|Submit|Suspended|SystemCPU	|
 				|Timelimit|TotalCPU|UID|User	|
 				|UserCPU|WCKey|WCKeyID" {
-				if {$debug} {send_user "\nmatch10\n"}
+				if {$debug} {log_debug "Match10"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch11\n"}
+				if {$debug} {log_debug "Match11"}
 				incr matches
 				exp_continue
 			}
@@ -328,12 +326,12 @@ proc sacct_job { soption job_id} {
 				exp_continue
 			}
 			-re "JobID\\|JobName\\|Partition\\|Account\\|AllocCPUS\\|State\\|ExitCode\\|" {
-				if {$debug} {send_user "\nmatch12\n"}
+				if {$debug} {log_debug "Match12"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id\\|" {
-				if {$debug} {send_user "\nmatch13\n"}
+				if {$debug} {log_debug "Match13"}
 				incr matches
 				exp_continue
 			}
@@ -359,12 +357,12 @@ proc sacct_job { soption job_id} {
 				exp_continue
 			}
 			-re "JobID\\|JobName\\|Partition\\|Account\\|AllocCPUS\\|State\\|ExitCode *" {
-				if {$debug} {send_user "\nmatch14\n"}
+				if {$debug} {log_debug "Match14"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id\\|" {
-				if {$debug} {send_user "\nmatch15\n"}
+				if {$debug} {log_debug "Match15"}
 				incr matches
 				exp_continue
 			}
@@ -390,22 +388,22 @@ proc sacct_job { soption job_id} {
 				exp_continue
 			}
 			-re "sacct: Accounting storage SLURMDBD plugin loaded" {
-				if {$debug} {send_user "\nmatch16\n"}
+				if {$debug} {log_debug "Match16"}
 				incr matches
 				exp_continue
 			}
 			-re "JobID.JobName.Partition" {
-				if {$debug} {send_user "\nmatch17\n"}
+				if {$debug} {log_debug "Match17"}
 				incr matches
 				exp_continue
 			}
 			-re "Account.AllocCPUS.State.ExitCode" {
-				if {$debug} {send_user "\nmatch18\n"}
+				if {$debug} {log_debug "Match18"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch19\n"}
+				if {$debug} {log_debug "Match19"}
 				incr matches
 				exp_continue
 			}
@@ -445,8 +443,6 @@ proc sacct_vargs { soption vargs job_id} {
 	set not_support 0
 	set total_opts "$sacct -$soption $vargs -X -p -j $job_id"
 
-	send_user "\n"
-
 	eval spawn $total_opts
 
 	if { $soption == "g" || $soption == "-gid" || $soption == "-group" || $soption == "u" || $soption == "-uid" || $soption == "-user"} {
@@ -456,18 +452,18 @@ proc sacct_vargs { soption vargs job_id} {
 				exp_continue
 			}
 			-re "JobID.JobName.Partition" {
-				if {$debug} {send_user "\nmatch20\n"}
+				if {$debug} {log_debug "Match20"}
 				incr matches
 				exp_continue
 			}
 			-re "Account.AllocCPUS.State.ExitCode" {
-				if {$debug} {send_user "\nmatch21\n"}
+				if {$debug} {log_debug "Match21"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
 				incr matches
-				if {$debug} {send_user "\nmatch22\n"}
+				if {$debug} {log_debug "Match22"}
 				exp_continue
 			}
 			timeout {
diff --git a/testsuite/expect/test12.5 b/testsuite/expect/test12.5
index 40e35f394e6..334f964a48e 100755
--- a/testsuite/expect/test12.5
+++ b/testsuite/expect/test12.5
@@ -64,7 +64,7 @@ proc sacct_job { soption } {
 	set exit_code   0
 	set matches     0
 	set not_support 0
-	send_user "sacct $soption\n"
+	log_debug "Sacct $soption"
 
 	spawn $sacct $soption
 	expect {
@@ -73,12 +73,12 @@ proc sacct_job { soption } {
 			exp_continue
 		}
 		-re "Account.*AdminComment.*AllocCPUS.*AllocGRES" {
-			if {$debug} {send_user "\nmatch1\n"}
+			if {$debug} {log_debug "Match1"}
 			incr matches
 			exp_continue
 		}
 		-re "AllocNodes.*AllocTRES.*AssocID.*AveCPU" {
-			if {$debug} {send_user "\nmatch2\n"}
+			if {$debug} {log_debug "Match2"}
 			incr matches
 			exp_continue
 		}
diff --git a/testsuite/expect/test12.6 b/testsuite/expect/test12.6
index 3515f5a2932..c104a95a686 100755
--- a/testsuite/expect/test12.6
+++ b/testsuite/expect/test12.6
@@ -60,12 +60,12 @@ log_user 1
 if {$profile == 0} {
 	skip "acct_gather_profile/hdf5 not installed on this system"
 }
-send_user "\nacct_gather_profile/hdf5 plugin installed\n"
-send_user "Note: this test takes 3 minutes to run\n"
+log_info "Acct_gather_profile/hdf5 plugin installed"
+log_debug "Note: this test takes 3 minutes to run"
 
 set task_freq [get_job_acct_freq]
 if {$task_freq < 30} {
-	send_user "\nWarning: jobacct_gather_freq < 30 ($task_freq), results are unreliable\n"
+	log_warn "jobacct_gather_freq < 30 ($task_freq), results are unreliable"
 }
 
 #
@@ -178,7 +178,7 @@ while {$fd > 0 && [gets $fd line] != -1} {
 	}
 
 	if {$cur_et < $task_freq} {
-		send_user "\nWarning: Poll interval was only $cur_et instead of expected $task_freq on line $lno\n"
+		log_warn "Poll interval was only $cur_et instead of expected $task_freq on line $lno"
 		incr nerr
 	}
 
@@ -190,7 +190,7 @@ while {$fd > 0 && [gets $fd line] != -1} {
 	# managing the I/O portion. Slurm and linux also consume some
 	# cpu.
 	if {$cputil < 38.0 || $cputil > 47.0 } {
-		send_user "\nWarning: CPU Busy $cputil not near 40% on line $lno\n"
+		log_warn "CPU Busy $cputil not near 40% on line $lno"
 		incr nerr
 	}
 
@@ -199,7 +199,7 @@ while {$fd > 0 && [gets $fd line] != -1} {
 	set hi_rd  [expr 1.025 * 10 * $cur_et]
 
 	if {$rdmb < $low_rd || $rdmb  > $hi_rd } {
-		send_user "\nWarning: Read Megabytes $rdmb not near 100.0 on line $lno\n"
+		log_warn "Read Megabytes $rdmb not near 100.0 on line $lno"
 		incr nerr
 	}
 }
diff --git a/testsuite/expect/test12.7 b/testsuite/expect/test12.7
index 9b196f1a373..61d5c7926e1 100755
--- a/testsuite/expect/test12.7
+++ b/testsuite/expect/test12.7
@@ -102,7 +102,7 @@ proc check_step { num } {
 	expect {
 		-re "batch" {
 			incr steps
-			send_user "got here with $steps\n"
+			log_debug "Got here with $steps"
 			exp_continue
 		}
 		timeout {
@@ -207,7 +207,7 @@ cancel_job $job_id
 make_bash_script $file_in "sleep 20"
 
 # Submit job to be requeued
-send_user "\n\nTest 1\n"
+log_info "Test 1"
 set job_id 0
 spawn $sbatch -N1 -w$node --exclusive -o/dev/null --requeue $file_in
 expect {
@@ -245,7 +245,7 @@ mod_state "resume" "test$test_id"
 
 
 # Check the job state
-send_user "\n\nTest 2\n"
+log_info "Test 2"
 if {[wait_for_job $job_id "PENDING"] != 0} {
 	log_error "Error waiting for job $job_id to pend"
 	set exit_code 1
@@ -267,7 +267,7 @@ set pend_count [check_sacct_states "PENDING" 0]
 if {$pend_count != 1} {
 	endit 1 "Bad PENDING count ($pend_count != 1)"
 }
-send_user "So far, so good\n\n"
+log_info "So far, so good"
 
 if {[wait_for_job $job_id "RUNNING"] != 0} {
 	log_error "Error waiting for job $job_id to start"
@@ -277,7 +277,7 @@ if {[wait_for_job $job_id "RUNNING"] != 0} {
 sleep 5
 
 
-send_user "\n\nTest 3\n"
+log_info "Test 3"
 set fail_count [check_sacct_states "NODE_FAIL" 1]
 if {$fail_count != 1} {
 	endit 1 "Bad NODE_FAIL count ($fail_count != 1)"
@@ -291,7 +291,7 @@ set run_count [check_sacct_states "RUNNING" 0]
 if {$run_count != 2} {
 	endit 1 "Bad RUNNING count ($run_count != 1)"
 }
-send_user "So far, so good\n\n"
+log_info "So far, so good"
 
 # Requeue the job
 spawn $scontrol requeue $job_id
@@ -312,7 +312,7 @@ if {[wait_for_job $job_id "PENDING"] != 0} {
 }
 # Wait for the state changes to propagate to the database for sacct
 sleep 3
-send_user "\n\nTest 4\n"
+log_info "Test 4"
 set fail_count [check_sacct_states "NODE_FAIL" 1]
 if {$fail_count != 1} {
 	endit 1 "Bad NODE_FAIL count ($fail_count != 1)"
@@ -330,7 +330,7 @@ set pend_count [check_sacct_states "PENDING" 0]
 if {$pend_count != 1} {
 	endit 1 "Bad PENDING count ($pend_count != 1)"
 }
-send_user "So far, so good\n\n"
+log_info "So far, so good"
 
 if {[wait_for_job $job_id "RUNNING"] != 0} {
 	log_error "Error waiting for job $job_id to start"
@@ -344,7 +344,7 @@ sleep 5
 check_step 3
 
 
-send_user "\n\nTest 5\n"
+log_info "Test 5"
 set fail_count [check_sacct_states "NODE_FAIL" 1]
 if {$fail_count != 1} {
 	endit 1 "Bad NODE_FAIL count ($fail_count != 1)"
@@ -362,7 +362,7 @@ set run_count [check_sacct_states "RUNNING" 0]
 if {$run_count != 2} {
 	endit 1 "Bad RUNNING count ($run_count != 1)"
 }
-send_user "So far, so good\n\n"
+log_info "So far, so good"
 
 if {[wait_for_job $job_id "DONE"] != 0} {
 	log_error "Error waiting for job $job_id to complete"
@@ -372,7 +372,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 
 # Check steps after job has completed
 check_step 3
-send_user "\n\nTest 6\n"
+log_info "Test 6"
 set fail_count [check_sacct_states "NODE_FAIL" 1]
 if {$fail_count != 1} {
 	endit 1 "Bad NODE_FAIL count ($fail_count != 1)"
diff --git a/testsuite/expect/test12.8 b/testsuite/expect/test12.8
index af00c01b1f7..7203a1c9849 100755
--- a/testsuite/expect/test12.8
+++ b/testsuite/expect/test12.8
@@ -100,7 +100,7 @@ if {$failed_cnt != 2 || $timeout_cnt != 1} {
 	log_error "batch job $job_id did not FAIL and/or the step did not TIMEOUT.  Count for FAILED was $failed_cnt (not 2) and TIMEOUT was $timeout_cnt (not 1)"
 	set exit_code 1
 
-	send_user "\nGathering more job information:\n"
+	log_debug "Gathering more job information:"
 	spawn $sacct --jobs=$job_id --starttime=00:00
 	expect {
 		eof {
diff --git a/testsuite/expect/test12.9 b/testsuite/expect/test12.9
index 09b1c0faaba..f4c6e297806 100755
--- a/testsuite/expect/test12.9
+++ b/testsuite/expect/test12.9
@@ -99,7 +99,7 @@ spawn $sbatch -N1 --array=0-5 --output=/dev/null -t1 --wrap=exit
 expect {
 	-re "Submitted batch job ($number)" {
 		set array1_job_id $expect_out(1,string)
-		send_user "\njob $array1_job_id was submitted\n"
+		log_debug "Job $array1_job_id was submitted"
 	}
 	-re "error" {
 		fail "sbatch did not submit jobs"
@@ -117,7 +117,7 @@ eval spawn $sbatch -N1 --array=0-5 --output=/dev/null -t1 --wrap=exit
 expect {
 	-re "Submitted batch job ($number)" {
 		set array2_job_id $expect_out(1,string)
-		send_user "\njob $array2_job_id was submitted\n"
+		log_debug "Job $array2_job_id was submitted"
 	}
 	-re "error" {
 		fail "Sbatch did not submit jobs"
diff --git a/testsuite/expect/test13.1 b/testsuite/expect/test13.1
index 26eafc0a7e5..8fb3b117a9a 100755
--- a/testsuite/expect/test13.1
+++ b/testsuite/expect/test13.1
@@ -95,7 +95,7 @@ for {set inx 0} {$inx < $windows_iterations} {incr inx} {
                         exp_continue
                 }
 		-re $prompt {
-			send_user "spawning step $inx\n"
+			log_debug "Spawning step $inx"
 			send "$srun -N1 -O -n$windows_used true\r"
 		}
 		timeout {
@@ -110,7 +110,7 @@ for {set inx 0} {$inx < $windows_iterations} {incr inx} {
 
 # wait for initial job step to complete
 expect -re $prompt
-send_user "(sleeping for $step_delay seconds, for job step zero to complete)\n"
+log_debug "(sleeping for $step_delay seconds, for job step zero to complete)"
 exec $bin_sleep $step_delay
 send "exit\r"
 
diff --git a/testsuite/expect/test14.10 b/testsuite/expect/test14.10
index 18a2b9ffbf4..e750cafb2c2 100755
--- a/testsuite/expect/test14.10
+++ b/testsuite/expect/test14.10
@@ -114,8 +114,7 @@ expect {
 		skip "Can't run this test"
 	}
 	-re "cannot create directory" {
-		send_user "\nThis error is expected when nodes share the "
-		send_user "same tmp directory\n"
+		log_debug "This error is expected when nodes share the same tmp directory"
 		exp_continue
 	}
 	-re "Granted job allocation ($number)" {
@@ -131,7 +130,7 @@ expect {
 		exp_continue
 	}
 	-re "Checking node 0: .*No such" {
-		send_user "\nThis error is expected\n"
+		log_debug "This error is expected"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test14.7 b/testsuite/expect/test14.7
index 2ee3937ea7c..04eaa569bbf 100755
--- a/testsuite/expect/test14.7
+++ b/testsuite/expect/test14.7
@@ -96,22 +96,22 @@ if {[wait_for_file $file_err] == 0} {
 	spawn $bin_cat $file_err
 	expect {
 		-re "error: REQUEST_FILE_BCAST" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
 		-re "ls.* No such file" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
 		-re "ls.* does not exist" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
 		-re "ls.* not found" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
diff --git a/testsuite/expect/test14.9 b/testsuite/expect/test14.9
index 1478c2c44b1..e8b98e54b27 100755
--- a/testsuite/expect/test14.9
+++ b/testsuite/expect/test14.9
@@ -95,22 +95,22 @@ if {[wait_for_file $file_err] == 0} {
 	spawn $bin_cat $file_err
 	expect {
 		-re "error: REQUEST_FILE_BCAST" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
 		-re "ls.* No such file" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
 		-re "ls.* does not exist" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
 		-re "ls.* not found" {
-			send_user "These errors are expected, no worries\n"
+			log_debug "These errors are expected, no worries"
 			incr matches
 			exp_continue
 		}
diff --git a/testsuite/expect/test15.10 b/testsuite/expect/test15.10
index 26174a8cedb..8512d06eb1a 100755
--- a/testsuite/expect/test15.10
+++ b/testsuite/expect/test15.10
@@ -55,7 +55,7 @@ for {set inx 1} {$inx < 4} {set inx [expr $inx * 2]} {
 			exp_continue
 		}
 		-re "allocate failed" {
-			send_user "\nThis error is not unexpected, no worries\n"
+			log_debug "This error is not unexpected, no worries"
 			set tasks_get $tasks_set
 		}
 		timeout {
@@ -71,7 +71,7 @@ for {set inx 1} {$inx < 4} {set inx [expr $inx * 2]} {
 				log_error "Did not get proper number of tasks: $tasks_get < $tasks_set"
 				set exit_code 1
 			} else {
-				send_user "test of $tasks_get processors good\n\n"
+				log_debug "Test of $tasks_get processors good"
 			}
 			wait
 		}
diff --git a/testsuite/expect/test15.12 b/testsuite/expect/test15.12
index 19fdf3105fd..e8cf01ea8fd 100755
--- a/testsuite/expect/test15.12
+++ b/testsuite/expect/test15.12
@@ -47,7 +47,7 @@ set timeout $max_job_delay
 spawn $salloc -N1 -t1 --constraint=invalid,constraint salloc -t1 $bin_bash
 expect {
 	-re "error:.*Invalid feature specification" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set err_msg 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test15.13 b/testsuite/expect/test15.13
index 6c498f01859..7e2c21fe91e 100755
--- a/testsuite/expect/test15.13
+++ b/testsuite/expect/test15.13
@@ -83,7 +83,6 @@ expect {
 
 set total 0
 set good 0
-send_user "\n"
 foreach {slurm_var check_flag} [array get good_vars] {
     incr total
     if {[info exists found_vars($slurm_var)]} {
diff --git a/testsuite/expect/test15.18 b/testsuite/expect/test15.18
index efc298580d8..d4ffc6f04ed 100755
--- a/testsuite/expect/test15.18
+++ b/testsuite/expect/test15.18
@@ -54,7 +54,7 @@ expect {
 		exp_continue
 	}
 	-re "Unable to exec command|Unable to find command" {
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		set matches 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test15.23 b/testsuite/expect/test15.23
index 450d2ed8192..5e23144ee2c 100755
--- a/testsuite/expect/test15.23
+++ b/testsuite/expect/test15.23
@@ -71,7 +71,7 @@ expect {
 		exp_continue
 	}
 	-re $prompt {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc not responding"
diff --git a/testsuite/expect/test15.26 b/testsuite/expect/test15.26
index b14938b53bb..58be04962e2 100755
--- a/testsuite/expect/test15.26
+++ b/testsuite/expect/test15.26
@@ -49,7 +49,7 @@ expect {
 	-re "queued and waiting for resources" {
 		set wait_flag 1
 		exec $bin_kill -INT $salloc_pid
-		send_user "\nSent SIGINT\n"
+		log_debug "Sent SIGINT"
 		exp_continue
 	}
 	-re "Job allocation ($number) has been revoked" {
@@ -67,7 +67,7 @@ expect {
 		set exit_code 1
 	}
 	eof {
-		send_user "\nEOF\n"
+		log_debug "EOF"
 		wait
 	}
 }
diff --git a/testsuite/expect/test15.31 b/testsuite/expect/test15.31
index 8b95f47e3f0..32c68cd5bf6 100755
--- a/testsuite/expect/test15.31
+++ b/testsuite/expect/test15.31
@@ -94,10 +94,10 @@ if {$job_id != 0} {
 	spawn $scontrol show job $job_id
 	expect {
 		-re "TimeLimit=00:59" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=01:00:00" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=" {
 			log_error "Timelimit not OK with deadline"
diff --git a/testsuite/expect/test15.32 b/testsuite/expect/test15.32
index f627893354a..ba51869d24f 100755
--- a/testsuite/expect/test15.32
+++ b/testsuite/expect/test15.32
@@ -52,7 +52,7 @@ set found -1
 spawn $scontrol -a show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
@@ -138,7 +138,7 @@ set found 0
 
 # Check EnforcePartLimits value
 set enforcepartlimits [test_enforce_part_limits]
-send_user "\nEnforcePartLimits=$enforcepartlimits\n\n"
+log_debug "EnforcePartLimits=$enforcepartlimits"
 
 #
 # Run a job in this new partition and validate the time limit
@@ -251,7 +251,7 @@ set found -1
 spawn $scontrol show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
diff --git a/testsuite/expect/test15.33 b/testsuite/expect/test15.33
index 4ea45a4259c..e64ef029cd4 100755
--- a/testsuite/expect/test15.33
+++ b/testsuite/expect/test15.33
@@ -75,10 +75,10 @@ if {$job_id != 0} {
 	spawn $scontrol show job $job_id
 	expect {
 		-re "TimeLimit=00:10:00" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=00:09:" {
-			send_user "\nTimelimit OK\n"
+			log_debug "Timelimit OK"
 		}
 		-re "TimeLimit=" {
 			log_error "Timelimit not OK with deadline"
diff --git a/testsuite/expect/test15.5 b/testsuite/expect/test15.5
index 694f6a400e7..98c113b5f10 100755
--- a/testsuite/expect/test15.5
+++ b/testsuite/expect/test15.5
@@ -97,7 +97,7 @@ make_bash_script $file_in "
 "
 
 proc date {} {
-	send_user "local time: [clock format [clock seconds]]\n"
+	puts "local time: [clock format [clock seconds]]"
 }
 
 #
diff --git a/testsuite/expect/test15.7 b/testsuite/expect/test15.7
index c6cc8f519de..cd4df8ef3a3 100755
--- a/testsuite/expect/test15.7
+++ b/testsuite/expect/test15.7
@@ -84,20 +84,20 @@ expect {
 		set read_prio $expect_out(1,string)
 		if {$read_prio == 0} {
 			incr matches
-			send_user "match of Priority\n"
+			log_debug "Match of Priority"
 		}
 		exp_continue
 	}
 	-re "JobState=PENDING" {
 		incr matches
-		send_user "match of JobState\n"
+		log_debug "Match of JobState"
 		exp_continue
 	}
 	-re "MinCPUsNode=($number)" {
 		set read_cpus $expect_out(1,string)
 		if {$read_cpus == $cpu_cnt} {
 			incr matches
-			send_user "match of MinCPUsNode\n"
+			log_debug "Match of MinCPUsNode"
 		}
 		exp_continue
 	}
@@ -105,7 +105,7 @@ expect {
 		set read_mem $expect_out(1,string)
 		if {$read_mem == $mem_size} {
 			incr matches
-			send_user "match of MinMemory\n"
+			log_debug "Match of MinMemory"
 		}
 		exp_continue
 	}
@@ -113,7 +113,7 @@ expect {
 		set read_disk $expect_out(1,string)
 		if {$read_disk == $tmp_size} {
 			incr matches
-			send_user "match of MinTmpDiskNode\n"
+			log_debug "Match of MinTmpDiskNode"
 		}
 		exp_continue
 	}
diff --git a/testsuite/expect/test15.8 b/testsuite/expect/test15.8
index 41e5a1fcc72..eb5a4daea6a 100755
--- a/testsuite/expect/test15.8
+++ b/testsuite/expect/test15.8
@@ -56,7 +56,7 @@ expect {
 		exp_continue
 	}
 	-re "Unable to allocate resources" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		incr matches
 		exp_continue
 	}
@@ -76,7 +76,7 @@ if {$matches != 3} {
 	log_error "Failed to hold job as requested ($matches != 3)"
 	set exit_code 1
 } else {
-	send_user "\nSo far, so good\n\n"
+	log_debug "So far, so good"
 }
 
 #
@@ -88,7 +88,7 @@ set matches 0
 set salloc_pid [spawn $salloc --immediate -t1 $bin_pwd]
 expect {
 	-re "error: Job submit/allocate failed" {
-		send_user "This error is not unexpected, no worries\n"
+		log_debug "This error is not unexpected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.10 b/testsuite/expect/test17.10
index 656119e2e21..d7c6d758f7a 100755
--- a/testsuite/expect/test17.10
+++ b/testsuite/expect/test17.10
@@ -87,20 +87,20 @@ expect {
 		set read_prio $expect_out(1,string)
 		if {$read_prio == 0} {
 			incr matches
-			send_user "match of Priority\n"
+			log_debug "Match of Priority"
 		}
 		exp_continue
 	}
 	-re "JobState=PENDING" {
 		incr matches
-		send_user "match of JobState\n"
+		log_debug "Match of JobState"
 		exp_continue
 	}
 	-re "MinCPUsNode=($number)" {
 		set read_cpus $expect_out(1,string)
 		if {$read_cpus == $cpu_cnt} {
 			incr matches
-			send_user "match of MinCPUsNode\n"
+			log_debug "Match of MinCPUsNode"
 		}
 		exp_continue
 	}
@@ -108,7 +108,7 @@ expect {
 		set read_mem $expect_out(1,string)
 		if {$read_mem == $mem_size} {
 			incr matches
-			send_user "match of MinMemory\n"
+			log_debug "Match of MinMemory"
 		}
 		exp_continue
 	}
@@ -116,7 +116,7 @@ expect {
 		set read_disk $expect_out(1,string)
 		if {$read_disk == $tmp_size} {
 			incr matches
-			send_user "match of MinTmpDiskNode\n"
+			log_debug "Match of MinTmpDiskNode"
 		}
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.12 b/testsuite/expect/test17.12
index 84d3bf689a6..7650d24d2bf 100755
--- a/testsuite/expect/test17.12
+++ b/testsuite/expect/test17.12
@@ -183,7 +183,7 @@ proc sub_job_and {nnode fail_test} {
 		}
 
 		if {$fail_node_config == $fail_test} {
-			send_user "\nThis error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 		}
 		if {$test_job != 0} {
 			log_error "Job should have been rejected, but was not"
@@ -312,7 +312,7 @@ proc sub_job_count {nnode fail_test} {
 		}
 
 		if {$fail_node_config == $fail_test} {
-			send_user "\nThis error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 		}
 		if {$test_job != 0} {
 			log_error "Job should have been rejected, but was not"
@@ -382,7 +382,7 @@ proc sub_job_or {nnode fail_test} {
 		}
 
 		if {$fail_node_config == $fail_test} {
-			send_user "\nThis error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 		}
 		if {$test_job != 0} {
 			log_error "Job should have been rejected, but was not"
@@ -575,7 +575,7 @@ proc sub_job_xand {nnode fail_test} {
 		}
 
 		if {$fail_node_config == $fail_test} {
-			send_user "\nThis error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 		}
 		if {$test_job != 0} {
 			log_error "Job should have been rejected, but was not"
@@ -646,7 +646,7 @@ proc sub_job_xor {nnode fail_test} {
 		}
 
 		if {$fail_node_config == $fail_test} {
-			send_user "\nThis error is expected, no worries\n"
+			log_debug "This error is expected, no worries"
 		}
 		if {$test_job != 0} {
 			log_error "Job should have been rejected, but was not"
@@ -812,13 +812,13 @@ make_bash_script $file_in "
 #
 # Submit a job with invalid constraint requirement
 #
-send_user "\n\n==========Test invalid constraints==========\n"
+log_info "==========Test invalid constraints=========="
 set err_msg     0
 set timeout $max_job_delay
 spawn $sbatch -N1 --constraint=invalid,constraint -t1 -o /dev/null $file_in
 expect {
 	-re "error:.*Invalid feature specification" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set err_msg 1
 		exp_continue
 	}
@@ -943,7 +943,7 @@ foreach option [array names nodes] {
 }
 
 # Set node features for testing
-send_user "\n\n==========Set node features to test-specific values for testing==========\n"
+log_info "==========Set node features to test-specific values for testing=========="
 set_node_feature $nodes(0) $feat0
 set_node_feature $nodes(1) $feat1
 set_node_feature $nodes(2) $feat0,$feat2,$feat4
@@ -967,69 +967,69 @@ expect {
 }
 
 # Test feature count logic with 2 nodes
-send_user "\n\n==========Test feature count 2 nodes==========\n"
+log_info "==========Test feature count 2 nodes=========="
 sub_job_count 2 0
 
 # Test feature count logic with 3 nodes
-send_user "\n\n==========Test feature count 3 nodes==========\n"
+log_info "==========Test feature count 3 nodes=========="
 sub_job_count 3 0
 
 # Test feature count logic with 3 nodes (This is expected to fail)
-send_user "\n\n==========Test feature count 3 nodes with failure==========\n"
+log_info "==========Test feature count 3 nodes with failure=========="
 sub_job_count 3 1
 
 # Test AND with 1 node
-send_user "\n\n==========Test AND 1 node==========\n"
+log_info "==========Test AND 1 node=========="
 sub_job_and 1 0
 
 # Test AND with 1 node (This is expected to fail)
-send_user "\n\n==========Test AND 1 node with failure==========\n"
+log_info "==========Test AND 1 node with failure=========="
 sub_job_and 1 1
 
 # Test eXclusive AND (XAND) with 3 nodes
-send_user "\n\n==========Test XAND 3 nodes==========\n"
+log_info "==========Test XAND 3 nodes=========="
 sub_job_xand 3 0
 
 # Test eXclusive AND (XAND) with 3 nodes (This is expected to fail)
-send_user "\n\n==========Test XAND 3 nodes with failure==========\n"
+log_info "==========Test XAND 3 nodes with failure=========="
 sub_job_xand 3 1
 
 # Test eXclusive OR (XOR) with 2 nodes
-send_user "\n\n==========Test XOR 2 nodes==========\n"
+log_info "==========Test XOR 2 nodes=========="
 sub_job_xor 2 0
 
 # Test eXclusive OR (XOR) with 3 nodes
-send_user "\n\n==========Test XOR 3 nodes==========\n"
+log_info "==========Test XOR 3 nodes=========="
 sub_job_xor 3 0
 
 # Test eXclusive OR (XOR) with 4 nodes (This is expected to fail)
-send_user "\n\n==========Test XOR 4 nodes with failure==========\n"
+log_info "==========Test XOR 4 nodes with failure=========="
 sub_job_xor 4 1
 
 # Test OR with 4 nodes
-send_user "\n\n==========Test OR 4 nodes==========\n"
+log_info "==========Test OR 4 nodes=========="
 sub_job_or 4 0
 
 # Test OR within parenthesis
-send_user "\n\n==========Test OR within parenthesis==========\n"
+log_info "==========Test OR within parenthesis=========="
 sub_job_or_paren 4 0
 
 # Test mixed AND and XOR with 2 nodes
-send_user "\n\n==========Test mix of AND and XOR==========\n"
+log_info "==========Test mix of AND and XOR=========="
 sub_job_and_xor 2 0
 
 # Test mixed AND and XOR with 3 nodes (This is expected to fail)
-send_user "\n\n==========Test mix of AND and XOR==========\n"
+log_info "==========Test mix of AND and XOR=========="
 sub_job_and_xor 3 1
 
 # Test batch host
 if {[test_front_end] == 0} {
-	send_user "\n\n==========Test batch host==========\n"
+	log_info "==========Test batch host=========="
 	sub_batch_host 3
 }
 
 # Reset node features and remove test part
-send_user "\n\n==========Clean Up==========\n"
+log_debug "==========Clean Up=========="
 clean_up
 
 if {$exit_code == 0} {
diff --git a/testsuite/expect/test17.13 b/testsuite/expect/test17.13
index b92bd3a51b1..102afbb0eaa 100755
--- a/testsuite/expect/test17.13
+++ b/testsuite/expect/test17.13
@@ -117,7 +117,6 @@ expect {
 
 set total 0
 set good 0
-send_user "\n"
 foreach {slurm_var check_flag} [array get good_vars] {
     incr total
     if {[info exists found_vars($slurm_var)]} {
diff --git a/testsuite/expect/test17.14 b/testsuite/expect/test17.14
index 65dc1d87b92..a0952f970be 100755
--- a/testsuite/expect/test17.14
+++ b/testsuite/expect/test17.14
@@ -98,7 +98,7 @@ expect {
 		if {$expect_out(1,string) == $test_env_val} {
 			incr matches
 		} else {
-			send_user "\nNO MATCHX${expect_out(1,string)}X${test_env_val}X\n"
+			log_debug "NO MATCHX${expect_out(1,string)}X${test_env_val}X"
 		}
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.15 b/testsuite/expect/test17.15
index f0a16da7b6a..61248b269f0 100755
--- a/testsuite/expect/test17.15
+++ b/testsuite/expect/test17.15
@@ -166,7 +166,7 @@ expect {
 		if {$expect_out(1,string) == $target} {
 			incr matches
 		} else {
-			send_user "\nCORE value bad ($expect_out(1,string) != $target)\n"
+			log_warn "CORE value bad ($expect_out(1,string) != $target)"
 		}
 		exp_continue
 	}
@@ -175,7 +175,7 @@ expect {
 		if {$expect_out(1,string) == $target} {
 			incr matches
 		} else {
-			send_user "\nFSIZE value bad ($expect_out(1,string) != $target)\n"
+			log_warn "FSIZE value bad ($expect_out(1,string) != $target)"
 		}
 		exp_continue
 	}
@@ -183,7 +183,7 @@ expect {
 		if {$expect_out(1,string) == $limit_nofile} {
 			incr matches
 		} else {
-			send_user "\nNOFILE value bad ($expect_out(1,string) != $limit_nofile)\n"
+			log_warn "NOFILE value bad ($expect_out(1,string) != $limit_nofile)"
 		}
 		exp_continue
 	}
@@ -191,7 +191,7 @@ expect {
 		if {$expect_out(1,string) == $limit_nproc} {
 			incr matches
 		} else {
-			send_user "\nNPROC value bad ($expect_out(1,string) != $limit_nproc)\n"
+			log_warn "NPROC value bad ($expect_out(1,string) != $limit_nproc)"
 		}
 		exp_continue
 	}
@@ -204,7 +204,7 @@ expect {
 		if {$expect_out(1,string) == [expr $limit_stack * 1024]} {
 			incr matches
 		} else {
-			send_user "\nSTACK value bad ($expect_out(1,string) != $target)\n"
+			log_warn "STACK value bad ($expect_out(1,string) != $target)"
 		}
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.19 b/testsuite/expect/test17.19
index 327f31eeed8..d4f553aa0c5 100755
--- a/testsuite/expect/test17.19
+++ b/testsuite/expect/test17.19
@@ -110,7 +110,7 @@ if {[cancel_job $job_id] != 0} {
 if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
-send_user "\n\nSo far, so good....\n\n\n"
+log_debug "So far, so good..."
 
 #
 # Submit job to two partitions, including one invalid name
@@ -124,7 +124,7 @@ expect {
 		exp_continue
 	}
 	-re "Invalid partition name specified" {
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		incr matches
 		exp_continue
 	}
@@ -150,7 +150,7 @@ if {$matches != 1} {
 if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
-send_user "\n\nSo far, so good....\n\n\n"
+log_debug "So far, so good..."
 
 #
 # Quit here if only one partition
diff --git a/testsuite/expect/test17.21 b/testsuite/expect/test17.21
index a39bc822be8..577cc8725d2 100755
--- a/testsuite/expect/test17.21
+++ b/testsuite/expect/test17.21
@@ -99,7 +99,7 @@ set match 0
 set sbatch_pid [spawn $sbatch -o $file_out $file_in]
 expect {
 	-re "More processors requested than permitted" {
-		send_user "This error was expected, no worries\n\n"
+		log_debug "This error was expected, no worries"
 		set match 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.22 b/testsuite/expect/test17.22
index 3b5d6bbe5d5..8e4a16dcaef 100755
--- a/testsuite/expect/test17.22
+++ b/testsuite/expect/test17.22
@@ -44,7 +44,7 @@ set matches 0
 spawn $sbatch -N1 -t1 /bad/bad/bad
 expect {
 	-re "Unable to open file" {
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		set matches 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.24 b/testsuite/expect/test17.24
index 8d988135869..5423f172ad0 100755
--- a/testsuite/expect/test17.24
+++ b/testsuite/expect/test17.24
@@ -93,7 +93,7 @@ expect {
 	}
 	-re "Invalid partition name" {
 		incr matches
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test17.28 b/testsuite/expect/test17.28
index e79c769e455..f2eda006cca 100755
--- a/testsuite/expect/test17.28
+++ b/testsuite/expect/test17.28
@@ -107,12 +107,12 @@ set matches 0
 spawn $sbatch -o $file_out $file_in
 expect {
 	-re "More processors requested than permitted" {
-		send_user "This error was expected, no worries\n\n"
+		log_debug "This error was expected, no worries"
 		incr matches
 		exp_continue
 	}
 	-re "Node count specification invalid" {
-		send_user "This error was expected, no worries\n\n"
+		log_debug "This error was expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.31 b/testsuite/expect/test17.31
index d42609ad32b..f4b3758aad3 100755
--- a/testsuite/expect/test17.31
+++ b/testsuite/expect/test17.31
@@ -76,7 +76,7 @@ expect {
 	}
 }
 log_user 1
-send_user "Actual configuration: min_cpus=$ppn_cnt  min_mem=$min_mem\n\n"
+log_debug "Actual configuration: min_cpus=$ppn_cnt  min_mem=$min_mem"
 append min_mem_mb $min_mem "mb"
 
 #
diff --git a/testsuite/expect/test17.32 b/testsuite/expect/test17.32
index 7bc2032d7ba..927d150de47 100755
--- a/testsuite/expect/test17.32
+++ b/testsuite/expect/test17.32
@@ -59,7 +59,7 @@ expect {
 		exp_continue
 	}
 	-re "Batch job submission failed" {
-		send_user "\nNo worries, error not unexpected\n"
+		log_debug "No worries, error not unexpected"
 		set no_run 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.33 b/testsuite/expect/test17.33
index aeedc0654e7..11ec0cfe98c 100755
--- a/testsuite/expect/test17.33
+++ b/testsuite/expect/test17.33
@@ -117,7 +117,7 @@ if {[wait_for_file $file_err] == 0} {
 			set exit_code 1
 		}
 		-re "$sleep_error_message" {
-			send_user "\nNo worries, this error is expected\n"
+			log_debug "No worries, this error is expected"
 			incr got_sleep_err
 			exp_continue
 		}
@@ -189,7 +189,7 @@ if {[wait_for_file $file_err] == 0} {
 	spawn $bin_cat $file_err
 	expect {
 		-re "$sleep_error_message" {
-			send_user "\nNo worries, this error is expected\n"
+			log_debug "No worries, this error is expected"
 			incr got_sleep_err
 			exp_continue
 		}
diff --git a/testsuite/expect/test17.34 b/testsuite/expect/test17.34
index 5aaea7e9e32..15607eb2cd5 100755
--- a/testsuite/expect/test17.34
+++ b/testsuite/expect/test17.34
@@ -99,7 +99,7 @@ proc core_spec_job {task node core_spec exp_nodes} {
 		fail "This job should have failed but did not"
 
 	} elseif {$exp_nodes == -1 && $error_chk != 0} {
-		send_user "\nThis error is expected do not worry\n"
+		log_debug "This error is expected do not worry"
 
 	} else {
 		set core_chk 0
@@ -256,7 +256,7 @@ if {$core_cnt < 4} {
 #
 # Using the core spec within the node limits
 #
-send_user "\n\nRun within the specified node\n"
+log_info "Run within the specified node"
 core_spec_job  0 $first_node [expr $core_cnt - 2] 0
 core_spec_job -2 $first_node [expr $core_cnt - 2] 0
 
@@ -264,14 +264,14 @@ core_spec_job -2 $first_node [expr $core_cnt - 2] 0
 # Using core spec with more tasks then the node can handle. This should
 # cause the tasks to spread across multiple nodes as needed
 #
-send_user "\n\nSpread job across multiple nodes\n"
+log_info "Spread job across multiple nodes"
 core_spec_job 1 $first_node [expr $core_cnt - 2] 1
 core_spec_job 1 $first_node [expr $core_cnt - 1] 1
 
 #
 # Using core spec with more cores then the specified node has
 #
-send_user "\n\nFail by trying to use more cores than exist\n"
+log_info "Fail by trying to use more cores than exist"
 core_spec_job 1 $first_node [expr $core_cnt + 5] -1
 core_spec_job 1 $first_node [expr $core_cnt + 7] -1
 
diff --git a/testsuite/expect/test17.35 b/testsuite/expect/test17.35
index 6bae8dcbc33..d8bc31cb7ba 100755
--- a/testsuite/expect/test17.35
+++ b/testsuite/expect/test17.35
@@ -109,7 +109,7 @@ if {$time_used == 0} {
 	set time_used 1
 }
 set rate [ expr ($job_cnt * 1000) / $time_used ]
-send_user "Job submit rate $rate jobs per second ($job_cnt jobs in $time_used msec)\n"
+log_debug "Job submit rate $rate jobs per second ($job_cnt jobs in $time_used msec)"
 if {$rate < $target} {
 	fail "Job submit rate of $rate below target of $target. This may be due to use of NFS rather than local storage for logs or state information"
 }
diff --git a/testsuite/expect/test17.36 b/testsuite/expect/test17.36
index 61f512fead6..5f3f60287f6 100755
--- a/testsuite/expect/test17.36
+++ b/testsuite/expect/test17.36
@@ -350,7 +350,7 @@ cancel_job $job_id
 # Test partition with oversubscribe=NO
 #
 ####################################
-send_user "\n\nTest partition with oversubscribe=NO\n"
+log_info "Test partition with oversubscribe=NO"
 
 # Determine the number of cores or CPUs
 set num_jobs [cr_core_cpu $node_name]
@@ -382,11 +382,11 @@ delete_part $test_part_1
 ####################################
 set new_job_limit [expr $num_jobs * 2]
 if { [test_gang] == 1 } {
-	send_user "\n\nTest partition with oversubscribe=YES:2 incompatible with gang scheduling\n"
+	log_info "Test partition with oversubscribe=YES:2 incompatible with gang scheduling"
 } elseif { $new_job_limit >= $job_start } {
         skip "default_queue_depth less than desired job count ($new_job_limit < $job_start), can not run oversubscribe=YES:2"
 } else {
-	send_user "\n\nTest partition with oversubscribe=YES:2\n"
+	log_info "Test partition with oversubscribe=YES:2"
 #	Make a new partition with oversubscribe=yes:2
 	create_part $test_part_2 "YES:$oversubscribe_j_cnt" $node_name
 
@@ -407,7 +407,7 @@ if { [test_gang] == 1 } {
 # Test partition with oversubscribe=EXCLUSIVE
 #
 ########################################
-send_user "\n\nTest partition with oversubscribe=EXCLUSIVE\n"
+log_info "Test partition with oversubscribe=EXCLUSIVE"
 
 # Make a new partition with oversubscribe=EXCLUSIVE
 create_part $test_part_3 "EXCLUSIVE" $node_name
diff --git a/testsuite/expect/test17.38 b/testsuite/expect/test17.38
index f975491f7af..13faaeafa6d 100755
--- a/testsuite/expect/test17.38
+++ b/testsuite/expect/test17.38
@@ -72,7 +72,7 @@ done
 "
 
 ################Run sbatch with --signal=################
-send_user "\nStart --signal test to signal steps\n"
+log_info "Start --signal test to signal steps"
 
 spawn $sbatch -t3 --signal=2@60 -o$file_out $file_in
 expect {
@@ -154,7 +154,7 @@ expect {
 exec $bin_rm -f $file_out
 
 ################Run sbatch with --signal=B:################
-send_user "\nStart --signal test to signal bash script\n"
+log_info "Start --signal test to signal bash script"
 
 set job_id 0
 spawn $sbatch -t3 --signal=B:2@60 -o$file_out $file_in
@@ -177,7 +177,7 @@ if {$job_id == 0} {
 }
 
 if {[wait_for_job $job_id "DONE"] != 0} {
-	send_user "\nFAILURE: error waiting for job $job_id to complete\n"
+	log_error "Error waiting for job $job_id to complete"
 	set exit_code 1
 	cancel_job $job_id
 }
diff --git a/testsuite/expect/test17.40 b/testsuite/expect/test17.40
index f67ae45cf53..a820d82f90b 100755
--- a/testsuite/expect/test17.40
+++ b/testsuite/expect/test17.40
@@ -93,7 +93,7 @@ proc thread_spec_job {task node thread_spec exp_nodes} {
 		fail "This job should have failed but did not"
 
 	} elseif {$exp_nodes == -1 && $error_chk != 0} {
-		send_user "\nThis error is expected do not worry\n"
+		log_debug "This error is expected do not worry"
 
 	} else {
 		set thread_chk 0
@@ -251,7 +251,7 @@ if {$thread_cnt < 4} {
 #
 # Using the thread spec within the node limits
 #
-send_user "\n\nRun within the specified node\n"
+log_info "Run within the specified node"
 thread_spec_job  0 $first_node [expr $thread_cnt - 2] 0
 thread_spec_job -1 $first_node [expr $thread_cnt - 2] 0
 
@@ -259,14 +259,14 @@ thread_spec_job -1 $first_node [expr $thread_cnt - 2] 0
 # Using thread spec with more tasks then the node can handle. This should
 # cause the tasks to spread across multiple nodes as needed
 #
-send_user "\n\nSpread job across multiple nodes\n"
+log_info "Spread job across multiple nodes"
 thread_spec_job 1 $first_node [expr $thread_cnt - 2] 1
 thread_spec_job 1 $first_node [expr $thread_cnt - 1] 1
 
 #
 # Using thread spec with more thread then the specified node has
 #
-send_user "\n\nFail by trying to use more threads than exist\n"
+log_info "Fail by trying to use more threads than exist"
 thread_spec_job 1 $first_node [expr $thread_cnt + 1] -1
 thread_spec_job 1 $first_node [expr $thread_cnt + 3] -1
 
diff --git a/testsuite/expect/test17.41 b/testsuite/expect/test17.41
index 8091dac10a8..5e4ed9ba81d 100755
--- a/testsuite/expect/test17.41
+++ b/testsuite/expect/test17.41
@@ -41,9 +41,9 @@ make_bash_script $file_in "sleep 1"
 proc test_sbatch { part }  {
 	global srun salloc sbatch exit_code file_in part_inv
 
-	send_user "\n=======Testing Values: $part=======\n"
+	log_info "=======Testing Values: $part======="
 
-	send_user "\n====Testing sbatch====\n"
+	log_info "====Testing sbatch===="
 	set match 0
 	spawn $sbatch -t1 -p$part -o/dev/null $file_in
 	expect {
@@ -64,7 +64,7 @@ proc test_sbatch { part }  {
 		set exit_code 1
 	}
 
-	send_user "\n====Testing srun====\n"
+	log_info "====Testing srun===="
 	set match 0
 	spawn $srun -t1 -p$part -o/dev/null $file_in
 	expect {
@@ -85,7 +85,7 @@ proc test_sbatch { part }  {
 		set exit_code 1
 	}
 
-	send_user "\n====Testing salloc====\n"
+	log_info "====Testing salloc===="
 	set match 0
 	spawn $salloc -t1 -p$part $file_in
 	expect {
diff --git a/testsuite/expect/test17.44 b/testsuite/expect/test17.44
index a7a600409a3..026861f6f0f 100755
--- a/testsuite/expect/test17.44
+++ b/testsuite/expect/test17.44
@@ -90,7 +90,7 @@ if { $job_id2 == 0 } {
 	fail "sbatch did not submit job"
 }
 
-send_user "\nWaiting for output files...\n"
+log_debug "Waiting for output files.."
 for {set task_id 1} {$task_id <= $tasks} {incr task_id} {
 	set file_out_glob "${output_base}${task_id}"
 	if {[wait_for_file $file_out_glob] != 0} {
diff --git a/testsuite/expect/test17.5 b/testsuite/expect/test17.5
index f73910d3ec9..e311ef3f6c3 100755
--- a/testsuite/expect/test17.5
+++ b/testsuite/expect/test17.5
@@ -115,7 +115,7 @@ if {[file exist $def_out]} {
 		}
 		-re "$sleep_error_message" {
 			incr got_stdout
-			send_user "\nThis error is expected do not worry\n"
+			log_debug "This error is expected do not worry"
 			exp_continue
 		}
 		eof {
@@ -187,7 +187,7 @@ if {[wait_for_file $file_err] == 0} {
 	spawn $bin_cat $file_err
 	expect {
 		-re "$sleep_error_message" {
-			send_user "\nNo worries, this error is expected\n"
+			log_debug "No worries, this error is expected"
 			set got_stderr 1
 			exp_continue
 		}
@@ -387,7 +387,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 exec sleep 5
 set file_err2 slurm-$job_id.err
 set file_out2 slurm-$job_id.out
-send_user "\nChecking for files $file_err2 and $file_out2\n"
+log_debug "Checking for files $file_err2 and $file_out2"
 if { [file exists $file_out2] } {
 	fail "Found unexpected stdout file $file_out2"
 }
diff --git a/testsuite/expect/test17.51 b/testsuite/expect/test17.51
index 68bbce06937..f26c143b4ec 100755
--- a/testsuite/expect/test17.51
+++ b/testsuite/expect/test17.51
@@ -47,7 +47,7 @@ fail_on_error "Unable to get config path"
 set config_file $config_path/slurm.conf
 save_conf $config_file
 
-send_user "\n---Checking sbatch uses mcs-label only for some jobs (ondemand,select mode)---\n"
+log_info "---Checking sbatch uses mcs-label only for some jobs (ondemand,select mode)---"
 
 #
 # Change the slurm.conf MCSparameters and MCSPlugin
@@ -69,7 +69,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show config | $bin_grep MCS"
 expect {
 	-re "MCSPlugin               = mcs/user" {
-		send_user "\n MCSPlugin=mcs/user OK\n"
+		log_debug " MCSPlugin=mcs/user OK"
 		set found 1
 		exp_continue
 	}
@@ -87,7 +87,7 @@ if {$found == 0} {
 }
 
 ###### Check that sbatch fails with a bad mcs-label ######
-send_user "\n---Checking sbatch fails with a bad mcs-label ---\n"
+log_info "---Checking sbatch fails with a bad mcs-label ---"
 
 set timeout $max_job_delay
 make_bash_script $tmp_job "sleep 30"
@@ -95,7 +95,7 @@ make_bash_script $tmp_job "sleep 30"
 spawn $sbatch -N1 --mcs-label=foo -t10 $tmp_job
 expect {
 	-re "Batch job submission failed: Invalid mcs_label specified" {
-		send_user "\nThis error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -108,7 +108,7 @@ expect {
 
 
 ###### Check that sbatch uses mcs-label=user ######
-send_user "\n---Checking sbatch uses mcs-label=user---\n"
+log_info "---Checking sbatch uses mcs-label=user---"
 
 make_bash_script $tmp_job "sleep 30"
 set job_id 0
@@ -139,11 +139,11 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "(null)" {
-		send_user "\nNO MCS-label for this job : this is not expected\n"
+		log_debug "NO MCS-label for this job : this is not expected"
 		exp_continue
 	}
 	-re "$user_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -191,7 +191,7 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$user_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -219,7 +219,7 @@ if { [test_account_storage] != 0 } {
 	spawn $sacct -j $job_id --noheader -o "mcslabel"
 	expect {
 		-re "$user_name" {
-			send_user "\nMCS-label in sacct OK for this job\n"
+			log_debug "MCS-label in sacct OK for this job"
 			set found 1
 			exp_continue
 		}
@@ -243,7 +243,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -267,7 +267,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show node=$node | $bin_grep MCS"
 expect {
 	-re "MCS_label=$user_name" {
-		send_user "\n mcs_label OK for node $node\n"
+		log_debug "mcs_label OK for node $node"
 		set found 1
 		exp_continue
 	}
@@ -291,7 +291,7 @@ cancel_job $job_id
 # Change the slurm.conf MCSparameters and MCSPlugin
 # test with enforced,noselect
 #
-send_user "n---Checking sbatch uses mcs-label with all jobs (enforced,noselect mode)---\n"
+log_info "---Checking sbatch uses mcs-label with all jobs (enforced,noselect mode)---"
 exec $bin_sed -i /^\[\t\s\]*MCSPlugin\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*MCSParameters\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*PrivateData\[\t\s\]*=/Id $config_file
@@ -302,7 +302,7 @@ reconfigure
 
 
 ###### Check that sbatch uses mcs-label=user ######
-send_user "\n---Checking sbatch uses mcs-label=user---\n"
+log_info "---Checking sbatch uses mcs-label=user---"
 
 make_bash_script $tmp_job "sleep 30"
 
@@ -332,7 +332,7 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$user_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -361,7 +361,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -389,7 +389,7 @@ expect {
 		set exit_code 1
 	}
 	-re "MCS_label=N/A" {
-		send_user "\nNo mcs_label for this node. It was expected\n"
+		log_debug "No mcs_label for this node. It was expected"
 	}
 	timeout {
 		log_error "scontrol is not responding"
@@ -406,7 +406,7 @@ cancel_job $job_id
 # Change the slurm.conf MCSparameters and MCSPlugin
 # test with ondemand,noselect
 #
-send_user "\n---Checking sbatch doesn't use mcs-label on filter (ondemand,noselect mode)---\n"
+log_info "---Checking sbatch doesn't use mcs-label on filter (ondemand,noselect mode)---"
 exec $bin_sed -i /^\[\t\s\]*MCSPlugin\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*MCSParameters\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*PrivateData\[\t\s\]*=/Id $config_file
@@ -416,7 +416,7 @@ exec $bin_echo PrivateData=jobs,nodes >> $config_file
 reconfigure
 
 ###### Check that sbatch uses mcs-label=user ######
-send_user "\n---Checking sbatch uses --exclusive=mcs ---\n"
+log_info "---Checking sbatch uses --exclusive=mcs ---"
 
 make_bash_script $tmp_job "sleep 30"
 
@@ -446,7 +446,7 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$user_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -475,7 +475,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -503,7 +503,7 @@ expect {
 		set exit_code 1
 	}
 	 -re "MCS_label=N/A" {
-		send_user "\nNo mcs_label for this node. It was expected\n"
+		log_debug "No mcs_label for this node. It was expected"
 	}
 	timeout {
 		log_error "scontrol is not responding"
@@ -517,7 +517,7 @@ expect {
 cancel_job $job_id
 
 ###### Check that sbatch doesn't use mcs-label ######
-send_user "\n---Checking sbatch uses --exclusive=mcs ---\n"
+log_info "---Checking sbatch uses --exclusive=mcs ---"
 
 make_bash_script $tmp_job "sleep 30"
 set job_id 0
@@ -547,11 +547,11 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "(null)" {
-		send_user "\nNO MCS-label for this job : this is expected\n"
+		log_debug "NO MCS-label for this job : this is expected"
 		exp_continue
 	}
 	-re "$user_name" {
-		send_user "\na MCS-label for this job : this is not expected\n"
+		log_debug "A MCS-label for this job : this is not expected"
 		set found 1
 		exp_continue
 	}
@@ -574,7 +574,7 @@ if {[wait_for_job $job_id "DONE"]} {
 	set exit_code 1
 }
 
-send_user "\n---Checking sbatch uses mcs-label for all jobs (enforced,select mode)---\n"
+log_info "---Checking sbatch uses mcs-label for all jobs (enforced,select mode)---"
 
 #
 # Change the slurm.conf MCSparameters and MCSPlugin
@@ -589,7 +589,7 @@ exec $bin_echo PrivateData=jobs,nodes >> $config_file
 reconfigure
 
 ###### Check that sbatch uses mcs-label=user ######
-send_user "\n---Checking sbatch with no --exclusive=mcs ---\n"
+log_info "---Checking sbatch with no --exclusive=mcs ---"
 
 make_bash_script $tmp_job "sleep 30"
 set job_id 0
@@ -618,11 +618,11 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "(null)" {
-		send_user "\nNO MCS-label for this job : this is not expected\n"
+		log_debug "NO MCS-label for this job : this is not expected"
 		exp_continue
 	}
 	-re "$user_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -646,7 +646,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -671,7 +671,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show node=$node | $bin_grep MCS"
 expect {
 	-re "MCS_label=$user_name" {
-		send_user "\n mcs_label OK for node $node\n"
+		log_debug "mcs_label OK for node $node"
 		set found 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.52 b/testsuite/expect/test17.52
index 8a7af30a7ff..1009dd9d71d 100755
--- a/testsuite/expect/test17.52
+++ b/testsuite/expect/test17.52
@@ -49,14 +49,14 @@ fail_on_error "Unable to get config path"
 set config_file $config_path/slurm.conf
 save_conf $config_file
 
-send_user "\n---Checking sbatch uses mcs-label only for some jobs (ondemand mode)---\n"
+log_info "---Checking sbatch uses mcs-label only for some jobs (ondemand mode)---"
 
 #
 # Change the slurm.conf MCSparameters and MCSPlugin
 #
 set alpha_numeric_pipe        "\[a-zA-Z0-9|\]+"
 set groups_name 0
-send_user "\n groups=$groups_name\n"
+log_debug "groups=$groups_name"
 spawn $bin_bash -c "exec groups \| sed \"s/ /\|/g\""
 expect {
 	-re "($alpha_numeric_pipe)" {
@@ -83,7 +83,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show config | $bin_grep MCS"
 expect {
 	-re "MCSPlugin               = mcs/group" {
-		send_user "\n MCSPlugin=mcs/group OK\n"
+		log_debug "MCSPlugin=mcs/group OK"
 		set found 1
 		exp_continue
 	}
@@ -102,7 +102,7 @@ if {$found == 0} {
 }
 
 ###### Check that sbatch fails with a bad mcs-label ######
-send_user "\n---Checking sbatch fails with a bad mcs-label ---\n"
+log_info "---Checking sbatch fails with a bad mcs-label ---"
 
 set timeout $max_job_delay
 make_bash_script $tmp_job "sleep 10"
@@ -110,7 +110,7 @@ make_bash_script $tmp_job "sleep 10"
 spawn $sbatch -N1 --mcs-label=foo -t1 $tmp_job
 expect {
 	-re "Batch job submission failed: Invalid mcs_label specified" {
-		send_user "\nThis error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -124,7 +124,7 @@ expect {
 
 
 ###### Check that sbatch uses mcs-label=group ######
-send_user "\n---Checking sbatch uses mcs-label=group---\n"
+log_info "---Checking sbatch uses mcs-label=group---"
 
 make_bash_script $tmp_job "sleep 10"
 set job_id 0
@@ -163,11 +163,11 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "(null)" {
-		send_user "\nNO MCS-label for this job : this is not expected\n"
+		log_debug "NO MCS-label for this job : this is not expected"
 		exp_continue
 	}
 	-re "$group1" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -213,7 +213,7 @@ sleep 5
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$group1" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -241,7 +241,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -265,7 +265,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show node=$node | $bin_grep MCS"
 expect {
 	-re "MCS_label=$group1" {
-		send_user "\n mcs_label OK for node $node\n"
+		log_debug "mcs_label OK for node $node"
 		set found 1
 		exp_continue
 	}
@@ -288,7 +288,7 @@ cancel_job $job_id
 # Change the slurm.conf MCSparameters and MCSPlugin
 # test with enforced
 #
-send_user "\n---Checking sbatch uses mcs-label with all jobs (enforced mode)---\n"
+log_info "---Checking sbatch uses mcs-label with all jobs (enforced mode)---"
 exec $bin_sed -i /^\[\t\s\]*MCSPlugin\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*MCSParameters\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*PrivateData\[\t\s\]*=/Id $config_file
@@ -299,7 +299,7 @@ reconfigure
 
 
 ###### Check that sbatch uses mcs-label=group ######
-send_user "\n---Checking sbatch uses mcs-label=group---\n"
+log_info "---Checking sbatch uses mcs-label=group---"
 
 make_bash_script $tmp_job "sleep 10"
 
@@ -328,7 +328,7 @@ sleep 3
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$group1" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -357,7 +357,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -384,7 +384,7 @@ expect {
 		set exit_code 1
 	}
 	-re "MCS_label=N/A" {
-		send_user "\nNo mcs_label for this node. It was expected\n"
+		log_debug "No mcs_label for this node. It was expected"
 	}
 	timeout {
 		log_error "scontrol is not responding"
diff --git a/testsuite/expect/test17.55 b/testsuite/expect/test17.55
index 7fb2ed9976f..10a6f15251c 100755
--- a/testsuite/expect/test17.55
+++ b/testsuite/expect/test17.55
@@ -50,7 +50,7 @@ set found -1
 spawn $scontrol -a show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
@@ -131,7 +131,7 @@ set found 0
 
 # Check EnforcePartLimits value
 set enforcepartlimits [test_enforce_part_limits]
-send_user "\nEnforcePartLimits=$enforcepartlimits\n\n"
+log_debug "EnforcePartLimits=$enforcepartlimits"
 
 #
 # Run a job in this new partition and validate the time limit
@@ -228,7 +228,7 @@ set found -1
 spawn $scontrol show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.56 b/testsuite/expect/test17.56
index d4dda9c01a5..27a9281359f 100755
--- a/testsuite/expect/test17.56
+++ b/testsuite/expect/test17.56
@@ -85,10 +85,10 @@ if {[wait_for_job $job_id DONE] != 0} {
 spawn $scontrol show job $job_id
 expect {
 	-re "TimeLimit=00:10:00" {
-		send_user "\nTimelimit OK\n"
+		log_debug "Timelimit OK"
 	}
 	-re "TimeLimit=00:09:" {
-		send_user "\nTimelimit OK\n"
+		log_debug "Timelimit OK"
 	}
 	-re "TimeLimit=" {
 		log_error ": Timelimit not OK with deadline"
diff --git a/testsuite/expect/test17.6 b/testsuite/expect/test17.6
index bd206c858a9..d7840542799 100755
--- a/testsuite/expect/test17.6
+++ b/testsuite/expect/test17.6
@@ -57,7 +57,7 @@ expect {
 		exp_continue
 	}
 	-re "Batch job submission failed" {
-		send_user "\nNo worries, error not unexpected\n"
+		log_debug "No worries, error not unexpected"
 		set no_run 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test17.62 b/testsuite/expect/test17.62
index f0eab8eed83..403da8fc453 100755
--- a/testsuite/expect/test17.62
+++ b/testsuite/expect/test17.62
@@ -96,7 +96,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 
 
 foreach option [array names check_list] {
-	#send_user "\n$option=$check_list($option)\n"
+	#log_debug "$option=$check_list($option)"
 	if {[string compare $option "BatchHost"] == 0 && [test_front_end] != 0} {
 		continue
 	}
diff --git a/testsuite/expect/test17.64 b/testsuite/expect/test17.64
index d3aec570a0a..f817b981261 100755
--- a/testsuite/expect/test17.64
+++ b/testsuite/expect/test17.64
@@ -51,7 +51,7 @@ fail_on_error "Unable to get config path"
 set config_file $config_path/slurm.conf
 save_conf $config_file
 
-send_user "\n---Checking sbatch uses mcs-label only for some jobs (ondemand mode)---\n"
+log_info "---Checking sbatch uses mcs-label only for some jobs (ondemand mode)---"
 
 #
 # Change the slurm.conf MCSparameters and MCSPlugin
@@ -71,7 +71,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show config | $bin_grep MCS"
 expect {
 	-re "MCSPlugin               = mcs/account" {
-		send_user "\n MCSPlugin=mcs/account OK\n"
+		log_debug "MCSPlugin=mcs/account OK"
 		set found 1
 		exp_continue
 	}
@@ -89,7 +89,7 @@ if {$found == 0} {
 }
 
 ###### Check that sbatch fails with a bad mcs-label ######
-send_user "\n---Checking sbatch fails with a bad mcs-label ---\n"
+log_info "---Checking sbatch fails with a bad mcs-label ---"
 
 set timeout $max_job_delay
 make_bash_script $tmp_job "sleep 10"
@@ -97,7 +97,7 @@ set job_id 0
 spawn $sbatch -N1 --mcs-label=foo -t1 $tmp_job
 expect {
 	-re "Batch job submission failed: Invalid mcs_label specified" {
-		send_user "\nThis error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		exp_continue
 	}
 	-re "Submitted batch job ($number)" {
@@ -118,7 +118,7 @@ if {$job_id != 0} {
 }
 
 ###### Check that sbatch uses mcs-label=account ######
-send_user "\n---Checking sbatch uses mcs-label=account---\n"
+log_info "---Checking sbatch uses mcs-label=account---"
 
 set job_id 0
 spawn $sbatch -N1 -o/dev/null --exclusive=mcs -t1 $tmp_job
@@ -163,11 +163,11 @@ set found 0
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "(null)" {
-		send_user "\nNO MCS-label for this job : this is not expected\n"
+		log_debug "NO MCS-label for this job : this is not expected"
 		exp_continue
 	}
 	-re "$account_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -212,7 +212,7 @@ sleep 5
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$account_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -240,7 +240,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -264,7 +264,7 @@ set found 0
 spawn -noecho $bin_bash -c "exec $scontrol show node=$node | $bin_grep MCS"
 expect {
 	-re "MCS_label=$account_name" {
-		send_user "\n mcs_label OK for node $node\n"
+		log_debug "mcs_label OK for node $node"
 		set found 1
 		exp_continue
 	}
@@ -287,7 +287,7 @@ cancel_job $job_id
 # Change the slurm.conf MCSparameters and MCSPlugin
 # test with enforced
 #
-send_user "\n---Checking sbatch uses mcs-label with all jobs (enforced mode)---\n"
+log_info "---Checking sbatch uses mcs-label with all jobs (enforced mode)---"
 exec $bin_sed -i /^\[\t\s\]*MCSPlugin\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*MCSParameters\[\t\s\]*=/Id $config_file
 exec $bin_sed -i /^\[\t\s\]*PrivateData\[\t\s\]*=/Id $config_file
@@ -297,7 +297,7 @@ exec $bin_echo PrivateData=jobs,nodes >> $config_file
 reconfigure
 
 ###### Check that sbatch uses mcs-label=account ######
-send_user "\n---Checking sbatch uses mcs-label=account---\n"
+log_info "---Checking sbatch uses mcs-label=account---"
 
 spawn $sbatch -N1 -o/dev/null -t1 $tmp_job
 expect {
@@ -324,7 +324,7 @@ sleep 3
 spawn $squeue --jobs=$job_id --noheader -O "mcslabel"
 expect {
 	-re "$account_name" {
-		send_user "\nMCS-label OK for this job\n"
+		log_debug "MCS-label OK for this job"
 		set found 1
 		exp_continue
 	}
@@ -353,7 +353,7 @@ spawn $squeue --jobs=$job_id --noheader -O "nodelist"
 expect {
 	-re "($alpha_numeric_under)" {
 		set node $expect_out(1,string)
-		send_user "\nNode for this job : $node\n"
+		log_debug "Node for this job : $node"
 		set found 1
 	}
 	timeout {
@@ -381,7 +381,7 @@ expect {
 		set exit_code 1
 	}
 	-re "MCS_label=N/A" {
-		send_user "\nNo mcs_label for this node. It was expected\n"
+		log_debug "No mcs_label for this node. It was expected"
 	}
 	timeout {
 		log_error "scontrol is not responding"
diff --git a/testsuite/expect/test19.5 b/testsuite/expect/test19.5
index e501bd98e0c..5b85f708c94 100755
--- a/testsuite/expect/test19.5
+++ b/testsuite/expect/test19.5
@@ -178,10 +178,7 @@ if {[wait_for_file $file_out_time] != 0} {
 			exp_continue
 		}
 		-re "CG *0:($number)" {
-			log_error "Job unexpected found in completing state."
-			send_user "  This may be a sign of node failure and job requeue.\n"
-			send_user "  Check for job state transistions through RUNNING,\n"
-			send_user "  COMPLETING, PENDING and RUNNING again.\n"
+			log_error "Job unexpected found in completing state. This may be a sign of node failure and job requeue. Check for job state transistions through RUNNING,COMPLETING, PENDING and RUNNING again"
 			set exit_code 1
 			set run_time $expect_out(1,string)
 			exp_continue
diff --git a/testsuite/expect/test19.9 b/testsuite/expect/test19.9
index 0208184e969..9601e4d6416 100755
--- a/testsuite/expect/test19.9
+++ b/testsuite/expect/test19.9
@@ -84,7 +84,7 @@ set match 0
 spawn $strigger --set -v --down --program=$cwd/$trigger_file_in
 expect {
 	-re "Duplicate event trigger" {
-		send_user "\nThis error is expected\n"
+		log_debug "This error is expected"
 		set match 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test2.14 b/testsuite/expect/test2.14
index 94b57d4f087..b6baaee8a87 100755
--- a/testsuite/expect/test2.14
+++ b/testsuite/expect/test2.14
@@ -128,7 +128,7 @@ if {$node_count != 1} {
 	set exit_code 1
 }
 if {$exit_code == 0} {
-	send_user "\nSo far, so good...\n\n\n"
+	log_debug "So far, so good.."
 }
 
 if {[wait_for_file $file_out2] != 0} {
diff --git a/testsuite/expect/test2.17 b/testsuite/expect/test2.17
index 4d7393c9b69..c3f0ba18e58 100755
--- a/testsuite/expect/test2.17
+++ b/testsuite/expect/test2.17
@@ -55,11 +55,11 @@ proc set_part_val {part_type part_val} {
 	spawn $scontrol update partitionname=$part_name $part_type=$part_val
 	expect {
 		-re "Error" {
-			send_user "\nFAILURE: $part_type was not set\n"
+			log_error "$part_type was not set"
 			set exit_code 1
 		}
 		timeout {
-			send_user "\nFAILURE: scontrol is not responding\n"
+			log_error "scontrol is not responding"
 			set exit_code 1
 		}
 		eof {
@@ -80,7 +80,7 @@ proc check_part {part_type part_val} {
 			exp_continue
 		}
 		timeout {
-			send_user "\nFAILURE: scontrol is not responding\n"
+			log_error "scontrol is not responding"
 			set exit_code 1
 		}
 		eof {
@@ -89,7 +89,7 @@ proc check_part {part_type part_val} {
 	}
 
 	if {$val_found != 1} {
-		send_user "\nFAILURE: $part_type was not set to $part_val\n"
+		log_error "$part_type was not set to $part_val"
 		set exit_code 1
 	}
 }
@@ -101,13 +101,13 @@ proc delete_part { } {
 	spawn $scontrol delete partition=$part_name
 	expect {
 		-re "error" {
-			send_user "\nFAILURE: scontrol did not remove "
+			log_error "scontrol did not remove "
 			"partition\n"
 			set exit_code 1
 			exp_continue
 		}
 		timeout {
-			send_user "FAILURE: scontrol is not responding\n"
+			log_error "scontrol is not responding"
 			set exit_code 1
 		}
 		eof {
@@ -123,7 +123,7 @@ proc delete_part { } {
 			exp_continue
 		}
 		timeout {
-			send_user "\nFAILURE: sacctmgr is not responding\n"
+			log_error "sacctmgr is not responding"
 			set exit_code 1
 		}
 		eof {
@@ -132,7 +132,7 @@ proc delete_part { } {
 	}
 
 	if {$del_acct != 1} {
-		send_user "\nFAILURE: Qos was not deleted\n"
+		log_error "Qos was not deleted"
 		set exit_code 1
 	}
 
@@ -141,11 +141,11 @@ proc delete_part { } {
 spawn $scontrol create partition=$part_name
 expect {
 	-re "error" {
-		send_user "\nFAILURE: partition was not created\n"
+		log_error "Partition was not created"
 		set exit_code 1
 	}
 	timeout {
-		send_user "\nFAILURE: scontrol is not reponding\n"
+		log_error "scontrol is not reponding"
 		set exit_code 1
 	}
 	eof {
diff --git a/testsuite/expect/test2.18 b/testsuite/expect/test2.18
index 0af75e2a551..2c3d707bbd2 100755
--- a/testsuite/expect/test2.18
+++ b/testsuite/expect/test2.18
@@ -87,7 +87,7 @@ proc cleanup { } {
 		}
 	}
 
-	send_user "Any error, except for unresponsiveness, from the previous scancel is expected and should be ignored.\n"
+	log_debug "Any error, except for unresponsiveness, from the previous scancel is expected and should be ignored"
 
 	spawn $scontrol delete partition=$part_name
 	expect {
@@ -173,7 +173,7 @@ proc test_part { acct part acct_con } {
 	expect {
 		-re "error" {
 			if { $acct_con == 1 } {
-				send_user "\nThis error is expected\n"
+				log_debug "This error is expected"
 			} else {
 				log_error "This error should not have occured"
 				set exit_code 1
@@ -239,7 +239,7 @@ expect {
 set_part_val allowaccount $acct_good
 
 ######Testing AllowAccount#####
-send_user "\nTesting AllowAccount\n"
+log_info "Testing AllowAccount"
 
 #
 # Test partition with good values
@@ -262,7 +262,7 @@ set_part_val denyaccount $acct_bad
 
 
 ######Testing DenyAccount#####
-send_user "\nTesting DenyAccount\n"
+log_info "Testing DenyAccount"
 
 #
 # Test partition with good values
diff --git a/testsuite/expect/test2.19 b/testsuite/expect/test2.19
index be2cc5fcd51..e297443313e 100755
--- a/testsuite/expect/test2.19
+++ b/testsuite/expect/test2.19
@@ -88,8 +88,7 @@ proc cleanup { } {
 		}
 	}
 
-	send_user "Any error, except for unresponsiveness, from the previous "
-	send_user "scancel is expected and should be ignored.\n"
+	log_debug "Any error, except for unresponsiveness, from the previous scancel is expected and should be ignored"
 
 	spawn $scontrol delete partition=$part_name
 	expect {
@@ -205,7 +204,7 @@ proc test_part {acct qos part qos_con } {
 	expect {
 		-re "error" {
 			if { $qos_con == 1 } {
-				send_user "\nThis error is expected\n"
+				log_debug "This error is expected"
 			} else {
 				log_error "This error should not have occured"
 				set exit_code 1
@@ -268,7 +267,7 @@ expect {
 set_part_val allowqos $qos_good
 
 ######Testing AllowQos######
-send_user "\nTesting AllowQos\n"
+log_info "Testing AllowQos"
 
 #
 # Test partition with good Qos
@@ -290,7 +289,7 @@ set_part_val allowqos ALL
 set_part_val denyqos $qos_bad
 
 ######Testing DenyQos#####
-send_user "\nTesting DenyQos\n"
+log_info "Testing DenyQos"
 
 #
 # Test partition with good Qos
diff --git a/testsuite/expect/test2.26 b/testsuite/expect/test2.26
index a93334d3b74..d7474040cc1 100755
--- a/testsuite/expect/test2.26
+++ b/testsuite/expect/test2.26
@@ -137,7 +137,7 @@ if {[test_super_user] == 0 && [top_enabled] == 0} {
 #
 # Submit a slurm job to wait in pending state
 #
-send_user "\nSubmit jobs\n\n"
+log_debug "Submit jobs"
 make_bash_script $file_in "
   $bin_sleep 600
 "
@@ -150,14 +150,14 @@ if {$job_id(0) == 0 || $job_id(1) == 0 || $job_id(2) == 0} {
 	end_it
 }
 
-send_user "\nReport initial job priorities\n\n"
+log_debug "Report initial job priorities"
 load_job_prio
 if {$prio(0) < 3 || $prio(1) < 3 || $prio(2) < 3} {
 	log_warn "Priorities are too low to test. Increase the PriorityWeight values when using the priority/multifactor plugin."
 	end_it
 }
 
-send_user "\Reset and test job priorities\n\n"
+log_debug "Reset and test job priorities"
 spawn $scontrol top $job_id(2),$job_id(1)
 expect {
 	timeout {
@@ -176,7 +176,7 @@ if {$prio(2) <= $prio(1) || $prio(1) <= $prio(0)} {
 	end_it
 }
 
-send_user "\Reset and test job priorities\n\n"
+log_debug "Reset and test job priorities"
 spawn $scontrol top $job_id(0)
 expect {
 	timeout {
diff --git a/testsuite/expect/test2.8 b/testsuite/expect/test2.8
index 992c8b5483c..b35842f2cc7 100755
--- a/testsuite/expect/test2.8
+++ b/testsuite/expect/test2.8
@@ -129,7 +129,7 @@ if {[wait_for_job $job_id2 "RUNNING"] != 0} {
 #
 # NOTE: Match "JobId=" only
 #
-send_user "\nGetting more info for job id 1 ($job_id1)\n"
+log_debug "Getting more info for job id 1 ($job_id1)"
 set matches 0
 spawn $scontrol show job $job_id1
 expect {
@@ -149,7 +149,7 @@ expect {
 		wait
 	}
 }
-send_user "\nGetting more info for job id 2 ($job_id2)\n"
+log_debug "Getting more info for job id 2 ($job_id2)"
 spawn $scontrol show job $job_id2
 expect {
 	-re "JobId=$job_id2 " {
@@ -176,7 +176,7 @@ if {$matches != 2} {
 #
 # using the scontrol -d option to display more info about job
 #
-send_user "\nGetting more info for job id 1 ($job_id1) with -d option\n"
+log_debug "Getting more info for job id 1 ($job_id1) with -d option"
 set matches 0
 spawn $scontrol -d show job $job_id1
 expect {
@@ -196,7 +196,7 @@ expect {
 		wait
 	}
 }
-send_user "\nGetting more info for job id 2 ($job_id2) with -d option\n"
+log_debug "Getting more info for job id 2 ($job_id2) with -d option"
 spawn $scontrol -d show job $job_id2
 expect {
 	-re "JobId=$job_id2 " {
@@ -225,7 +225,7 @@ if {$matches != $match_target} {
 #
 # using the scontrol -dd option to display more info about job
 #
-send_user "\nGetting more info for job id 1 ($job_id1) with -dd option\n"
+log_debug "Getting more info for job id 1 ($job_id1) with -dd option"
 set matches 0
 spawn $scontrol -dd show job $job_id1
 expect {
@@ -245,7 +245,7 @@ expect {
 		wait
 	}
 }
-send_user "\nGetting more info for job id 2 ($job_id2) with -dd option\n"
+log_debug "Getting more info for job id 2 ($job_id2) with -dd option"
 spawn $scontrol -dd show job $job_id2
 expect {
 	-re "JobId=$job_id2 " {
@@ -370,7 +370,7 @@ expect {
 		exp_continue
 	}
 	-re "Invalid job id" {
-		send_user "\nNo worries, error expected\n"
+		log_debug "No worries, error expected"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test20.1 b/testsuite/expect/test20.1
index fe8ac180b33..d7d059d4c27 100755
--- a/testsuite/expect/test20.1
+++ b/testsuite/expect/test20.1
@@ -93,7 +93,7 @@ set matches 0
 spawn $bin_cat $file_err
 expect {
 	-re "No such file" {
-		send_user "message from cat expected, no worries.\n"
+		log_debug "Message from cat expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test20.12 b/testsuite/expect/test20.12
index 0c5ff2b50c6..1f186d99e5d 100755
--- a/testsuite/expect/test20.12
+++ b/testsuite/expect/test20.12
@@ -41,9 +41,9 @@ proc run_qsub { variable1_name variable1_expect_val variable2_name
 	global variable1_value variable2_value
 	global subtest_name
 
-	send_user "\n==============================================\n"
-	send_user "$subtest_name\n"
-	send_user "==============================================\n"
+	log_info "=============================================="
+	log_info "$subtest_name"
+	log_info "=============================================="
 
 	set job_id 0
 	exec rm -f $file_err $file_out
diff --git a/testsuite/expect/test20.3 b/testsuite/expect/test20.3
index 304c2f35900..9dcb28e11fe 100755
--- a/testsuite/expect/test20.3
+++ b/testsuite/expect/test20.3
@@ -95,7 +95,7 @@ set matches 0
 spawn $qdel $job_id
 expect {
 	-re "already completing or completed" {
-		send_user "\nWe shouldn't see this because qdel doesn't print an error for this.\n"
+		log_debug "We shouldn't see this because qdel doesn't print an error for this"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test21.10 b/testsuite/expect/test21.10
index 5df669d8913..d4d32c61b23 100755
--- a/testsuite/expect/test21.10
+++ b/testsuite/expect/test21.10
@@ -388,7 +388,7 @@ expect {
 		set exit_code 1
 	}
 	timeout {
-		send_user "\nTest associations delete verified.\n"
+		log_debug "Test associations delete verified"
 		slow_kill $as2_list_pid
 	}
 	eof {
diff --git a/testsuite/expect/test21.11 b/testsuite/expect/test21.11
index 59a557d9f6b..ad9fcdc813f 100755
--- a/testsuite/expect/test21.11
+++ b/testsuite/expect/test21.11
@@ -172,8 +172,7 @@ expect {
 }
 
 if {$almatches != 2} {
-	log_error "Added associations not found."
-	send_user "\n Need 2 matches and got $almatches instead.\n"
+	log_error "Added associations not found. Need 2 matches and got $almatches instead"
 	set exit_code 1
 }
 # Check that the Association was set correctly
@@ -280,7 +279,7 @@ expect {
 		set exit_code 1
 	}
 	timeout {
-		send_user "\nTest associations delete verified\n"
+		log_debug "Test associations delete verified"
 		slow_kill $as2_list_pid
 	}
 	eof {
diff --git a/testsuite/expect/test21.12 b/testsuite/expect/test21.12
index d3eeeebfceb..c2d11fe3d43 100755
--- a/testsuite/expect/test21.12
+++ b/testsuite/expect/test21.12
@@ -133,8 +133,7 @@ expect {
 }
 
 if {$almatches != 2} {
-	log_error "Added associations not found"
-	send_user "\n Need 2 matches and got $almatches instead.\n"
+	log_error "Added associations not found. Need 2 matches and got $almatches instead"
 	set exit_code 1
 }
 
@@ -240,7 +239,7 @@ expect {
 		set exit_code 1
 	}
 	timeout {
-		send_user "\nTest associations delete verified.\n"
+		log_debug "Test associations delete verified"
 		slow_kill $as2_list_pid
 	}
 	eof {
diff --git a/testsuite/expect/test21.14 b/testsuite/expect/test21.14
index 9d9c2f6202d..52d04f9c975 100755
--- a/testsuite/expect/test21.14
+++ b/testsuite/expect/test21.14
@@ -155,7 +155,7 @@ set matches 0
 set my_pid [spawn $sacctmgr -n -p list account account=$ta1,$ta2,$ta3 format="Account,Desc,Org"]
 expect {
 	-re "There was a problem" {
-	        send_user "FAILURE: there was a problem with the sacctmgr command\n"
+	        log_error "There was a problem with the sacctmgr command"
 	    	incr exit_code 1
 	}
 	-re "($ta1|$ta2|$ta3).$acct_mod_acct_vals1(description).$acct_mod_acct_vals1(organization)." {
@@ -163,7 +163,7 @@ expect {
 		exp_continue
 	}
 	timeout {
-		send_user "\nFAILURE: sacctmgr list associations not responding\n"
+		log_error "sacctmgr list associations not responding"
 		slow_kill $my_pid
 		incr exit_code 1
 	}
@@ -172,7 +172,7 @@ expect {
 	}
 }
 if {$matches != 3} {
-	send_user "\nFAILURE:  Account modification 1 incorrect with only $matches.\n"
+	log_error "Account modification 1 incorrect with only $matches"
 	incr exit_code 1
 }
 
@@ -191,7 +191,7 @@ set matches 0
 set my_pid [spawn $sacctmgr -n -p list assoc account=$ta1,$ta2,$ta3 format="Account,Cluster,Fairshare,MaxCPUM,MaxJ,MaxN,MaxW"]
 expect {
 	-re "There was a problem" {
-	        send_user "FAILURE: there was a problem with the sacctmgr command\n"
+	        log_error "There was a problem with the sacctmgr command"
 	    	incr exit_code 1
 	}
 	-re "($ta1|$ta2|$ta3).($tc1|$tc2).$acct_mod_assoc_vals2(fairshare).$acct_mod_assoc_vals2(maxcpumins).$acct_mod_assoc_vals2(maxjobs).$acct_mod_assoc_vals2(maxnodes).$acct_mod_assoc_vals2(maxwall)." {
@@ -199,7 +199,7 @@ expect {
 		exp_continue
 	}
 	timeout {
-		send_user "\nFAILURE: sacctmgr list associations not responding\n"
+		log_error "sacctmgr list associations not responding"
 		slow_kill $my_pid
 		incr exit_code 1
 	}
@@ -208,7 +208,7 @@ expect {
 	}
 }
 if {$matches != 6} {
-	send_user "\nFAILURE:  Account modification 2 incorrect with only $matches.\n"
+	log_error "Account modification 2 incorrect with only $matches"
 	incr exit_code 1
 }
 
@@ -227,8 +227,8 @@ set matches 0
 set my_pid [eval spawn $sacctmgr -n -p list account withassoc account=$ta1,$ta2,$ta3 format="Account,Desc,Org,Cluster,Fairshare,MaxCPUM,MaxJ,MaxN,MaxW"]
 expect {
 	-re "There was a problem" {
-	        send_user "FAILURE: there was a problem with the sacctmgr command\n"
-	    	incr exit_code 1
+	    log_error "There was a problem with the sacctmgr command"
+	 	incr exit_code 1
 	}
 	# Any time you use () around something you need to combine all
 	# those things together since you can miss some and they be thrown away
@@ -237,7 +237,7 @@ expect {
 		exp_continue
 	}
 	timeout {
-		send_user "\nFAILURE: sacctmgr list associations not responding\n"
+		log_error "sacctmgr list associations not responding"
 		slow_kill $my_pid
 		incr exit_code 1
 	}
@@ -247,7 +247,7 @@ expect {
 }
 
 if {$matches != 6} {
-	send_user "\nFAILURE:  Account modification 6 incorrect with $matches.\n"
+	log_error "Account modification 6 incorrect with $matches"
 	incr exit_code 1
 }
 
@@ -266,8 +266,8 @@ set matches 0
 set my_pid [eval spawn $sacctmgr -n -p list assoc account=$ta3 format="Account,ParentN,Cluster,Fairshare,MaxCPUM,MaxJ,MaxN,MaxW"]
 expect {
 	-re "There was a problem" {
-	        send_user "FAILURE: there was a problem with the sacctmgr command\n"
-	    	incr exit_code 1
+	    log_error "There was a problem with the sacctmgr command"
+	    incr exit_code 1
 	}
 	-re "$ta3.$ta2.$tc1.1.$acct_mod_assoc_vals2(maxcpumins).$acct_mod_assoc_vals2(maxjobs).$acct_mod_assoc_vals2(maxnodes).$acct_mod_assoc_vals2(maxwall)." {
 		incr matches
@@ -278,7 +278,7 @@ expect {
 		exp_continue
 	}
 	timeout {
-		send_user "\nFAILURE: sacctmgr list associations not responding\n"
+		log_error "sacctmgr list associations not responding"
 		slow_kill $my_pid
 		incr exit_code 1
 	}
@@ -287,7 +287,7 @@ expect {
 	}
 }
 if {$matches != 2} {
-	send_user "\nFAILURE:  Account modification 2 incorrect with $matches.\n"
+	log_error "Account modification 2 incorrect with $matches"
 	incr exit_code 1
 }
 
@@ -307,15 +307,15 @@ set matches 0
 set my_pid [eval spawn $sacctmgr -n -p list assoc account=$ta3,$ta2 format="Account,ParentN,Cluster,Fairshare,MaxCPUM,MaxJ,MaxN,MaxW"]
 expect {
 	-re "There was a problem" {
-	        send_user "FAILURE: there was a problem with the sacctmgr command\n"
-	    	incr exit_code 1
+	    log_error "There was a problem with the sacctmgr command"
+	   	incr exit_code 1
 	}
 	-re "($ta2.root.$tc2.$acct_mod_assoc_vals2(fairshare).$acct_mod_assoc_vals2(maxcpumins).$acct_mod_assoc_vals2(maxjobs).$acct_mod_assoc_vals2(maxnodes).$acct_mod_assoc_vals2(maxwall).|$ta2.$ta3.$tc1.$acct_mod_assoc_vals2(fairshare).$acct_mod_assoc_vals2(maxcpumins).$acct_mod_assoc_vals2(maxjobs).$acct_mod_assoc_vals2(maxnodes).$acct_mod_assoc_vals2(maxwall).|$ta3.root.($tc1|$tc2).1.....)" {
 		incr matches
 		exp_continue
 	}
 	timeout {
-		send_user "\nFAILURE: sacctmgr list associations not responding\n"
+		log_error "sacctmgr list associations not responding"
 		slow_kill $my_pid
 		incr exit_code 1
 	}
@@ -324,7 +324,7 @@ expect {
 	}
 }
 if {$matches != 4} {
-	send_user "\nFAILURE:  Account modification 4 incorrect with $matches.\n"
+	log_error "Account modification 4 incorrect with $matches"
 	incr exit_code 1
 }
 
@@ -344,15 +344,15 @@ set matches 0
 set my_pid [eval spawn $sacctmgr -n -p list assoc account=$ta3,$ta2 format="Account,ParentN,Cluster,Fairshare,MaxCPUM,MaxJ,MaxN,MaxW"]
 expect {
 	-re "There was a problem" {
-	        send_user "FAILURE: there was a problem with the sacctmgr command\n"
-	    	incr exit_code 1
+	    log_error "There was a problem with the sacctmgr command"
+	    incr exit_code 1
 	}
 	-re "($ta2.root.($tc1|$tc2).$acct_mod_assoc_vals2(fairshare).$acct_mod_assoc_vals2(maxcpumins).$acct_mod_assoc_vals2(maxjobs).$acct_mod_assoc_vals2(maxnodes).$acct_mod_assoc_vals2(maxwall).|$ta3.$ta2.$tc1.1.$acct_mod_assoc_vals2(maxcpumins).$acct_mod_assoc_vals2(maxjobs).$acct_mod_assoc_vals2(maxnodes).$acct_mod_assoc_vals2(maxwall).|$ta3.root.$tc2.1.....)" {
 		incr matches
 		exp_continue
 	}
 	timeout {
-		send_user "\nFAILURE: sacctmgr list associations not responding\n"
+		log_error "sacctmgr list associations not responding"
 		slow_kill $my_pid
 		incr exit_code 1
 	}
@@ -361,11 +361,10 @@ expect {
 	}
 }
 if {$matches != 4} {
-	send_user "\nFAILURE:  Account modification 4 incorrect with $matches.\n"
+	log_error "Account modification 4 incorrect with $matches"
 	incr exit_code 1
 }
 
-
 # This is the end below here
 
 incr exit_code [remove_acct "$tc1,$tc2" "$ta1,$ta2,$ta3"]
@@ -373,7 +372,5 @@ incr exit_code [remove_acct "" "$ta1,$ta2,$ta3"]
 incr exit_code [remove_cluster "$tc1,$tc2"]
 
 if {$exit_code != 0} {
-	send_user "\nFAILURE\n"
-} else {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
diff --git a/testsuite/expect/test21.22 b/testsuite/expect/test21.22
index 94320bc71f7..ca1e232dce9 100755
--- a/testsuite/expect/test21.22
+++ b/testsuite/expect/test21.22
@@ -675,47 +675,47 @@ expect {
 	}
 	-re "($tc1.$roo.$roo.1.......$mc6.$mm6.$mj6.$mn6.$ms6.$mt6.$qs1)" {
 		incr matches
-		send_user "2\n"
+		log_debug "2"
 		exp_continue
 	}
 	-re "($tc1.$ta1..$fs5.$gm5.$gc5.$gj5.$gn5.$gs5.$gt5.$mc5.$mm5.$mj5.$mn5.$ms5.$mt5.$qs1)" {
 		incr matches
-		send_user "3\n"
+		log_debug "3"
 		exp_continue
 	}
 	-re "($tc1.$ta1.$tu3.$fs2.......$mc1.$mm1.$mj1.$mn1.$ms1.$mt1.$qs1)" {
 		incr matches
-		send_user "4\n"
+		log_debug "4"
 		exp_continue
 	}
 	-re "($tc1.$ta2..$fs4.$gm4.$gc4.$gj4.$gn4.$gs4.$gt4.$mc4.$mm4.$mj4.$mn4.$ms4.$mt4.$qs1)" {
 		incr matches
-		send_user "5\n"
+		log_debug "5"
 		exp_continue
 	}
 	-re "($tc1.$ta2.$tu1.$fs1.......$mc2.$mm2.$mj2.$mn2.$ms2.$mt2.$qs1)" {
 		incr matches
-		send_user "6\n"
+		log_debug "6"
 		exp_continue
 	}
 	-re "($tc1.$ta2.$tu3.$fs2.......$mc2.$mm2.$mj2.$mn2.$ms2.$mt2.$qs1)" {
 		incr matches
-		send_user "7\n"
+		log_debug "7"
 		exp_continue
 	}
 	-re "($tc1.$ta3..$fs5.$gm5.$gc5.$gj5.$gn5.$gs5.$gt5.$mc5.$mm5.$mj5.$mn5.$ms5.$mt5.$qs1)" {
 		incr matches
-		send_user "8\n"
+		log_debug "8"
 		exp_continue
 	}
 	-re "($tc1.$ta3.$tu2.$fs3.......$mc3.$mm3.$mj3.$mn3.$ms3.$mt3.$qs1)" {
 		incr matches
-		send_user "9\n"
+		log_debug "9"
 		exp_continue
 	}
 	-re "($tc1.$ta3.$tu3.$fs3.......$mc3.$mm3.$mj3.$mn3.$ms3.$mt3.$qs1)" {
 		incr matches
-		send_user "10\n"
+		log_debug "10"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test21.24 b/testsuite/expect/test21.24
index f176a7f1355..19bcf1d434c 100755
--- a/testsuite/expect/test21.24
+++ b/testsuite/expect/test21.24
@@ -398,42 +398,42 @@ while {[gets $tfile line] != -1} {
 		log_error "There was a problem with the sacctmgr command"
 		incr exit_code 1
 	} elseif {![string compare $line "$clu - '$tc3':$fs=$clus_req(fairshare):$gc=$clus_req(grptres):$gj=$clus_req(grpjob):$gs=$clus_req(grpsubmit):$mp=$clus_req(maxtresmin):$mu=$clus_req(maxtres):$mj=$clus_req(maxjobs):$ms=$clus_req(maxsubmit):$md=$clus_req(maxwall):$qs='$clus_req(qos)'"]} {
-		send_user "match 1\n"
+		log_debug "Match 1"
 		incr matches
 	} elseif {![string compare $line "$par - '$roo'"]} {
-		send_user "match 2\n"
+		log_debug "Match 2"
 		incr matches
 	} elseif {![string compare $line "$usr - '$roo':$dac='$roo':$al='$ala':$fs=1"]} {
-		send_user "match 3\n"
+		log_debug "Match 3"
 		incr matches
 	} elseif {![string compare $line "$acc - '$ta4':$dsc='$acct_req(description)':$org='$acct_req(organization)':$fs=$acct_req(fairshare):$gm=$acct_req(grptresmins):$gc=$acct_req(grptres):$gj=$acct_req(grpjobs):$gs=$acct_req(grpsubmitjobs):$gw=$acct_req(grpwall):$mp=$acct_req(maxtresmins):$mu=$acct_req(maxtres):$mj=$acct_req(maxjobs):$ms=$acct_req(maxsubmitjobs):$md=$acct_req(maxwall):$qs='$acct_req(qos)'"]} {
-		send_user "match 4\n"
+		log_debug "Match 4"
 		incr matches
 	} elseif {![string compare $line "$par - '$ta4'"]} {
-		send_user "match 5\n"
+		log_debug "Match 5"
 		incr matches
 	} elseif {![string compare $line "$usr - '$tu3':$dac='$user_req(defaultaccount)':$dw='$user_req(defaultwckey)':$al='$user_req(adminlevel)':$wk='$wckey_check':$fs=$user_req(fairshare):$gm=$user_req(grptresmins):$gc=$user_req(grptres):$gj=$user_req(grpjobs):$gs=$user_req(grpsubmitjobs):$gw=$user_req(grpwall):$mp=$user_req(maxtresmins):$mu=$user_req(maxtres):$mj=$user_req(maxjobs):$ms=$user_req(maxsubmitjobs):$md=$user_req(maxwall):$qs='$user_req(qos)'"]} {
 		# should come through 2 times
-		send_user "match 6\n"
+		log_debug "Match 6"
 		incr matches
 	} elseif {![string compare $line "$acc - '$ta3':$dsc='$acct_req2(description)':$org='$acct_req2(organization)':$fs=$acct_req2(fairshare):$gm=$acct_req2(grptresmins):$gc=$acct_req2(grptres):$gj=$acct_req2(grpjobs):$gs=$acct_req2(grpsubmitjobs):$gw=$acct_req2(grpwall):$mp=$acct_req2(maxtresmins):$mu=$acct_req2(maxtres):$mj=$acct_req2(maxjobs):$ms=$acct_req2(maxsubmitjobs):$md=$acct_req2(maxwall):$qs='$acct_req2(qos)'"]} {
-		send_user "match 7\n"
+		log_debug "Match 7"
 		incr matches
 	} elseif {![string compare $line "$par - '$ta3'"]} {
-		send_user "match 8\n"
+		log_debug "Match 8"
 		incr matches
 	} elseif {![string compare $line "$acc - '$ta2':$dsc='$acct_req3(description)':$org='$acct_req3(organization)':$fs=$acct_req3(fairshare):$gm=$acct_req3(grptresmins):$gc=$acct_req3(grptres):$gj=$acct_req3(grpjobs):$gs=$acct_req3(grpsubmitjobs):$gw=$acct_req3(grpwall):$mp=$acct_req3(maxtresmins):$mu=$acct_req3(maxtres):$mj=$acct_req3(maxjobs):$ms=$acct_req3(maxsubmitjobs):$md=$acct_req3(maxwall):$qs='$acct_req3(qos)'"]} {
-		send_user "match 9\n"
+		log_debug "Match 9"
 		incr matches
 	} elseif {![string compare $line "$par - '$ta2'"]} {
-		send_user "match 10\n"
+		log_debug "Match 10"
 		incr matches
 	} elseif {![string compare $line "$usr - '$tu1':$dac='$user_req3(defaultaccount)':$dw='$user_req3(defaultwckey)':$wk='$wckey_check':$fs=$user_req3(fairshare):$gm=$user_req3(grptresmins):$gc=$user_req3(grptres):$gj=$user_req3(grpjobs):$gs=$user_req3(grpsubmitjobs):$gw=$user_req3(grpwall):$mp=$user_req3(maxtresmins):$mu=$user_req3(maxtres):$mj=$user_req3(maxjobs):$ms=$user_req3(maxsubmitjobs):$md=$user_req3(maxwall):$qs='$user_req3(qos)'"]} {
-		send_user "match 11\n"
+		log_debug "Match 11"
 		incr matches
 	} elseif {![string compare $line "$usr - '$tu2':$dac='$user_req2(defaultaccount)':$dw='$user_req2(defaultwckey)':$al='$user_req2(adminlevel)':$wk='$wckey_check':$fs=$user_req2(fairshare):$gm=$user_req2(grptresmins):$gc=$user_req2(grptres):$gj=$user_req2(grpjobs):$gs=$user_req2(grpsubmitjobs):$gw=$user_req2(grpwall):$mp=$user_req2(maxtresmins):$mu=$user_req2(maxtres):$mj=$user_req2(maxjobs):$ms=$user_req2(maxsubmitjobs):$md=$user_req2(maxwall):$qs='$user_req2(qos)'"]} {
 		# should come through 2 times
-		send_user "match 12\n"
+		log_debug "Match 12"
 		incr matches
 	}
 }
diff --git a/testsuite/expect/test21.26 b/testsuite/expect/test21.26
index 8840dfd938d..15fc8b29b7e 100755
--- a/testsuite/expect/test21.26
+++ b/testsuite/expect/test21.26
@@ -149,9 +149,6 @@ if { $exit_code } {
 	fail "Unable to modify cluster ($tc1)"
 }
 
-# send_user "moded the cluster to qos = ''"
-# exit
-
 #add qos
 incr exit_code [add_qos "$qos1" ""]
 if { $exit_code } {
diff --git a/testsuite/expect/test21.32 b/testsuite/expect/test21.32
index be21a63243a..fcfbb407a7c 100755
--- a/testsuite/expect/test21.32
+++ b/testsuite/expect/test21.32
@@ -158,7 +158,7 @@ if { $exit_code } {
 }
 
 # Add a preempt qos with =
-send_user "Add a preempt qos with =\n"
+log_info "Add a preempt qos with ="
 _local_mod_qos "=$qos_test(1)"
 check_pre $qos_test(1)
 
@@ -167,14 +167,14 @@ reset_qos
 check_pre " "
 
 # Add multiple QoSs with =
-send_user "Add multiple QoSs with =\n"
+log_info "Add multiple QoSs with ="
 _local_mod_qos "=$qos_test(1),$qos_test(2)"
 check_pre "$qos_test(1),$qos_test(2)"
 reset_qos
 check_pre " "
 
 # Add multiple QoSs with +=
-send_user "Add multiple QoSs with +=\n"
+log_info "Add multiple QoSs with +="
 _local_mod_qos "=$qos_test(1)"
 _local_mod_qos "+=$qos_test(2)"
 check_pre "$qos_test(1),$qos_test(2)"
@@ -184,7 +184,7 @@ reset_qos
 check_pre " "
 
 # Remove some of the QoS with -=
-send_user "Add multiple QoSs with -=\n"
+log_info "Add multiple QoSs with -="
 _local_mod_qos "=$qos_test(1),$qos_test(2),$qos_test(3),$qos_test(4)"
 check_pre "$qos_test(1),$qos_test(2),$qos_test(3),$qos_test(4)"
 _local_mod_qos "-=$qos_test(2)"
diff --git a/testsuite/expect/test21.34 b/testsuite/expect/test21.34
index 6e7768a998b..4391c4e5338 100755
--- a/testsuite/expect/test21.34
+++ b/testsuite/expect/test21.34
@@ -375,7 +375,7 @@ expect {
 }
 
 
-send_user "\n========== Run limit test on partition's qos limits ==========\n\n"
+log_info "========== Run limit test on partition's qos limits =========="
 part_test
 
 #
@@ -398,7 +398,7 @@ expect {
 }
 
 
-send_user "\n========== Run limit test on job's qos limits ==========\n\n"
+log_info "========== Run limit test on job's qos limits =========="
 qos_test
 
 cleanup
diff --git a/testsuite/expect/test21.35 b/testsuite/expect/test21.35
index 54b53c91d29..be0e72448d8 100755
--- a/testsuite/expect/test21.35
+++ b/testsuite/expect/test21.35
@@ -340,15 +340,14 @@ for {set i 0} {$i < 3} {incr i} {
 
 	foreach option [array names max_tres_type] {
 		# Check DenyOnLimit for QoS
-		send_user "\n==== Testing QoS ====\n"
+		log_info "==== Testing QoS ===="
 		check_limit "qos" $test_qos
 
 		if {$i == 0} {
 			# Check DenyOnLimit for Association
-			send_user "\n==== Testing Association ====\n"
+			log_info "==== Testing Association ===="
 			check_limit "account" $test_acct
 		}
-
 	}
 }
 
diff --git a/testsuite/expect/test21.40 b/testsuite/expect/test21.40
index 14f7be2db8d..e1842f02bd4 100755
--- a/testsuite/expect/test21.40
+++ b/testsuite/expect/test21.40
@@ -362,17 +362,17 @@ expect {
 
 make_bash_script $file_in "$bin_sleep 60"
 
-send_user "\n\nTEST 1: Association GrpNodes limit\n"
+log_info "TEST 1: Association GrpNodes limit"
 set_assoc 1
 run_job_test
 set_assoc -1
 
-send_user "\n\nTEST 2: Job QOS GrpNodes limit\n"
+log_info "TEST 2: Job QOS GrpNodes limit"
 set_qos $job_qos 1
 run_job_test
 set_qos $job_qos -1
 
-send_user "\n\nTEST 3: Partition QOS GrpNodes limit\n"
+log_info "TEST 3: Partition QOS GrpNodes limit"
 set_qos $part_qos 1
 run_job_test
 set_qos $part_qos -1
diff --git a/testsuite/expect/test21.8 b/testsuite/expect/test21.8
index e0f214709b5..9956d33edc0 100755
--- a/testsuite/expect/test21.8
+++ b/testsuite/expect/test21.8
@@ -243,7 +243,7 @@ if { ![check_acct_associations] } {
 #
 # Check these cluster limits again after cluster 2 was modified
 #
-send_user "\nCheck Cluster limits after one cluster has been modified:"
+log_info "Check Cluster limits after one cluster has been modified:"
 # Check Cluster 1
 check_assoc_limit 1 cluster $tc1 [array get cluster]
 
diff --git a/testsuite/expect/test21.9 b/testsuite/expect/test21.9
index 2f8f563aad1..037963739ec 100755
--- a/testsuite/expect/test21.9
+++ b/testsuite/expect/test21.9
@@ -231,7 +231,7 @@ if { ![check_acct_associations] } {
 #
 mod_cluster "$tc1,$tc2,$tc3" [array get mod_cluster]
 
-send_user "\nChecking modifed cluster limits:"
+log_info "Checking modifed cluster limits:"
 # Check Cluster 1
 check_assoc_limit 1 cluster $tc1 [array get mod_cluster]
 
diff --git a/testsuite/expect/test22.1 b/testsuite/expect/test22.1
index de310854532..4a3fc1334be 100755
--- a/testsuite/expect/test22.1
+++ b/testsuite/expect/test22.1
@@ -367,22 +367,22 @@ proc test_fed {} {
 	delete_federations $fedname
 
 	set cmd1 "$sacctmgr -i add federation $fedname"
-	send_user "$cmd1\n"
-	send_user "[eval exec $cmd1]\n"
+	log_debug "$cmd1"
+	log_debug "[eval exec $cmd1]"
 
 	set cmd2 "$sacctmgr -i mod fed $fedname set clusters=$cluster1,$cluster2"
-	send_user "$cmd2\n"
-	send_user "[eval exec $cmd2]\n"
+	log_debug "$cmd2"
+	log_debug "[eval exec $cmd2]"
 
-	send_user "This is the config dir: $config_dir; new config: $new_conf \n"
+	log_debug "This is the config dir: $config_dir; new config: $new_conf "
 
 	set old_conf "$config_dir/slurm.conf"
 
-	send_user [exec sed "s/ClusterName\\s*=.*/ClusterName=$cluster1/Ig" $old_conf > $new_conf]
+	log_debug [exec sed "S/ClusterName\\s*=.*/ClusterName=$cluster1/Ig" $old_conf > $new_conf]
 
 	set env(SLURM_CONF) $new_conf
 
-	send_user "ENV VARIABLE: [exec printenv SLURM_CONF]  \n"
+	log_debug "ENV VARIABLE: [exec printenv SLURM_CONF]  "
 
 	set exit_code [inc22_1_fed]
 	delete_federations $fedname
@@ -478,17 +478,17 @@ proc create_sql {cluster sql_in sql_rem} {
 			incr exit_code 1
 		}
 		-re "$cluster.$account1.$user1acct1.$wckey1.$user1wckey1.$job1_start_str.$job1_end_str.$job1_diff_str." {
-			send_user "got 1\n"
+			log_debug "Got 1"
 			incr matches
 			exp_continue
 		}
 		-re "$cluster.$account3.$user2acct3.$wckey1.$user2wckey1.$job2_start_str.$job2_end_str.$job2_diff_str." {
-			send_user "got 2\n"
+			log_debug "Got 2"
 			incr matches
 			exp_continue
 		}
 		-re "$cluster.$account2.$user1acct2.$wckey1.$user1wckey1.$job3_start_str.$job3_end_str.$job3_diff_str." {
-			send_user "got 3\n"
+			log_debug "Got 3"
 			incr matches
 			exp_continue
 		}
@@ -516,7 +516,7 @@ proc create_sql {cluster sql_in sql_rem} {
 	# Use sacctmgr to see if node event loaded
 	#
 
-	send_user "$cluster..$start_str.$end_str.$cluster_cpus.$node_list.\n"
+	log_debug "$cluster..$start_str.$end_str.$cluster_cpus.$node_list"
 
 	set matches 0
 	set my_pid [eval spawn $sacctmgr -p list events cluster=$cluster format=cluster,noden,start,end,cpu --noheader start=$start_str end=$end_str]
@@ -526,12 +526,12 @@ proc create_sql {cluster sql_in sql_rem} {
 			incr exit_code 1
 		}
 		-re "($cluster..$start_str.$end_str.$cluster_cpus.)" {
-			send_user "got 1\n"
+			log_debug "Got 1"
 			incr matches
 			exp_continue
 		}
 		-re "($cluster.$node0.$node0_start_str.$node0_end_str.$node0_cpus.)" {
-			send_user "got 2\n"
+			log_debug "Got 2"
 			incr matches
 			exp_continue
 		}
diff --git a/testsuite/expect/test22.2 b/testsuite/expect/test22.2
index 0edb035c5e3..385f2547900 100755
--- a/testsuite/expect/test22.2
+++ b/testsuite/expect/test22.2
@@ -62,7 +62,7 @@ proc sreport_opt { soption } {
 	set exit_code   0
 	set matches     0
 	set not_support 0
-	send_user "$sreport -$soption \n"
+	log_debug "$sreport -$soption "
 
 	if { $soption == "-help"|| $soption == "-usage" || $soption == "h" } {
 
@@ -73,17 +73,17 @@ proc sreport_opt { soption } {
 			exp_continue
 		}
 		-re "sreport...OPTION.....COMMAND" {
-			if {$debug} {send_user "\nmatch1\n"}
+			if {$debug} {log_debug "Match1"}
 			incr matches
 			exp_continue
 		}
 		-re "Valid .OPTION. values are" {
-			if {$debug} {send_user "\nmatch2\n"}
+			if {$debug} {log_debug "Match2"}
 			incr matches
 			exp_continue
 		}
 		-re "Valid .COMMAND. values are" {
-			if {$debug} {send_user "\nmatch3\n"}
+			if {$debug} {log_debug "Match3"}
 			incr matches
 			exp_continue
 		}
@@ -116,7 +116,7 @@ proc sreport_opt { soption } {
 			exp_continue
 		}
 		-re "Cluster|Account|0-49 CPUs|50-249 CPUs|250-499 CPUs|500-999 CPUs|1000 CPUs|of cluster" {
-			if {$debug} {send_user "\nmatch4\n"}
+			if {$debug} {log_debug "Match4"}
 			incr matches
 			exp_continue
 		}
@@ -148,12 +148,12 @@ proc sreport_opt { soption } {
 			exp_continue
 		}
 		-re "Cluster\\|Account\\|0-49 CPUs\\|50-249 CPUs\\|250-499 CPUs\\|" {
-			if {$debug} {send_user "\nmatch5\n"}
+			if {$debug} {log_debug "Match5"}
 			incr matches
 			exp_continue
 		}
 		-re "500-999 CPUs\\|>= 1000 CPUs\\|% of cluster\\|" {
-			if {$debug} {send_user "\nmatch6\n"}
+			if {$debug} {log_debug "Match6"}
 			incr matches
 			exp_continue
 		}
@@ -181,12 +181,12 @@ proc sreport_opt { soption } {
 			exp_continue
 		}
 		-re "Cluster\\|Account\\|0-49 CPUs\\|50-249 CPUs\\|250-499 CPUs\\|" {
-			if {$debug} {send_user "\nmatch7\n"}
+			if {$debug} {log_debug "Match7"}
 			incr matches
 			exp_continue
 		}
 		-re "500-999 CPUs\\|>= 1000 CPUs\\|% of cluster" {
-			if {$debug} {send_user "\nmatch8\n"}
+			if {$debug} {log_debug "Match8"}
 			incr matches
 			exp_continue
 		}
@@ -219,7 +219,7 @@ proc sreport_opt { soption } {
 			exp_continue
 		}
 		-re "slurm $number.$number.$number" {
-			if {$debug} {send_user "\nmatch9\n"}
+			if {$debug} {log_debug "Match9"}
 			incr matches
 			exp_continue
 		}
diff --git a/testsuite/expect/test23.1 b/testsuite/expect/test23.1
index c487a98acf9..b47391d18e5 100755
--- a/testsuite/expect/test23.1
+++ b/testsuite/expect/test23.1
@@ -57,24 +57,24 @@ proc sstat_job { soption } {
 	set exit_code   0
 	set matches     0
 	set not_support 0
-	send_user "sstat -$soption \n"
+	log_debug "sstat -$soption "
 
 	if { $soption == "h" || $soption == "-help" } {
 
 		spawn $sstat -$soption
 		expect {
 			-re "sstat...OPTION" {
-				if {$debug} {send_user "\nmatch6\n"}
+				if {$debug} {log_debug "Match6"}
 				incr matches
 				exp_continue
 			}
 			-re "Valid..OPTION" {
-				if {$debug} {send_user "\nmatch7\n"}
+				if {$debug} {log_debug "Match7"}
 				incr matches
 				exp_continue
 			}
 			-re "-e, --helpformat" {
-				if {$debug} {send_user "\nmatch8\n"}
+				if {$debug} {log_debug "Match8"}
 				incr matches
 				exp_continue
 			}
@@ -99,12 +99,12 @@ proc sstat_job { soption } {
 		spawn $sstat -$soption
 		expect {
 			-re "Usage: sstat .options. -j .job..stepid." {
-				if {$debug} {send_user "\nmatch9\n"}
+				if {$debug} {log_debug "Match9"}
 				incr matches
 				exp_continue
 			}
 			-re "Use --help for help" {
-				if {$debug} {send_user "\nmatch10\n"}
+				if {$debug} {log_debug "Match10"}
 				incr matches
 				exp_continue
 			}
@@ -129,7 +129,7 @@ proc sstat_job { soption } {
 		spawn $sstat -$soption
 		expect {
 			-re "slurm ($number).($number)." {
-				if {$debug} {send_user "\nmatch11\n"}
+				if {$debug} {log_debug "Match11"}
 				incr matches
 				exp_continue
 			}
@@ -156,7 +156,7 @@ if {$matches != 3} {
 	log_error "sstat -h failed ($matches)"
 	set exit_code 1
 } else {
-	send_user "\nsstat -h test GOOD!\n"
+	log_debug "Sstat -h test GOOD!"
 }
 
 set matches [sstat_job -help ]
@@ -164,7 +164,7 @@ if {$matches != 3} {
 	log_error "sstat --help failed ($matches)"
 	set exit_code 1
 } else {
-	send_user "\nsstat --help test GOOD!\n"
+	log_debug "Sstat --help test GOOD!"
 }
 
 set matches [sstat_job -usage ]
@@ -172,21 +172,21 @@ if {$matches != 2} {
 	log_error "sstat --usage failed ($matches)"
 	set exit_code 1
 } else {
-	send_user "\nsstat --usage test GOOD!\n"
+	log_debug "Sstat --usage test GOOD!"
 }
 
 set matches [sstat_job V ]
 if {$matches != 1} {
 	fail "sstat -V failed ($matches)"
 } else {
-	send_user "\nsstat -V test GOOD!\n"
+	log_debug "Sstat -V test GOOD!"
 }
 
 set matches [sstat_job -version ]
 if {$matches != 1} {
 	fail "sstat --version failed ($matches)"
 } else {
-	send_user "\nsstat --version test GOOD!\n"
+	log_debug "Sstat --version test GOOD!"
 }
 
 if {$exit_code != 0} {
diff --git a/testsuite/expect/test23.2 b/testsuite/expect/test23.2
index 900a25765ab..9e6f7f44068 100755
--- a/testsuite/expect/test23.2
+++ b/testsuite/expect/test23.2
@@ -178,7 +178,7 @@ spawn $sbatch -N1 -t1 -v $job_mem_opt --gres=craynetwork:0 --account=$test_acct
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id3 $expect_out(1,string)
-		send_user "\nFOUND JobID to be $job_id3\n"
+		log_debug "Found JobID to be $job_id3"
 		exp_continue
 	}
 	timeout {
@@ -239,7 +239,7 @@ proc sstat_job { soption job_id step_id } {
 	set exit_code   0
 	set matches     0
 	set not_support 0
-	send_user "sstat -$soption -p -j $job_id\n"
+	log_debug "sstat -$soption -p -j $job_id"
 
 	if { $soption == "-allsteps" || $soption == "a" } {
 		spawn $sstat -$soption -p -j $job_id
@@ -249,12 +249,12 @@ proc sstat_job { soption job_id step_id } {
 				exp_continue
 			}
 			-re "$job_id.($number)" {
-				if {$debug} {send_user "\nmatch $expect_out(1,string)\n"}
+				if {$debug} {log_debug "Match $expect_out(1,string)"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id.batch" {
-				if {$debug} {send_user "\nmatch batch\n"}
+				if {$debug} {log_debug "Match batch"}
 				incr matches
 				exp_continue
 			}
@@ -283,12 +283,12 @@ proc sstat_job { soption job_id step_id } {
 				AveVMSize|MaxRSS|MaxRSSNode|MaxRSSTask|AveRSS|	\
 				MaxPages|MaxPagesNode|MaxPagesTask|AvePages|	\
 				MinCPU|MinCPUNode|MinCPUTask|AveCPU|NTasks" {
-				if {$debug} {send_user "\nmatch4\n"}
+				if {$debug} {log_debug "Match4"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch5\n"}
+				if {$debug} {log_debug "Match5"}
 				incr matches
 				exp_continue
 			}
@@ -314,22 +314,22 @@ proc sstat_job { soption job_id step_id } {
 				exp_continue
 			}
 			-re "JobID\\|MaxVMSize\\|MaxVMSizeNode\\|MaxVMSizeTask\\|AveVMSize\\|MaxRSS\\|" {
-				if {$debug} {send_user "\nmatch6\n"}
+				if {$debug} {log_debug "Match6"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxRSSNode\\|MaxRSSTask\\|AveRSS\\|MaxPages\\|MaxPagesNode\\|MaxPagesTask\\|" {
-				if {$debug} {send_user "\nmatch7\n"}
+				if {$debug} {log_debug "Match7"}
 				incr matches
 				exp_continue
 			}
 			-re "AvePages\\|MinCPU\\|MinCPUNode\\|MinCPUTask\\|AveCPU\\|NTasks\\|" {
-				if {$debug} {send_user "\nmatch8\n"}
+				if {$debug} {log_debug "Match8"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id.$step_id\\|" {
-				if {$debug} {send_user "\nmatch9\n"}
+				if {$debug} {log_debug "Match9"}
 				incr matches
 				exp_continue
 			}
@@ -355,22 +355,22 @@ proc sstat_job { soption job_id step_id } {
 				exp_continue
 			}
 			-re "JobID\\|MaxVMSize\\|MaxVMSizeNode\\|MaxVMSizeTask\\|AveVMSize\\|MaxRSS\\|" {
-				if {$debug} {send_user "\nmatch10\n"}
+				if {$debug} {log_debug "Match10"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxRSSNode\\|MaxRSSTask\\|AveRSS\\|MaxPages\\|MaxPagesNode\\|MaxPagesTask\\|" {
-				if {$debug} {send_user "\nmatch11\n"}
+				if {$debug} {log_debug "Match11"}
 				incr matches
 				exp_continue
 			}
 			-re "AvePages\\|MinCPU\\|MinCPUNode\\|MinCPUTask\\|AveCPU\\|NTasks" {
-				if {$debug} {send_user "\nmatch12\n"}
+				if {$debug} {log_debug "Match12"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id.$step_id\\|" {
-				if {$debug} {send_user "\nmatch13\n"}
+				if {$debug} {log_debug "Match13"}
 				incr matches
 				exp_continue
 			}
@@ -396,22 +396,22 @@ proc sstat_job { soption job_id step_id } {
 				exp_continue
 			}
 			-re "JobID.MaxVMSize.MaxVMSizeNode.MaxVMSizeTask.AveVMSize.MaxRSS" {
-				if {$debug} {send_user "\nmatch14\n"}
+				if {$debug} {log_debug "Match14"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxRSSNode.MaxRSSTask.AveRSS.MaxPages.MaxPagesNode.MaxPagesTask" {
-				if {$debug} {send_user "\nmatch15\n"}
+				if {$debug} {log_debug "Match15"}
 				incr matches
 				exp_continue
 			}
 			-re "AvePages.MinCPU.MinCPUNode.MinCPUTask.AveCPU.NTasks" {
-				if {$debug} {send_user "\nmatch16\n"}
+				if {$debug} {log_debug "Match16"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch17\n"}
+				if {$debug} {log_debug "Match17"}
 				incr matches
 				exp_continue
 			}
@@ -448,7 +448,7 @@ proc sstat_vargs { soption vargs job_id} {
 	set exit_code   0
 	set matches     0
 	set not_support 0
-	send_user "sstat -$soption $vargs -p -j $job_id\n"
+	log_debug "sstat -$soption $vargs -p -j $job_id"
 
 	if { $soption == "o" || $soption == "-format" } {
 		spawn $sstat -$soption $vargs -p -j $job_id
@@ -458,32 +458,32 @@ proc sstat_vargs { soption vargs job_id} {
 				exp_continue
 			}
 			-re "AveCPU.AvePages.AveRSS.AveVMSize" {
-				if {$debug} {send_user "\nmatch18\n"}
+				if {$debug} {log_debug "Match18"}
 				incr matches
 				exp_continue
 			}
 			-re "JobID.MaxPages.MaxPagesNode.MaxPagesTask" {
-				if {$debug} {send_user "\nmatch19\n"}
+				if {$debug} {log_debug "Match19"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxRSS.MaxRSSNode.MaxRSSTask.MaxVMSize" {
-				if {$debug} {send_user "\nmatch20\n"}
+				if {$debug} {log_debug "Match20"}
 				incr matches
 				exp_continue
 			}
 			-re "MaxVMSizeNode.MaxVMSizeTask.MinCPU.MinCPUNode" {
-				if {$debug} {send_user "\nmatch21\n"}
+				if {$debug} {log_debug "Match21"}
 				incr matches
 				exp_continue
 			}
 			-re "MinCPUTask.NTasks" {
-				if {$debug} {send_user "\nmatch22\n"}
+				if {$debug} {log_debug "Match22"}
 				incr matches
 				exp_continue
 			}
 			-re "$job_id" {
-				if {$debug} {send_user "\nmatch23\n"}
+				if {$debug} {log_debug "Match23"}
 				incr matches
 				exp_continue
 			}
@@ -586,7 +586,7 @@ expect {
 		exp_continue
 	}
 	"Job(s) active, cancel job(s) before remove" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set needtodel 1
 	}
 
diff --git a/testsuite/expect/test24.1 b/testsuite/expect/test24.1
index 9efef32090b..a453a232028 100755
--- a/testsuite/expect/test24.1
+++ b/testsuite/expect/test24.1
@@ -61,11 +61,11 @@ fail_on_error "Cannot compile test program"
 spawn ./$test_prog
 expect {
 	"No last decay" {
-		send_user "This error is expected.  No worries.\n"
+		log_debug "This error is expected.  No worries"
 		exp_continue
 	}
 	"error: Can't save decay state" {
-		send_user "This error is expected.  No worries.\n"
+		log_debug "This error is expected.  No worries"
 		exp_continue
 	}
 	"AccountA||40|0.400000|45|0.450000|0.450000|0.458502|" {
diff --git a/testsuite/expect/test24.2 b/testsuite/expect/test24.2
index cded8f147e6..9e2ce4d7b49 100755
--- a/testsuite/expect/test24.2
+++ b/testsuite/expect/test24.2
@@ -61,7 +61,7 @@ proc sshare_opt { soption } {
 	set debug       1
 	set matches     0
 	set not_support 0
-	send_user "$sshare -$soption \n"
+	log_info "$sshare -$soption "
 
 	if { $soption == "-help"|| $soption == "-usage" } {
 
@@ -76,17 +76,17 @@ proc sshare_opt { soption } {
 				exp_continue
 			}
 			-re "Usage: *sshare *.OPTION" {
-				if {$debug} {send_user "\nmatch1\n"}
+				if {$debug} {log_debug "Match1"}
 				incr matches
 				exp_continue
 			}
 			-re "Valid OPTIONs are" {
-				if {$debug} {send_user "\nmatch2\n"}
+				if {$debug} {log_debug "Match2"}
 				incr matches
 				exp_continue
 			}
 			-re "verbose *display more information" {
-				if {$debug} {send_user "\nmatch3\n"}
+				if {$debug} {log_debug "Match3"}
 				incr matches
 				exp_continue
 			}
@@ -123,7 +123,7 @@ proc sshare_opt { soption } {
 				exp_continue
 			}
 			-re "Account|User|RawShares|NormShares|RawUsage|NormUsage|EffectvUsage" {
-				if {$debug} {send_user "\nmatch4\n"}
+				if {$debug} {log_debug "Match4"}
 				incr matches
 				exp_continue
 			}
@@ -160,12 +160,12 @@ proc sshare_opt { soption } {
 				exp_continue
 			}
 			-re "Account\\|User\\|RawShares\\|NormShares\\|" {
-				if {$debug} {send_user "\nmatch5\n"}
+				if {$debug} {log_debug "Match5"}
 				incr matches
 				exp_continue
 			}
 			-re "RawUsage\\|EffectvUsage\\|FairShare\\|" {
-				if {$debug} {send_user "\nmatch5\n"}
+				if {$debug} {log_debug "Match5"}
 				incr matches
 				exp_continue
 			}
@@ -198,12 +198,12 @@ proc sshare_opt { soption } {
 				exp_continue
 			}
 			-re "Account\\|User\\|RawShares\\|NormShares\\|" {
-				if {$debug} {send_user "\nmatch6\n"}
+				if {$debug} {log_debug "Match6"}
 				incr matches
 				exp_continue
 			}
 			-re "RawUsage\\|EffectvUsage\\|FairShare" {
-				if {$debug} {send_user "\nmatch7\n"}
+				if {$debug} {log_debug "Match7"}
 				incr matches
 				exp_continue
 			}
@@ -240,12 +240,12 @@ proc sshare_opt { soption } {
 				exp_continue
 			}
 			-re "Users requested" {
-				if {$debug} {send_user "\nmatch8\n"}
+				if {$debug} {log_debug "Match8"}
 				incr matches
 				exp_continue
 			}
 			-re "Accounts requested" {
-				if {$debug} {send_user "\nmatch9\n"}
+				if {$debug} {log_debug "Match9"}
 				incr matches
 				exp_continue
 			}
@@ -283,7 +283,7 @@ proc sshare_opt { soption } {
 				exp_continue
 			}
 			-re "slurm $number.$number.$number" {
-				if {$debug} {send_user "\nmatch11\n"}
+				if {$debug} {log_debug "Match11"}
 				incr matches
 				exp_continue
 			}
diff --git a/testsuite/expect/test24.3 b/testsuite/expect/test24.3
index b864ccbbd76..02c8c882090 100755
--- a/testsuite/expect/test24.3
+++ b/testsuite/expect/test24.3
@@ -65,11 +65,11 @@ fail_on_error "Cannot compile test program"
 spawn ./$test_prog
 expect {
 	"No last decay" {
-		send_user "This error is expected.  No worries.\n"
+		log_debug "This error is expected. No worries"
 		exp_continue
 	}
 	"error: Can't save decay state" {
-		send_user "This error is expected.  No worries.\n"
+		log_debug "This error is expected. No worries"
 		exp_continue
 	}
 
diff --git a/testsuite/expect/test24.4 b/testsuite/expect/test24.4
index 5af4aee2f76..a2b7126e945 100755
--- a/testsuite/expect/test24.4
+++ b/testsuite/expect/test24.4
@@ -55,8 +55,6 @@ if {$damp != 1} {
 #
 file delete $test_prog
 
-send_user "build_dir is $build_dir\n"
-
 compile_against_libslurm ${test_prog} 1 "-ldl -lm -export-dynamic \
 					 ${build_dir}/src/slurmctld/locks.o \
 					 ${build_dir}/src/sshare/process.o"
@@ -66,11 +64,11 @@ fail_on_error "Cannot compile test program"
 spawn ./$test_prog
 expect {
 	"No last decay" {
-		send_user "This error is expected.  No worries.\n"
+		log_debug "This error is expected. No worries"
 		exp_continue
 	}
 	"error: Can't save decay state" {
-		send_user "This error is expected.  No worries.\n"
+		log_debug "This error is expected. No worries"
 		exp_continue
 	}
 
@@ -227,13 +225,13 @@ expect {
 
 if {$matches != $expected_matches} {
 	log_error "We didn't get the correct priorities from the plugin ($matches != $expected_matches)"
-	send_user "Some potentially useful information is below:
+	log_debug "Some potentially useful information is below:
 * Account aA, aB, and aC are general purpose algorithm tests with various shares, usage values, children counts, and depths
 * Account aD is used to test USE_PARENT. Any account that is USE_PARENT should have its children effectively reparented to the parent's parent. Any user with USE_PARENT should be ranked highest in its account, subject to ties with any other association with level_fs==1.0. uD2 and uD3 do NOT have the same level_fs; sshare doesn't show enough digits to visually distinguish.
 * Account aE and its children should have fairshare==1.0 as a result of tie handling code.
 * Account aF is similar to aE except its shares are different; they should still be 1.0.
 * Accounts aE and aF and their descendants and u1 (root) should have fairshare==1.0 or ranking is broken.
-* Account aG is set up so that uGA1 and uG1 will have equivalent fs factors due to the tie handling code but uGA2 will not.\n"
+* Account aG is set up so that uGA1 and uG1 will have equivalent fs factors due to the tie handling code but uGA2 will not."
 	set exit_code 1
 }
 
diff --git a/testsuite/expect/test25.1 b/testsuite/expect/test25.1
index 3afd4fb5099..34f4a396f62 100755
--- a/testsuite/expect/test25.1
+++ b/testsuite/expect/test25.1
@@ -117,7 +117,7 @@ proc sprio_opt { soption } {
 	set debug       0
 	set matches     0
 	set not_support 0
-	send_user "$sprio $soption \n"
+	log_debug "$sprio $soption"
 
 ############# sprio help option
 	if { $soption == "--help" } {
@@ -129,22 +129,22 @@ proc sprio_opt { soption } {
 				exp_continue
 			}
 			-re "noheader.*jobs.*long.*norm.*format.*user.*verbose.*version.*weights" {
-				if {$debug} {send_user "\nmatch1\n"}
+				if {$debug} {log_debug "Match1"}
 				incr matches
 				exp_continue
 			}
 			-re "Help options:" {
-				if {$debug} {send_user "\nmatch2\n"}
+				if {$debug} {log_debug "Match2"}
 				incr matches
 				exp_continue
 			}
 			-re "help *show this help message" {
-				if {$debug} {send_user "\nmatch3\n"}
+				if {$debug} {log_debug "Match3"}
 				incr matches
 				exp_continue
 			}
 			-re "usage *display a brief summary of sprio options" {
-				if {$debug} {send_user "\nmatch4\n"}
+				if {$debug} {log_debug "Match4"}
 				incr matches
 				exp_continue
 			}
@@ -178,7 +178,7 @@ proc sprio_opt { soption } {
 				exp_continue
 			}
 			-re "Usage: sprio .-j jid.s.. .-u user_name.s.. .-o format. .-p partitions.\r\n   .--federation. .--local. .--sibling. .--usage. .-hlnvVw." {
-				if {$debug} {send_user "\nmatch5\n"}
+				if {$debug} {log_debug "Match5"}
 				incr matches
 				exp_continue
 			}
@@ -211,7 +211,7 @@ proc sprio_opt { soption } {
 				exp_continue
 			}
 			-re "slurm $number.$number.$number" {
-				if {$debug} {send_user "\nmatch6\n"}
+				if {$debug} {log_debug "Match6"}
 				incr matches
 				exp_continue
 			}
@@ -245,12 +245,12 @@ proc sprio_opt { soption } {
 				exp_continue
 			}
 			-re "JOBID\\s+PARTITION\\s+PRIORITY" {
-				if {$debug} {send_user "\nmatch7\n"}
+				if {$debug} {log_debug "Match7"}
 				incr matches
 				exp_continue
 			}
 			-re "Weights" {
-				if {$debug} {send_user "\nmatch8\n"}
+				if {$debug} {log_debug "Match8"}
 				incr matches
 				exp_continue
 			}
@@ -292,7 +292,7 @@ proc sprio_args { soption sargs jobid} {
 	set debug       0
 	set matches     0
 	set not_support 0
-	send_user "$sprio $soption $sargs $jobid\n"
+	log_debug "$sprio $soption $sargs $jobid"
 
 ############# sprio noheader options
 	if { $soption == "--noheader" || $soption == "-h" } {
@@ -304,7 +304,7 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID|PARTITION|PRIORITY|ADMIN|AGE|ASSOC|FAIRSHARE|JOBSIZE|PARTITION|QOS" {
-				if {$debug} {send_user "\nmatch9\n"}
+				if {$debug} {log_debug "Match9"}
 				incr matches
 				exp_continue
 			}
@@ -337,12 +337,12 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID\\s+PARTITION\\s+PRIORITY" {
-				if {$debug} {send_user "\nmatch10\n"}
+				if {$debug} {log_debug "Match10"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid\\s+\\S+\\s+$number" {
-				if {$debug} {send_user "\nmatch11\n"}
+				if {$debug} {log_debug "Match11"}
 				incr matches
 				exp_continue
 			}
@@ -375,12 +375,12 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID PARTITION     USER   PRIORITY       SITE        AGE      ASSOC  FAIRSHARE    JOBSIZE  PARTITION        QOS        NICE                 TRES" {
-				if {$debug} {send_user "\nmatch12\n"}
+				if {$debug} {log_debug "Match12"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid.*$number *$number *$number *$number *$number *$number *$number" {
-				if {$debug} {send_user "\nmatch13\n"}
+				if {$debug} {log_debug "Match13"}
 				incr matches
 				exp_continue
 			}
@@ -413,12 +413,12 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID\\s+PARTITION\\s+PRIORITY" {
-				if {$debug} {send_user "\nmatch14\n"}
+				if {$debug} {log_debug "Match14"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid\\s+\\S+\\s+$float" {
-				if {$debug} {send_user "\nmatch15\n"}
+				if {$debug} {log_debug "Match15"}
 				incr matches
 				exp_continue
 			}
@@ -451,17 +451,17 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID     USER   PRIORITY   PRIORITY       SITE        AGE        AGE      ASSOC      ASSOC " {
-				if {$debug} {send_user "\nmatch16\n"}
+				if {$debug} {log_debug "Match16"}
 				incr matches
 				exp_continue
 			}
 			-re "FAIRSHARE  FAIRSHARE    JOBSIZE    JOBSIZE  PARTITION  PARTITION        QOS        QOS   NICE" {
-				if {$debug} {send_user "\nmatch17\n"}
+				if {$debug} {log_debug "Match17"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid *.* *$float *$number *$float *$number *$float *$number *$float *$number *$float *$number *$float *$number *$number" {
-				if {$debug} {send_user "\nmatch18\n"}
+				if {$debug} {log_debug "Match18"}
 				incr matches
 				exp_continue
 			}
@@ -494,12 +494,12 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID\\s+PARTITION\\s+USER" {
-				if {$debug} {send_user "\nmatch19\n"}
+				if {$debug} {log_debug "Match19"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid\\s+\\S+\\s+[string range $sargs 0 7]" {
-				if {$debug} {send_user "\nmatch20\n"}
+				if {$debug} {log_debug "Match20"}
 				incr matches
 				exp_continue
 			}
@@ -532,12 +532,12 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "JOBID\\s+PARTITION\\s+USER" {
-				if {$debug} {send_user "\nmatch21\n"}
+				if {$debug} {log_debug "Match21"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid\\s+\\S+\\s+[string range $sargs 0 7]" {
-				if {$debug} {send_user "\nmatch22\n"}
+				if {$debug} {log_debug "Match22"}
 				incr matches
 				exp_continue
 			}
@@ -570,17 +570,17 @@ proc sprio_args { soption sargs jobid} {
 				exp_continue
 			}
 			-re "format.*job_flag.*jobs.*$jobid.*verbose" {
-				if {$debug} {send_user "\nmatch23\n"}
+				if {$debug} {log_debug "Match23"}
 				incr matches
 				exp_continue
 			}
 			-re "JOBID\\s+PARTITION\\s+PRIORITY" {
-				if {$debug} {send_user "\nmatch24\n"}
+				if {$debug} {log_debug "Match24"}
 				incr matches
 				exp_continue
 			}
 			-re "$jobid\\s+\\S+\\s+$number" {
-				if {$debug} {send_user "\nmatch25\n"}
+				if {$debug} {log_debug "Match25"}
 				incr matches
 				exp_continue
 			}
@@ -616,7 +616,7 @@ if {$exit_code != 0} {
 	cancel_job $jobid2
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
-send_user "\nSubmitted 2 jobs successfully\n\n"
+log_debug "Submitted 2 jobs successfully"
 
 #
 # Collect uid
diff --git a/testsuite/expect/test28.1 b/testsuite/expect/test28.1
index 1493051af6b..7b9102f140f 100755
--- a/testsuite/expect/test28.1
+++ b/testsuite/expect/test28.1
@@ -133,7 +133,7 @@ spawn $sbatch -N1 --array=0-[expr $array_size - 1] --begin=midnight --input=$fil
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 		exp_continue
 	}
 	-re "error" {
diff --git a/testsuite/expect/test28.10 b/testsuite/expect/test28.10
index 23342ddc527..2e727131108 100755
--- a/testsuite/expect/test28.10
+++ b/testsuite/expect/test28.10
@@ -96,7 +96,7 @@ while { $inx < 10 } {
 		log_error "Too many tasks in the job array are running ($run_count > $task_limit)"
 		set exit_code 1
 	}
-	send_user "\n+++ $run_count running tasks +++\n"
+	log_debug "+++ $run_count running tasks +++"
 	if {$run_count == 0} {
 		break
 	}
diff --git a/testsuite/expect/test28.11 b/testsuite/expect/test28.11
index b9488bb5ba8..bbb2fd90ec2 100755
--- a/testsuite/expect/test28.11
+++ b/testsuite/expect/test28.11
@@ -113,7 +113,7 @@ spawn $sbatch --constraint=$node_feature --array=1-2 --output="/dev/null" \
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 		exp_continue
 	}
 	-re "Batch job submission failed" {
@@ -136,7 +136,7 @@ fail_on_error "Error submitting job"
 $bin_sleep 1
 set count 0
 set count_exp 2
-send_user "Verifying the jobs correctly requested the feature $node_feature\n"
+log_info "Verifying the jobs correctly requested the feature $node_feature"
 spawn $scontrol show job $job_id
 expect {
 	-re "Features=$node_feature" {
@@ -162,7 +162,7 @@ fail_on_error "Problem cancelling job $job_id"
 set exit_code 1
 set sleep_time $min_job_age
 incr sleep_time 10
-send_user "Waiting for $sleep_time seconds for the jobs to be purged from the controller\n"
+log_info "Waiting for $sleep_time seconds for the jobs to be purged from the controller"
 $bin_sleep $sleep_time
 spawn $scontrol show job $job_id
 expect {
diff --git a/testsuite/expect/test28.12 b/testsuite/expect/test28.12
index 9f8bb4fe2d3..d31f1b3ce50 100755
--- a/testsuite/expect/test28.12
+++ b/testsuite/expect/test28.12
@@ -56,7 +56,7 @@ spawn $sbatch -n1 --array=1-4 --output=/dev/null $file_script
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 		exp_continue
 	}
 	-re "error" {
@@ -78,7 +78,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 }
 
 # wait a while for job purge to happen
-send_user "\nWaiting for job record purge to happen...\n"
+log_debug "Waiting for job record purge to happen.."
 sleep 65
 
 # check that head job still exists
diff --git a/testsuite/expect/test28.13 b/testsuite/expect/test28.13
index b1500cf4f67..70fa343848c 100755
--- a/testsuite/expect/test28.13
+++ b/testsuite/expect/test28.13
@@ -51,7 +51,7 @@ spawn $sbatch -n1 --array=1-4 --requeue --output=/dev/null $file_script
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 		exp_continue
 	}
 	-re "error" {
diff --git a/testsuite/expect/test28.2 b/testsuite/expect/test28.2
index 25c13f637f8..ee707a2797d 100755
--- a/testsuite/expect/test28.2
+++ b/testsuite/expect/test28.2
@@ -154,7 +154,7 @@ for {set cnt 0} {$cnt<$array_end} {incr cnt} {
 		set exit_code 1
 	}
 }
-send_user "\nchecking environment variables\n"
+log_debug "Checking environment variables"
 # Checks that the array job ids are correct
 set max_inx [expr $array_end - 1]
 for {set index 0} {$index < $array_end} {incr index} {
@@ -201,7 +201,7 @@ for {set index 0} {$index < $array_end} {incr index} {
 	spawn $bin_cat test$test_id-$job_id\_$index\.error
 	expect {
 		-re "$sleep_error_message" {
-			send_user "\nDo not worry this error is expected\n"
+			log_debug "Do not worry this error is expected"
 			incr err_match
 		}
 		eof {
diff --git a/testsuite/expect/test28.3 b/testsuite/expect/test28.3
index 93e832a8e77..42b0a291df8 100755
--- a/testsuite/expect/test28.3
+++ b/testsuite/expect/test28.3
@@ -77,7 +77,7 @@ spawn $sbatch -N1 --array=0-[expr $array_size - 1] --begin=midnight --output=/de
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 	}
 	-re "error" {
 		log_error "sbatch did not submit jobs"
diff --git a/testsuite/expect/test28.5 b/testsuite/expect/test28.5
index dd83f3a1616..10f94cbf39d 100755
--- a/testsuite/expect/test28.5
+++ b/testsuite/expect/test28.5
@@ -140,7 +140,7 @@ spawn $sbatch -N1 --array=0-[expr $array_size -1] --begin=midnight --output=/dev
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 		exp_continue
 	}
 	-re "error" {
@@ -160,26 +160,26 @@ expect {
 # hold the whole array then release individual jobs in the array
 if {$job_id != 0} {
 
-	send_user "\nHolding entire job array\n"
+	log_debug "Holding entire job array"
 	hold_job $job_id
 	check_hold_job ${job_id}_0
 	check_hold_job ${job_id}_1
 
-	send_user "\nReleasing job index $array_in in the array\n"
+	log_debug "Releasing job index $array_in in the array"
 	release_job ${job_id}_$array_in
 	check_hold_job ${job_id}_0
 	check_release_job ${job_id}_$array_in
 
-	send_user "\nReleasing the entire job array\n"
+	log_debug "Releasing the entire job array"
 	release_job $job_id
 	check_release_job ${job_id}_0
 	check_release_job ${job_id}_1
 
-	send_user "\nHolding job index $array_in in the array\n"
+	log_debug "Holding job index $array_in in the array"
 	hold_job ${job_id}_$array_in
 	check_hold_job ${job_id}_$array_in
 
-	send_user "\nReleasing job index $array_in in the array\n"
+	log_debug "Releasing job index $array_in in the array"
 	release_job ${job_id}_$array_in
 	check_release_job ${job_id}_$array_in
 
diff --git a/testsuite/expect/test28.7 b/testsuite/expect/test28.7
index ff28aff36f2..f4821e022a3 100755
--- a/testsuite/expect/test28.7
+++ b/testsuite/expect/test28.7
@@ -90,7 +90,7 @@ if {$match_job_state != 1} {
 if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
-send_user "\nSo far, so good\n\n\n"
+log_debug "So far, so good"
 
 #
 # Submit a job array for second dependency test
diff --git a/testsuite/expect/test28.8 b/testsuite/expect/test28.8
index 138a702f675..dd4f96210a0 100755
--- a/testsuite/expect/test28.8
+++ b/testsuite/expect/test28.8
@@ -123,7 +123,7 @@ spawn $sbatch -N1 --array=0-[expr $array_size -1] --output=/dev/null -t1 $file_s
 expect {
 	-re "Submitted batch job ($number)" {
 		set job_id $expect_out(1,string)
-		send_user "\njob $job_id was submitted\n"
+		log_debug "Job $job_id was submitted"
 		exp_continue
 	}
 	-re "error" {
diff --git a/testsuite/expect/test28.9 b/testsuite/expect/test28.9
index 293df217f82..92e2b0f45db 100755
--- a/testsuite/expect/test28.9
+++ b/testsuite/expect/test28.9
@@ -95,7 +95,7 @@ while { $inx < 10 } {
 		log_error "Too many tasks in the job array are running ($run_count > 2)"
 		set exit_code 1
 	}
-	send_user "\n+++ $run_count running tasks +++\n"
+	log_debug "+++ $run_count running tasks +++"
 	if {$run_count == 0} {
 		break
 	}
diff --git a/testsuite/expect/test29.5 b/testsuite/expect/test29.5
index 103caf11d1b..947c30bbf5f 100755
--- a/testsuite/expect/test29.5
+++ b/testsuite/expect/test29.5
@@ -124,7 +124,7 @@ set sub_match 0
 spawn $smd -r $node_name $job_id
 expect {
 	-re "The specified node has not failed" {
-		send_user "\nThis error is expected.\n"
+		log_debug "This error is expected"
 		set sub_match 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test29.6 b/testsuite/expect/test29.6
index efba2e96d71..ad32f32e5e5 100755
--- a/testsuite/expect/test29.6
+++ b/testsuite/expect/test29.6
@@ -215,7 +215,7 @@ set time_ext 0
 spawn $smd -e [expr $time_limit + 1] $job_id
 expect {
 	-re "failed job_id $job_id" {
-		send_user "\nThis error is expected\n"
+		log_debug "This error is expected"
 		set time_ext 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test29.8 b/testsuite/expect/test29.8
index 72b508392cb..ee362871746 100755
--- a/testsuite/expect/test29.8
+++ b/testsuite/expect/test29.8
@@ -168,7 +168,7 @@ for {set count 0} {$count <= $spare_node} {incr count 1} {
 			exp_continue
 		}
 		-re "Job has reached MaxSpareNodeCount limit" {
-			send_user "\nDo not worry this error is expected\n"
+			log_debug "Do not worry this error is expected"
 			set replace_match 2
 			exp_continue
 		}
diff --git a/testsuite/expect/test3.10 b/testsuite/expect/test3.10
index 8e1786f797e..d8be05d3816 100755
--- a/testsuite/expect/test3.10
+++ b/testsuite/expect/test3.10
@@ -110,7 +110,7 @@ if {[wait_for_file $file_err] == 0} {
 	set exit_code 1
 }
 if {$exit_code == 0} {
-	send_user "\nSo far, so good\n\n"
+	log_debug "So far, so good"
 	exec rm -f $file_in $file_out $file_err
 } else {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
diff --git a/testsuite/expect/test3.13 b/testsuite/expect/test3.13
index 165e91c064d..0cab2a13b7b 100755
--- a/testsuite/expect/test3.13
+++ b/testsuite/expect/test3.13
@@ -114,7 +114,7 @@ expect {
 #
 # Test modification of job with bad JobName/UserID specification
 #
-send_user "\n\nTest 1\n"
+log_info "Test 1"
 set no_jobs 0
 spawn $scontrol update JobName=$file_in UserID=1 Priority=$new_prio
 expect {
@@ -138,7 +138,7 @@ if {$no_jobs == 0} {
 #
 # Change that job's priority
 #
-send_user "\n\nTest 2\n"
+log_info "Test 2"
 set no_jobs 0
 set my_uid  [get_my_uid]
 spawn $scontrol update JobName=$file_in UserID=$my_uid Priority=$new_prio
diff --git a/testsuite/expect/test3.15 b/testsuite/expect/test3.15
index 3c342e6cd75..5356d3b4f7d 100755
--- a/testsuite/expect/test3.15
+++ b/testsuite/expect/test3.15
@@ -223,7 +223,7 @@ reconfigure
 spawn $scontrol delete ReservationName=$resv_name
 expect {
 	-re "Error|error" {
-		send_user "\nError is expected, no worries\n"
+		log_debug "Error is expected, no worries"
 	}
 	timeout {
 		log_error "scontrol not responding"
@@ -283,7 +283,7 @@ if { [reason_is_licenses $job_id1] != 0 } {
 test_license_count 8 3 5
 
 if {$exit_code == 0} {
-	send_user "\nSo far, so good. Starting test of second job\n\n"
+	log_debug "So far, so good. Starting test of second job"
 }
 
 #
diff --git a/testsuite/expect/test3.16 b/testsuite/expect/test3.16
index b89bbdbf9d0..cc605dc075e 100755
--- a/testsuite/expect/test3.16
+++ b/testsuite/expect/test3.16
@@ -89,8 +89,7 @@ proc delete_lic { license } {
 	}
 
 	if { $deleted != 1 } {
-		send_user "\nFailure: sacctmgr could not delete "
-		send_user "license: $license\n"
+		log_error "sacctmgr could not delete license: $license"
 		set exit_code 1
 	}
 }
diff --git a/testsuite/expect/test3.17 b/testsuite/expect/test3.17
index c5fb3867901..9b876425f03 100755
--- a/testsuite/expect/test3.17
+++ b/testsuite/expect/test3.17
@@ -177,7 +177,7 @@ set match 0
 set srun_pid [spawn $srun -t1 -C $feature -N1 $file_in]
 expect {
 	-re "Invalid feature" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set match 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test3.18 b/testsuite/expect/test3.18
index f25e32837bf..cb1f60ebdb8 100755
--- a/testsuite/expect/test3.18
+++ b/testsuite/expect/test3.18
@@ -104,9 +104,9 @@ set matches 0
 spawn $scontrol update NodeName=$host_name Gres=gpu:1
 expect {
         -re "Invalid generic resource" {
-                incr matches
-		send_user "\nError is expected, no worries.\n"
-                exp_continue
+            incr matches
+			log_debug "Error is expected, no worries"
+            exp_continue
         }
 	timeout {
 		log_error "scontrol not responding"
diff --git a/testsuite/expect/test3.2 b/testsuite/expect/test3.2
index ad979e70b19..753fa698bd5 100755
--- a/testsuite/expect/test3.2
+++ b/testsuite/expect/test3.2
@@ -65,7 +65,7 @@ proc run_job { part_name } {
 			exp_continue
 		}
 		timeout {
-			send_user "\nsrun not responding\n"
+			log_error "srun not responding"
 			slow_kill $srun_pid
 			return 1
 		}
diff --git a/testsuite/expect/test3.5 b/testsuite/expect/test3.5
index ca9d7daa87f..4d3626c8213 100755
--- a/testsuite/expect/test3.5
+++ b/testsuite/expect/test3.5
@@ -58,7 +58,7 @@ set found -1
 spawn $scontrol -a show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
@@ -235,7 +235,7 @@ expect {
 	}
 }
 if {$timed_out == 1} {
-	send_user "Early termination is expected, no worries.\n"
+	log_debug "Early termination is expected, no worries"
 } else {
 	log_error "Partition time limit not enforced"
 	set exit_code 1
@@ -416,7 +416,7 @@ set found -1
 spawn $scontrol show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
diff --git a/testsuite/expect/test3.6 b/testsuite/expect/test3.6
index 7dd6372f6c5..11bc407fc86 100755
--- a/testsuite/expect/test3.6
+++ b/testsuite/expect/test3.6
@@ -110,7 +110,7 @@ set found -1
 spawn $scontrol -a show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
@@ -213,7 +213,7 @@ set found -1
 spawn $scontrol -a show part $part_name
 expect {
 	-re "not found" {
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		set found 0
 		exp_continue
 	}
@@ -233,8 +233,6 @@ if {$found != 0} {
 	fail "Partition not deleted"
 }
 
-if {$exit_code == 0} {
-	send_user "\nSUCCESS\n"
-} else {
+if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
diff --git a/testsuite/expect/test3.8 b/testsuite/expect/test3.8
index 3fb25600fa4..49c5cb9bd5d 100755
--- a/testsuite/expect/test3.8
+++ b/testsuite/expect/test3.8
@@ -216,7 +216,7 @@ spawn $scontrol requeue $job_id
 expect {
 	-re "Requested operation is presently disabled" {
 		set disabled 1
-		send_user "This error was expected, no worries\n"
+		log_debug "This error was expected, no worries"
 		exp_continue
 	}
 	-re "error" {
diff --git a/testsuite/expect/test32.11 b/testsuite/expect/test32.11
index 11ba021fc7c..ea9633ea969 100755
--- a/testsuite/expect/test32.11
+++ b/testsuite/expect/test32.11
@@ -126,7 +126,7 @@ if {[wait_for_file $file_out] == 0} {
 			exp_continue
 		}
 		-re "No such file or directory" {
-			send_user "\nError is expected. No worries.\n"
+			log_debug "Error is expected. No worries"
 			incr rm_cnt
 			exp_continue
 		}
diff --git a/testsuite/expect/test32.12 b/testsuite/expect/test32.12
index 04d40628e05..509b91e93cf 100755
--- a/testsuite/expect/test32.12
+++ b/testsuite/expect/test32.12
@@ -121,7 +121,7 @@ if {[wait_for_file $file_out] == 0} {
 			exp_continue
 		}
 		-re "No such file or directory" {
-			send_user "\nError is expected. No worries.\n"
+			log_debug "Error is expected. No worries"
 			incr rm_cnt
 			exp_continue
 		}
diff --git a/testsuite/expect/test32.6 b/testsuite/expect/test32.6
index 4d9c497b260..4f23e286116 100755
--- a/testsuite/expect/test32.6
+++ b/testsuite/expect/test32.6
@@ -121,7 +121,7 @@ if {[wait_for_file $file_out] == 0} {
 			exp_continue
 		}
 		-re "No such file or directory" {
-			send_user "\nError is expected. No worries.\n"
+			log_debug "Error is expected. No worries"
 			incr rm_cnt
 			exp_continue
 		}
diff --git a/testsuite/expect/test32.7 b/testsuite/expect/test32.7
index 3037c2078a2..64f85fd7798 100755
--- a/testsuite/expect/test32.7
+++ b/testsuite/expect/test32.7
@@ -112,7 +112,7 @@ if {[wait_for_file $file_out] == 0} {
 			exp_continue
 		}
 		eof {
-			send_user "\nNo worries about failing to open files, these are expected\n"
+			log_debug "No worries about failing to open files, these are expected"
 			wait
 		}
 	}
diff --git a/testsuite/expect/test32.8 b/testsuite/expect/test32.8
index 280c7ab4a77..31af140dbe8 100755
--- a/testsuite/expect/test32.8
+++ b/testsuite/expect/test32.8
@@ -121,7 +121,7 @@ if {[wait_for_file $file_out] == 0} {
 			exp_continue
 		}
 		-re "No such file or directory" {
-			send_user "\nError is expected. No worries.\n"
+			log_debug "Error is expected. No worries"
 			incr rm_cnt
 			exp_continue
 		}
diff --git a/testsuite/expect/test32.9 b/testsuite/expect/test32.9
index fc9858e3b66..cb77918b6f3 100755
--- a/testsuite/expect/test32.9
+++ b/testsuite/expect/test32.9
@@ -115,7 +115,7 @@ if {[wait_for_file $file_out] == 0} {
 			exp_continue
 		}
 		-re "No such file or directory" {
-			send_user "\nError is expected. No worries.\n"
+			log_debug "Error is expected. No worries"
 			incr rm_cnt
 			exp_continue
 		}
diff --git a/testsuite/expect/test33.1 b/testsuite/expect/test33.1
index 756c0a2a59e..a406f103f9b 100755
--- a/testsuite/expect/test33.1
+++ b/testsuite/expect/test33.1
@@ -63,7 +63,7 @@ proc run_config { test_config } {
 	set tc "$wd/$test_config/testcases"
 	set local_ok 0
 
-	send_user "\n./${test_prog} --configdir=${cfgdir} --testcases=${tc}\n"
+	log_debug "./${test_prog} --configdir=${cfgdir} --testcases=${tc}"
 	spawn ./${test_prog} --configdir=${cfgdir} --testcases=${tc}
 	expect {
 		-re "Failed cases 0" {
@@ -76,7 +76,7 @@ proc run_config { test_config } {
 		}
 	}
 	if {$local_ok == 0} {
-		send_user "*** At least one testcase in $test_config failed!\n"
+		log_warn "*** At least one testcase in $test_config failed!"
 	}
 }
 
@@ -110,7 +110,7 @@ MPIParams=ports=12000-13000\nProctrackType=proctrack/cray_aries\n"
 ###############################################
 # test 33.1.1
 ###############################################
-send_user "test33.1.1\n"
+log_info "Test33.1.1"
 set file_in "$wd/etc.33.1.1/slurm.conf"
 file delete $file_in
 set fd [open "$file_in" a]
@@ -131,7 +131,7 @@ file delete $file_in
 ###############################################
 # test 33.1.2
 ###############################################
-send_user "\n\ntest33.1.2\n"
+log_info "Test33.1.2"
 set file_in "$wd/etc.33.1.2/slurm.conf"
 file delete $file_in
 set fd [open "$file_in" a]
@@ -152,7 +152,7 @@ file delete $file_in
 ###############################################
 # test 33.1.3
 ###############################################
-send_user "\n\ntest33.1.3\n"
+log_info "Test33.1.3"
 set file_in "$wd/etc.33.1.3/slurm.conf"
 file delete $file_in
 set fd [open "$file_in" a]
@@ -172,7 +172,7 @@ file delete $file_in
 ###############################################
 # test 33.1.4
 ###############################################
-send_user "\n\ntest33.1.4\n"
+log_info "Test33.1.4"
 set file_in "$wd/etc.33.1.4/slurm.conf"
 file delete $file_in
 set fd [open "$file_in" a]
diff --git a/testsuite/expect/test34.1 b/testsuite/expect/test34.1
index 6fa491fc548..94cebff79d9 100755
--- a/testsuite/expect/test34.1
+++ b/testsuite/expect/test34.1
@@ -185,7 +185,7 @@ proc sub_job { part job } {
 			exp_continue
 		}
 		timeout {
-			send_user "\nFAILURE: sbatch is not responding\n"
+			log_error "sbatch is not responding"
 			set exit_code 1
 		}
 		eof {
@@ -269,7 +269,7 @@ if {$got_node != 1} {
 }
 
 ###################### Test preempt cancel ######################
-send_user "\n*** TEST PREEMPT CANCEL ***\n"
+log_info "*** TEST PREEMPT CANCEL ***"
 
 delete_part $part_name_1
 delete_part $part_name_2
@@ -295,7 +295,7 @@ cancel_job $part_id_1
 
 ###################### Test preempt suspend ######################
 if { [test_gang] == 1 } {
-	send_user "\n*** TEST PREEMPT SUSPEND ***\n"
+	log_info "*** TEST PREEMPT SUSPEND ***"
 
 	mod_part $part_name_1 suspend
 	set part_id_1 [sub_job $part_name_1 $job1]
@@ -328,7 +328,7 @@ if { [test_gang] == 1 } {
 }
 
 ###################### Test preempt requeue ######################
-send_user "\n*** TEST PREEMPT REQUEUE ***\n"
+log_info "*** TEST PREEMPT REQUEUE ***"
 
 mod_part $part_name_1 requeue
 set part_id_1 [sub_job $part_name_1 $job1]
diff --git a/testsuite/expect/test34.2 b/testsuite/expect/test34.2
index 8f76759ea23..13586b6d935 100755
--- a/testsuite/expect/test34.2
+++ b/testsuite/expect/test34.2
@@ -229,7 +229,7 @@ set user [get_my_user_name]
 log_info "**** Cleanup from previous run ****"
 clean_up 0
 
-send_user "\n*** TEST PREEMPT CANCEL ***\n"
+log_info "*** TEST PREEMPT CANCEL ***"
 
 acct_setup $acct_1 $qos_1 "" cancel
 acct_setup $acct_2 $qos_2 $qos_1 cluster
@@ -252,7 +252,7 @@ check_job_state $qos_1_id PREEMPTED
 wait_for_account_done $acct_1,$acct_2
 
 ###################### Test preempt requeue ######################
-send_user "\n*** TEST PREEMPT REQUEUE ***\n"
+log_info "*** TEST PREEMPT REQUEUE ***"
 
 mod_qos $qos_1 requeue
 
diff --git a/testsuite/expect/test35.1 b/testsuite/expect/test35.1
index a81dd76c56b..91264b4900a 100755
--- a/testsuite/expect/test35.1
+++ b/testsuite/expect/test35.1
@@ -79,7 +79,7 @@ $scontrol show burst"
 #
 # Remove any vestigial buffer
 #
-send_user "\n\nClean up vestigial burst buffer\n"
+log_debug "Clean up vestigial burst buffer"
 incr max_job_state_delay 300
 set job_id 0
 spawn $sbatch -t1 -N1 --output=/dev/null $script_rm
@@ -110,7 +110,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 # Now submit a job to use the persistent burst buffer followed by a job
 # to create the burst buffer, make sure the buffer creation happens first
 #
-send_user "\n\nCreate and use a burst buffer\n"
+log_debug "Create and use a burst buffer"
 set job_id_use 0
 spawn $sbatch -t1 -N1 --output=$output_use $script_use
 expect {
diff --git a/testsuite/expect/test35.3 b/testsuite/expect/test35.3
index c55b1acd2cc..5ac5c78f488 100755
--- a/testsuite/expect/test35.3
+++ b/testsuite/expect/test35.3
@@ -148,7 +148,7 @@ for {set cnt 1} {$cnt<=$array_end} {incr cnt} {
 		log_error "Job array $job_array_id burst buffer input data not found"
 		set exit_code 1
 	} else {
-		send_user "Job array task $cnt output file is good\n\n"
+		log_debug "Job array task $cnt output file is good"
 		exec $bin_rm -f $output_file
 	}
 }
diff --git a/testsuite/expect/test35.4 b/testsuite/expect/test35.4
index ede9b272042..84fd940178e 100755
--- a/testsuite/expect/test35.4
+++ b/testsuite/expect/test35.4
@@ -77,7 +77,7 @@ $scontrol show burst"
 #
 # Remove any vestigial buffer
 #
-send_user "\n\nClean up vestigial burst buffer\n"
+log_debug "Clean up vestigial burst buffer"
 incr max_job_state_delay 300
 set job_id 0
 spawn $sbatch -t1 -N0 --output=/dev/null $script_rm
@@ -108,7 +108,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 # Now submit a job to use the persistent burst buffer followed by a job
 # to create the burst buffer, make sure the buffer creation happens first
 #
-send_user "\n\nCreate and use a burst buffer\n"
+log_debug "Create and use a burst buffer"
 set job_id_use 0
 spawn $sbatch -t1 -N1 --output=$output_use $script_use
 expect {
@@ -145,7 +145,7 @@ if {$job_id_mk == 0} {
 	log_error "Job did not launch"
 	set exit_code 1
 } elseif {[wait_for_job $job_id_mk "DONE"] != 0} {
-	send_user "\nFAILURE: job did not complete\n"
+	log_error "Job did not complete"
 	set exit_code 1
 	cancel_job $job_id_mk
 }
diff --git a/testsuite/expect/test35.5 b/testsuite/expect/test35.5
index 62a90dd3afd..cc02cdc5773 100755
--- a/testsuite/expect/test35.5
+++ b/testsuite/expect/test35.5
@@ -65,7 +65,6 @@ expect {
 if {$fail == 1} {
 	set default_state_loc 0
 	set default_status_loc 0
-	send_user "\n\n"
 	spawn $scontrol show burst
 	expect {
 		-re "GetSysState=/opt/cray/dws/default" {
@@ -93,7 +92,6 @@ if {$matches == 0} {
 	log_error "'dwstat' output does not match expected form"
 	set exit_code 1
 }
-send_user "\n\n"
 
 set matches 0
 spawn $scontrol show dwstat configurations
@@ -118,7 +116,6 @@ if {$matches == 0} {
 	log_error "'dwstat configurations' output does not match expected form"
 	set exit_code 1
 }
-send_user "\n\n"
 
 set matches 0
 spawn $scontrol show dwstat sessions
diff --git a/testsuite/expect/test36.4 b/testsuite/expect/test36.4
index 49994bb5af0..5e61a7feb6e 100755
--- a/testsuite/expect/test36.4
+++ b/testsuite/expect/test36.4
@@ -96,7 +96,7 @@ set matches 0
 spawn $bin_cat $file_err
 expect {
 	-re "No such file" {
-		send_user "message from cat expected, no worries.\n"
+		log_debug "Message from cat expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test37.10 b/testsuite/expect/test37.10
index 0e327105d54..bce600820b3 100755
--- a/testsuite/expect/test37.10
+++ b/testsuite/expect/test37.10
@@ -239,9 +239,9 @@ if {[setup_federation $fed_name]} {
 # get number of nodes per cluster
 set node_count [available_nodes "" ""]
 
-send_user "$eol################################################################$eol"
-send_user "Setup cluster features"
-send_user "$eol################################################################$eol"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -345,9 +345,9 @@ if {$exit_code || $matches != 4} {
 
 make_bash_script $file_in "sleep 900"
 
-send_user "$eol################################################################$eol"
-send_user "test scancel within federated clusters"
-send_user "$eol################################################################$eol"
+log_info "################################################################"
+log_info "Test scancel within federated clusters"
+log_info "################################################################"
 
 set ji0 [sbatch]
 set jid([wait_for_fed_job $ji0 RUNNING $fedc1,$fedc2,$fedc3]) $ji0
@@ -540,7 +540,7 @@ squeue " -M$fedc1,$fedc2,$fedc3 " $regex
 
 set my_scancel "${fed_slurm_base}/$fedc3/bin/scancel"
 spawn $my_scancel -u $user_name
-send_user "here1\n"
+log_trace "Here1"
 
 wait_for_fed_job $ji0 DONE $cid($ji0)
 wait_for_fed_job $ji1 DONE $cid($ji1)
diff --git a/testsuite/expect/test37.11 b/testsuite/expect/test37.11
index 7b674c6513a..433d54da3d5 100755
--- a/testsuite/expect/test37.11
+++ b/testsuite/expect/test37.11
@@ -190,9 +190,9 @@ if {[setup_federation $fed_name]} {
 # get number of nodes per cluster
 set node_count [available_nodes "" ""]
 
-send_user "$eol################################################################$eol"
-send_user "Setup cluster features"
-send_user "$eol################################################################$eol"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -296,9 +296,9 @@ if {$exit_code || $matches != 4} {
 
 make_bash_script $file_in "sleep 15"
 
-send_user "$eol################################################################$eol"
-send_user "test scancel within federated clusters"
-send_user "$eol################################################################$eol"
+log_info "################################################################"
+log_info "Test scancel within federated clusters"
+log_info "################################################################"
 
 set ji0             [sbatch fa]
 set cid($ji0)       [wait_for_fed_job $ji0 RUNNING $fedc1,$fedc2,$fedc3]
diff --git a/testsuite/expect/test37.12 b/testsuite/expect/test37.12
index 3cde233f4c8..07e7e65998c 100755
--- a/testsuite/expect/test37.12
+++ b/testsuite/expect/test37.12
@@ -204,9 +204,9 @@ if {[setup_federation $fed_name]} {
 # get number of nodes per cluster
 set node_count [available_nodes "" ""]
 
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -309,9 +309,9 @@ if {$exit_code || $matches != 4} {
 
 make_bash_script $file_in2 "sleep 900"
 
-send_user "\n################################################################\n"
-send_user "verify federated sbatch --test-only output"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Verify federated sbatch --test-only output"
+log_info "################################################################"
 
 cancel_all_jobs
 
@@ -415,9 +415,9 @@ if {$matches != 1} {
 }
 
 
-send_user "\n################################################################\n"
-send_user "verify federated srun --test-only output"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Verify federated srun --test-only output"
+log_info "################################################################"
 
 cancel_all_jobs
 
diff --git a/testsuite/expect/test37.13 b/testsuite/expect/test37.13
index 4edff262d78..ca5bb41d540 100755
--- a/testsuite/expect/test37.13
+++ b/testsuite/expect/test37.13
@@ -179,9 +179,9 @@ if {[setup_federation $fed_name]} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -282,9 +282,9 @@ if {$exit_code || $matches != 4} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test federated arrays"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test federated arrays"
+log_info "################################################################"
 
 cancel_all_jobs
 
diff --git a/testsuite/expect/test37.14 b/testsuite/expect/test37.14
index a8d0c9a0545..75721586101 100755
--- a/testsuite/expect/test37.14
+++ b/testsuite/expect/test37.14
@@ -161,8 +161,8 @@ proc scontrol { fed id regex } {
 
 	set matches 0
 
-	send_user "\nexecuting $my_scontrol -M$fed notify $id from $fed\n"
-	send_user "output: [exec $my_scontrol -M$fed notify $id from $fed]\n"
+	log_debug "Executing $my_scontrol -M$fed notify $id from $fed"
+	log_debug "Output: [exec $my_scontrol -M$fed notify $id from $fed]"
 
 	if {$regex ne ""} {
 		set spawn_id $srun_spawn_id
@@ -265,9 +265,9 @@ if {[setup_federation $fed_name]} {
 # get number of nodes per cluster
 set node_count [available_nodes "" ""]
 
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -372,9 +372,9 @@ make_bash_script $file_in "sleep 300"
 
 set srun_spawn_id 0
 
-send_user "\n################################################################\n"
-send_user "verify federated scontrol notify <message>"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Verify federated scontrol notify <message>"
+log_info "################################################################"
 
 cancel_all_jobs
 
diff --git a/testsuite/expect/test37.15 b/testsuite/expect/test37.15
index 34e06635b03..472ae58059c 100755
--- a/testsuite/expect/test37.15
+++ b/testsuite/expect/test37.15
@@ -106,8 +106,8 @@ proc squeue { fed regex } {
 
 	set matches 0
 	set command "$my_squeue --noheader -a -M$fed"
-#	send_user [eval $command]
-#	send_user "\n\n"
+#	log_debug [eval $command]
+#	log_debug ""
 #	return
 	spawn {*}$command
 	expect {
@@ -198,9 +198,9 @@ if {[setup_federation $fed_name]} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -301,9 +301,9 @@ if {$exit_code || $matches != 4} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test scontrol suspend within federation"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test scontrol suspend within federation"
+log_info "################################################################"
 
 cancel_all_jobs
 
diff --git a/testsuite/expect/test37.16 b/testsuite/expect/test37.16
index 8a8f607c20e..3042ff74161 100755
--- a/testsuite/expect/test37.16
+++ b/testsuite/expect/test37.16
@@ -182,8 +182,8 @@ proc scontrol { fed job_id index regex } {
 
 	set matches 0
 
-	send_user "\nexecuting $my_scontrol -M$fed notify $job_id I'm Alive\n"
-	send_user "output: [exec $my_scontrol -M$fed notify $job_id I'm Alive]\n"
+	log_debug "Executing $my_scontrol -M$fed notify $job_id I'm Alive"
+	log_debug "Output: [exec $my_scontrol -M$fed notify $job_id I'm Alive]"
 
 	set spawn_id $srun_spawn_id($index)
 	expect {
@@ -352,9 +352,9 @@ if {[setup_federation $fed_name]} {
 setup_cluster_features
 
 
-send_user "\n################################################################\n"
-send_user "Test sacctmgr remove federation"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test sacctmgr remove federation"
+log_info "################################################################"
 
 cancel_all_jobs
 
@@ -426,9 +426,9 @@ squeue "$fedc1" "11" $r1
 squeue "$fedc2" "9" $r2
 squeue "$fedc3" "5" $r3
 
-send_user "\n################################################################\n"
-send_user "Remove $fedc1"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Remove $fedc1"
+log_info "################################################################"
 spawn $my_sacctmgr mod fed $fed_name set -i clusters-=$fedc1
 
 sleep 5
@@ -531,9 +531,9 @@ if {[string compare $run_cluster ""] == 0} {
 
 
 
-send_user "\n################################################################\n"
-send_user "Remove $fedc2"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Remove $fedc2"
+log_info "################################################################"
 spawn $my_sacctmgr mod fed $fed_name set -i clusters-=$fedc2
 
 sleep 5
@@ -589,9 +589,9 @@ if {[string compare $run_cluster ""] == 0} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Remove $fedc3"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Remove $fedc3"
+log_info "################################################################"
 spawn $my_sacctmgr mod fed $fed_name set -i clusters-=$fedc3
 
 sleep 5
@@ -617,9 +617,9 @@ squeue "$fedc1" "3" $r1
 squeue "$fedc2" "4" $r2
 squeue "$fedc3" "3" $r3
 
-send_user "\n################################################################\n"
-send_user "Test revoked origin jobs are removed."
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test revoked origin jobs are removed."
+log_info "################################################################"
 
 # Start from scratch
 # Start jobs on all clusters and remove non-origin clusters.
diff --git a/testsuite/expect/test37.2 b/testsuite/expect/test37.2
index b771f59f1ee..c09ac620b72 100755
--- a/testsuite/expect/test37.2
+++ b/testsuite/expect/test37.2
@@ -120,7 +120,7 @@ proc test_fed_job_id { cname cid} {
 	set local_id [expr $job_id & $max_local_id]
 	set clust_id [expr $job_id >> 26]
 
-	send_user "Fed JobID:$job_id Local JobID:$local_id Cluster ID:$clust_id\n"
+	log_debug "Fed JobID:$job_id Local JobID:$local_id Cluster ID:$clust_id"
 	if {!$rc && ($clust_id != $cid)} {
 		log_error "Jobid($job_id) from $cname didn't give correct partition id ($part_id != $cid)"
 		incr rc
@@ -163,7 +163,7 @@ proc test_loc_job_id { cname } {
 		log_error "$cname didn't give back a non-federation job id"
 		incr rc
 	}
-	send_user "JobID:$job_id\n"
+	log_debug "JobID:$job_id"
 
 	return $rc
 }
@@ -191,7 +191,7 @@ if {[setup_federation $fed_name]} {
 # Get cluster/fed info from db
 array set clusters [get_clusterfed_info $fed_name]
 
-send_user "Verify federation ids are returned when cluster is part of federation\n"
+log_info "Verify federation ids are returned when cluster is part of federation"
 if {[test_fed_job_id $fedc1 [dict get $clusters($fedc1) id]] ||
     [test_fed_job_id $fedc2 [dict get $clusters($fedc2) id]] ||
     [test_fed_job_id $fedc3 [dict get $clusters($fedc3) id]]} {
@@ -208,7 +208,7 @@ if {[delete_federations $fed_name]} {
 
 sleep 2
 
-send_user "Verify local ids after being removed from federation\n"
+log_info "Verify local ids after being removed from federation"
 if {[test_loc_job_id $fedc1] ||
     [test_loc_job_id $fedc2] ||
     [test_loc_job_id $fedc3]} {
diff --git a/testsuite/expect/test37.3 b/testsuite/expect/test37.3
index 00e2286137b..4ec0b668929 100755
--- a/testsuite/expect/test37.3
+++ b/testsuite/expect/test37.3
@@ -97,14 +97,14 @@ proc test_fed_status {cname fed_flags cluster_list} {
 		-re "$eol" {
 			incr lines
 			set line $expect_out(buffer)
-			send_user "line: $line\n"
+			log_debug "Line: $line"
 
 			if {[regexp "Federation: $fed_name" $line match]} {
-				send_user "matched: $match\n"
+				log_debug "Matched: $match"
 				incr matches
 			} elseif {[regexp {Self:\s+(\S+):(\S+):(\d+) ID:(\d+) FedState:(\S*) Features:(\S*)} \
 					  $line match name host port id state features]} {
-				send_user "matched: $match\n"
+				log_debug "Matched: $match"
 				if {$expected_matches &&
 				    ![string compare [dict get $clusters($name) host]     $host]  &&
 				    ![string compare [dict get $clusters($name) state]    $state] &&
@@ -112,12 +112,12 @@ proc test_fed_status {cname fed_flags cluster_list} {
 				    ![string compare [dict get $clusters($name) conn]     Self]  &&
 				    [dict get $clusters($name) port]   == $port &&
 				    [dict get $clusters($name) id]     == $id} {
-					send_user "matched self: $name\n"
+					log_debug "Matched self: $name"
 					incr matches
 				}
 			} elseif {[regexp {Sibling:\s+(\S+):(\S+):(\d+) ID:(\d+) FedState:(\S*) Features:(\S*) PersistConnSend/Recv:(\S+)} \
 					  $line match name host port id state features conn]} {
-				send_user "matched: $match\n"
+				log_debug "Matched: $match"
 				if {$expected_matches &&
 				    ![string compare [dict get $clusters($name) host]     $host]  &&
 				    ![string compare [dict get $clusters($name) state]    $state] &&
@@ -125,7 +125,7 @@ proc test_fed_status {cname fed_flags cluster_list} {
 				    ![string compare [dict get $clusters($name) conn]     $conn]  &&
 				    [dict get $clusters($name) port]   == $port &&
 				    [dict get $clusters($name) id]     == $id} {
-					send_user "matched sibling: $name\n"
+					log_debug "Matched sibling: $name"
 					incr matches
 				}
 			}
@@ -177,25 +177,25 @@ array set clusters [get_clusterfed_info $fed_name]
 
 set fed_flags "None"
 
-send_user "\n\ntest from $fedc1\n"
+log_info "Test from $fedc1"
 dict set clusters($fedc1) conn Self
 dict set clusters($fedc2) conn "Yes/Yes"
 dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
-send_user "\n\ntest from $fedc2\n"
+log_info "Test from $fedc2"
 dict set clusters($fedc1) conn "Yes/Yes"
 dict set clusters($fedc2) conn Self
 dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc2 $fed_flags [array get clusters]
 
-send_user "\n\ntest from $fedc3\n"
+log_info "Test from $fedc3"
 dict set clusters($fedc1) conn "Yes/Yes"
 dict set clusters($fedc2) conn "Yes/Yes"
 dict set clusters($fedc3) conn Self
 test_fed_status $fedc3 $fed_flags [array get clusters]
 
-send_user "\n\nremove $fedc3 and test from $fedc1 and $fedc2\n"
+log_info "Remove $fedc3 and test from $fedc1 and $fedc2"
 if {[remove_cluster_from_fed $fedc3 $fed_name]} {
 	end_it 1
 }
@@ -208,7 +208,7 @@ dict set clusters($fedc1) conn "Yes/Yes"
 dict set clusters($fedc2) conn Self
 test_fed_status $fedc2 $fed_flags [array get clusters]
 
-send_user "\n\nremove $fedc1 and test from $fedc2\n"
+log_info "Remove $fedc1 and test from $fedc2"
 if {[remove_cluster_from_fed $fedc1 $fed_name]} {
 	end_it 1
 }
@@ -216,14 +216,14 @@ array unset clusters $fedc1
 dict set clusters($fedc2) conn Self
 test_fed_status $fedc2 $fed_flags [array get clusters]
 
-send_user "\n\nremove $fedc2 and test from $fedc2\n"
+log_info "Remove $fedc2 and test from $fedc2"
 array unset clusters
 if {[remove_cluster_from_fed $fedc2 $fed_name]} {
 	end_it 1
 }
 test_fed_status $fedc2 $fed_flags [array get clusters]
 
-send_user "\n\nadd $fedc1 and test from $fedc1\n"
+log_info "Add $fedc1 and test from $fedc1"
 if {[add_cluster_to_fed $fedc1 $fed_name]} {
 	end_it 1
 }
@@ -231,7 +231,7 @@ array set clusters [get_clusterfed_info $fed_name]
 dict set clusters($fedc1) conn Self
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
-send_user "\n\nadd $fedc2 and test from $fedc1\n"
+log_info "Add $fedc2 and test from $fedc1"
 if {[add_cluster_to_fed $fedc2 $fed_name]} {
 	end_it 1
 }
@@ -241,7 +241,7 @@ dict set clusters($fedc1) conn Self
 dict set clusters($fedc2) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
-send_user "\n\nadd $fedc3 and test from $fedc1\n"
+log_info "Add $fedc3 and test from $fedc1"
 if {[add_cluster_to_fed $fedc3 $fed_name]} {
 	end_it 1
 }
@@ -253,7 +253,7 @@ dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
 
-#send_user "\n\nTest federation flags (LLC)\n"
+#log_info "Test federation flags (LLC)"
 #set matches 0
 #set my_pid [spawn $sacctmgr -i modify federation $fed_name set flags+=LLC]
 #expect {
@@ -295,7 +295,7 @@ test_fed_status $fedc1 $fed_flags [array get clusters]
 #test_fed_status $fedc1 $fed_flags [array get clusters]
 #
 #
-#send_user "\n\nTest removal of federation flags (LLC)\n"
+#log_info "Test removal of federation flags (LLC)"
 #set matches 0
 #set my_pid [spawn $sacctmgr -i modify federation $fed_name set flags-=LLC]
 #expect {
@@ -337,7 +337,7 @@ test_fed_status $fedc1 $fed_flags [array get clusters]
 #test_fed_status $fedc1 $fed_flags [array get clusters]
 
 
-send_user "\n\nTest setting of cluster features\n"
+log_info "Test setting of cluster features"
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc3 set features=fb,fa]
 expect {
@@ -381,7 +381,7 @@ dict set clusters($fedc2) conn "Yes/Yes"
 dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
-send_user "\n\nTest modifying/add of cluster features\n"
+log_info "Test modifying/add of cluster features"
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc3 set features+=fc]
 expect {
@@ -421,7 +421,7 @@ dict set clusters($fedc2) conn "Yes/Yes"
 dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
-send_user "\n\nTest modifying/remove of cluster features\n"
+log_info "Test modifying/remove of cluster features"
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc3 set features-=fb]
 expect {
@@ -462,7 +462,7 @@ dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
 
-send_user "\n\nTest clearing of cluster features\n"
+log_info "Test clearing of cluster features"
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc3 set features=]
 expect {
@@ -502,12 +502,9 @@ dict set clusters($fedc2) conn "Yes/Yes"
 dict set clusters($fedc3) conn "Yes/Yes"
 test_fed_status $fedc1 $fed_flags [array get clusters]
 
-send_user "\n\ndelete federation and test from $fedc1\n"
+log_info "Delete federation and test from $fedc1"
 delete_federations $fed_name
 array unset clusters
 test_fed_status $fedc2 $fed_flags [array get clusters]
 
-
-
-
 end_it 0
diff --git a/testsuite/expect/test37.4 b/testsuite/expect/test37.4
index 8699055e055..efadca172ff 100755
--- a/testsuite/expect/test37.4
+++ b/testsuite/expect/test37.4
@@ -405,9 +405,9 @@ make_bash_script $file_in "env; $bin_sleep 300"
 
 
 # Test needs to change to count that it gets two job per cluster instead of making sure that it packs on each. Because it's not guaranteed that the cluster will pack because the job gets submitted to each cluster and it's a free for all.
-send_user "\n################################################################\n"
-send_user "Test packing across clusters with sbatch"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test packing across clusters with sbatch"
+log_info "################################################################"
 
 unset job_counts
 
@@ -438,9 +438,9 @@ if {$job_counts($fedc1,$fedc2,$fedc3) != 1} {
 }
 
 
-send_user "\n################################################################\n"
-send_user "Test packing across clusters with srun"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test packing across clusters with srun"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -470,9 +470,9 @@ if {$job_counts($fedc1,$fedc2,$fedc3) != 1} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test packing across clusters with salloc"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test packing across clusters with salloc"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -502,9 +502,9 @@ if {$job_counts($fedc1,$fedc2,$fedc3) != 1} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test -M<clusters> with federated jobs with sbatch"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test -M<clusters> with federated jobs with sbatch"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -561,9 +561,9 @@ if {$job_counts($fedc2,$fedc3) != 1} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test -M<clusters> with federated jobs with srun"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test -M<clusters> with federated jobs with srun"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -621,9 +621,9 @@ if {$job_counts($fedc2,$fedc3) != 1} {
 }
 
 
-send_user "\n################################################################\n"
-send_user "Test -M<clusters> with federated jobs with salloc"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test -M<clusters> with federated jobs with salloc"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -681,9 +681,9 @@ if {$job_counts($fedc2,$fedc3) != 1} {
 }
 
 
-send_user "\n################################################################\n"
-send_user "Test jobs with cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test jobs with cluster features"
+log_info "################################################################"
 cancel_all_jobs
 
 set matches 0
@@ -785,9 +785,9 @@ if {$exit_code || $matches != 4} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test sbatch jobs with cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test sbatch jobs with cluster features"
+log_info "################################################################"
 unset job_counts
 
 set ret_sib [submit_fed_batch_job $fedc1 $fedc1 $fedc3 "--cluster-constraint=fc" RUNNING]
@@ -827,9 +827,9 @@ if {$job_counts($fedc1,$fedc2,$fedc3) != 1} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test salloc jobs with cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test salloc jobs with cluster features"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -870,9 +870,9 @@ if {$job_counts($fedc1,$fedc2,$fedc3) != 1} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test srun jobs with cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test srun jobs with cluster features"
+log_info "################################################################"
 cancel_all_jobs
 unset job_counts
 
@@ -913,9 +913,9 @@ if {$job_counts($fedc1,$fedc2,$fedc3) != 1} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test jobs with invalid cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test jobs with invalid cluster features"
+log_info "################################################################"
 set matches 0
 set my_sbatch "${fed_slurm_base}/$fedc1/bin/sbatch"
 set sbatch_pid [spawn $my_sbatch --output=/dev/null --error=/dev/null -n1 -t3 --cluster-constraint=invalid $file_in]
diff --git a/testsuite/expect/test37.5 b/testsuite/expect/test37.5
index a298a43dd3d..9673bd04c15 100755
--- a/testsuite/expect/test37.5
+++ b/testsuite/expect/test37.5
@@ -424,9 +424,9 @@ set non_origin_clusters [join $non_origin_cluster_list ","]
 log_info "Origin: $origin_cluster non-origins: $non_origin_clusters"
 
 
-send_user "\n################################################################\n"
-send_user "Test requeue of a running job on origin cluster"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue of a running job on origin cluster"
+log_info "################################################################"
 
 # Submit jobs that fill up fed2,fed3
 spawn $sbatch -N$node_count --exclusive -o /dev/null -e /dev/null -t999999 --requeue -M$fedc2 $long_script
@@ -526,10 +526,9 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-
-send_user "\n################################################################\n"
-send_user "Test requeue of a completed job on origin cluster"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue of a completed job on origin cluster"
+log_info "################################################################"
 
 spawn $sbatch -N$node_count --exclusive -o /dev/null -e /dev/null -t1 --requeue $complete_script
 expect {
@@ -593,10 +592,9 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-
-send_user "\n################################################################\n"
-send_user "Test requeue of a failed job on origin cluster"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue of a failed job on origin cluster"
+log_info "################################################################"
 set job_id 0
 spawn $sbatch -N1 -o /dev/null -e /dev/null -t 1 --requeue $fail_script
 expect {
@@ -661,10 +659,9 @@ if {[cancel_job $long_running_job_id2]} {
 	end_it 1
 }
 
-
-send_user "\n################################################################\n"
-send_user "Test requeue of running job on sibling cluster"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue of running job on sibling cluster"
+log_info "################################################################"
 
 # Submit job that consumes all nodes on first cluster
 spawn $sbatch -N$node_count --exclusive -o /dev/null -e /dev/null -t999999 --requeue -M$origin_cluster $long_script
@@ -759,9 +756,9 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test requeue on subset of siblings"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue on subset of siblings"
+log_info "################################################################"
 
 spawn $sbatch -N$node_count --exclusive -o /dev/null -e /dev/null -t1 --requeue -M$fedc1,$fedc2 $complete_script
 expect {
@@ -830,9 +827,9 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test requeue of a completed job that ran on sibling"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue of a completed job that ran on sibling"
+log_info "################################################################"
 
 # long running job is already running on origin cluster so job should go to
 # other cluster
@@ -908,9 +905,9 @@ check_ctl_state $job_id PENDING $fedc1
 check_ctl_state $job_id PENDING $fedc2
 check_ctl_state $job_id PENDING $fedc3
 
-send_user "\n################################################################\n"
-send_user "Test that SLURM_RESTART_COUNT is set for job requeued on sibling"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test that SLURM_RESTART_COUNT is set for job requeued on sibling"
+log_info "################################################################"
 
 set run_cluster [wait_for_fed_job $job_id RUNNING $non_origin_clusters]
 if {[string compare $run_cluster ""] == 0} {
@@ -944,9 +941,9 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "Test requeue of a cancelled job that ran on sibling"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test requeue of a cancelled job that ran on sibling"
+log_info "################################################################"
 
 # long running job is already running on origin cluster so job should go to
 # other cluster
@@ -1042,9 +1039,9 @@ if {[cancel_job $job_id]} {
 }
 
 
-send_user "\n################################################################\n"
-send_user "Test scontrol requeuehold,release of a running sibling job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test scontrol requeuehold,release of a running sibling job"
+log_info "################################################################"
 
 # long running job is already running on origin cluster so job should go to
 # other cluster
@@ -1139,10 +1136,9 @@ if {[string compare $run_cluster $origin_cluster] == 0} {
 
 check_restart_cnt $file_out 1
 
-
-send_user "\n################################################################\n"
-send_user "Test scontrol requeuehold,release of a completed sibling job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test scontrol requeuehold,release of a completed sibling job"
+log_info "################################################################"
 
 # Just let previous job finish and then requeue it.
 
@@ -1208,10 +1204,9 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-
-send_user "\n################################################################\n"
-send_user "Test scontrol requeuehold specialexit,release of a running sibling job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test scontrol requeuehold specialexit,release of a running sibling job"
+log_info "################################################################"
 
 # long running job is already running on origin cluster so job should go to
 # other cluster
@@ -1306,9 +1301,9 @@ if {[string compare $run_cluster $origin_cluster] == 0} {
 
 check_restart_cnt $file_out 1
 
-send_user "\n################################################################\n"
-send_user "Test scontrol requeuehold specialexit,release of a completed sibling job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test scontrol requeuehold specialexit,release of a completed sibling job"
+log_info "################################################################"
 
 # Just let previous job finish and then requeue it.
 
@@ -1375,11 +1370,10 @@ if {[cancel_job $job_id]} {
 	end_it 1
 }
 
-
 if {$requeue_exit_num} {
-	send_user "\n################################################################\n"
-	send_user "Test RequeueExit=#"
-	send_user "\n################################################################\n"
+	log_info "################################################################"
+	log_info "Test RequeueExit=#"
+	log_info "################################################################"
 
 	spawn $sbatch -N$node_count --exclusive -o $file_out -e /dev/null -t1 --requeue $exit_script
 	expect {
@@ -1452,9 +1446,9 @@ if {$requeue_exit_num} {
 }
 
 if {$requeue_exit_num} {
-	send_user "\n################################################################\n"
-	send_user "Test RequeueExitHold=#"
-	send_user "\n################################################################\n"
+	log_info "################################################################"
+	log_info "Test RequeueExitHold=#"
+	log_info "################################################################"
 
 	spawn $sbatch -N$node_count --exclusive -o $file_out -e /dev/null -t1 --requeue $exithold_script
 	expect {
diff --git a/testsuite/expect/test37.6 b/testsuite/expect/test37.6
index be3c7beaa00..820ff0b6c39 100755
--- a/testsuite/expect/test37.6
+++ b/testsuite/expect/test37.6
@@ -235,10 +235,9 @@ set node_count [available_nodes "" ""]
 
 make_bash_script $file_in "env; $bin_sleep 300"
 
-
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -339,17 +338,15 @@ if {$exit_code || $matches != 4} {
 	end_it 1
 }
 
-
 set my_scontrol "${fed_slurm_base}/$fedc1/bin/scontrol"
 
 set job_id 0
 set script "\"sleep 300\""
 set my_sbatch "${fed_slurm_base}/$fedc1/bin/sbatch"
 
-
-send_user "\n################################################################\n"
-send_user "Modify Feature of Running Job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Modify Feature of Running Job"
+log_info "################################################################"
 cancel_all_jobs
 
 #first job
@@ -360,9 +357,9 @@ verify $fedc1 $job_id "R\\s+$fedc1\\s+$fedc1" "Job not running on designated clu
 
 modify $job_id fb "Job is no longer pending execution for job $job_id" "allowed user to modify features of running job"
 
-send_user "\n################################################################\n"
-send_user "Test invalid feature"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test invalid feature"
+log_info "################################################################"
 #second job
 
 set job_id [sbatch $my_sbatch $script fa]
@@ -373,9 +370,9 @@ verify $fedc1 $job_id "PD\\s+$fedc1\\s+$fedc1" "Job not running on designated cl
 
 modify $job_id invalid "Invalid cluster feature specification for job" "allowed invalid feature"
 
-send_user "\n################################################################\n"
-send_user "Move pending job to $fedc2 with feature fb"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Move pending job to $fedc2 with feature fb"
+log_info "################################################################"
 modify $job_id fb "" "did not allow user to modify features of pending job"
 
 set run_cluster [wait_for_fed_job $job_id RUNNING ""]
@@ -386,9 +383,9 @@ if {[string compare $run_cluster $fedc2]} {
 verify $fedc1 $job_id "RV\\s+$fedc2\\s+$fedc2" "Job not revoked"
 verify $fedc2 $job_id "R\\s+$fedc2\\s+$fedc2" "Job not running on designated cluster"
 
-send_user "\n################################################################\n"
-send_user "New job to fa, then move job to $fedc2,$fedc3. Runs on $fedc3"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "New job to fa, then move job to $fedc2,$fedc3. Runs on $fedc3"
+log_info "################################################################"
 #third job
 
 set job_id [sbatch $my_sbatch $script fa]
@@ -403,9 +400,9 @@ if {[string compare $run_cluster $fedc3]} {
 verify $fedc1 $job_id "RV\\s+$fedc2,$fedc3\\s+$fedc3" "Job not revoked"
 verify $fedc3 $job_id "R\\s+$fedc2,$fedc3\\s+$fedc3" "Job not running on designated cluster"
 
-send_user "\n################################################################\n"
-send_user "New job to fa, then move job to $fedc3"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "New job to fa, then move job to $fedc3"
+log_info "################################################################"
 #fourth job
 
 set job_id [sbatch $my_sbatch $script fa]
@@ -415,27 +412,27 @@ modify $job_id "fc" "" "did not allow user to modify features of pending job"
 verify $fedc1 $job_id "RV\\s+$fedc3\\s+$fedc3" "Job not revoked"
 verify $fedc3 $job_id "PD\\s+$fedc3\\s+NA" "Job not running on designated cluster"
 
-send_user "\n################################################################\n"
-send_user "Move job to $fedc1,$fedc3"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Move job to $fedc1,$fedc3"
+log_info "################################################################"
 modify $job_id "fa,fc" "" "did not allow user to modify features of pending job"
 
 verify $fedc1 $job_id "PD\\s+$fedc1,$fedc3\\s+$fedc1,$fedc3" "Job not running on designated cluster"
 verify $fedc2 $job_id ".+Invalid.+" "Job found on wrong cluster"
 verify $fedc3 $job_id "PD\\s+$fedc1,$fedc3\\s+NA" "Job found on wrong cluster"
 
-send_user "\n################################################################\n"
-send_user "Move job to $fedc1"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Move job to $fedc1"
+log_info "################################################################"
 modify $job_id "fa" "" "did not allow user to modify features of pending job"
 
 verify $fedc1 $job_id "PD\\s+$fedc1\\s+$fedc1" "Job not running on designated cluster"
 verify $fedc2 $job_id ".+Invalid.+" "Job found on wrong cluster"
 verify $fedc3 $job_id ".+Invalid.+" "Job found on wrong cluster"
 
-send_user "\n################################################################\n"
-send_user "Clear features. Should go to pending on $fedc1,$fedc2,$fedc3"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Clear features. Should go to pending on $fedc1,$fedc2,$fedc3"
+log_info "################################################################"
 #Clear Features
 
 modify $job_id "" "" "did not allow user to modify features of pending job"
@@ -444,9 +441,9 @@ verify $fedc1 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+$fedc1,$fedc2,$fedc3" "Job
 verify $fedc2 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+NA" "Job not running on designated cluster"
 verify $fedc3 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+NA" "Job not running on designated cluster"
 
-send_user "\n################################################################\n"
-send_user "Modify Feature of Held Job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Modify Feature of Held Job"
+log_info "################################################################"
 cancel_all_jobs
 
 set job_id [sbatch $my_sbatch $script fa -H]
@@ -475,7 +472,7 @@ verify $fedc3 $job_id ".+Invalid.+" "Job found on wrong cluster"
 
 set my_scontrol "${fed_slurm_base}/$fedc1/bin/scontrol"
 
-send_user "releasing job\n"
+log_debug "Releasing job"
 
 exec $my_scontrol release $job_id
 
@@ -490,9 +487,9 @@ verify $fedc1 $job_id "RV\\s+$fedc3\\s+$fedc3" "Job not running on designated cl
 verify $fedc2 $job_id ".+Invalid.+" "Job found on wrong cluster"
 verify $fedc3 $job_id "R\\s+$fedc3\\s+$fedc3" "Job found on wrong cluster"
 
-send_user "\n################################################################\n"
-send_user "Test Clearing Features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test Clearing Features"
+log_info "################################################################"
 
 cancel_all_jobs
 
@@ -522,9 +519,9 @@ verify $fedc1 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+$fedc1,$fedc2,$fedc3" "Job
 verify $fedc2 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+NA" "Job not running on designated cluster"
 verify $fedc3 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+NA" "Job not running on designated cluster"
 
-send_user "\n################################################################\n"
-send_user "Modify Federation Cluster Features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Modify Federation Cluster Features"
+log_info "################################################################"
 cancel_all_jobs
 
 sbatch $my_sbatch $script fa
@@ -563,9 +560,9 @@ verify $fedc3 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+NA" "Job not running on des
 
 #this one shows that the $fedc1 is routing the update from $fedc1 to $fedc2
 
-send_user "\n################################################################\n"
-send_user "$fedc1 routing the update from $fedc1 to $fedc2"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "$fedc1 routing the update from $fedc1 to $fedc2"
+log_info "################################################################"
 
 set job_id [sbatch $my_sbatch $script "" -M$fedc2]
 
@@ -588,10 +585,9 @@ verify $fedc3 $job_id "PD\\s+$fedc1,$fedc2,$fedc3\\s+NA" "Job not running on des
 #Federations and clusterfeatures ($fedc1 and fb - so the job is not eligible
 #				  anywhere beacause it can't have both)
 
-send_user "\n################################################################\n"
-send_user "Federations and ClusterFeatures"
-send_user "\n################################################################\n"
-
+log_info "################################################################"
+log_info "Federations and ClusterFeatures"
+log_info "################################################################"
 
 modify_with_clusters $job_id "$fedc1" "" "did not allow user to modify features of pending job"
 
@@ -611,9 +607,9 @@ verify $fedc2 $job_id "RV\\s+$fedc1\\s+$fedc1" "Job not running on designated cl
 verify $fedc1 $job_id "PD\\s+$fedc1\\s+NA" "Job not running on designated cluster"
 verify $fedc3 $job_id ".+Invalid.+" "Job found on wrong cluster"
 
-send_user "\n################################################################\n"
-send_user "Federations and Negative ClusterFeatures"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Federations and Negative ClusterFeatures"
+log_info "################################################################"
 
 cancel_all_jobs
 
diff --git a/testsuite/expect/test37.7 b/testsuite/expect/test37.7
index 84055ac9e24..89390eb23c0 100755
--- a/testsuite/expect/test37.7
+++ b/testsuite/expect/test37.7
@@ -284,21 +284,18 @@ set node_count [available_nodes "" ""]
 make_bash_script $file_in "env; $bin_sleep 300"
 
 
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set job_id 0
 set matches 0
 
-send_user "here \n"
-
+log_trace "Here"
 
 exec $my_sacctmgr add Federation $fed_name clusters=$fedc1,$fedc2 -i
 
-
-send_user "here \n"
-
+log_trace "Here"
 
 set matches 0
 
@@ -464,7 +461,7 @@ scontrol jobs "Requeue=0.+"
 set job_id [sbatch 1 0]
 
 if {[expr $job_id >> 26]} {
-	send_user "Removed cluster still giving federated job id\n"
+	log_warn "Removed cluster still giving federated job id"
 	end_it 1
 }
 
diff --git a/testsuite/expect/test37.8 b/testsuite/expect/test37.8
index 32585693b97..00e20ad9b71 100755
--- a/testsuite/expect/test37.8
+++ b/testsuite/expect/test37.8
@@ -282,9 +282,9 @@ if {[setup_federation $fed_name]} {
 # get number of nodes per cluster
 set node_count [available_nodes "" ""]
 
-send_user "\n################################################################\n"
-send_user "Setup cluster features"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Setup cluster features"
+log_info "################################################################"
 
 set matches 0
 set my_pid [spawn $sacctmgr -i modify cluster $fedc1 set features=fa]
@@ -385,9 +385,9 @@ if {$exit_code || $matches != 4} {
 	end_it 1
 }
 
-send_user "\n################################################################\n"
-send_user "test scontrol --local and --sibling"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Test scontrol --local and --sibling"
+log_info "################################################################"
 
 set ji0 [sbatch]
 set ji1 [sbatch]
@@ -411,9 +411,9 @@ set output [wait_for_fed_job $ji2 RUNNING $fedc1,$fedc2,$fedc3]
 
 verify $ji2 $output
 
-send_user "\n################################################################\n"
-send_user "scancel --sibling=<clustername><jobid> will remove on active pending"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Scancel --sibling=<clustername><jobid> will remove on active pending"
+log_info "################################################################"
 
 cancel_all_jobs
 
diff --git a/testsuite/expect/test38.1 b/testsuite/expect/test38.1
index bb51cdd7be5..ce83326aae2 100755
--- a/testsuite/expect/test38.1
+++ b/testsuite/expect/test38.1
@@ -112,9 +112,9 @@ make_bash_script $file_in "#SBATCH --cpus-per-task=4 --mem-per-cpu=10 --ntasks=1
 
 $bin_sleep 300"
 
-send_user "\n################################################################\n"
-send_user "Submit packjob and verify output from scontrol show job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Submit packjob and verify output from scontrol show job"
+log_info "################################################################"
 
 set job_id [sbatch]
 
diff --git a/testsuite/expect/test38.10 b/testsuite/expect/test38.10
index a16049d777e..90f43b98602 100755
--- a/testsuite/expect/test38.10
+++ b/testsuite/expect/test38.10
@@ -98,7 +98,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc : allocation not granted in $timeout seconds"
diff --git a/testsuite/expect/test38.11 b/testsuite/expect/test38.11
index 3d573e34a79..19552224a1a 100755
--- a/testsuite/expect/test38.11
+++ b/testsuite/expect/test38.11
@@ -97,7 +97,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc: allocation not granted in $timeout seconds"
@@ -166,8 +166,7 @@ expect {
 		fail "Unable to delete/create file, check permissions"
 	}
 	-re "cannot create directory" {
-		send_user "\nThis error is expected when nodes share the "
-		send_user "same tmp directory\n"
+		log_debug "This error is expected when nodes share the same tmp directory"
 		exp_continue
 	}
 	-re "Checking node 1: */tmp/test_${test_id}/test$test_id\_file" {
@@ -197,7 +196,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc is not responding"
diff --git a/testsuite/expect/test38.12 b/testsuite/expect/test38.12
index b38fda55614..6dade27406c 100755
--- a/testsuite/expect/test38.12
+++ b/testsuite/expect/test38.12
@@ -78,7 +78,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc: allocation not granted in $timeout seconds"
@@ -93,7 +93,7 @@ if {$pack_job_id == 0} {
 	end_it 1
 }
 
-send_user "\n\nCollect Nodenames\n\n"
+log_debug "Collect Nodenames"
 
 send "$squeue -j $pack_job_id -o\"NAME=%N\" --noheader\r"
 expect {
@@ -118,7 +118,7 @@ if {$index != 3} {
 	end_it 1
 }
 
-send_user "\n\nTest Sending Srun w/ --label To Various Components\n\n"
+log_info "Test Sending Srun w/ --label To Various Components"
 
 set matches 0
 send "$srun --label --mpi=none --pack-group=0-2 printenv SLURMD_NODENAME\r"
@@ -128,7 +128,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -152,7 +151,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -176,7 +174,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -200,7 +197,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -241,7 +237,6 @@ if {$matches != 3} {
 
 
 for {set inx 0} {$inx < 3} {incr inx} {
-	send_user "\n\n"
 	set matches 0
 	send "$srun -O -n3 --label --mpi=none --pack-group=$inx printenv SLURMD_NODENAME\r"
 	expect {
diff --git a/testsuite/expect/test38.13 b/testsuite/expect/test38.13
index e07645f1866..f90f2f282df 100755
--- a/testsuite/expect/test38.13
+++ b/testsuite/expect/test38.13
@@ -62,7 +62,7 @@ if {$pack_job_id != 0} {
 } elseif {$matches != 1} {
 	fail "Heterogeneous job array should not be accepted ($matches != 1)"
 } else {
-	send_user "\nNo worries. This error is expected\n"
+	log_debug "No worries. This error is expected"
 }
 if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
diff --git a/testsuite/expect/test38.15 b/testsuite/expect/test38.15
index 5397cc14646..cb3b7714189 100755
--- a/testsuite/expect/test38.15
+++ b/testsuite/expect/test38.15
@@ -78,7 +78,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc: allocation not granted in $timeout seconds"
@@ -108,7 +108,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -139,7 +138,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
diff --git a/testsuite/expect/test38.16 b/testsuite/expect/test38.16
index fde1fd73d8a..f64db6507cb 100755
--- a/testsuite/expect/test38.16
+++ b/testsuite/expect/test38.16
@@ -87,7 +87,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc : allocation not granted in $timeout seconds"
@@ -102,7 +102,7 @@ if {$pack_job_id == 0} {
 	end_it 1
 }
 
-send_user "\n\nCollect Nodename for each job component\n\n"
+log_debug "Collect Nodename for each job component"
 
 send "$squeue -j $pack_job_id -o\"NAME=%N\" --noheader\r"
 expect {
@@ -127,13 +127,12 @@ if {$index != 2} {
 	end_it 1
 }
 
-send_user "\n\nTest environment variables needed by MPI\n\n"
+log_info "Test environment variables needed by MPI"
 
 set matches 0
 send "$srun --label --mpi=none --pack-group=0,1 -l -o$file_out $file_in\r"
 expect {
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -169,7 +168,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -193,7 +191,6 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		send_user "\n\n"
 		#break
 	}
 	timeout {
@@ -221,7 +218,7 @@ expect {
 	}
 }
 
-send_user "\n\nValidate combined hostlist\n\n"
+log_info "Validate combined hostlist"
 
 set matches 0
 spawn $scontrol show hostnames $pack_nodelist
diff --git a/testsuite/expect/test38.2 b/testsuite/expect/test38.2
index 457ee76bc10..e5332faa3dd 100755
--- a/testsuite/expect/test38.2
+++ b/testsuite/expect/test38.2
@@ -138,9 +138,9 @@ make_bash_script $file_in "#SBATCH --cpus-per-task=4 --mem-per-cpu=10 --ntasks=1
 
 env"
 
-send_user "\n################################################################\n"
-send_user "Submit packjob and verify output from scontrol show job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Submit packjob and verify output from scontrol show job"
+log_info "################################################################"
 
 set job_id 0
 sbatch
diff --git a/testsuite/expect/test38.3 b/testsuite/expect/test38.3
index b0dbdc3d02a..4c087974e0b 100755
--- a/testsuite/expect/test38.3
+++ b/testsuite/expect/test38.3
@@ -114,9 +114,9 @@ proc end_it { exit_code } {
 
 #start test
 
-send_user "\n################################################################\n"
-send_user "Salloc packjob and verify output from scontrol show job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Salloc packjob and verify output from scontrol show job"
+log_info "################################################################"
 
 set job_id 0
 set matches 0
diff --git a/testsuite/expect/test38.4 b/testsuite/expect/test38.4
index a203a36c2ce..e31e31a2794 100755
--- a/testsuite/expect/test38.4
+++ b/testsuite/expect/test38.4
@@ -131,9 +131,9 @@ proc end_it { exit_code } {
 
 #start test
 
-send_user "\n################################################################\n"
-send_user "Salloc packjob and verify output from scontrol show job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Salloc packjob and verify output from scontrol show job"
+log_info "################################################################"
 
 set job_id 0
 salloc
diff --git a/testsuite/expect/test38.5 b/testsuite/expect/test38.5
index 388234b63e1..cfe44b5bd01 100755
--- a/testsuite/expect/test38.5
+++ b/testsuite/expect/test38.5
@@ -114,9 +114,9 @@ make_bash_script $file_in "#SBATCH --cpus-per-task=4 --mem-per-cpu=10 --ntasks=1
 
 $bin_sleep 10"
 
-send_user "\n################################################################\n"
-send_user "Submit packjob and verify output from scontrol show job"
-send_user "\n################################################################\n"
+log_info "################################################################"
+log_info "Submit packjob and verify output from scontrol show job"
+log_info "################################################################"
 
 set job_id [sbatch]
 
@@ -151,7 +151,7 @@ if {$matches != 2 } {
 	log_error "Problem with squeue test 1 ($matches != 2)"
 	end_it 1
 } else {
-	send_user "Test 1 OK\n\n"
+	log_debug "Test 1 OK"
 }
 
 set js [parse_id_set $id_set $job_id]
@@ -180,7 +180,7 @@ if {$matches != 1 } {
 	log_error "Problem with squeue test 2 ($matches != 1)"
 	end_it 1
 } else {
-	send_user "Test 2 OK\n\n"
+	log_debug "Test 2 OK"
 }
 
 set matches 0
@@ -204,7 +204,7 @@ if {$matches != 1 } {
 	log_error "Problem with squeue test 3 ($matches != 1)"
 	end_it 1
 } else {
-	send_user "Test 3 OK\n\n"
+	log_debug "Test 3 OK"
 }
 
 # All Done
diff --git a/testsuite/expect/test38.6 b/testsuite/expect/test38.6
index 29591bcbc2c..26c24b1cefb 100755
--- a/testsuite/expect/test38.6
+++ b/testsuite/expect/test38.6
@@ -181,9 +181,9 @@ expect {
 #	configuration.
 #
 exec $bin_sleep 30
-send_user "\n\nTest locally logged messages..........\n\n"
+log_info "Test locally logged messages........."
 
-send_user "Checksum of local $spank_conf_file\n"
+log_debug "Checksum of local $spank_conf_file"
 spawn $bin_sum $spank_conf_file
 expect {
 	-re timeout {
@@ -244,7 +244,6 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 
 # NOTE: spank logs from sbatch and srun would be intermingled here
 if {[wait_for_file $file_out] == 0} {
-	send_user "\n\n"
 	set matches 0
 	set matches_sbatch 0
 	set matches_srun 0
@@ -291,7 +290,7 @@ if {[wait_for_file $file_out] == 0} {
 	if {$fail_cnt != 0} {
 		end_it 1
 	}
-	send_user "\nlocal (srun) spank plugin success\n"
+	log_debug "Local (srun) spank plugin success"
 } else {
 	end_it 1
 }
@@ -300,7 +299,6 @@ if {[wait_for_file $file_out] == 0} {
 # Test for slurmd output in file
 #
 if {[wait_for_file $spank_out] == 0} {
-	send_user "\n\n"
 	set matches        0
 	set matches_sbatch 0
 	set matches_srun   0
diff --git a/testsuite/expect/test38.7 b/testsuite/expect/test38.7
index b6d1abf4ca2..c60784fc85b 100755
--- a/testsuite/expect/test38.7
+++ b/testsuite/expect/test38.7
@@ -89,7 +89,7 @@ if {![file exists $test_prog]} {
 # TEST OF PACK GROUP 0
 ########################################################################
 
-send_user "\n\nTEST OF PACK GROUP 0\n\n"
+log_info "TEST OF PACK GROUP 0"
 
 # Delete left-over stdout/err files
 file delete $file_out $file_err
@@ -199,7 +199,7 @@ if {[wait_for_file $file_out] == 0} {
 # TEST OF PACK GROUP 1
 ########################################################################
 
-send_user "\n\nTEST OF PACK GROUP 1\n\n"
+log_info "TEST OF PACK GROUP 1"
 
 # Delete left-over stdout/err files
 file delete $file_out $file_err
@@ -331,7 +331,7 @@ if {[test_multiple_slurmd]} {
 	skip "This test is incompatible with multiple slurmd systems"
 }
 
-send_user "\n\nTEST OF PACK GROUP 0,1\n\n"
+log_info "TEST OF PACK GROUP 0,1"
 
 # Delete left-over stdout/err files
 file delete $file_out $file_err
@@ -440,7 +440,7 @@ if {[wait_for_file $file_out] == 0} {
 # TEST OF PACK GROUP 1 THEN 0,1
 ########################################################################
 
-send_user "\n\nTEST OF PACK GROUP 1 THEN 0,1\n\n"
+log_info "TEST OF PACK GROUP 1 THEN 0,1"
 
 # Delete left-over stdout/err files
 file delete $file_out $file_err
@@ -564,7 +564,7 @@ if {$exit_code == 0} {
 	if {$matches != 0} {
 		log_warn "If using MVAPICH then configure \"PropagateResourceLimitsExcept=MEMLOCK\". Also start slurmd with \"ulimit -l unlimited\""
 	} else {
-		send_user "Check contents of $file_err\n"
+		log_debug "Check contents of $file_err"
 	}
 }
 
diff --git a/testsuite/expect/test38.8 b/testsuite/expect/test38.8
index 3b5c8e9d87e..48fa6411524 100755
--- a/testsuite/expect/test38.8
+++ b/testsuite/expect/test38.8
@@ -84,7 +84,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc: allocation not granted in $timeout seconds"
@@ -101,7 +101,7 @@ if {$pack_job_id == 0} {
 
 expect *
 
-send_user "\n\nTest Sending Sacct To Various Components\n\n"
+log_info "Test Sending Sacct To Various Components"
 
 # Wait for accounting records to reach slurmdbd
 sleep 5
@@ -153,7 +153,6 @@ if {$has_prolog_flags} {
 }
 
 for {set inx 0} {$inx < 3} {incr inx} {
-	send_user "\n\n"
 	set bad_matches 0
 	set matches 0
 	spawn $sacct -j $pack_job_id+$inx
diff --git a/testsuite/expect/test38.9 b/testsuite/expect/test38.9
index 2edb5131d79..711747f04b8 100755
--- a/testsuite/expect/test38.9
+++ b/testsuite/expect/test38.9
@@ -78,7 +78,7 @@ expect {
 		exp_continue
 	}
 	-re "$prompt" {
-		#send_user "Job initiated\n"
+		#log_debug "Job initiated"
 	}
 	timeout {
 		log_error "salloc : allocation not granted in $timeout seconds"
@@ -104,7 +104,7 @@ expect {
 }
 set timeout 30
 
-send_user "\n\nCollect Nodenames\n\n"
+log_debug "Collect Nodenames"
 
 send "$squeue -j $pack_job_id -o\"NAME=%N\" --noheader \r"
 expect {
@@ -129,7 +129,7 @@ if {$index != 3} {
 	end_it 1
 }
 
-send_user "\n\nTest Sending Jobs To Various Components\n\n"
+log_info "Test Sending Jobs To Various Components"
 
 set timeout 3
 set matches 0
@@ -237,15 +237,14 @@ if { $matches != 2} {
 	end_it 1
 }
 
-send_user "\n\nTesting Error Messages\n\n"
-
+log_info "Testing Error Messages"
 
 set matches 0
 
 send "$srun --mpi=none --pack-group=0-3 printenv SLURMD_NODENAME\r"
 expect {
 	-re "srun: error: Attempt to run a job step with pack group value of 3, but the job allocation has maximum value of 2" {
-		send_user "Error is expected, no worries.\n\n"
+		log_debug "Error is expected, no worries"
 		incr matches
 		exp_continue
 	}
@@ -266,7 +265,7 @@ set matches 0
 send "$srun --mpi=none --pack-group=0,5 printenv SLURMD_NODENAME\r"
 expect {
 	-re "srun: error: Attempt to run a job step with pack group value of 5, but the job allocation has maximum value of 2" {
-		send_user "Error is expected, no worries.\n\n"
+		log_debug "Error is expected, no worries"
 		incr matches
 		exp_continue
 	}
@@ -287,7 +286,7 @@ set matches 0
 send "$srun --mpi=none --pack-group=0 printenv SLURMD_NODENAME : --pack-group=0 env\r"
 expect {
 	-re "srun: fatal: Duplicate pack groups in single srun not supported" {
-		send_user "Error is expected, no worries.\n\n"
+		log_debug "Error is expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test39.1 b/testsuite/expect/test39.1
index 46061d3ed92..3678c7554ee 100755
--- a/testsuite/expect/test39.1
+++ b/testsuite/expect/test39.1
@@ -39,7 +39,7 @@ set job_id      0
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -57,9 +57,9 @@ if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs per node in the default partition"
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPUs per node count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPUs per node count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 
 set cpus_per_node $node_conf(CPUTot)
 if {$gpu_cnt > $cpus_per_node} {
diff --git a/testsuite/expect/test39.10 b/testsuite/expect/test39.10
index 6c5204128d4..ccddbb853a0 100755
--- a/testsuite/expect/test39.10
+++ b/testsuite/expect/test39.10
@@ -113,7 +113,7 @@ proc run_gpu_per_task { mem_per_gpu gpu_cnt } {
 print_header $test_id
 
 if {[test_cons_tres]} {
-        send_user "\nValid configuration, using select/cons_tres\n"
+        log_debug "Valid configuration, using select/cons_tres"
 } else {
         skip "This test is only compatible with select/cons_tres"
 }
@@ -131,9 +131,9 @@ if {$gpu_cnt < 1} {
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-log_info "GPU count is $gpu_cnt"
-log_info "Memory Size is $node_conf(RealMemory)"
-log_info "Node count in partition default parition $def_part_name is $nb_nodes"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Memory Size is $node_conf(RealMemory)"
+log_debug "Node count in partition default parition $def_part_name is $nb_nodes"
 
 #
 # Build input script file
diff --git a/testsuite/expect/test39.11 b/testsuite/expect/test39.11
index dfab7f36a5c..c0b74f46531 100755
--- a/testsuite/expect/test39.11
+++ b/testsuite/expect/test39.11
@@ -38,7 +38,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -50,7 +50,7 @@ if {$craynetwork_count < 0} {
 if {$craynetwork_count < 1} {
 	skip "This test requires 1 or more craynetwork GRES in the default partition"
 }
-send_user "\ncraynetwork count is $craynetwork_count\n"
+log_debug "craynetwork count is $craynetwork_count"
 
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
@@ -66,7 +66,7 @@ exit 0"
 #
 # Test --gres options using a subset of craynetwork GRES available on the node
 #
-send_user "\n\nTEST: --gres=craynetwork:# option\n"
+log_info "TEST: --gres=craynetwork:# option"
 set match 0
 set timeout $max_job_delay
 if {$craynetwork_count > 1} {
@@ -99,7 +99,7 @@ if {0} {
 	#
 	# Test --tres-per-job options using multiple nodes
 	#
-	send_user "\n\nTEST: --tres-per-job=craynetwork:# option\n"
+	log_info "TEST: --tres-per-job=craynetwork:# option"
 	set match 0
 	set node_cnt 0
 	set timeout $max_job_delay
diff --git a/testsuite/expect/test39.12 b/testsuite/expect/test39.12
index 80ed409a5e3..40dd50ca1ef 100755
--- a/testsuite/expect/test39.12
+++ b/testsuite/expect/test39.12
@@ -38,7 +38,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -72,13 +72,13 @@ array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
 set sockets_with_gpus [get_gpu_socket_count $gpu_cnt \
                                             $node_conf(Sockets)]
 
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets with GPUs $sockets_with_gpus"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "Cores per socket is $node_conf(CoresPerSocket)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "gres/craynetwork count is $craynetwork_count"
-log_info "CR_ONE_TASK_PER_CORE is $one_task_per_core"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets with GPUs $sockets_with_gpus"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "Cores per socket is $node_conf(CoresPerSocket)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "gres/craynetwork count is $craynetwork_count"
+log_debug "CR_ONE_TASK_PER_CORE is $one_task_per_core"
 
 set cores_per_node [expr $node_conf(Sockets) * $node_conf(CoresPerSocket)]
 set cpus_per_node $node_conf(CPUTot)
@@ -119,7 +119,7 @@ exit 0"
 #
 # Test --gpus options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus option\n"
+log_info "TEST: --gpus option"
 set match_craynetwork 0
 set match_gpu 0
 set timeout $max_job_delay
@@ -162,7 +162,7 @@ if {$match_gpu != $expected_gpus} {
 }
 
 if {[expr $use_gpus_per_job - 2] > $nb_nodes} {
-	send_user "\n\nTEST: --gpus option, part 2\n"
+	log_info "TEST: --gpus option, part 2"
 	set match_craynetwork 0
 	set match_gpu 0
 	incr use_gpus_per_job -2
@@ -203,7 +203,7 @@ if {[expr $use_gpus_per_job - 2] > $nb_nodes} {
 #
 # Test --gpus-per-node options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus-per-node option\n"
+log_info "TEST: --gpus-per-node option"
 set match_craynetwork 0
 set match_gpu 0
 if {$gpus_per_node > 1} {
@@ -247,7 +247,7 @@ if {$match_gpu != $expected_gpus} {
 #
 # Test --gpus-per-socket options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus-per-socket option\n"
+log_info "TEST: --gpus-per-socket option"
 set match_craynetwork 0
 set match_gpu 0
 if {$sockets_with_gpus > 1} {
@@ -295,7 +295,7 @@ if {$match_gpu != $expected_gpus} {
 #
 # Test --gpus-per-task options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus-per-task option\n"
+log_info "TEST: --gpus-per-task option"
 set match_craynetwork 0
 set match_gpu 0
 if {$gpu_cnt > 1} {
diff --git a/testsuite/expect/test39.13 b/testsuite/expect/test39.13
index 66830ef806c..11bc29b372f 100755
--- a/testsuite/expect/test39.13
+++ b/testsuite/expect/test39.13
@@ -40,7 +40,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -61,9 +61,9 @@ if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs in the default partition"
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 
 set tot_cpus $node_conf(CPUTot)
 set tot_gpus $gpu_cnt
diff --git a/testsuite/expect/test39.14 b/testsuite/expect/test39.14
index a25b554ef6c..4e8e144c6ca 100755
--- a/testsuite/expect/test39.14
+++ b/testsuite/expect/test39.14
@@ -48,7 +48,7 @@ if {![test_scheduler_params "permit_job_expansion"]} {
 }
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -168,7 +168,7 @@ if {[wait_for_job $job_id2 "DONE"] != 0} {
 #
 # Parse the output files from job 1
 #
-send_user "\n\nParse job 1 output\n"
+log_debug "Parse job 1 output"
 if {[wait_for_file $file_out1] != 0} {
 	fail "No output file"
 }
@@ -192,7 +192,7 @@ if {$match != 3} {
 # Parse the output files from job 2
 # Not currently looking for anything, but do log it's contents before purge
 #
-send_user "\n\nParse job 2 output\n"
+log_debug "Parse job 2 output"
 if {[wait_for_file $file_out2] != 0} {
 	fail "No output file"
 }
diff --git a/testsuite/expect/test39.15 b/testsuite/expect/test39.15
index f65b6bb235a..caf0c2deb66 100755
--- a/testsuite/expect/test39.15
+++ b/testsuite/expect/test39.15
@@ -38,7 +38,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -62,9 +62,9 @@ if {$gpu_cnt < 2} {
 	skip "This test requires 2 or more GPUs in the default partition"
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 set cpus_per_node $node_conf(CPUTot)
 if {$cpus_per_node < 2} {
 	skip "This test requires 2 or more CPUs per node in the default partition"
diff --git a/testsuite/expect/test39.16 b/testsuite/expect/test39.16
index 718de5be1a8..7443b92a2c6 100755
--- a/testsuite/expect/test39.16
+++ b/testsuite/expect/test39.16
@@ -38,7 +38,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -59,9 +59,9 @@ if {$gpu_cnt < 2} {
 	skip "This test requires 2 or more GPUs in the default partition"
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 set cpus_per_node $node_conf(CPUTot)
 if {$cpus_per_node < 2} {
 	skip "This test requires 2 or more CPUs per node in the default partition"
diff --git a/testsuite/expect/test39.17 b/testsuite/expect/test39.17
index c57ad13a686..01776a86f43 100755
--- a/testsuite/expect/test39.17
+++ b/testsuite/expect/test39.17
@@ -40,7 +40,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -50,7 +50,7 @@ if {[test_front_end]} {
 
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-send_user "\nDefault partition node count is $nb_nodes\n"
+log_debug "Default partition node count is $nb_nodes"
 if {$nb_nodes > 1} {
 	set nb_nodes 2
 }
@@ -72,10 +72,10 @@ if {$constrain_devices} {
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
 set cpus_per_node $node_conf(CPUTot)
 
-log_info "GPUs per node is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "CPUs per node is $cpus_per_node"
+log_debug "GPUs per node is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "CPUs per node is $cpus_per_node"
 
 if {$cpus_per_node < 3} {
 	skip "This test requires 3 or more CPUs per node in the default partition"
@@ -84,7 +84,7 @@ if {$cpus_per_node < 3} {
 #
 # Test --gpus-per-node option by job step
 #
-send_user "\n\nTEST 1: --gpus-per-node option\n"
+log_info "TEST 1: --gpus-per-node option"
 
 make_bash_script $file_in1 "
 	$scontrol -dd show job \${SLURM_JOBID}
@@ -169,7 +169,7 @@ if {$match != 1} {
 # Test --gpus-per-task option by job step
 # Note that job is using --gpus-per-node, while step is using --gpus-per-task
 #
-send_user "\n\nTEST 2: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option\n"
+log_info "TEST 2: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option"
 
 make_bash_script $file_in1 "
 	$scontrol -dd show job \${SLURM_JOBID}
@@ -257,7 +257,7 @@ if {$bad_cuda_cnt != 0} {
 #
 # Test --gpus (per job or step) option by job step
 #
-send_user "\n\nTEST 3: --gpus-per-node for job and multiple simultaneous steps using --gpus (per step) option\n"
+log_info "TEST 3: --gpus-per-node for job and multiple simultaneous steps using --gpus (per step) option"
 
 make_bash_script $file_in1 "
 	$scontrol -dd show job \${SLURM_JOBID}
@@ -346,7 +346,7 @@ if {$bad_cuda_cnt != 0} {
 # Test --gpus (per job or step) option by job step
 #
 if {$gpu_cnt > 2} {
-	send_user "\n\nTEST 4: --gpus-per-node for job and multiple simultaneous steps using --gpus (per step) option\n"
+	log_info "TEST 4: --gpus-per-node for job and multiple simultaneous steps using --gpus (per step) option"
 
 	make_bash_script $file_in1 "
 		$scontrol -dd show job \${SLURM_JOBID}
@@ -451,7 +451,7 @@ if {$gpu_cnt > 2} {
 # Test --gpus-per-task option by job step
 #
 if {$gpu_cnt > 2} {
-	send_user "\n\nTEST 5: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option\n"
+	log_info "TEST 5: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option"
 
 	set job_gpus 3
 	set step_gpus 2
@@ -564,7 +564,7 @@ if {$gpu_cnt > 2} {
 # Test --gpus option by job step
 #
 if {$gpu_cnt >= 2 && $nb_nodes >= 2 && $cpus_per_node >= 3} {
-	send_user "\n\nTEST 6: --gpus-per-node for job and multiple simultaneous steps using --gpus option\n"
+	log_info "TEST 6: --gpus-per-node for job and multiple simultaneous steps using --gpus option"
 
 	set job_gpus 2
 	set step_gpus 2
@@ -684,7 +684,7 @@ if {$gpu_cnt >= 2 && $nb_nodes >= 2 && $cpus_per_node >= 3} {
 # Test --gpus option by job step
 #
 if {$gpu_cnt >= 4 && $nb_nodes >= 2 && $cpus_per_node >= 3} {
-	send_user "\n\nTEST 7: --gpus-per-node for job and multiple simultaneous steps using --gpus option\n"
+	log_info "TEST 7: --gpus-per-node for job and multiple simultaneous steps using --gpus option"
 
 	set job_gpus 4
 
@@ -774,7 +774,7 @@ if {$gpu_cnt >= 4 && $nb_nodes >= 2 && $cpus_per_node >= 3} {
 # Test --gpus-per-task option by job step
 #
 if {$gpu_cnt > 3 && $nb_nodes >= 2} {
-	send_user "\n\nTEST 8: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option\n"
+	log_info "TEST 8: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option"
 
 	set job_gpus 4
 	set step_gpus 2
@@ -894,7 +894,7 @@ if {$gpu_cnt > 3 && $nb_nodes >= 2} {
 # Test --gpus-per-task option by job step
 #
 if {$gpu_cnt > 3 && $nb_nodes >= 2} {
-	send_user "\n\nTEST 9: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option\n"
+	log_info "TEST 9: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option"
 
 	set job_gpus 4
 	set step_gpus 2
@@ -997,7 +997,7 @@ if {$gpu_cnt > 3 && $nb_nodes >= 2} {
 # Test --gpus-per-task option by job step
 #
 if {$gpu_cnt > 3 && $nb_nodes >= 2} {
-	send_user "\n\nTEST 10: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option\n"
+	log_info "TEST 10: --gpus-per-node for job and multiple simultaneous steps using --gpus-per-task option"
 
 	set job_gpus 3
 	set step_gpus 2
diff --git a/testsuite/expect/test39.18 b/testsuite/expect/test39.18
index 2f77f1d570d..b875fef0b63 100755
--- a/testsuite/expect/test39.18
+++ b/testsuite/expect/test39.18
@@ -72,12 +72,12 @@ set test_minor_in ""
 if {[lindex $argv 0] == "v" || [lindex $argv 0] == "valgrind"} {
 	set use_valgrind 1
 	set test_minor_offset 1
-	send_user "Running tests under valgrind!\n"
+	log_info "Running tests under valgrind!"
 }
 
 if {[lindex $argv $test_minor_offset] != ""} {
 	set test_minor_in [lindex $argv $test_minor_offset]
-	send_user "Running test $test_id.$test_minor_in \n"
+	log_info "Running test $test_id.$test_minor_in "
 }
 
 proc mkdir {dir} {
@@ -144,7 +144,7 @@ fail_on_error "Cannot compile test program"
 
 # Build program to determine size of unsigned long in C
 set build_cmd "$bin_cc ${test_ulong_prog}.c -o ${test_ulong_prog}"
-send_user "$build_cmd\n"
+log_debug "$build_cmd"
 eval exec $build_cmd
 
 spawn ./$test_ulong_prog
@@ -161,7 +161,7 @@ expect {
 	}
 }
 
-send_user "sizeof(unsigned long) = $ulong_bits\n"
+log_debug "Sizeof(unsigned long) = $ulong_bits"
 
 
 #
@@ -199,7 +199,7 @@ proc check_configuration {test_minor slurm_conf_gres gres_conf fake_gpus_conf ou
 	}
 
 	set failed 0
-	send_user "\n====test$test_id.$test_minor====\n\n"
+	log_info "====test$test_id.$test_minor===="
 
 	generate_file $gres_conf $cfgpath/gres.conf
 	generate_file $fake_gpus_conf $cfgpath/fake_gpus.conf
@@ -268,7 +268,7 @@ rm -rf ./$file_out"
 		spawn ./$file_in
 		expect {
 			-re "($err_msgs)" {
-				send_user "Found '$err_msgs'\n"
+				log_debug "Found '$err_msgs'"
 				if {$ignore_err_msgs == 0} {
 					incr errs_actual
 				}
@@ -308,9 +308,9 @@ rm -rf ./$file_out"
 	log_user 1
 
 	# Check the output with what is expected
-	send_user "Actual (sorted): $sorted_actual\n"
+	log_debug "Actual (sorted): $sorted_actual"
 	if {$sorted_actual != $sorted_expected} {
-		send_user "Expected (sorted): $sorted_expected\n"
+		log_debug "Expected (sorted): $sorted_expected"
 		log_error "Expected output does not match actual output for sub-test $test_minor"
 		set failed 1
 	} else {
@@ -584,7 +584,7 @@ check_configuration 0.20 $slurm_conf_gres $gres_conf $fake_gpus_conf $expected_o
 # ##############################################################################
 
 } else {
-	send_user "\n====Omitting NVML-specific tests====\n\n"
+	log_warn "====Omitting NVML-specific tests===="
 }
 
 # ##############################################################################
diff --git a/testsuite/expect/test39.19 b/testsuite/expect/test39.19
index 13b283fe3ab..254d0bb9ab5 100755
--- a/testsuite/expect/test39.19
+++ b/testsuite/expect/test39.19
@@ -52,7 +52,7 @@ proc test_acct { job_id job_gpus step_gpus have_gpu_types } {
 	}
 
 	sleep 2
-	send_user "\nJob $job_id Expected job GPUs:$job_gpus  Step GPUs:$step_gpus\n"
+	log_debug "Job $job_id Expected job GPUs:$job_gpus  Step GPUs:$step_gpus"
 	exec $bin_rm -f $file_out
 	exec >$file_out $sacct --job=$job_id --parsable2 --start=today -o JobID,AllocGRES,ReqGRES,AllocTRES
 
@@ -212,14 +212,14 @@ if {$store_gpu == -1} {
 }
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
 
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-send_user "\nDefault partition node count is $nb_nodes\n"
+log_debug "Default partition node count is $nb_nodes"
 if {$nb_nodes > 2} {
 	set nb_nodes 2
 }
@@ -236,11 +236,11 @@ set cpus_per_node $node_conf(CPUTot)
 set sockets_with_gpus [get_gpu_socket_count $gpu_cnt \
                                             $node_conf(Sockets)]
 
-log_info "GPUs per node is $gpu_cnt"
-log_info "Sockets with GPUs $sockets_with_gpus"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "CPUs per node is $cpus_per_node"
+log_debug "GPUs per node is $gpu_cnt"
+log_debug "Sockets with GPUs $sockets_with_gpus"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "CPUs per node is $cpus_per_node"
 
 if {$cpus_per_node < 3} {
 	skip "This test requires 3 or more CPUs per node in the default partition"
@@ -253,7 +253,7 @@ make_bash_script $file_in1 "
 	$scontrol -dd show job \${SLURM_JOBID} | grep gpu
 	exit 0"
 
-send_user "\n\nTEST 1: --gpus-per-node option by job\n"
+log_info "TEST 1: --gpus-per-node option by job"
 
 set target [expr $nb_nodes * 2]
 exec $bin_rm -f $file_out
@@ -314,7 +314,7 @@ test_acct $job_id $target -1 $have_gpu_types
 #
 # Test --gpus option by job
 #
-send_user "\n\nTEST 2: --gpus option by job\n"
+log_info "TEST 2: --gpus option by job"
 
 exec $bin_rm -f $file_out
 if {$nb_nodes >= 2 || $gpu_cnt >= 2} {
@@ -352,7 +352,7 @@ test_acct $job_id $target -1 $have_gpu_types
 #
 # Test --gpus-per-task option by job
 #
-send_user "\n\nTEST 3: --gpus-per-task option by job\n"
+log_info "TEST 3: --gpus-per-task option by job"
 
 exec $bin_rm -f $file_out
 if {$cpus_per_node >= 2 && $nb_nodes >= 2} {
@@ -392,7 +392,7 @@ test_acct $job_id $nb_tasks -1 $have_gpu_types
 #
 # Test --gpus-per-socket option by job
 #
-send_user "\n\nTEST 4: --gpus-per-socket option by job\n"
+log_info "TEST 4: --gpus-per-socket option by job"
 
 exec $bin_rm -f $file_out
 
@@ -444,7 +444,7 @@ make_bash_script $file_in2 "
 	fi
 	exit 0"
 
-send_user "\n\nTEST 5: --gpus-per-node option by step\n"
+log_info "TEST 5: --gpus-per-node option by step"
 
 set target [expr $nb_nodes * 2]
 exec $bin_rm -f $file_out
@@ -480,7 +480,7 @@ test_acct $job_id $target $target $have_gpu_types
 #
 # Test --gpus option by step
 #
-send_user "\n\nTEST 6: --gpus option by step\n"
+log_info "TEST 6: --gpus option by step"
 
 exec $bin_rm -f $file_out
 if {$nb_nodes >= 2 || $gpu_cnt >= 2} {
@@ -518,7 +518,7 @@ test_acct $job_id $target $target $have_gpu_types
 #
 # Test --gpus-per-task option by step
 #
-send_user "\n\nTEST 7: --gpus-per-task option by step\n"
+log_info "TEST 7: --gpus-per-task option by step"
 
 exec $bin_rm -f $file_out
 if {$cpus_per_node >= 2 && $nb_nodes >= 2} {
@@ -558,7 +558,7 @@ test_acct $job_id $nb_tasks $nb_tasks $have_gpu_types
 #
 # Test --gpus-per-socket option by step
 #
-send_user "\n\nTEST 8: --gpus-per-socket option by step\n"
+log_info "TEST 8: --gpus-per-socket option by step"
 
 exec $bin_rm -f $file_out
 
@@ -600,7 +600,7 @@ test_acct $job_id $target $target $have_gpu_types
 #
 # Test --gpus-per-task option by step
 #
-send_user "\n\nTEST 9: --gpus-per-task option by step\n"
+log_info "TEST 9: --gpus-per-task option by step"
 
 exec $bin_rm -f $file_out
 if {$cpus_per_node >= 2 && $nb_nodes >= 2} {
diff --git a/testsuite/expect/test39.2 b/testsuite/expect/test39.2
index 4bbe5df7cf2..0637b41fa5c 100755
--- a/testsuite/expect/test39.2
+++ b/testsuite/expect/test39.2
@@ -37,7 +37,7 @@ set file_in     "test$test_id.input"
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -55,9 +55,9 @@ if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs per node in the default partition"
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPUs per node count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPUs per node count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 set cpus_per_node $node_conf(CPUTot)
 if {$gpu_cnt > $cpus_per_node} {
 	set gpu_cnt $cpus_per_node
diff --git a/testsuite/expect/test39.20 b/testsuite/expect/test39.20
index 062903620dc..5483e34c230 100755
--- a/testsuite/expect/test39.20
+++ b/testsuite/expect/test39.20
@@ -99,7 +99,7 @@ if {$store_gpu == -1} {
 }
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -109,7 +109,7 @@ if {[test_select_type_params "CR_ONE_TASK_PER_CORE"]} {
 
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-send_user "\nDefault partition node count is $nb_nodes\n"
+log_debug "Default partition node count is $nb_nodes"
 if {$nb_nodes > 1} {
 	set nb_nodes 2
 }
@@ -124,10 +124,10 @@ if {$gpu_cnt < 2} {
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
 set cpus_per_node $node_conf(CPUTot)
 
-log_info "GPUs per node is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "CPUs per node is $cpus_per_node"
+log_debug "GPUs per node is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "CPUs per node is $cpus_per_node"
 
 if {$cpus_per_node < 3} {
 	skip "This test requires 3 or more CPUs per node in the default partition"
@@ -155,7 +155,7 @@ make_bash_script $file_in "
 #
 # Test --gpus option by job (first job over limit, second job under limit)
 #
-send_user "\n\nTEST 1: --gpus option by job (first job over limit, second job under limit)\n"
+log_info "TEST 1: --gpus option by job (first job over limit, second job under limit)"
 
 set timeout $max_job_delay
 exec $bin_rm -f $file_out1  $file_out2
@@ -238,7 +238,7 @@ if {$exit_code != 0} {
 #
 # Test --gpus-per-node option by job (first job over limit, second job under limit)
 #
-send_user "\n\nTEST 2: --gpus-per-node option by job (first job over limit, second job under limit)\n"
+log_info "TEST 2: --gpus-per-node option by job (first job over limit, second job under limit)"
 
 set timeout $max_job_delay
 exec $bin_rm -f $file_out1  $file_out2
@@ -326,7 +326,7 @@ if {$exit_code != 0} {
 #
 # Test --gpus-per-task option by job (first job over limit, second job under limit)
 #
-send_user "\n\nTEST 3: --gpus-per-task option by job (first job over limit, second job under limit)\n"
+log_info "TEST 3: --gpus-per-task option by job (first job over limit, second job under limit)"
 
 set total_cores [expr $node_conf(CoresPerSocket) * $node_conf(Sockets)]
 if {$one_task_pc && $cpus_per_node > $total_cores} {
diff --git a/testsuite/expect/test39.21 b/testsuite/expect/test39.21
index d7f0c45ff5c..c52ce0bab94 100755
--- a/testsuite/expect/test39.21
+++ b/testsuite/expect/test39.21
@@ -46,7 +46,7 @@ if {$gpu_cnt < 0} {
 if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs per node in the default partition"
 }
-send_user "\nGPUs per node count is $gpu_cnt\n"
+log_debug "GPUs per node count is $gpu_cnt"
 
 #
 # Build input script file
diff --git a/testsuite/expect/test39.22 b/testsuite/expect/test39.22
index b9e14cb4f98..626c39ffb4f 100755
--- a/testsuite/expect/test39.22
+++ b/testsuite/expect/test39.22
@@ -39,7 +39,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
diff --git a/testsuite/expect/test39.23 b/testsuite/expect/test39.23
index e959c44a8b5..58b84072d85 100755
--- a/testsuite/expect/test39.23
+++ b/testsuite/expect/test39.23
@@ -39,7 +39,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -56,8 +56,8 @@ if {$gpu_cnt < 0} {
 if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs in the default partition"
 }
-send_user "\nGPU count is $gpu_cnt\n"
-send_user "Default partition node count $nb_nodes\n"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Default partition node count $nb_nodes"
 
 if {$nb_nodes > 3} {
 	set nb_nodes 3
@@ -84,7 +84,7 @@ exit 0"
 #
 # One GPU per task with node count (without range)
 #
-send_user "\n\nTEST: One GPU per task with node count (without range)\n"
+log_info "TEST: One GPU per task with node count (without range)"
 set timeout $max_job_delay
 set match 0
 set node_cnt -1
@@ -113,7 +113,7 @@ if {$match != $node_cnt} {
 # Two GPUs per task with node count (without range)
 #
 if {$gpu_cnt > 1} {
-	send_user "\n\nTEST: Two GPUs per task with node count (without range)\n"
+	log_info "TEST: Two GPUs per task with node count (without range)"
 	set match 0
 	if {$nb_nodes > 1} {
 		set min_nodes 2
@@ -148,7 +148,7 @@ if {$gpu_cnt > 1} {
 # One GPU per task with node count range and task count resulting in uneven task distribution
 #
 if {$gpu_cnt > 1 && $nb_nodes > 1} {
-	send_user "\n\nTEST: Node count range and uneven task distribution\n"
+	log_info "TEST: Node count range and uneven task distribution"
 	set match 0
 	set node_cnt -1
 	set task_cnt [expr $nb_nodes + 1]
@@ -178,7 +178,7 @@ if {$gpu_cnt > 1 && $nb_nodes > 1} {
 # One task and GPU for each GPU available at step level
 #
 if {$gpu_cnt > 1} {
-	send_user "\n\nTEST: One task and GPU for each GPU available at step level\n"
+	log_info "TEST: One task and GPU for each GPU available at step level"
 	set match 0
 	set task_cnt 0
 # FIXME: RANGE CHECK CPU/GPU COUNT
@@ -212,7 +212,7 @@ if {$gpu_cnt > 1} {
 # One task and two GPUs as resources available at step level
 #
 if {$gpu_cnt > 1} {
-	send_user "\n\nTEST: One task and two GPUs as resources available at step level\n"
+	log_info "TEST: One task and two GPUs as resources available at step level"
 	set hostname "unknown"
 	set match 0
 	set num_cpus 0
@@ -256,7 +256,7 @@ if {$gpu_cnt > 1} {
 # Step allocation of GPUs based upon CPUs per task
 #
 if {$gpu_cnt > 1 && $num_cpus > 0} {
-	send_user "\n\nTEST: Step allocation of GPUs based upon CPUs per task\n"
+	log_info "TEST: Step allocation of GPUs based upon CPUs per task"
 	set match 0
 	set task_cnt 0
 	if {$gpu_cnt > $num_cpus} {
diff --git a/testsuite/expect/test39.3 b/testsuite/expect/test39.3
index d4658358f47..5cc216000fa 100755
--- a/testsuite/expect/test39.3
+++ b/testsuite/expect/test39.3
@@ -37,7 +37,7 @@ set file_in     "test$test_id.input"
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -55,9 +55,9 @@ if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs per node in the default partition"
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPUs per node count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPUs per node count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 
 set cpus_per_node $node_conf(CPUTot)
 if {$gpu_cnt > $cpus_per_node} {
diff --git a/testsuite/expect/test39.4 b/testsuite/expect/test39.4
index 598c93f00ca..7e12cb394be 100755
--- a/testsuite/expect/test39.4
+++ b/testsuite/expect/test39.4
@@ -46,12 +46,12 @@ if {$gpu_cnt < 0} {
 if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPUs in the default partition"
 }
-send_user "\nGPU count is $gpu_cnt\n"
+log_debug "GPU count is $gpu_cnt"
 
 #
 # Request more GPUs per node than exist on a single node
 #
-send_user "\n\n==== TEST 1 ====\n"
+log_info "==== TEST 1 ===="
 spawn $sbatch --gpus-per-node=[expr $gpu_cnt + 1] -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -61,7 +61,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -76,7 +76,7 @@ expect {
 #
 # Specify 1 node and more GPUs than exist on a single node
 #
-send_user "\n\n==== TEST 2 ====\n"
+log_info "==== TEST 2 ===="
 spawn $sbatch --gpus-per-node=$gpu_cnt --gres=[expr $gpu_cnt + 1] -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -86,7 +86,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -101,7 +101,7 @@ expect {
 #
 # Specify inconsistent --cpus-per-task and --gpus-per-task/--cpus-per-gpu
 #
-send_user "\n\n==== TEST 3 ====\n"
+log_info "==== TEST 3 ===="
 spawn $sbatch --gpus-per-task=1 --cpus-per-gpu=1 --cpus-per-task=2 -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -111,7 +111,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -126,7 +126,7 @@ expect {
 #
 # Specify inconsistent tasks per node
 #
-send_user "\n\n==== TEST 4 ====\n"
+log_info "==== TEST 4 ===="
 spawn $sbatch --gpus-per-task=1 --gpus-per-node=1 -n2 -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -136,7 +136,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -151,7 +151,7 @@ expect {
 #
 # Specify gpus-per-socket, but no sockets-per-node count
 #
-send_user "\n\n==== TEST 5 ====\n"
+log_info "==== TEST 5 ===="
 spawn $sbatch --gpus-per-socket=1 -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -161,7 +161,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -176,7 +176,7 @@ expect {
 #
 # Specify inconsistent tasks per node (variation of test 4)
 #
-send_user "\n\n==== TEST 6 ====\n"
+log_info "==== TEST 6 ===="
 spawn $sbatch --gpus-per-task=1 --gpus-per-node=2 --ntasks-per-node=1 -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -186,7 +186,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test39.5 b/testsuite/expect/test39.5
index f63f9c8e4cb..2e33524d296 100755
--- a/testsuite/expect/test39.5
+++ b/testsuite/expect/test39.5
@@ -40,7 +40,7 @@ set one_task_pc    0
 print_header $test_id
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
@@ -65,9 +65,9 @@ if {[test_select_type_params "CR_ONE_TASK_PER_CORE"]} {
 	set one_task_pc 1
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
 set cpus_per_node $node_conf(CPUTot)
 if {$gpu_cnt > $cpus_per_node} {
 	set gpu_cnt $cpus_per_node
@@ -103,7 +103,7 @@ exit 0"
 #
 # Test --gpus options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus option\n"
+log_info "TEST: --gpus option"
 set match 0
 set timeout $max_job_delay
 if {$tot_gpus > 1} {
@@ -137,7 +137,7 @@ if {$match != $expected_gpus} {
 }
 
 if {$use_gpus_per_job > 2} {
-	send_user "\n\nTEST: --gpus option, part 2\n"
+	log_info "TEST: --gpus option, part 2"
 	set match 0
 	if {$use_gpus_per_job > $nb_nodes} {
 		incr use_gpus_per_job -1
@@ -167,7 +167,7 @@ if {$use_gpus_per_job > 2} {
 #
 # Test --gpus-per-node options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus-per-node option\n"
+log_info "TEST: --gpus-per-node option"
 set match 0
 if {$gpus_per_node > 1} {
 	set use_gpus_per_node [expr $gpus_per_node - 1]
@@ -198,7 +198,7 @@ if {$match != $expected_gpus} {
 #
 # Test --gpus-per-socket options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus-per-socket option\n"
+log_info "TEST: --gpus-per-socket option"
 set sockets_with_gpus [get_gpu_socket_count $gpu_cnt \
                                             $node_conf(Sockets)]
 set match 0
@@ -227,7 +227,7 @@ if {$match < $expected_gpus} {
 #
 # Test --gpus-per-task options using a subset of GPUs actually available on the node
 #
-send_user "\n\nTEST: --gpus-per-task option\n"
+log_info "TEST: --gpus-per-task option"
 set match 0
 if {$gpu_cnt > 1} {
 	set use_gpus_per_node [expr $gpu_cnt - 1]
@@ -266,7 +266,7 @@ if {$match != $expected_gpus} {
 #
 # Test --gpus-per-task option without task count
 #
-send_user "\n\nTEST: --gpus-per-task option, part 2 (implicit task count)\n"
+log_info "TEST: --gpus-per-task option, part 2 (implicit task count)"
 if {$cpus_per_node > 1} {
 	set use_tasks_per_node 2
 } else {
@@ -306,7 +306,7 @@ if {$match != $expected_gpus} {
 #
 # Test --gpus-per-task option without task count
 #
-send_user "\n\nTEST: --gpus-per-task option, part 3 (implicit task count)\n"
+log_info "TEST: --gpus-per-task option, part 3 (implicit task count)"
 if {$gpu_cnt > 1} {
 	set use_gpus_per_node [expr $gpu_cnt - 1]
 } else {
diff --git a/testsuite/expect/test39.6 b/testsuite/expect/test39.6
index 6a9e8355b5d..76aa255ecba 100755
--- a/testsuite/expect/test39.6
+++ b/testsuite/expect/test39.6
@@ -107,7 +107,7 @@ proc multi_socket_gres { gres_string } {
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -127,10 +127,10 @@ if {$node_conf(CPUsPerSocket) < 2} {
 	skip "This test requires 2 or more cores per socket in the default partition"
 }
 set cpus_per_node $node_conf(CPUTot)
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "CPUs per node is $cpus_per_node"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "CPUs per node is $cpus_per_node"
 
 #
 # Build input script file
diff --git a/testsuite/expect/test39.7 b/testsuite/expect/test39.7
index a8dda577368..f770bc2977a 100755
--- a/testsuite/expect/test39.7
+++ b/testsuite/expect/test39.7
@@ -117,7 +117,7 @@ proc run_gpu_per_task { cpus_per_gpu } {
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -133,11 +133,11 @@ array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
 set cpus_per_node $node_conf(CPUTot)
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-log_info "GPU count is $gpu_cnt"
-log_info "Node count in partition default parition $def_part_name is $nb_nodes"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "CPUs per node is $cpus_per_node"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Node count in partition default parition $def_part_name is $nb_nodes"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "CPUs per node is $cpus_per_node"
 if {$cpus_per_node < 1} {
 	skip "This test requires 1 or more CPUs per node in the default partition"
 }
diff --git a/testsuite/expect/test39.8 b/testsuite/expect/test39.8
index ed1827dbda9..70a6579ac32 100755
--- a/testsuite/expect/test39.8
+++ b/testsuite/expect/test39.8
@@ -38,7 +38,7 @@ set number_commas  "\[0-9_,\]+"
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -52,10 +52,10 @@ if {$gpu_cnt < 2} {
 }
 array set node_conf [get_node_config "--gres=gpu:1 -n1 -t1"]
 set cpus_per_node $node_conf(CPUTot)
-log_info "GPU count is $gpu_cnt"
-log_info "Sockets per node is $node_conf(Sockets)"
-log_info "CPUs per socket is $node_conf(CPUsPerSocket)"
-log_info "CPUs per node is $cpus_per_node"
+log_debug "GPU count is $gpu_cnt"
+log_debug "Sockets per node is $node_conf(Sockets)"
+log_debug "CPUs per socket is $node_conf(CPUsPerSocket)"
+log_debug "CPUs per node is $cpus_per_node"
 
 if {$cpus_per_node < 2} {
 	skip "This test requires 2 or more CPUs per node in the default partition"
@@ -76,7 +76,7 @@ set timeout $max_job_delay
 if {$node_conf(Sockets) < 2} {
 	log_warn "Tests ${test_id}.0 and ${test_id}.1 require 2 or more sockets per node in the default partition"
 } else {
-	send_user "\n\nTEST ${test_id}.0\n"
+	log_info "TEST ${test_id}.0"
 	set srun_pid [spawn $srun --cpus-per-gpu=1 --gpus-per-socket=1 --sockets-per-node=2 -n2 --accel-bind=g -J "test$test_id" -t1 ./$file_in]
 	expect {
 		timeout {
@@ -92,7 +92,7 @@ if {$node_conf(Sockets) < 2} {
 	#
 	# Test of --gpu-bind=closest
 	#
-	send_user "\n\nTEST ${test_id}.1\n"
+	log_info "TEST ${test_id}.1"
 	set srun_pid [spawn $srun --cpus-per-gpu=1 --gpus-per-socket=1 --sockets-per-node=2 -n2 --gpu-bind=closest -J "test$test_id" -t1 ./$file_in]
 	expect {
 		timeout {
@@ -110,7 +110,7 @@ if {$node_conf(Sockets) < 2} {
 # Test of --gpu-bind=map_gpu
 # Note that if the task count exceeds the provided map_gpu, the map will be cycled over for additional tasks
 #
-send_user "\n\nTEST ${test_id}.2\n"
+log_info "TEST ${test_id}.2"
 if {$gpu_cnt < 4} {
 	set map_gpu "map_gpu:1,0"
 	set match_goal 2
@@ -161,7 +161,7 @@ if {$matches != $match_goal} {
 # Test of --gpu-bind=mask_gpu
 # Note that if the task count exceeds the provided mask_gpu, the mask will be cycled over for additional tasks
 #
-send_user "\n\nTEST ${test_id}.3\n"
+log_info "TEST ${test_id}.3"
 if {$gpu_cnt < 4} {
 	set mask_gpu "mask_gpu:0x3,0x1"
 } else {
diff --git a/testsuite/expect/test39.9 b/testsuite/expect/test39.9
index 67fb5f541a2..fffcd5b4117 100755
--- a/testsuite/expect/test39.9
+++ b/testsuite/expect/test39.9
@@ -49,7 +49,7 @@ if {[slurmd_user_root] == 0} {
 print_time
 
 if {[test_cons_tres]} {
-        send_user "\nValid configuration, using select/cons_tres\n"
+        log_debug "Valid configuration, using select/cons_tres"
 } else {
         skip "This test is only compatible with select/cons_tres"
 }
@@ -61,7 +61,7 @@ if {$gpu_cnt < 0} {
 if {$gpu_cnt < 1} {
 	skip "This test requires 1 or more GPU in the default partition"
 }
-send_user "\nGPU count is $gpu_cnt\n"
+log_debug "GPU count is $gpu_cnt"
 
 #
 # Build input script file
@@ -74,7 +74,7 @@ exit 0"
 #
 # Test of --gpu-freq=low,verbose
 #
-send_user "\n\nTEST 1\n"
+log_info "TEST 1"
 set timeout $max_job_delay
 set match 0
 set srun_pid [spawn $srun --gpus-per-node=1 --gpu-freq=low,verbose -J "test$test_id" -t1 ./$file_in]
@@ -104,7 +104,7 @@ if {$match != 1} {
 #
 # Test of --gpu-freq=medium,memory=medium,verbose
 #
-send_user "\n\nTEST 2\n"
+log_info "TEST 2"
 set match 0
 set srun_pid [spawn $srun --gpus-per-node=1 --gpu-freq=medium,memory=medium,verbose -J "test$test_id" -t1 ./$file_in]
 expect {
@@ -129,7 +129,7 @@ if {$match != 1} {
 #
 # Test of --gpu-freq=highm1,verbose
 #
-send_user "\n\nTEST 3\n"
+log_info "TEST 3"
 set match 0
 set srun_pid [spawn $srun --gpus-per-node=1 --gpu-freq=highm1,verbose -J "test$test_id" -t1 ./$file_in]
 expect {
@@ -154,7 +154,7 @@ if {$match != 1} {
 #
 # Test of --gpu-freq=high,memory=high,verbose
 #
-send_user "\n\nTEST 4\n"
+log_info "TEST 4"
 set hostname "UNKNOWN"
 set match 0
 set srun_pid [spawn $srun --gpus-per-node=1 --gpu-freq=high,memory=high,verbose -J "test$test_id" -t1 ./$file_in]
@@ -180,7 +180,7 @@ expect {
 	}
 }
 if {$match == 2} {
-	send_user "\n\nTEST 5\n"
+	log_info "TEST 5"
 	set srun_pid [spawn $srun -w $hostname --gpus-per-node=1 --gpu-freq=medium,memory=medium,verbose -J "test$test_id" -t1 ./$file_in]
 	expect {
 		-re $freq_parse_nvml {
@@ -199,7 +199,7 @@ if {$match == 2} {
 		}
 	}
 
-	send_user "\n\nTEST 6\n"
+	log_info "TEST 6"
 	set srun_pid [spawn $srun -w $hostname --gpus-per-node=1 --gpu-freq=low,memory=low,verbose -J "test$test_id" -t1 ./$file_in]
 	expect {
 		-re $freq_parse_nvml {
@@ -239,7 +239,7 @@ if {$match == 2} {
 # Test of --gpu-freq=verbose
 # Frequency will be system default (see "GpuFreqDef" in slurm.conf)
 #
-send_user "\n\nTEST 7\n"
+log_info "TEST 7"
 set match 0
 set srun_pid [spawn $srun --gpus-per-node=1 --gpu-freq=verbose -J "test$test_id" -t1 ./$file_in]
 expect {
diff --git a/testsuite/expect/test4.12 b/testsuite/expect/test4.12
index 9ddf263e051..4741d88338a 100755
--- a/testsuite/expect/test4.12
+++ b/testsuite/expect/test4.12
@@ -387,7 +387,7 @@ if {!$inode_procs} {
 	fail "Couldn't find an idle node in the default partition"
 }
 
-send_user "found idle node $inode_name with $inode_procs processors\n"
+log_debug "Found idle node $inode_name with $inode_procs processors"
 
 # figure out the select plugin we are using
 if {[test_linear]} {
diff --git a/testsuite/expect/test4.13 b/testsuite/expect/test4.13
index e0a1423cb02..1e9aee58ab2 100755
--- a/testsuite/expect/test4.13
+++ b/testsuite/expect/test4.13
@@ -97,7 +97,7 @@ if { ![test_super_user] } {
     skip "This test can't be run without being a super user of the cluster"
 }
 
-send_user "\n=== Testing Node Information ===\n"
+log_info "=== Testing Node Information ==="
 set first_option 1
 foreach option [array names node_info] {
 
@@ -181,7 +181,7 @@ if {$match != 1} {
 	fail "Test partition was not created"
 }
 
-send_user "\n=== Testing Partition Information ===\n"
+log_info "=== Testing Partition Information ==="
 set first_option 1
 foreach option [array names part_info] {
 
diff --git a/testsuite/expect/test4.14 b/testsuite/expect/test4.14
index 5a5e0e80409..9d19e5e87a6 100755
--- a/testsuite/expect/test4.14
+++ b/testsuite/expect/test4.14
@@ -254,7 +254,7 @@ set match 0
 spawn $bin_bash -c "SINFO_PARTITION=$test_part_1,$test_part_2 SINFO_ALL=1 $sinfo"
 expect {
 	-re "Conflicting options" {
-		send_user "\nThis error is expected, do not worry.\n"
+		log_debug "This error is expected, do not worry"
 		set match 1
 		exp_continue
 	}
@@ -276,7 +276,7 @@ set match 0
 spawn $bin_bash -c "SINFO_PARTITION=$test_part_1,$test_part_2 $sinfo -p$test_part_1 -a"
 expect {
 	-re "Conflicting options" {
-		send_user "\nThis error is expected, do not worry.\n"
+		log_debug "This error is expected, do not worry"
 		set match 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test4.5 b/testsuite/expect/test4.5
index 575b0d005cf..a2cbc4f181c 100755
--- a/testsuite/expect/test4.5
+++ b/testsuite/expect/test4.5
@@ -140,7 +140,7 @@ if {$i != 8} {
 #
 # Submit a job to filter for allocated job state
 #
-send_user "\nTesting ALLOCATED state\n"
+log_info "Testing ALLOCATED state"
 set tmp_id 0
 set tmp_sc "test$test_id\_tmp_sc"
 make_bash_script $tmp_sc "sleep 20"
@@ -205,7 +205,7 @@ change_state drain $node_list(6),$node_list(7)
 #
 # Change node state to idle and use state filter to filter node
 #
-send_user "\nTesting IDLE state\n"
+log_info "Testing IDLE state"
 spawn $sinfo --Node --node=$node_list(2),$node_list(3) --long --exact --state=idle -p$partition
 expect {
 	-re "($end_of_line)($name_string) *($number_with_suffix) *($name_string) *($alpha)" {
@@ -233,7 +233,7 @@ expect {
 #
 # Change node state to down and use state filter to filter node
 #
-send_user "\nTesting DOWN state\n"
+log_info "Testing DOWN state"
 spawn $sinfo --Node --node=$node_list(4),$node_list(5) --long --exact --state=down -p$partition
 expect {
 	-re "($end_of_line)($name_string) *($number_with_suffix) *($name_string) *($alpha)" {
@@ -261,7 +261,7 @@ expect {
 #
 # Change node state to drain and use state filter to filter node
 #
-send_user "\nTesting DRAIN state\n"
+log_info "Testing DRAIN state"
 spawn $sinfo --Node --node=$node_list(6),$node_list(7) --long --exact --state=drain -p$partition
 expect {
 	-re "($end_of_line)($name_string) *($number_with_suffix) *($name_string) *($alpha)" {
diff --git a/testsuite/expect/test40.1 b/testsuite/expect/test40.1
index 3adfa7b1968..61bf2ae8f53 100755
--- a/testsuite/expect/test40.1
+++ b/testsuite/expect/test40.1
@@ -51,12 +51,12 @@ if {$mps_cnt < 100} {
 	log_error "MPS count per node is unexpectedly low ($mps_cnt < 100). Check your configuration"
 	set exit_code 1
 }
-send_user "\nMPS count is $mps_cnt\n"
+log_debug "MPS count is $mps_cnt"
 
 #
 # Request both GPUs and MPS in single request
 #
-send_user "\n\n==== TEST 1 ====\n"
+log_info "==== TEST 1 ===="
 spawn $sbatch --gres=mps:1,gpu:1 -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -66,7 +66,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
@@ -81,7 +81,7 @@ expect {
 #
 # Request MPS plus GPU frequency
 #
-send_user "\n\n==== TEST 2 ====\n"
+log_info "==== TEST 2 ===="
 spawn $sbatch --gres=mps:1 --gpu-freq=high -N1 --output=/dev/null -t1 --wrap $bin_hostname
 expect {
 	-re "Submitted batch job ($number)" {
@@ -91,7 +91,7 @@ expect {
 		exp_continue
 	}
 	-re "error: " {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test40.2 b/testsuite/expect/test40.2
index 4864ee172ab..116d383eaf9 100755
--- a/testsuite/expect/test40.2
+++ b/testsuite/expect/test40.2
@@ -41,7 +41,7 @@ set job_id      0
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -61,7 +61,7 @@ if {$mps_cnt < 100} {
 	log_error "MPS count per node is unexpectedly low ($mps_cnt < 100). Check your configuration"
 	set exit_code 1
 }
-send_user "\nMPS count is $mps_cnt\n"
+log_debug "MPS count is $mps_cnt"
 if {$mps_cnt > 100} {
 	set mps_cnt 100
 }
@@ -69,7 +69,7 @@ if {$mps_cnt > 100} {
 #
 # Simple MPS request, check environment variables
 #
-send_user "\n\n==== TEST 1 ====\n"
+log_info "==== TEST 1 ===="
 make_bash_script $file_in1 "
 echo HOST:\$SLURMD_NODENAME
 echo CUDA_VISIBLE_DEVICES:\$CUDA_VISIBLE_DEVICES
@@ -117,7 +117,7 @@ if {$matches != 3} {
 #
 # Run two steps in parallel to consume gres/mps using sbatch
 #
-send_user "\n\n==== TEST 2 ====\n"
+log_info "==== TEST 2 ===="
 set target_job  [expr $mps_cnt / 2]
 set target_step [expr $target_job / 2]
 make_bash_script $file_in1 "
@@ -200,7 +200,7 @@ if {$match != 3} {
 # Run two steps in parallel to consume gres/mps using salloc
 # Reuse scripts from test 2 above
 #
-send_user "\n\n==== TEST 3 ====\n"
+log_info "==== TEST 3 ===="
 set match 0
 set salloc_pid [spawn $salloc --gres=mps:$target_job -n1 -t1 -J "test$test_id" ./$file_in2]
 expect {
@@ -245,7 +245,7 @@ if {$match != 3} {
 # Run three steps in parallel to make sure steps get delay as needed to avoid
 # oversubscribing consumed MPS resources
 #
-send_user "\n\n==== TEST 4 ====\n"
+log_info "==== TEST 4 ===="
 set target_job  [expr $mps_cnt / 2]
 set target_step [expr $target_job / 2]
 make_bash_script $file_in1 "
@@ -335,7 +335,7 @@ if {$match != 1} {
 #
 # Run step to try to consume gres/mps than allocated to the job
 #
-send_user "\n\n==== TEST 5 ====\n"
+log_info "==== TEST 5 ===="
 set target_job  [expr $mps_cnt / 2]
 set target_step [expr $target_job + 1]
 make_bash_script $file_in1 "
@@ -377,7 +377,7 @@ set match 0
 spawn $bin_cat $file_out1
 expect {
 	-re "Unable to create step" {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		incr match
 		exp_continue
 	}
@@ -397,7 +397,7 @@ if {$match != 1} {
 #
 # Run multi-node job
 #
-send_user "\n\n==== TEST 6 ====\n"
+log_info "==== TEST 6 ===="
 set node_cnt [get_mps_node_count]
 if {$node_cnt > 2} {
 	set node_cnt 2
@@ -416,7 +416,7 @@ expect {
 		if {$match == 1} {
 			set hostname $expect_out(1,string)
 		} elseif {[test_front_end]} {
-			send_user "\nDuplicate SLURMD_HOSTNAME in front-end mode as expected\n"
+			log_debug "Duplicate SLURMD_HOSTNAME in front-end mode as expected"
 		} elseif {[string compare $hostname $expect_out(1,string)] == 0} {
 			log_error "Two tasks ran on same node ($hostname))"
 			set exit_code 1
@@ -442,7 +442,7 @@ if {$match != $node_cnt} {
 # or run at different times
 #
 if {[test_front_end] == 0} {
-	send_user "\n\n==== TEST 7 ====\n"
+	log_info "==== TEST 7 ===="
 	set target_job [expr $mps_cnt / 2]
 	make_bash_script $file_in1 "
 	echo HOST:\$SLURMD_NODENAME CUDA_VISIBLE_DEVICES:\$CUDA_VISIBLE_DEVICES CUDA_MPS_ACTIVE_THREAD_PERCENTAGE:\$CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
@@ -516,7 +516,6 @@ if {[test_front_end] == 0} {
 		set exit_code 1
 	}
 
-	send_user "\n\n"
 	if {[wait_for_job $job_id2 "DONE"] != 0} {
 		log_error "Job $job_id2 did not complete"
 		cancel_job $job_id2
@@ -562,13 +561,13 @@ if {[test_front_end] == 0} {
 		set exit_code 1
 	} elseif {$dev1 == $dev2} {
 		if {$running == 0} {
-			send_user "\nThe jobs are using the same GPU ($dev1) and running at different times, which is fine\n"
+			log_debug "The jobs are using the same GPU ($dev1) and running at different times, which is fine"
 		} else {
 			log_error "The jobs are using the same GPU ($dev1) and running at the same time"
 			set exit_code 1
 		}
 	} else {
-		send_user "\nThe jobs are using different GPUs ($dev1 != $dev2), which is fine\n"
+		log_debug "The jobs are using different GPUs ($dev1 != $dev2), which is fine"
 	}
 }
 
diff --git a/testsuite/expect/test40.3 b/testsuite/expect/test40.3
index ce8eed8779b..3fcd2bb4f19 100755
--- a/testsuite/expect/test40.3
+++ b/testsuite/expect/test40.3
@@ -52,7 +52,7 @@ proc test_acct { job_id job_mps step_mps have_mps_types } {
 	}
 
 	sleep 2
-	send_user "\nJob $job_id Expected job MPS:$job_mps  Step MPS:$step_mps\n"
+	log_debug "Job $job_id Expected job MPS:$job_mps  Step MPS:$step_mps"
 	exec $bin_rm -f $file_out
 	exec >$file_out $sacct --job=$job_id --parsable2 --start=today -o JobID,AllocGRES,ReqGRES,AllocTRES
 
@@ -208,14 +208,14 @@ if {$store_mps == -1} {
 }
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
 
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-send_user "\nDefault partition node count is $nb_nodes\n"
+log_debug "Default partition node count is $nb_nodes"
 if {$nb_nodes > 2} {
 	set nb_nodes 2
 }
@@ -226,13 +226,13 @@ if {$mps_cnt < 0} {
 if {$mps_cnt < 100} {
 	skip "This test requires 100 or more MPS per node in the default partition"
 }
-send_user "\nMPS count is $mps_cnt\n"
+log_debug "MPS count is $mps_cnt"
 
 #
 # Test --gres=mps option by job
 #
 
-send_user "\n\nTEST 1: --gres=mps option by job\n"
+log_info "TEST 1: --gres=mps option by job"
 
 make_bash_script $file_in1 "
 	$scontrol -dd show job \${SLURM_JOBID} | grep mps
@@ -306,7 +306,7 @@ make_bash_script $file_in2 "
 	fi
 	exit 0"
 
-send_user "\n\nTEST 2: --gres=mps option by step\n"
+log_info "TEST 2: --gres=mps option by step"
 
 set target [expr $nb_nodes * 51]
 exec $bin_rm -f $file_out
diff --git a/testsuite/expect/test40.4 b/testsuite/expect/test40.4
index f6bb1360edd..dd3d821665e 100755
--- a/testsuite/expect/test40.4
+++ b/testsuite/expect/test40.4
@@ -98,14 +98,14 @@ if {$store_mps == -1} {
 }
 
 if {[test_cons_tres]} {
-	send_user "\nValid configuration, using select/cons_tres\n"
+	log_debug "Valid configuration, using select/cons_tres"
 } else {
 	skip "This test is only compatible with select/cons_tres"
 }
 
 set def_part_name [default_partition]
 set nb_nodes [get_node_cnt_in_part $def_part_name]
-send_user "\nDefault partition node count is $nb_nodes\n"
+log_debug "Default partition node count is $nb_nodes"
 if {$nb_nodes > 1} {
 	set nb_nodes 2
 }
@@ -116,7 +116,7 @@ if {$mps_cnt < 0} {
 if {$mps_cnt < 100} {
 	skip "This test requires 100 or more MPS per node in the default partition"
 }
-send_user "MPS count is $mps_cnt\n"
+log_debug "MPS count is $mps_cnt"
 
 # Remove any vestigial test account
 cleanup
@@ -139,7 +139,7 @@ make_bash_script $file_in "
 #
 # Test --gres=mps option by job (first job over limit, second job under limit)
 #
-send_user "\n\nTEST 1: --gres=mps option by job (first job over limit, second job under limit)\n"
+log_info "TEST 1: --gres=mps option by job (first job over limit, second job under limit)"
 
 set timeout $max_job_delay
 exec $bin_rm -f $file_out1  $file_out2
diff --git a/testsuite/expect/test40.5 b/testsuite/expect/test40.5
index b64343e78e2..9b601fd5080 100755
--- a/testsuite/expect/test40.5
+++ b/testsuite/expect/test40.5
@@ -46,7 +46,7 @@ if {![test_scheduler_params "permit_job_expansion"]} {
 }
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -56,9 +56,9 @@ if {[test_front_end]} {
 
 set constrain_devices [test_constrain_devices]
 if {$constrain_devices} {
-	send_user "Devices files are constrained by cgroups\n"
+	log_debug "Devices files are constrained by cgroups"
 } else {
-	send_user "Devices files are NOT constrained by cgroups\n"
+	log_debug "Devices files are NOT constrained by cgroups"
 }
 
 set nb_nodes [available_nodes $partition ""]
@@ -175,7 +175,7 @@ if {[wait_for_job $job_id2 "DONE"] != 0} {
 #
 # Parse the output files from job 1
 #
-send_user "\n\nParse job 1 output\n"
+log_info "Parse job 1 output"
 if {[wait_for_file $file_out1] != 0} {
 	fail "No output file"
 }
@@ -226,7 +226,7 @@ if {$exit_code == 0 && $constrain_devices == 0} {
 			log_error "Bad CUDA_MPS_ACTIVE_THREAD_PERCENTAGE value ($percentage != $count)"
 			set exit_code 1
 		} else {
-			send_user "\n CUDA_MPS_ACTIVE_THREAD_PERCENTAGE value is good\n"
+			log_debug "CUDA_MPS_ACTIVE_THREAD_PERCENTAGE value is good"
 		}
 	}
 }
@@ -235,7 +235,7 @@ if {$exit_code == 0 && $constrain_devices == 0} {
 # Parse the output files from job 2
 # Not currently looking for anything, but do log it's contents before purge
 #
-send_user "\n\nParse job 2 output\n"
+log_info "Parse job 2 output"
 if {[wait_for_file $file_out2] != 0} {
 	fail "No output file"
 }
diff --git a/testsuite/expect/test40.6 b/testsuite/expect/test40.6
index fb68cc12bb0..8f5e403e346 100755
--- a/testsuite/expect/test40.6
+++ b/testsuite/expect/test40.6
@@ -40,7 +40,7 @@ set file_out         "test$test_id.output"
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -50,9 +50,9 @@ if {[test_front_end]} {
 
 set constrain_devices [test_constrain_devices]
 if {$constrain_devices} {
-	send_user "Devices files are constrained by cgroups\n"
+	log_debug "Devices files are constrained by cgroups"
 } else {
-	send_user "Devices files are NOT constrained by cgroups\n"
+	log_debug "Devices files are NOT constrained by cgroups"
 }
 
 set nb_nodes [available_nodes $partition ""]
@@ -118,7 +118,7 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 #
 # Parse the output files from job 1
 #
-send_user "\n\nParse job 1 output\n"
+log_info "Parse job 1 output"
 if {[wait_for_file $file_out] != 0} {
 	fail "No output file"
 }
@@ -168,7 +168,7 @@ if {$exit_code == 0 && $constrain_devices == 0} {
 			log_error "Bad CUDA_MPS_ACTIVE_THREAD_PERCENTAGE value ($percentage != $count)"
 			set exit_code 1
 		} else {
-			send_user "\n CUDA_MPS_ACTIVE_THREAD_PERCENTAGE value is good\n"
+			log_debug "CUDA_MPS_ACTIVE_THREAD_PERCENTAGE value is good"
 		}
 	}
 }
diff --git a/testsuite/expect/test40.8 b/testsuite/expect/test40.8
index 6fb9c955b69..4df1cd707f8 100755
--- a/testsuite/expect/test40.8
+++ b/testsuite/expect/test40.8
@@ -40,7 +40,7 @@ set job_id      0
 print_header $test_id
 
 if {[test_cons_tres]} {
-    send_user "\nValid configuration, using select/cons_tres\n"
+    log_debug "Valid configuration, using select/cons_tres"
 } else {
     skip "This test is only compatible with select/cons_tres"
 }
@@ -57,7 +57,7 @@ if {$mps_cnt < 100} {
 	log_error "MPS per node is unexpectedly low ($mps_cnt < 100). Check your configuration"
 	set exit_code 1
 }
-send_user "\nMPS count per node is $mps_cnt\n"
+log_debug "MPS count per node is $mps_cnt"
 
 #
 # Build input script file
@@ -174,8 +174,8 @@ if {[wait_for_file $file_out] == 0} {
 			log_error "CUDA MPS jobs appear to have not run in parallel. Run time difference was $percent_time_diff percent"
 			set exit_code 1
 		} else {
-			send_user "\nCUDA MPS jobs do appear to have not run in parallel\n"
-			send_user "Run time difference was $percent_time_diff percent\n"
+			log_debug "CUDA MPS jobs do appear to have not run in parallel"
+			log_debug "Run time difference was $percent_time_diff percent"
 		}
 	}
 } else {
diff --git a/testsuite/expect/test5.10 b/testsuite/expect/test5.10
index 04b40347d82..e99a756c275 100755
--- a/testsuite/expect/test5.10
+++ b/testsuite/expect/test5.10
@@ -199,7 +199,7 @@ create_part $test_part_1 1
 create_part $test_part_2 2
 
 # Submit a job to check priority
-send_user "\n\nTest 1\n"
+log_info "Test 1"
 make_bash_script $file_in "sleep 20"
 sub_job
 
@@ -235,7 +235,7 @@ change_prio $test_part_1 2
 change_prio $test_part_2 1
 
 # Submit another job to check priority
-send_user "\n\nTest 2\n"
+log_info "Test 2"
 sub_job
 
 # Check partition
@@ -267,7 +267,7 @@ cancel_job $job_id
 
 # Submit a job that will run now to check that the --priority option for
 # squeue will only list the job running on the partition
-send_user "\n\nTest 3\n"
+log_info "Test 3"
 set job_id 0
 spawn $sbatch -N1 -o/dev/null -t1 --begin=now -p$test_part_1,$test_part_2 $file_in
 expect {
@@ -288,7 +288,7 @@ if {$job_id == 0} {
 	fail "sbatch did not submit job"
 }
 if {[wait_for_job $job_id RUNNING] != 0} {
-	send_user "\nJob $job_id failed to start\n"
+	log_error "Job $job_id failed to start"
 	set exit_code 1
 }
 
@@ -312,7 +312,7 @@ if {$part_chk != 1} {
 	log_error "Job $job_id should be RUNNING in partition $test_part_1 and is not"
 	set exit_code 1
 } else {
-	send_user "\nJob $job_id is RUNNING in partition $test_part_1 as expected\n"
+	log_debug "Job $job_id is RUNNING in partition $test_part_1 as expected"
 }
 
 cancel_job $job_id
diff --git a/testsuite/expect/test5.11 b/testsuite/expect/test5.11
index fa944df31a1..93194ec6097 100755
--- a/testsuite/expect/test5.11
+++ b/testsuite/expect/test5.11
@@ -269,9 +269,9 @@ expect {
 }
 log_user 1
 
-send_user "\nL:$node_l:$cpu_l_cnt M:$node_m:$cpu_m_cnt H:$node_h:$cpu_h_cnt\n"
+log_debug "L:$node_l:$cpu_l_cnt M:$node_m:$cpu_m_cnt H:$node_h:$cpu_h_cnt"
 if {$cpu_l_cnt == $cpu_h_cnt} {
-	send_user "The rest of this test expects to have three different nodes \
+	log_debug "The rest of this test expects to have three different nodes \
 		each with different cpu counts -- finishing test now."
 
 	exec $bin_rm -fr $script
diff --git a/testsuite/expect/test5.6 b/testsuite/expect/test5.6
index 319364c5525..9c22497c4ce 100755
--- a/testsuite/expect/test5.6
+++ b/testsuite/expect/test5.6
@@ -200,7 +200,7 @@ spawn $squeue --format=%u --noheader --user=$this_uid --nodelist=dummy_name
 expect {
 
 	-re "Invalid node name dummy_name" {
-		send_user "\nNo worries. This error is expected\n"
+		log_debug "No worries. This error is expected"
 		incr match
 		exp_continue
 	}
diff --git a/testsuite/expect/test6.11 b/testsuite/expect/test6.11
index e49d6894c85..8eefb0de5e5 100755
--- a/testsuite/expect/test6.11
+++ b/testsuite/expect/test6.11
@@ -88,7 +88,7 @@ set matches 0
 spawn $scancel -v $job_id
 expect {
 	-re "error:" {
-		send_user "This error is expected, no worries\n"
+		log_debug "This error is expected, no worries"
 		set matches 1
 		exp_continue
 	}
diff --git a/testsuite/expect/test6.14 b/testsuite/expect/test6.14
index a9aa75f3c2c..524b87e0ec2 100755
--- a/testsuite/expect/test6.14
+++ b/testsuite/expect/test6.14
@@ -98,7 +98,7 @@ expect {
 		if { [lsearch $submitted_jobs $job_id] == -1 } {
 			exp_continue
 		}
-		#send_user "job $job_id: node $node_name\n"
+		#log_debug "Job $job_id: node $node_name"
 		#Insert into a table with node_name as the key, job_id as the value
 		set found 0
 		for {set ii 0} {$ii < [llength $job_map]} {incr ii} {
@@ -115,7 +115,7 @@ expect {
 		exp_continue
 	}
 }
-#send_user "job map: $job_map\n"
+#log_debug "Job map: $job_map"
 
 
 #
diff --git a/testsuite/expect/test6.15 b/testsuite/expect/test6.15
index f4feebed609..59ef7f75dcd 100755
--- a/testsuite/expect/test6.15
+++ b/testsuite/expect/test6.15
@@ -69,7 +69,7 @@ exit 0
 "
 
 set proctracktype [test_proctrack]
-send_user "Proctrack: $proctracktype\n"
+log_debug "Proctrack: $proctracktype"
 if {$proctracktype != "cgroup" && $proctracktype != "linuxproc" && $proctracktype != "pgid"} {
 	skip "This test only works for proctracktype/cgroup, proctracktype/linuxproc or proctracktype/pgid."
 }
@@ -99,7 +99,7 @@ proc test_signaling { batch full } {
 	#
 	# Submit sbatch job
 	#
-	send_user "\nSubmit the job\n"
+	log_debug "Submit the job"
 	set timeout $max_job_delay
 	set sbatch_pid [spawn $sbatch --output=$file_out -t2 $file_in]
 	expect {
@@ -141,7 +141,7 @@ proc test_signaling { batch full } {
 	}
 
 	exec $bin_sleep 2
-	send_user "\nSignal the job\n"
+	log_debug "Signal the job"
 	set cmd_str "$scancel -s SIGUSR1 $params $job_id"
 	spawn [lindex $cmd_str 0] {*}[lrange $cmd_str 1 end]
 	expect {
@@ -235,7 +235,7 @@ proc test_signaling { batch full } {
 			incr rc
 		}
 	} else {
-		send_user "\nERROR reading output file\n"
+		log_error "Error reading output file"
 		set rc 1
 	}
 
diff --git a/testsuite/expect/test6.17 b/testsuite/expect/test6.17
index d61504b9398..f061c03fc7f 100755
--- a/testsuite/expect/test6.17
+++ b/testsuite/expect/test6.17
@@ -65,7 +65,7 @@ set matches  0
 spawn $scancel INVALID
 expect {
 	-re "Invalid job id" {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		incr matches
 		exp_continue
 	}
@@ -81,7 +81,6 @@ if {$matches != 1} {
 	log_error "scancel failed to log invalid job ID"
 	set exit_code 1
 }
-send_user "\n\n\n"
 
 #
 # Test scancel with invalid job ID
@@ -90,7 +89,7 @@ set matches  0
 spawn $scancel 0
 expect {
 	-re "Invalid job id" {
-		send_user "\nError is expected, no worries.\n"
+		log_debug "Error is expected, no worries"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test6.3 b/testsuite/expect/test6.3
index 796ea7d4ca0..3ecf3182e22 100755
--- a/testsuite/expect/test6.3
+++ b/testsuite/expect/test6.3
@@ -116,7 +116,7 @@ expect {
 spawn $scancel --interactive $job_id1
 expect {
 	-re "Kill job error.* $job_id1" {
-		send_user "\nNo worries, error is expected\n"
+		log_debug "No worries, error is expected"
 		incr matches
 		exp_continue
 	}
diff --git a/testsuite/expect/test7.10 b/testsuite/expect/test7.10
index 01e29f5ce7e..c045ece87ee 100755
--- a/testsuite/expect/test7.10
+++ b/testsuite/expect/test7.10
@@ -70,7 +70,7 @@ expect {
 		exp_continue
 	}
 	-re "error" {
-		send_user "\nNo worries, this error is expected\n"
+		log_debug "No worries, this error is expected"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test7.11 b/testsuite/expect/test7.11
index e8d86e954cd..e2207edfd97 100755
--- a/testsuite/expect/test7.11
+++ b/testsuite/expect/test7.11
@@ -159,7 +159,7 @@ reconfigure
 #       directly, so we build a script containing a pipe to tail
 #
 
-send_user "\n\nTesting srun help message..........\n\n"
+log_info "Testing srun help message........."
 
 make_bash_script $file_in "$srun --help | $bin_grep test"
 set matches 0
@@ -194,7 +194,7 @@ if {$matches != 2} {
 #       directly, so we build a script containing a pipe to tail
 #
 
-send_user "\n\nTesting salloc help message..........\n\n"
+log_info "Testing salloc help message........."
 
 make_bash_script $file_in "$salloc --help | $bin_grep test"
 set matches 0
@@ -225,7 +225,7 @@ if {$matches != 1} {
 #       directly, so we build a script containing a pipe to tail
 #
 
-send_user "\n\nTesting sbatch help message..........\n\n"
+log_info "Testing sbatch help message........."
 
 make_bash_script $file_in "$sbatch --help | $bin_grep test"
 set matches 0
@@ -258,9 +258,9 @@ if {$matches != 1} {
 #	slurmd/slurmstepd on the compute node will not get the updated
 #	configuration.
 #
-send_user "\n\nTest locally logged messages..........\n\n"
+log_info "Test locally logged messages........."
 
-send_user "Checksum of local $spank_conf_file\n"
+log_debug "Checksum of local $spank_conf_file"
 spawn $bin_sum $spank_conf_file
 expect {
 	-re timeout {
@@ -271,7 +271,6 @@ expect {
 		wait
 	}
 }
-send_user "\n\n"
 
 $bin_sleep 30
 make_bash_script $file_in "
@@ -322,7 +321,6 @@ if {[wait_for_job $job_id "DONE"] != 0} {
 
 # NOTE: spank logs from sbatch and srun would be intermingled here
 if {[wait_for_file $file_out] == 0} {
-	send_user "\n\n"
 	set matches 0
 	set matches_sbatch 0
 	set matches_srun 0
@@ -363,7 +361,7 @@ if {[wait_for_file $file_out] == 0} {
 		log_error "Local (srun) spank plugin failure ($matches != 2)"
 		end_it 1
 	} else {
-		send_user "\nlocal (srun) spank plugin success\n"
+		log_debug "Local (srun) spank plugin success"
 	}
 } else {
 	end_it 1
@@ -373,7 +371,6 @@ if {[wait_for_file $file_out] == 0} {
 # Test for slurmd output in file
 #
 if {[wait_for_file $spank_out] == 0} {
-	send_user "\n\n"
 	set matches        0
 	set matches_sbatch 0
 	set matches_srun   0
@@ -462,7 +459,7 @@ if {[wait_for_file $spank_out] == 0} {
 		log_warn "Check for matching checksums on the plugstack.conf file. Different checksums could indicate file system delays"
 		end_it 1
 	}
-	send_user "\n remote (slurmd) spank plugin success\n"
+	log_debug "Remote (slurmd) spank plugin success"
 } else {
 	end_it 1
 }
diff --git a/testsuite/expect/test7.15 b/testsuite/expect/test7.15
index f6f38a5dac8..e05f37def63 100755
--- a/testsuite/expect/test7.15
+++ b/testsuite/expect/test7.15
@@ -75,7 +75,7 @@ expect {
 	-re "Signal ($number) is ignored!" {
 		set signal $expect_out(1,string)
 		if { $have_runjob && (($signal == 1) || ($signal == 5) || ($signal == 12) || ($signal == 13)) } {
-			send_user "Signal $signal is ignored by default when using runjob, this error is expected, turn that frown upside down!\n"
+			log_debug "Signal $signal is ignored by default when using runjob, this error is expected, turn that frown upside down!"
 			exp_continue
 		} else {
 			log_error "At least one signal is ignored!"
diff --git a/testsuite/expect/test7.16 b/testsuite/expect/test7.16
index 25988a2dccd..3e05c1a0c98 100755
--- a/testsuite/expect/test7.16
+++ b/testsuite/expect/test7.16
@@ -51,7 +51,7 @@ proc alloc_job { } {
 			exp_continue
 		}
 		-re "error" {
-			send_user "\nError is expected, no worries.\n"
+			log_debug "Error is expected, no worries"
 			exp_continue
 		}
 		timeout {
diff --git a/testsuite/expect/test7.17 b/testsuite/expect/test7.17
index c4dab89629f..099d762b8a8 100755
--- a/testsuite/expect/test7.17
+++ b/testsuite/expect/test7.17
@@ -49,7 +49,7 @@ file delete $test_prog
 compile_against_libslurm ${test_prog} 1
 fail_on_error "Cannot compile test program"
 
-send_user "\n====test7.17.1====\n"
+log_info "====test7.17.1===="
 set cpu_match 0
 spawn ./$test_prog "gpu:2" "$cfgdir" "/test7.17.1" 8
 expect {
@@ -71,7 +71,7 @@ if {$cpu_match != 1} {
 	set exit_code 1
 }
 
-send_user "\n====test7.17.2====\n"
+log_info "====test7.17.2===="
 set cpu_match 0
 spawn ./$test_prog "gpu:2" "$cfgdir" "/test7.17.2" 16
 expect {
@@ -93,7 +93,7 @@ if {$cpu_match != 1} {
 	set exit_code 1
 }
 
-send_user "\n====test7.17.3====\n"
+log_info "====test7.17.3===="
 set cpu_match 0
 spawn ./$test_prog "gpu:2" "$cfgdir" "/test7.17.3" 16
 expect {
@@ -115,7 +115,7 @@ if {$cpu_match != 1} {
 	set exit_code 1
 }
 
-send_user "\n====test7.17.4====\n"
+log_info "====test7.17.4===="
 set cpu_match 0
 spawn ./$test_prog "gpu:2" "$cfgdir" "/test7.17.4" 16
 expect {
@@ -142,12 +142,12 @@ if {$cpu_match != 1} {
 #######################################
 
 # Run a job with invalid job allocation
-send_user "\n====test7.17.5====\n"
+log_info "====test7.17.5===="
 set fail_match 0
 spawn ./$test_prog "craynetworks:100" "$cfgdir" "/test7.17.5" 16
 expect {
 	-re "failure" {
-		send_user "This error is expected\n"
+		log_debug "This error is expected"
 		set fail_match 1
 		exp_continue
 	}
@@ -161,12 +161,12 @@ if {$fail_match != 1} {
 }
 
 # Run with no gres.conf file
-send_user "\n====test7.17.6====\n"
+log_info "====test7.17.6===="
 set fail_match 0
 spawn ./$test_prog "gpu:2" "$cfgdir" "/test7.17.6" 0
 expect {
 	-re "failure" {
-		send_user "This error is expected\n"
+		log_debug "This error is expected"
 		set fail_match 1
 		exp_continue
 	}
@@ -180,12 +180,12 @@ if {$fail_match != 1} {
 }
 
 # Test with invalid job allocation
-send_user "\n====test7.17.7====\n"
+log_info "====test7.17.7===="
 set fail_match 0
 spawn ./$test_prog "gpu:2" "$cfgdir" "/test7.17.7" 8
 expect {
 	-re "fatal" {
-		send_user "This error is expected\n"
+		log_debug "This error is expected"
 		set fail_match 1
 		#exp_continue
 	}
diff --git a/testsuite/expect/test7.19 b/testsuite/expect/test7.19
index a61abc56cc6..788acf0aaa8 100755
--- a/testsuite/expect/test7.19
+++ b/testsuite/expect/test7.19
@@ -73,7 +73,7 @@ proc test_sbatch { local } {
 	}
 
 	if {$rc != 0 } {
-		send_user "\nThis error is expected, not a problem\n"
+		log_debug "This error is expected, not a problem"
 	}
 
 	if { $rc != $exp_rc } {
@@ -122,7 +122,7 @@ proc test_salloc { local } {
 	}
 
 	if {$rc != 0 } {
-		send_user "\nThis error is expected, not a problem\n"
+		log_debug "This error is expected, not a problem"
 	}
 
 	if { $rc != $exp_rc } {
@@ -168,7 +168,7 @@ proc test_srun { local } {
 	}
 
 	if {$rc != 0 } {
-		send_user "\nThis error is expected, not a problem\n"
+		log_debug "This error is expected, not a problem"
 	}
 
 	if { $rc != $exp_rc } {
diff --git a/testsuite/expect/test7.2 b/testsuite/expect/test7.2
index 963a9c920f2..89eda9785ec 100755
--- a/testsuite/expect/test7.2
+++ b/testsuite/expect/test7.2
@@ -58,7 +58,7 @@ exec $bin_chmod 700 $file_prog_get
 #
 # Run job stand-alone to validate basic operation with 1 task and no srun
 #
-send_user "\nRunning PMI test stand alone (without srun)\n"
+log_info "Running PMI test stand alone (without srun)"
 set prog_pid [spawn ./$file_prog_get]
 expect {
 	-re "(FAILURE|error)" {
@@ -77,7 +77,7 @@ expect {
 }
 
 if { $exit_code == 0 } {
-	send_user "\n\nSo far, so good\nNow run PMI test under srun\n"
+	log_info "So far, so good\nNow run PMI test under srun"
 } else {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
diff --git a/testsuite/expect/test7.20 b/testsuite/expect/test7.20
index a7c30e0e3f2..acc4a80a718 100755
--- a/testsuite/expect/test7.20
+++ b/testsuite/expect/test7.20
@@ -189,7 +189,7 @@ proc test_bin_pass { num bin args het_job count } {
 	set got_sub3 0
 	set rc -12345
 
-	send_user "\n\n**** TEST PASS $num ****\n"
+	log_info "**** TEST PASS $num ****"
 	eval spawn $bin [join $args " "]
 	set pid [exp_pid]
 	expect {
@@ -246,7 +246,7 @@ proc test_bin_fail { num bin args het_job count } {
 	set got_sub3 0
 	set rc -12345
 
-	send_user "\n\n**** TEST FAIL $num ****\n"
+	log_info "**** TEST FAIL $num ****"
 	eval spawn $bin [join $args " "]
 	set pid [exp_pid]
 	expect {
diff --git a/testsuite/expect/test7.4 b/testsuite/expect/test7.4
index fb5ec3b24ba..4fcd5414cec 100755
--- a/testsuite/expect/test7.4
+++ b/testsuite/expect/test7.4
@@ -61,7 +61,7 @@ print_header $test_id
 # command to work (runs "srun" without path)
 #
 set env(PATH) "$slurm_dir/bin:$env(PATH)"
-send_user "\n $env(PATH)\n"
+log_debug "$env(PATH)"
 
 #
 # Test for existence of mpi compiler and totalview
@@ -94,9 +94,9 @@ exec $mpicc -o $test_prog ${test_prog}.c
 set matches 0
 set no_capability 0
 set timeout $max_job_delay
-send_user "======================================================================\n"
-send_user "=======================  Run without bulk transfer ===================\n"
-send_user "======================================================================\n"
+log_info "======================================================================"
+log_info "=======================  Run without bulk transfer ==================="
+log_info "======================================================================"
 spawn $totalviewcli -verbosity info -e $no_bulk $srun -a --input=none -n4 -N1-2 -O -t1 $test_prog
 expect {
 	-re "All licenses are currently in use" {
@@ -148,7 +148,7 @@ expect {
 		exp_continue
 	}
 	-re "Could not open breakpoint file" {
-		send_user "\nNOTE: Breakpoint file error is expected due to known Totalview bug\n"
+		log_debug "NOTE: Breakpoint file error is expected due to known Totalview bug"
 		exp_continue
 	}
 	timeout {
@@ -166,7 +166,7 @@ if {$matches != 12} {
 	log_error "totalviewcli operation matches $matches of 12. Remove your ~/.totalview directory and try again"
 	set exit_code 1
 } else {
-	send_user "\nSo far, so good...\n\n\n"
+	log_debug "So far, so good.."
 }
 
 #
@@ -174,9 +174,9 @@ if {$matches != 12} {
 #
 set matches 0
 set no_capability 0
-send_user "======================================================================\n"
-send_user "=====================  Run with bulk transfer ========================\n"
-send_user "======================================================================\n"
+log_info "======================================================================"
+log_info "=====================  Run with bulk transfer ========================"
+log_info "======================================================================"
 spawn $totalviewcli -verbosity info -e $bulk $srun -a --input=none -n4 -N1-2 -O -t1 $test_prog
 expect {
 	-re "All licenses are currently in use" {
@@ -228,7 +228,7 @@ expect {
 		exp_continue
 	}
 	-re "Could not open breakpoint file" {
-		send_user "\nNOTE: Breakpoint file error is expected due to known Totalview bug\n"
+		log_debug "Breakpoint file error is expected due to known Totalview bug"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test7.5 b/testsuite/expect/test7.5
index 8553d67a4a7..02aec489699 100755
--- a/testsuite/expect/test7.5
+++ b/testsuite/expect/test7.5
@@ -75,19 +75,19 @@ expect {
 		# sleep to make sure the process is actually running
 		exec $bin_sleep 1
 		exec $bin_kill -TERM $srun_pid
-		send_user "\nSent SIGTERM\n"
+		log_debug "Sent SIGTERM"
 		exp_continue
 	}
 	-re "Received signal" {
 		log_error "Unexpected signal processed"
 		set exit_code 1
-		send_user "\nSent SIGTERM\n"
+		log_debug "Sent SIGTERM"
 		exp_continue
 	}
 	-re "WAITING" {
 		log_error "Job not stopped in debugger mode"
 		set exit_code 1
-		send_user "\nSent SIGTERM\n"
+		log_debug "Sent SIGTERM"
 		exp_continue
 	}
 	-re "TIME LIMIT" {
@@ -96,7 +96,7 @@ expect {
 		exp_continue
 	}
 	-re "error.*not running" {
-		send_user "\nDon't worry about the error...\n"
+		log_debug "Don't worry about the error.."
 		exp_continue
 	}
 	-re "FINI" {
@@ -109,7 +109,7 @@ expect {
 		set exit_code 1
 	}
 	eof {
-		send_user "\nEOF\n"
+		log_debug "EOF"
 		wait
 	}
 }
@@ -123,7 +123,7 @@ if {$fini_cnt > 0} {
 }
 
 if {$exit_code == 0} {
-	send_user "\n\nSo far, so good\n\n"
+	log_debug "So far, so good"
 } else {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
 }
@@ -141,19 +141,19 @@ expect {
 		exec $bin_sleep 1
 		exec $bin_kill -INT $srun_pid
 		exec $bin_kill -INT $srun_pid
-		send_user "\nSent SIGINT * 2\n"
+		log_debug "Sent SIGINT * 2"
 		exp_continue
 	}
 	-re "Received signal" {
 		log_error "Unexpected signal processed"
 		set exit_code 1
-		send_user "\nSent SIGTERM\n"
+		log_debug "Sent SIGTERM"
 		exp_continue
 	}
 	-re "WAITING" {
 		log_error "Job not stopped in debugger mode"
 		set exit_code 1
-		send_user "\nSent SIGTERM\n"
+		log_debug "Sent SIGTERM"
 		exp_continue
 	}
 	-re "TIME LIMIT" {
@@ -162,7 +162,7 @@ expect {
 		exp_continue
 	}
 	-re "error.*not running" {
-		send_user "\nDon't worry about the error...\n"
+		log_debug "Don't worry about the error.."
 		exp_continue
 	}
 	-re "FINI" {
@@ -175,7 +175,7 @@ expect {
 		set exit_code 1
 	}
 	eof {
-		send_user "\nEOF\n"
+		log_debug "EOF"
 		wait
 	}
 }
diff --git a/testsuite/expect/test7.6 b/testsuite/expect/test7.6
index 72f773f9ce6..360e266ceff 100755
--- a/testsuite/expect/test7.6
+++ b/testsuite/expect/test7.6
@@ -80,7 +80,7 @@ if {[test_front_end] != 0} {
 # command to work (runs "srun" without path)
 #
 set env(PATH) "$slurm_dir/bin:$env(PATH)"
-send_user "\n $env(PATH)\n"
+log_debug "$env(PATH)"
 
 #
 # Delete left-over program and rebuild it
@@ -119,9 +119,9 @@ if {$job_id == 0} {
 set matches 0
 set no_capability 0
 set timeout $max_job_delay
-send_user "======================================================================\n"
-send_user "=======================  Run without bulk transfer ===================\n"
-send_user "======================================================================\n"
+log_info "======================================================================"
+log_info "=======================  Run without bulk transfer ==================="
+log_info "======================================================================"
 spawn $totalviewcli -verbosity info -e $no_bulk $srun -a --input=none -n4 -N1-2 -O -t1 $test_prog
 expect {
 	-re "All licenses are currently in use" {
@@ -173,7 +173,7 @@ expect {
 		exp_continue
 	}
 	-re "Could not open breakpoint file" {
-		send_user "\nNOTE: Breakpoint file error is expected due to known Totalview bug\n"
+		log_debug "NOTE: Breakpoint file error is expected due to known Totalview bug"
 		exp_continue
 	}
 	timeout {
diff --git a/testsuite/expect/test7.7 b/testsuite/expect/test7.7
index 9c9fefdaa34..804c1288e69 100755
--- a/testsuite/expect/test7.7
+++ b/testsuite/expect/test7.7
@@ -176,8 +176,8 @@ if {[test_linear]} {
 	set alloc_unit_num 4
 }
 set max_tasks [get_total_cpus]
-send_user "\nResource allocation unit: $alloc_unit_str\n"
-send_user "CPUs in default partition: $max_tasks\n\n"
+log_debug "Resource allocation unit: $alloc_unit_str"
+log_debug "CPUs in default partition: $max_tasks"
 if {$max_tasks > 32} {
 	set max_tasks 20
 }
diff --git a/testsuite/expect/test7.9 b/testsuite/expect/test7.9
index 68f9d680387..cd54dc70d86 100755
--- a/testsuite/expect/test7.9
+++ b/testsuite/expect/test7.9
@@ -135,11 +135,11 @@ if {$matches != 0} {
 		log_error "$matches of $tot tests failed"
 		set exit_code 1
 	}
-	send_user "  This should happen infrequently, typically when\n"
-	send_user "  JobAcctFrequency is set to a small value and is\n"
-	send_user "  indicative of a non-checkpointable job. For details,\n"
-	send_user "  see src/plugins/jobacct/linux/jobacct_linux.c\n"
-	send_user "  To diagnose, use lsof to examine spawned job.\n"
+	log_debug "  This should happen infrequently, typically when"
+	log_debug "  JobAcctFrequency is set to a small value and is"
+	log_debug "  indicative of a non-checkpointable job. For details,"
+	log_debug "  see src/plugins/jobacct/linux/jobacct_linux.c"
+	log_debug "  To diagnose, use lsof to examine spawned job"
 }
 
 if {$exit_code == 0} {
diff --git a/testsuite/expect/test9.8 b/testsuite/expect/test9.8
index 95620993a3c..3e77b7be2e3 100755
--- a/testsuite/expect/test9.8
+++ b/testsuite/expect/test9.8
@@ -108,7 +108,7 @@ if {$start_cnt < $job_cnt} {
 	log_error "$job_cnt of $start_cnt jobs submitted"
 	set exit_code 1
 } else {
-	send_user "\nAll $start_cnt jobs submitted\n"
+	log_debug "All $start_cnt jobs submitted"
 }
 
 set user_name [get_my_user_name]
@@ -171,7 +171,7 @@ while { 1 } {
 	}
 	set scaled_task_cnt [expr $job_count * $desired_tasks]
 	if {$step_count >= $scaled_task_cnt} {
-		send_user "\nOnly started $job_count jobs, reducing step count target to $scaled_task_cnt\n"
+		log_debug "Only started $job_count jobs, reducing step count target to $scaled_task_cnt"
 		set desired_tasks $scaled_task_cnt
 	}
 	exec $bin_sleep 3
@@ -182,7 +182,7 @@ if {$step_count < $desired_tasks} {
 	log_error "Only started $job_count jobs and $step_count steps. We expected at least $desired_tasks and possibly hundreds"
 	set exit_code 1
 } else {
-	send_user "\nWe found $job_count jobs and $step_count steps\n"
+	log_debug "We found $job_count jobs and $step_count steps"
 }
 spawn $scancel --quiet --user $user_name
 expect {
@@ -232,8 +232,8 @@ if {$running_jobs != 0} {
 	}
 }
 if {$completing_jobs != 0} {
-	send_user "\nWaiting for slurmctld to re-send job kill RPC\n"
-	send_user "This will take 120 seconds...\n"
+	log_info "Waiting for slurmctld to re-send job kill RPC"
+	log_info "This will take 120 seconds.."
 	exec $bin_sleep 120
 	set completing_jobs 0
 	spawn $squeue --noheader --user $user_name
diff --git a/testsuite/expect/test9.9 b/testsuite/expect/test9.9
index ab69207551c..7b3f06f8b3a 100755
--- a/testsuite/expect/test9.9
+++ b/testsuite/expect/test9.9
@@ -79,7 +79,7 @@ proc _submit_jobs { job_name test_file } {
 
 set time_took [string trim [time {_submit_jobs "test$test_id" "/dev/null"}] " per iteration microseconds"]
 set jobs_per_sec [expr $job_cnt * 1000000 / $time_took]
-send_user "Ran $job_cnt jobs in $time_took microseconds or $jobs_per_sec jobs per second\n"
+log_debug "Ran $job_cnt jobs in $time_took microseconds or $jobs_per_sec jobs per second"
 
 exit if {$exit_code != 0} {
 	fail "Test failed due to previous errors (\$exit_code = $exit_code)"
-- 
GitLab