From d9d091b012dde06790b3fdeade5132c2e4fd2e3a Mon Sep 17 00:00:00 2001
From: Morris Jette <jette@schedmd.com>
Date: Tue, 6 Dec 2016 11:05:24 -0700
Subject: [PATCH] Allow tiny sacct I/O size discrepancies

test12.2 was consistently failing on smd# cluster with tiny differences
  in the disk read and written. This change permits those tiny discrepancies
  to exist without failing the test.
  Here are the numbers, which are consistent:

  sacct --noheader -p --job=763.0 --format MaxDiskWrite,AveDiskWrite,MaxDiskRead,AveDiskRead
  10.00M|10.00M|10.03M|10.03M|
  (i.e. 0.3% discrepancy, up to 0.5% allowed with current code)
---
 testsuite/expect/test12.2 | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/testsuite/expect/test12.2 b/testsuite/expect/test12.2
index 0f4ca210f6e..a7e59cfc30e 100755
--- a/testsuite/expect/test12.2
+++ b/testsuite/expect/test12.2
@@ -183,8 +183,10 @@ proc _get_file_size {prog} {
 		send_user "\nFAILURE: AveDiskRead not reported\n"
 		return 1
 	}
-
-	if { $max_disk_write != $max_disk_read } {
+	# Compute error in MB
+	set diff_io [expr $max_disk_write - $max_disk_read]
+	set error_io [expr abs($diff_io)]
+	if { $error_io > 0.05 } {
 		send_user "\nFAILURE: written file size does not match read size "
 		send_user "file_size:$mb_file_size MB "
 		send_user "max_disk_write:$max_disk_write MB "
@@ -192,16 +194,18 @@ proc _get_file_size {prog} {
 		return 1
 	}
 
-	if { $ave_disk_write != $ave_disk_read } {
+	set diff_io [expr $ave_disk_write - $ave_disk_read]
+	set error_io [expr abs($diff_io)] 
+	if { $error_io > 0.05 } {
 		send_user "\nFAILURE: average written file size "
 		send_user "does not match average read size "
 		send_user "file_size:$mb_file_size MB "
-		send_user "ave_disk_write:$ave_disk_write MB"
+		send_user "ave_disk_write:$ave_disk_write MB "
 		send_user "ave_disk_read:$ave_disk_read MB\n"
 		return 1
 	}
 
-	send_user "\SUCCESS: $prog reported correct written and read file size\n"
+	send_user "\nSUCCESS: $prog reported correct written and read file size\n"
 	send_user "file_size:$mb_file_size MB max_disk_write:$max_disk_write MB "
 	send_user "max_disk_read:$max_disk_read MB\n"
 
-- 
GitLab