[ONOS-7937] Automatically check SCPF test results

Change-Id: Ifec2e7965fbc43ab9bb65338810ca62d7b120739
diff --git a/TestON/tests/SCPF/SCPFintentInstallWithdrawLat/SCPFintentInstallWithdrawLat.py b/TestON/tests/SCPF/SCPFintentInstallWithdrawLat/SCPFintentInstallWithdrawLat.py
index f4c1c8e..fd8789b 100644
--- a/TestON/tests/SCPF/SCPFintentInstallWithdrawLat/SCPFintentInstallWithdrawLat.py
+++ b/TestON/tests/SCPF/SCPFintentInstallWithdrawLat/SCPFintentInstallWithdrawLat.py
@@ -276,6 +276,26 @@
                 main.log.report( "Intent batch: " + str( batchSize ) )
                 main.log.report( "Install average: {}    std: {}".format( installave, installstd ) )
                 main.log.report( "Withdraw average: {}   std: {}".format( withdrawave, withdrawstd ) )
+
+                # Check test results
+                index = len( main.intentsList ) * ( main.cycle - 1 ) + main.intentsList.index( batchSize )
+                # Check installation results
+                if main.flowObj:
+                    threshold = float( main.params[ 'ALARM' ][ 'maxInstallLatFlowObj' ].split( ',' )[ index ])
+                else:
+                    threshold = float( main.params[ 'ALARM' ][ 'maxInstallLat' ].split( ',' )[ index ])
+                if installave > threshold:
+                    main.log.alarm( "{}-node install avg: {} ms > {} ms".format( main.Cluster.numCtrls,
+                                                                                 installave, threshold ) )
+                # Check withdrawal results
+                if main.flowObj:
+                    threshold = float( main.params[ 'ALARM' ][ 'maxWithdrawLatFlowObj' ].split( ',' )[ index ])
+                else:
+                    threshold = float( main.params[ 'ALARM' ][ 'maxWithdrawLat' ].split( ',' )[ index ])
+                if withdrawave > threshold:
+                    main.log.alarm( "{}-node withdraw avg: {} ms > {} ms".format( main.Cluster.numCtrls,
+                                                                                  withdrawave, threshold ) )
+
                 # write result to database file
                 if not ( numpy.isnan( installave ) or numpy.isnan( installstd ) or
                          numpy.isnan( withdrawstd ) or numpy.isnan( withdrawave ) ):