diff --git a/testsuite/expect/globals b/testsuite/expect/globals
index 63afe0c621e83690f95b5ab4a99e9691cec5849a..18452e9c863fc254085ee97da536eaa0954b2754 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 4354aa0f81e09b21a0a48870e9a47b309a93a6ec..a4a915c9d150ab8b1c16695be9f583622f0cdbce 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 a3380b8cba47e18c6a647e1262cc4b2ed4e2e981..ad44b903e266646c75bad4389016c394143425c3 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 f65d59c51f52607796ba5cd29c2abf7d53803a5f..309b9a04df3a019ae6cbf537e7cac7f32d72751b 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 6c194d314efa22d8ffac433bdc2d6955e5ce2ffc..72772f4bdbb4aa9bf5aef1b0c26877de6d2ee51b 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 33795da444d25777fb8d3c990cf138094cf8418d..c430fdf79a81644ff946e62bbe07de2cb9a780d3 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 f3cfde4283593d6511920f245e3723582f4f6063..32749bd4550d2e811acf6155996073ecc60d536b 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 e4c0ac648b749975f05e78f7fa876b43fdecb768..40518c2fafe3835aed30810dc633cc2e1f53347d 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 0e9c0e65f48c5900b9a36fb1e49e6901ddff8034..a257fcd477d5dc7410aa86157d24f15281f9ad92 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 19120d264b67d18f7ecfec0221c3c4746120a07d..b1fffaa2eb4c54253de20aa26d4c58c48b4090ae 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 7e229fa6ccb7e03cff9810cd1d98e512ae5ec07b..2e52b7e642eeda50e8c11c7be66ef8361fcc8f6a 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 72e933df694a49c84508ca96525edb62b924484f..f3976dc7dcd961632ceebbf7de09a882abf1bbd5 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 c954737528b6f3dbb1978e8edc29d7474f18f8b7..7749af0c017cffa986f5fe1e7c16d649f8fb2888 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 a7afc8c2c13895425a908684766471b1b0df4b99..add4004f8abe055701d002930673c383cd3705c0 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 08bb4e0c9d96e91dddc7b0e973f38c8baa4dcb4f..bde63fb8a658e3c90a38bd0033addefee70bef11 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 fa2f02877db5a784f8b134706b139c0efa868dd3..390324050734a7ef432299363509c0969d674728 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 5020dbb8965212d5e24280c7f923d3730fd05f12..40130401a3c1338b884a400dcb8c912e3f178099 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 03430954352e56a525242d7200ca30c065e6ccea..d4b8af04cd050278bfb26a4b64741dc9479d8a11 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 52286cf8a33b9a449d1daf044d51048c0830b0d2..78b6a9a384eed7b6d5421133cffd2776e3fe1cc1 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 ee155d55e8a51af68e5c84891785fa93210b6262..fa95eeb0059e801b4ad8c67625680c7c1cb04da8 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 57d159fbcd998f697aa6d654cfce98bec4d05729..05d88586b5ac758fe1e25b97dbc536eb29ce0722 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 1b13cc0b3cf7bd46b514a52ecbd6d723b2a2c3fe..402d3af789a8760335cc8d982167e90a06e78885 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 4edf6156ee44db3d390257cb80721f7d7166c4e4..11dcf141eaa3d32e6c0c0f37a3e3348aeafd0ffe 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 9e545533f3c94fdf92d4f7b8a2b18d5e6ec457bd..0d8d7b2db84a9fbddde7faddc125abe78a45945d 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 10ac683a4100df6f12c57f24fff76a7aca8a2d32..0f86c00b048e32714c3f548706d0fa29cfab32e3 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 980c0c6bc5608620109428023f1ee1d5ebbff31b..fdf93e9977dc8f9349e53e6a88220fb46facd230 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 d86fedd229b2f4ce1c7eb19dd7568c0d5f3d3816..8d40f31cfc279dc803c075275cc437999506eead 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 576ae74f1e403ac355c7e7951d1789fda8600419..daf1480f3c53c01b4f2deb846673974a52cfb33a 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 8aac58f82e003f473884a8dcdf8d82ad840f9fc6..ab3af70b45fa2fc0f16998b28982c2ef2a14910e 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 2521eac240a40780e9b91a955cd3ffbf76feb4d9..e87a8bc9bce5f50c469786b19358351cd3239e19 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 6fc111a9ca375717be1f394e462a8c8c1c18ef42..d2fc4f8d12d29f9f4b1d19e2e8c9b8dfbbc612db 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 96c974d71d1a63ea70447f940c5ab82ad0091044..67a691c30dbe779db68d56fd812dbd6ac9e5a667 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 c7a9ae5d9472aaf53137f4c95c9f254dc8dc98eb..a922e51003c7ecda16e3056ca8d04580cd8a4188 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 acb42be58ea91d8c59a71b2d59b8bc9ef21d6417..c730c860a35b1c52a80612141a5535efe13d68cf 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 b4823ccf5944a95dd109b27abc71cde1a75a59aa..59fb47d5086521b2920eaa4188da74d14c0b1e07 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 43898d7bf4a9b61689930edc0dbe77f149ad5622..3533283a25879e801bb111b564902d5734407ded 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 0a8a500c95a3580c6d95a2c4af1e0ac3a579e882..4ade6fc4289d69849aa9658a265e0919a40bb347 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 031711519c7bed570b1e3dd8ca2cd973c5c4e612..6452bd0b1c16c6b543d901cf72ab7e7806aeb64e 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 168a1d229230369995a52454aeba0943ec308fdd..97391071055b2a4556bdafdc4425de1ac46c5e7b 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 9e7b05ae34e68ca60aeb7f5703a6a28f6adbbd62..693b9631dd4e0749991fe556a20b0c84ad613eb5 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 8dde370b1fb4cfb33a5932e2624670f429a4a559..74d71c6ba6655a0aa071287a97983841302a419f 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 2a0e0b51360790e6e38e276b66c698a422f9fc7b..b1e68b228fdee37f3f8018199a2b5fe66f7f4bfe 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 ee7aaf468b1fda282ee5104aea64a60c49d56856..a0d428d592331f4a2875f74765fa57a3b947480a 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 67a1a55604485dad60e8c54c3cb06f7cf246f29c..5a8cd0947c95204fe77c751e32e776526f0af4e9 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 444954270aba475d1008fddf286a20d43791ec64..7594465f05cc7fc034fe8cb3a5784bcddf90f1d0 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 e8e874423ce96105a356c09ba4b9d43c906fd446..a1433120bc226a525bdcef6edafd3c59d88a7ba4 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 f6041c121aece70b44067ef0913bcbfcd22aebbd..c30bbb979de6fbcae7a17d24cf9b2bdb48876c9b 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 335e4634e93eca0d9f85bbf929dd6d15135ad34d..394c2ce10dfa07b96dd910c515c7a10e1ca6becd 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 1f8b4b0e78061192903443443571086aa538875e..41c6cff49d0b0815b85b04240cb74443feeba211 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 ab85bd81adba54ba4e2a53f7d231db4608818e64..9772cc75481b64369f91f52552c4d8a263d66e5f 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 84a495bdfb33f952209e781abe900327c4366d9b..49826db52518a8302143844424a195981a2157b3 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 bb94613a54eba4df1f262a20c22d5a5e8928fbf1..08c013ced8dfab15bb79f18f0f3634f22b580288 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 3526b3e3a0c99909178a3b89da77b9a66c9c8834..d7c0543ae70c92c9afdc80763e4b3e6040640ea2 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 78ea07e11b0d7f0d9853b23460711e4ea0f7b894..3573991530340478f5a55dc09a32520d11b0bb7f 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 94375b4ee3d85864395617a975c76693efe05532..2bf0faf320713df173c742ac607537f01db2d94e 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 73af1d388c997bc2a051c1e061d1062d07264109..ba9ef2e3a6692745a2935735692555a30edd0c47 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 f29cc6eea7afb122014fd81458def8620a52f45f..80b44a73779e1d54aff311134600a6596b01521b 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 2b91eac4b082e676a0429cd8694d15f62c3ae7b2..5b560609ec3715ab1c1c7f1204b96e337216ec32 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 eec0a9a8a888657a79f4e6fa6d58cc9b59648ca1..e1728c5455836601fff15b953a7b4ed83f8fc2ea 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 dc4191d3851cee6c9bbf2a69ea878a34f13e3e40..fd4a5b0aeff799618807fdece59a30736886befa 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 21679c3579774550efe02b46cac61487601f5247..c6929d0a4afdf1fc911eee2a2ef23af15bd949ad 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 2020d7356cc59ce94111b2252deb8bc47fb78ac9..60fd2b23bf0dc22dc7f81133e7a0800d8da918be 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 21d00d1633b09a49ded7c211ff147fcbcf55cc53..5d531c30e21c4a6db45a6afab1a65a750ce24fc8 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 49ea6bceab9e63774f2a548a48be4ffe253673b1..3baeff946f24ce4d1dc80a57c19f960bb5ae956b 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 89e0405c933ebe671c5955b32122a79fc6ba603c..cd551b38d8dd7e613ed2a3f27cf074ea2148fcd8 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 16fc0cf72b0dc4fc0d8c8f4d3ee9ecfdcc92b66e..b1b72bae3a6b0efa4bbd577751ec81399559115c 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 abad93d13c34cdc551144cecabdb218931190844..53f4c5448a3412cc8a8c5ae823aab9eea412b7c9 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 9633e2d3de21da4fb348a3f135928be7367ac930..c467d1460984d8d31720be8d10b3fc949b8fa2e5 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 2fc6af3bbb8187a55c8d689b78346623a5c728c0..49c98aafe67b11808eb8ea0b47fe6968de4e9311 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 fab86be7cb479fbc70858b13b9d0ca3a299cc94b..175ff368c169188d69d4fc95b01da909b697b2ec 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 cce3f0b33914033d69da0362b7312ca562615836..3c39b01505aa6ff6312f4b226474baffa681f661 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 623ca9133e093350f3f4f9a3cac7d744c4a9f449..ce28d2cc926f22cf50469ed3aa8d9a6575985b65 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 0f47c1713deefcaadae0139fc5ef498ea7ba66fd..2a85806f4f6b2c9b6e347c174a16ad7b87abf6e9 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 127222818f84d0f8a560ecb88897124df36f736a..dea377968bba0965951162e806b4636d4f072306 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 608da1e038acb1f892a51d3e4339253477a2c7b9..171d654a9ac5a58eb1f6d3cf7d4923eeebe69ef3 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 43f378b05bbd56774d6a8a2a426132a4312cfdde..6cb44d77d55dfb8ef8f3df21de142a8d96c652ab 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 dc30084952a4d7967e450f305e008e35055be1f8..daa8f53467f5ad5d35bf5df0e240bb7c8818256b 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 ad6d30ece6c784f3a80893f5e80286005eb66f9c..7f8f0d1b881f9d9e70ea767f466fe4e2ecccad1f 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 6efec3b91dc4f93d6491ff94f04b75c44944d295..8324dc658b4b129c62e46b05902fb2af2006a5f2 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 177226bcfb5e76f42efcc61eb86eaf5a9e4db595..6ab1c6a0a0e3036a8cd8987bd646cc973df2ab37 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 f0a62c6568c7e69a7403599aa3172884d0f8a9fd..b9430ca06581fe01b84cf486eca70dad6bade1cf 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 4525fa83e3b6967be7298b2cdd19c0745b90e2af..27e4316947c9cdfd28ddc76785ca628661d59eb7 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 d573ab91348037485213e18170692faac7033c87..c1fa2975307006c39afc79b91fc2a86028cc4080 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 14c1415b1af6480540f52be2e07fa28b5ef41a1c..52bb0ecf5c7e4eb6a705b169ded9965097b1f503 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 b1dfb9b1c298cb6d6662091c80aa7ae72d86e0b9..01ab3c01806f832b24357fb3207bc135eb83e04c 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 683154a1de3930f7ba9ef842c4685db1e165255d..a7ff14815d34bb84895f036d3464c7ae5e37322a 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 89b393ceb1bc8a0897089c21652848845e2937d0..40440f2260e65af76e7538f9725004360fdb65d8 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 67e5af4ba995ef69bbce29366cb8db42ce6d46a7..986e8526551e7323d1e3299e4478a7e87e782ddf 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 caf8a5a7a5c3e78caf883701ef61f8158feac095..a6a0cdfd71da9e2f60335a461d3d4e1c53d31fdf 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 634ead4dd57ce464fae5d7eb9e95ddeaeb6a845c..4bc296908b3f3b8c42a6645f19ca856ede6dcef2 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 29b8f63a885eb1f43c8f7fbd996ecdd55e7f3605..57ede0be86396df3862256e3583841825b93cdfa 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 b551c46f8640e2671704eb242c7e92298f2c3029..f17d9c290b86c4c6faf8ddb3fa242af02bcd86f6 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 1036a2520d372844c4e25441f668eae5ef751ff2..acb48af789a609d713dcb70f684b4caa3ff19793 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 ca2bbf2798fbcd751e57e9c90b8033d9c94dff90..0c5ad3d4829f94c26284f03058f22f637d20b6f7 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 6b97787d7237d722755c8bf5a8e7b1d27a273b9a..2834624ef442553f01f49708e07867e766af1f8a 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 ea4a15bfbb7a047649d5efff5b36decec513b439..1b1d50a16b12ef7d5b0d80861ddbc85d90e0f222 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 0af4ad2bdddd06161595dd3b7791426d364fa3cd..3208aea349d84648befdabc6f794126f24939811 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 9d79d20ca181b8b0a13e86e1a89ca22581a30fbd..31096f1a495d419b90e94e763c0557ba8d48c655 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 a8f4952ed3ac354ca5ed09951c43f5840acb9001..cbc2db16f8bb3681c397e8948808712facbab227 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 d86b567535ed3065dc222b61999e751e4ae91dff..299635e077d4129049b580c975f4f936b56bba6e 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 e4364aff6f318f4cb531759cc6ad49b8d653c2dc..082be4010157c48024efa98674547589e803712c 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 8237e533dc0a277f5691672b156d11152f10d50c..bdc672742cbdafd7d53978c41b0a6c015903f597 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 cafe3e25359f642d17e23554c28011478d4f46c4..6e73f1bef9e0790954ea465cf69ed5d635345b7f 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 497cf439ddf7d7404478b8de035acee81c58eaaf..0c482d57b19d13d3d14639b729580113c77a64d9 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 7c71d7276f803965b8c713a64150ff2db7fe39bf..f18a004c60149a36406370c61ef5498eb0d14e85 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 a90f29d5ff82b46bb6d7b0b2d325e99312c97d90..6b059978808dbd2641e5206541db62bbeb9a9dc4 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 40e35f394e6803946e17deed4149bfe43baa6a2b..334f964a48e7aa6d43bdf70f507a92845c1366ad 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 3515f5a2932ffef59dafa0792a4eff13d7d010a8..c104a95a686b25ffa1af7230902c26badff01c4f 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 9b196f1a3736c5f4b41cc52531a1a0e88452fc7f..61d5c7926e15a3f916e1ab37c0b42eab881a3d92 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 af00c01b1f73563a40b6849252a3f67559dbe153..7203a1c984961e00cefa518ca612df2282714549 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 09b1c0faaba72b38b6f5de2cf409c9e4931154ab..f4c6e297806c63a0597aebdd8fb199048f441b2f 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 26eafc0a7e5c6cdda31e9059619ab382ff08388e..8fb3b117a9aa5cc49929290e8e9c0f092459493e 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 18a2b9ffbf4d3da2573cdfc392a86d1fb78e215c..e750cafb2c22dfc01e1916c93bed7ecf8a7422f7 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 2ee3937ea7cd6c2b5e78936ef9dd8a70b9150f59..04eaa569bbf08c7248538460376a72ff7648b8c9 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 1478c2c44b1558cc03df5c3e277ef0216ddd54e4..e8b98e54b27ddf359d3d1917699cbe29445dcb8d 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 26174a8cedb41386446666196e90b6876eaff871..8512d06eb1ab96b33e6b905f5d0d0e4f706cc124 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 19fdf3105fd6c31ff05c02c9e3b096d6225df98a..e8cf01ea8fd232e3574b08a513a4f2007ba72a1e 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 6c498f018595738659f35d47b530e0930d03f807..7e2c21fe91e90e2fa17b1e292efc1969c0dc27da 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 efc298580d8969faffb2dc898e3cad89066b0849..d4ffc6f04ed3896367bf044cf0d5aa1b466af1eb 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 450d2ed81922fd05235da7d1c36d6662fbce8afd..5e23144ee2cbb5f12725ed14336edc6f20ebc379 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 b14938b53bb9c7c2adb99f2853fdc5dcdbf17843..58be04962e2b2e1a0e9842151ae9db749753832b 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 8b95f47e3f039e46fe5617795e3fcd3bffc54a38..32c68cd5bf67f56e4497a06a9ee465d78e619dfd 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 f627893354a8c2c207b48b149238dbe269c409ee..ba51869d24ffc82234ede31ce4b1cd682e0fb1f9 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 4ea45a4259cfda3ab42f0fe7d241fc9424247512..e64ef029cd477bbdbafcc1e239899c01e9f8fa5c 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 694f6a400e7b56e1d1c571085ae9ddffa27ac266..98c113b5f10c42b6548604f230dc61159510edba 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 c6cc8f519de105114cf00ee2eebcb7d685c5f3ae..cd4df8ef3a3220c89d3222e556e0cf2c4ab15456 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 41e5a1fcc729949a8ab797f1b1d73b51eb86caf9..eb5a4daea6aba3876fe56d21d60381adb8c73597 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 656119e2e21e7984946c42035c1a4a9014b46df8..d7c6d758f7aa00256f14e714128ad1eaaba253e6 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 84d3bf689a6caa938d0a91ca69bc5bfb44814055..7650d24d2bfa5b2c92a86d727a1a862acf306834 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 b92bd3a51b18cbd239c56c0bc2f7794f989154ee..102afbb0eaa1461057479f31cb1841e14c532f31 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 65dc1d87b92b54f65fc1527e673c48ef813c3520..a0952f970be26e70f1803f5fa570649b7be76f61 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 f0a16da7b6a4d40dbc1952385d0b52a00a0d610e..61248b269f0ea576bb459ce37c97406546dc26ba 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 327f31eeed8fbbd54045af2d08f61a81780c480a..d4f553aa0c5c6bc5d61cff6e9ad43be89732e168 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 a39bc822be8648c3f8486fd4e4436b0664bf8651..577cc8725d27145bd01b5d02b6d24e154f89b505 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 3b5d6bbe5d56fed69d054bc669a9979be71e6b87..8e4a16dcaef348f054a81e5af3f0e7aaebb72d4b 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 8d988135869d6e3e99c40c228e0a41f889fe93c8..5423f172ad007b2d584465df214fdf63203873d7 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 e79c769e455beb4eea663acc5eef2a7e6c659b14..f2eda006cca2aa2fe16ad586b5e8251e69c910b9 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 d42609ad32b8fb7ececb800188c3f5d551c0da89..f4b3758aad3ce374cb965f4a1873fb6f1efbd418 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 7bc2032d7bacae4a28bcf660b16d62e8c4c4d54b..927d150de47e83005bb47fda2ec89463a5550773 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 aeedc0654e7728afea7a63d07c869a17eff4e304..11ec0cfe98c94e0caa3e1c1492241a50ad981338 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 5aaea7e9e3287bc0d88079682d76dead87316300..15607eb2cd559fa480e2ea12bb30b34a02d29f91 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 6bae8dcbc3324543eec4875645596bb3bec3168b..d8bc31cb7babe384b5853dfb8d72cdc35fecc794 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 61f512fead6794c2c5f7289f742c127f0e5d8bff..5f3f60287f6ac8f0cc1f826259a0a85cbac1bd89 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 f975491f7af50468ee56535406a3fecf811288f1..13faaeafa6da23187b139a97befb80b140184d07 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 f67ae45cf5365ab204552f5858287f8eb67ec4f8..a820d82f90bb9606b57ed5981582c6948b83a27f 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 8091dac10a8e13001eb72761f3de3b3435c64a2c..5e4ed9ba81d8393c2a959a81c2e94c8a3b4a2657 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 a7a600409a3a7d9ebb995c0086b547c8cd6a01e8..026861f6f0ff18a971a2a099cdcd58e705cba0dd 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 f73910d3ec9d08cd5d3dd117239c964a5bd75de9..e311ef3f6c32a43326b9fd5d44d5256f24ee4851 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 68bbce069379bc6528a245272977ecd849965519..f26c143b4ec6455aebec3920ff20d30413cb6bdf 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 8a7af30a7ff0eb91db2a019201954058389108b4..1009dd9d71d8fb788f7419b26a86acf88f8fca68 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 7fb2ed9976f672ffb3fd123d4447ddaf243256cf..10a6f15251c9ef2f8fa4e5a43947e8e82595853f 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 d4dda9c01a5c034be16cd81492e3b628b01a353b..27a9281359f13cd6410369d5668e5117c4a09f62 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 bd206c858a9a08b4173d6c5bd960b99cdcfbb86e..d7840542799469c42ef634f88645c5981dc0007b 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 f0eab8eed839a3d1e707ea094706b183783499f3..403da8fc453f568220d5a831143d7f23438144ca 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 d3aec570a0afcb5404c99cdbb5ee026b976ba15f..f817b981261c1f8f3538d1f28c87a1ac6f8136bf 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 e501bd98e0c26093e737af51d4ddb39fed5a97fa..5b85f708c9446dfb4d24b9a8097131836a4a926b 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 0208184e969276bdbf50be2720f079451be6e72b..9601e4d6416f3efe1f53725b7a3ed9441b18c93e 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 94b57d4f087c4f23035a6399f04bb8888b77675b..b6baaee8a8783f0d31543538038212cdae469e6d 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 4d7393c9b69c64ef884bcf85fce2a4767ade731f..c3f0ba18e5842f8143d14efb78ab07b6231c8f49 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 0af75e2a551a987efcaaaaae76aebb172a03d0ea..2c3d707bbd23bcedc1affcccd3065605b01e83e5 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 be2cc5fcd517165f985f4ab4e08f8738a3941d09..e297443313ecb23d4904a50aee612b2275bfb8f5 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 a93334d3b74a850a00502eb11d684031307ba82c..d7474040cc16566f0b9e0298870b4fc43f536474 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 992c8b5483c7eb47431b2368cfd4faf9a479feed..b35842f2cc7d1f04a19b3f0aa84aa71a1c70c9bb 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 fe8ac180b33a3b1d6570360d7b6855b293c9ec32..d7d059d4c278e94092fdedb220d27a6f929ff101 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 0c5ff2b50c6c7bd9d63c11a59a5bf9f8d235254c..1f186d99e5d6ebe3eecafdfa61d5a94bb134be1d 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 304c2f35900ebaded6b4ff1fafa94e72cce165b4..9dcb28e11fe645d07f32c9d82c588fed2fe3ddc4 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 5df669d89139cc7758af92943b3bda79cb517aa1..d4d32c61b23141f3939868757d2fefaa75a27a0d 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 59a557d9f6beb8ae8339407644eba68b2093105d..ad9fcdc813ffe7ed3e9b6bde2152b251962d17ef 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 d3eeeebfceb09cfed4040f44e4a4f2aee52b7875..c2d11fe3d432cc49e96c8b2ec4c691dc9d58c583 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 9d9c2f6202d11e8fb39ff3ef8d567796cc9a3a40..52d04f9c97585beedbdaf3d62d8a9bc93e7bc3cb 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 94320bc71f7e3edfd19fb3210ced22a9846fdfdf..ca1e232dce9f603a4ec2e08ba72709be70afe491 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 f176a7f1355665d81fa1ecfba2d436cdade9d5dc..19bcf1d434cb833839ec9836bc62fa5a2d3c06c2 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 8840dfd938dec0db80faebf1ea75fe3e76713eb0..15fc8b29b7e3d315bd9c8e3441403a861fa50e90 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 be21a63243a9762d47f7eb2f8752604411381585..fcfbb407a7ccadf1387d3fe61f9a7ebf89b5ff88 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 6e7768a998b5c9d93c6cf213061a2cede79f3f90..4391c4e53380e96e3e311bdecf05ac22342d3dd4 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 54b53c91d29e14c0dbcf417127b67101265a6ccb..be0e72448d89df8b266c9235e5be1ed3fa0eb56c 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 14f7be2db8d7a03e6a99d23a4febb69551c34304..e1842f02bd460ffd230b16e996fe1482da2f671b 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 e0f214709b512b60a9c52031021e6db1249b605b..9956d33edc013148ab459f2fe5c32378d92191bd 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 2f8f563aad183a8ec56b82a0f1b8fb0dae1811e2..037963739ec68ce62786d2b3d3748d92367d0b8f 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 de310854532f6a1acc4b2c7977d670946501b7c1..4a3fc1334be8b2c604f41c76b6b057c9d955bae1 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 0edb035c5e3b57f67f5935e06077df6e352b77a3..385f254790064bba52d3076b4cb0614258349eaf 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 c487a98acf9d55c64c6c47a9374411e0afab2348..b47391d18e5d1fbd345b27553a323a6c18fec52d 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 900a25765ab62e7e7268383ae6fb0144eb63e780..9e6f7f440686dcaca27408e2552ba4dae69f18ec 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 9efef32090babbd5e072ba82838886ef833178d8..a453a23202855301c243fb9566c1d35b1f1996bf 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 cded8f147e6e0e3e7f24a08324c87503394751dd..9e2ce4d7b495bf7171b8ec5c6cc10a28908d8193 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 b864ccbbd767c4791a1fb10f0bcb02efd86db417..02c8c882090b2c938d5d3f3d9caaea9bd96e5ce3 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 5af4aee2f763f27b17cbcbbf322f596cf6297c28..a2b7126e94599e1c6f9eccbfa86c8af93c93bfdf 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 3afd4fb50991b98f3cfad19313f7983cdd63823d..34f4a396f625d154e289c9424f9997a48c4efd61 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 1493051af6b3232f8fa3ae4605a19b3c468272b7..7b9102f140f99d547c672d995c90af9cae921e3c 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 23342ddc527d714ef8ff5ba695e7dae2e93bcbf2..2e727131108b4b7debad12d0f3f68a0be1be8efe 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 b9488bb5ba8f469164287e457c87d2b800a958eb..bbb2fd90ec287c6987f9e1593bb4eec842dc0719 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 9f8bb4fe2d3098e997a4ed5a9947a69255c7700d..d31f1b3ce507fa5c5ba9ca373a0f4fa82cd2a492 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 b1500cf4f6773fb81b415266640b78e7f62bd865..70fa343848c10bb5b470fb95106ce2b07dccb9dc 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 25c13f637f8aa246f14148036c52f78576ff361d..ee707a2797d92490ce05a80416e2e6217340be3a 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 93e832a8e77a3c24f20c6716f3bc4f25dd8d6f4a..42b0a291df8a19cfe1b171032ec3a3e26b0fd3e8 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 dd83f3a1616121736cf576dab13bcfe23211fc42..10f94cbf39d0af79d44eb17eda290bba86fa5ec5 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 ff28aff36f2180b02b72ba09a8d713debb03e99a..f4821e022a3ddb1b27b9fcdae6d06cd10203426c 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 138a702f675dc801d77045d8b2230710bfc70dd3..dd4f96210a074fddcdcc3f25111553a310ec121e 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 293df217f8245bd1af5b1d0813455ba92c943c68..92e2b0f45db0896063e2a982ad1f144bac24fad4 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 103caf11d1b046132ed20ba28c730fc9f39966b1..947c30bbf5f11983a466c78a2326c212b06ed2ff 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 efba2e96d718bc9332be4d81b6b9e6572896f7ff..ad32f32e5e5729b4355580ca5e898c6ed6efa1bf 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 72b508392cbe5c0d84295b58be7dcf0c023fdfc8..ee36287174636a37089f1e8e836479f7c1bdbdb1 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 8e1786f797e6d18e2b40b1759fc50ac4b3433926..d8be05d38169699639fb864a0832ce3473009c29 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 165e91c064d759e000ee81227427a81a5aff7f2b..0cab2a13b7b076f3d864b6c97fc39e6f7d3c0b76 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 3c342e6cd75cb76fc9ad73dd5937cdb63745d3ba..5356d3b4f7d6f393151ed7744b4e46f2bb6dc52e 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 b89bbdbf9d0869533ced04240903010ca3d0b5a2..cc605dc075ea2cf7324a4e178607dae6a2dde559 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 c5fb38679015ab9d997b87c7ba4787b71d76d859..9b876425f03860b6119b6b4a2e524462bfbf8fda 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 f25e32837bf97cd622560707e394c8facabd8779..cb1f60ebdb81f8bc876d3dfe72f05db8819b8728 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 ad979e70b1953af2d83a0b47bc90ecf32cffa934..753fa698bd57de4b96a58258022c57b33d2f0827 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 ca9d7daa87fe2aef1ccae262d66ae2d6545c455a..4d3626c821378a9bd74c25924641fc56bdbd442c 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 7dd6372f6c5fd1f4e52ff7bd967948075b8d7e83..11bc407fc8645280437695b22b2524c26b37ade5 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 3fb25600fa4cf6030aafa28346db4889015df964..49c5cb9bd5d4a783d2c140bdbc0f11cdab781ce7 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 11ba021fc7cfe55e5763d23a30af035bc4044cfd..ea9633ea969175f29582af8fee68e36165ce734c 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 04d40628e057b233596b325718a8267d371b17cd..509b91e93cfa1a2bad1931ddfe2941e252dcf16a 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 4d9c497b26001cb2fd2908996622d6cd316318ab..4f23e286116aa9de967da78b9d91bdc0e76035b1 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 3037c2078a255bcaf514c68e70d0e2ee54ef9c43..64f85fd779890d7ca23349b6a49ce2980376ad46 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 280c7ab4a7784ee1b7d955f218fc291d375be25f..31af140dbe8acf7a630264aaf025ee371e387075 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 fc9858e3b665316785aee9f693966cba756e6832..cb77918b6f38b5359b2d44d8dacc00e11ca2e498 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 756c0a2a59ed6e1732dd7b912ef94b6fb2c22af5..a406f103f9ba6bdc7191dc7c4179a44ab90ead58 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 6fa491fc548eefab6c968a1a5dfedfd5fcfa3b8e..94cebff79d95156c0c803fae1d70e8cc4f0d51c2 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 8f76759ea2330f4c0de02823d083ffe96e62c672..13586b6d935b490978127b57f48d731c88143112 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 a81dd76c56b6cba11148572034f997edc1201b38..91264b4900a6057fd7b476451254960fe35e2593 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 c55b1acd2cca02a59e1b537eba297dd9519b688c..5ac5c78f48890c0975b05c0e8ba563ba91968a20 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 ede9b272042c2dddc6e8ccb1ab8152cfd5f9f247..84fd940178e923e236626f89de78aa52292b3897 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 62a90dd3afd0975f9ff1920540b385b0c7e7f783..cc02cdc577384057bd61a24df41ae27b096e6250 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 49994bb5af0b242b712de27ee8d08338014335eb..5e61a7feb6e90e7c3e89a2fb2c497dadb50bcad1 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 0e327105d54bf05e529bd54d18039036549b7199..bce600820b327d7c0f8dd7ba196d8a76499b5e3b 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 7b674c6513a200cd074ed02a18a2f1f8e1a2570a..433d54da3d5e17513f2d0c3edbce972d547109e2 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 3cde233f4c8a7b5d0551368d7fc9c8a49c223834..07e7e65998c91361bfb4d9f456e8fcc27f6c883f 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 4edff262d781d4a16cf1fd3f748f8a208f041c96..ca5bb41d540f9a81bcde3d938f424a2834ec3523 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 a8d0c9a0545623cd449b6bbe3b6b6abd03013906..75721586101d498f10f1eed26cba89f25899dcea 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 34e06635b03eb39671cce3599ef80b29074b0542..472ae58059ce23c31fab1e69aa2bd67d07a53def 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 8a8f607c20e2d06a09d62e1d3f49530cc2124982..3042ff741614eaa94ddcb612957b8e84754957d9 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 b771f59f1ee09771cea317366239b2a26546a1c9..c09ac620b72ee1b8ebf3d302e74e3250ceb1eeca 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 00e2286137baa34c85283a026c2d94104b64ab53..4ec0b668929ef417a365d5af1a69aed58fbff2a1 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 8699055e0553a666765b2ccfc98bd4794a2d6769..efadca172ff094be6f10075acb5fcc75f1120f05 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 a298a43dd3df46ed0602088e7df26d4bc7e5b290..9673bd04c1599c0a6d413817bc4811b4f48d4e80 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 be3c7beaa006aef2ff88c0884defaa3acd18c52e..820ff0b6c390407ca626c49da90444b64dbb70d3 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 84055ac9e248477f728736d69ba0315df4203037..89390eb23c0c9317e128f0cef3286550e765385c 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 32585693b97e3fec94dd3094a9effeca9ebe34fc..00e20ad9b71b385008156f3f1109a3f9b30cc88d 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 bb51cdd7be5c9b69f6f12d9f3f5caae71ed54cd4..ce83326aae2e74e7de41ae0bf832498959a490c0 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 a16049d777e748f1fafbdd690cf372cff8401cb5..90f43b986022c31f72b16959de3844ce2f1b0bd4 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 3d573e34a79c44029a4359a8378e54053d8d878d..19552224a1aca17513620c92b3bd377d59b81700 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 b38fda556146bb682973f7e14784bc9c731196a1..6dade27406c9e05e8a71efad13363d2b36f54589 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 e07645f18663cbf13b4c74f75f7f811cf2b62a22..f90f2f282dfabcd7c7fc91f632d276dafbbe576f 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 5397cc14646333692cff9664f8474a6a85c0f984..cb3b7714189cb8d3f8aa883ec2dcede44692041a 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 fde1fd73d8ad228f0a59cd330649cdca6807c603..f64db6507cb63627bd6c99e37f40412275e47979 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 457ee76bc105e994d1b350440040ab6d765593d8..e5332faa3dd1224181106b0bf1e03d9348674de1 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 b0dbdc3d02a0f8122cdfc3f6192cffcfa2de2a56..4c087974e0b540d6b61e43df026a7436c8a9cb24 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 a203a36c2ce8473a3552663d8314e82e68b15062..e31e31a2794852454e851290cd74a32e0dee5e25 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 388234b63e1dbeb1e717fde6d19aaf681a0d08a9..cfe44b5bd011bc60ea127a90669fec0279201973 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 29591bcbc2cb3bbfcd4de0a0e28c5928d79034bf..26c24b1cefbd6ceabaa1cbe682f1e223a7343bbd 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 b6d1abf4ca24993ca8869b6103e9e5ff36efd794..c60784fc85b2c66548bd21ab56b78d83cf605d97 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 3b5c8e9d87ed2796188d30380b2b737e3893030c..48fa6411524c985a9b80828412eb2b76dd70d6ac 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 2edb5131d797bc448681fb59828b55fa9b2f566e..711747f04b8c1150b61d3a19323971c04263e8ad 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 46061d3ed92380dc4061094a118fed5641aac02e..3678c7554eeb81516da445ee5b4625745c06fe8d 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 6c5204128d47f15ccfc8b2d6a9b8957961d47eb2..ccddbb853a086b10194a29f7e18248cdffea502d 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 dfab7f36a5cb43e4c586515bde5ecc25adc95258..c0b74f46531156fcf49f4cb236ec2a919d8ca93e 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 80ed409a5e3f7faf9780fa14bb84d6adacc0e33a..40dd50ca1ef33177003497670a8527364fdf676c 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 66830ef806c6071403787d5f242f3a57cfee588c..11bc29b372fee0090d1b1768c64431eab1a796a2 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 a25b554ef6c849e2c5eb61a39bcbfe5fa12daa63..4e8e144c6ca3a3318ce649ad4ee19eba1eab2c4b 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 f65b6bb235ac7ecbf436ea3205292843952f0f02..caf0c2deb6657548190da087e3f33f68be7684de 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 718de5be1a8d3dfea875bf9b08e5f701e9f1aa0e..7443b92a2c6b45935845664b93ca5352f463b3d2 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 c57ad13a686767d75637f6dc17a1ebc8c39ef848..01776a86f43affeb21ff0c6dd4feee7e08a61340 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 2f77f1d570df1aec2808011ca7a7efaf6a3ad9fe..b875fef0b63c108d71337c4296987315af1bb495 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 13b283fe3abe100ecf0b2c469b38fae3f2f7b06b..254d0bb9ab5921f378446009ac97ec107953dea5 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 4bbe5df7cf24812447f97ee19d4150abb3594f02..0637b41fa5c7c8fa033468550e04e54ba34f5022 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 062903620dc1a51c887999fae3b93bfdc44c1d1a..5483e34c23056891d2d16406ce9276e5c9f97c94 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 d7f0c45ff5cfd9afeead62f16a1248ed90a8f181..c52ce0bab94f1703d2feed3e8efef20bd4e886c5 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 b9e14cb4f9889c40f67b2fa9bcbb136b212095a7..626c39ffb4f9ac4378015ef419dc840c6bf6f6f8 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 e959c44a8b52d84fff5f6fcbe9fb92321cdc04e2..58b84072d85c3e5d8d2ce1db22e0a1ec68fe647b 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 d4658358f472748e9868fdbdd70912dd77e48cb6..5cc216000fa8b409469a59ae55d3039005aca4a1 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 598c93f00ca3bd79bfbd92e77e87b1a71542665b..7e12cb394be80ebefdab107935a22b595ec7229b 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 f63f9c8e4cbfb812a42f3f0f51cd34ebed2406e5..2e33524d2963db75c6b4b76919a0e8c9b1cd0866 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 6a9e8355b5d6e4873c5682abca912db94fe9943e..76aa255ecba1fdcfd734661557a83c7c4f5dc62b 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 a8dda577368ad42d1290159bd6e283e10658b50e..f770bc2977a4820a3f917a593fc2d30a516bd063 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 ed1827dbda9707e51d9a4d3e24ed628509d64877..70a6579ac32924b1bfdbf25617d9fc53bcafe7e7 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 67fb5f541a29a1b8cfa6f2f38cdca8cb8154dc8a..fffcd5b411709d1b3c50e095c79e9f4dbe148f4d 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 9ddf263e051b05e4541c83fea2262950676ad8d0..4741d88338a312892d37ebae41e16a6221d029dc 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 e0a1423cb02d2669a04526f425973847d0a474e0..1e9aee58ab2439f33e2126ace15e089cd038d8d5 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 5a5e0e804096e2aa70177d4cb86b2b8dc539f8fb..9d19e5e87a6206fdab4fcfc0c44916299aecd1d1 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 575b0d005cf36c34f7154c5b1e90319d605a7753..a2cbc4f181c8d74fd9cd06338f25ab25d23773e9 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 3adfa7b196825356c95a606da3913d7f94e989d7..61bf2ae8f53314a112463f5abb2d8b5a479404b2 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 4864ee172ab30c13bc6d8057cd0858f01b244df4..116d383eaf9ee1ed9d8c6130cfa0b9495e3fff3c 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 ce8eed8779b7740bc003955508327b79d053eb3b..3fcd2bb4f193703a8e417d73e7c49f40f97fd5d9 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 f6bb1360edde85d3d284b29efb3219173967a09a..dd3d821665edfda80ee4a67f93b3416df740f34f 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 b64343e78e2d5fcd6b8a405685b98c9e060b8f56..9b601fd508034c5f0fc4e8d29c62c0a54949085e 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 fb68cc12bb0588a1c1cdfb9ecb02a33f21260586..8f5e403e346e72077639c46e3ce542c0cf5fac48 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 6fb9c955b695b5f6196570aebe827cfee8fd12ee..4df1cd707f8df06a85f9d891350eb4362ab45096 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 04b40347d82e6368c60997d7a6c203e41dd5b7a5..e99a756c27571fdd5e0e4fffdcf047b7d37a063d 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 fa944df31a1d46d1c25811c65f795cdf9388b5a4..93194ec6097cc11a71a5b865aa5eff9332b17d00 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 319364c55256deb8977f5fc5314b31f0e03c60b0..9c22497c4ce6814639923bcb7328136952178de2 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 e49d6894c857169b21c6c8f69272135b887db960..8eefb0de5e541395ff98c96c78d46a292667c338 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 a9aa75f3c2ce51824228b5f89022cd3205c3e993..524b87e0ec26cb4073dea547fc1fe11f6479acdb 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 f4feebed609eae5b493825c6850d8aa50c0e50a5..59ef7f75dcd4e3733155185d3cf6369d17f88c7e 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 d61504b939863ac91c8e0f0ff5f2e7ad1b338113..f061c03fc7f13b3f12988c08889b8b8d30045fb0 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 796ea7d4ca061efbf146830717c8cd4b59dd5be4..3ecf3182e22618dc9861437778ff7e1dbd7a4739 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 01e29f5ce7e9959f94e4e70fbff8472fcf4a044c..c045ece87ee2c49b8d4bc502aebcb1591ac14316 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 e8d86e954cdcabdad7d68a666b260b0a4cc22096..e2207edfd976a084edd5b33f5b5c8124b1e76c01 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 f6f38a5dac83d904379f790dcb560eae5703cdb6..e05f37def637008ad66f037de2a0eb084b2eb75e 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 25988a2dccd0c7320cd6d277e878e847a15efc4d..3e05c1a0c98faf8362bbce732c90a05b03849f22 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 c4dab89629f2e16078cac2e22e9144ef1d031711..099d762b8a83df07a24b3119d8864985dc9a3cfb 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 a61abc56cc6ea98cc02d73cfe0a2c6c310ddbf14..788acf0aaa808c7a4a2e2db6cd2879ac84268577 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 963a9c920f2cd70a6c64245c654c061761bbbfd9..89eda9785ec212b3323cc92f47884d412494c4a9 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 a7c30e0e3f252b97c61908928e1aec5b9814fea7..acc4a80a71824729751b3d86e9d2498a90b41ff5 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 fb5ec3b24ba63a16cb3295f866f94d5fb58d1666..4fcd5414ceca354bfa3e944c2c30558856df58e7 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 8553d67a4a7cd4e849ab9fad12e1ad442e7e6b39..02aec4896993e3fcedaf718dcead13728a6eed90 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 72f773f9ce695b7dd1d8f7eba3243f08641d1eb9..360e266cefffe7922281cc2781114a25c0a0ec50 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 9c9fefdaa3423920daf0146ad8567297786b26f0..804c1288e69d670d9281b7709c2fab69745d0106 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 68f9d680387e0e800fa6c06b63a6c61228ca8077..cd54dc70d864c9e50a91ffe8ecbcc1366e1f4673 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 95620993a3ca210be0755f7ccd5249396bdabbdb..3e77b7be2e35c825222a8e4db68506e6aea12039 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 ab69207551caa077fad4821baae94108246ef5bc..7b3f06f8b3a4ae5b8ded14f1b687cce339af453a 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)"