Simplify output from GateMPApp
[ipc/ipcdev.git] / qnx / src / tests / GateMPApp / GateMPApp.c
index a34144d28db2d2a96fe9aa1bfa05f832417db3f6..5912c4fc8f149decad81ba622976131cab942063 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, Texas Instruments Incorporated
+ * Copyright (c) 2013-2014, Texas Instruments Incorporated
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -235,6 +235,7 @@ Int GateMPApp_exec(Void)
     GateMPApp_Msg *   msg;
     IArg        gateKey         = 0;
     UInt32      num;
+    UInt32      prevNum;
 
     printf("--> GateMPApp_exec:\n");
 
@@ -294,6 +295,9 @@ Int GateMPApp_exec(Void)
         /* enter GateMP */
         gateKey = GateMP_enter(Module.hostGateMPHandle);
 
+        /* read shared variable value */
+        prevNum = *Module.intPtr;
+
         /* randomly modify the shared variable */
         if (rand() % 2) {
             *Module.intPtr -= 1;
@@ -302,14 +306,15 @@ Int GateMPApp_exec(Void)
             *Module.intPtr += 1;
         }
 
-        /* read shared variable value */
+        /* read shared variable value again*/
         num = *Module.intPtr;
-        printf("GateMPApp_exec: Current value: %d, " \
-            "previously read=%d\n", *Module.intPtr, num);
 
-        if (*Module.intPtr != num) {
-            printf("GateMPApp_exec: mismatch in variable value." \
+        if ((prevNum != num + 1) && (prevNum != num - 1)) {
+            printf("GateMPApp_exec: unexpected variable value." \
                 "Test failed.\n");
+            printf("GateMPApp_exec: Previous value: %d, " \
+                "current value=%d\n", prevNum, num);
+
             status = GATEMPAPP_E_FAILURE;
             goto leave;
         }
@@ -359,6 +364,9 @@ Int GateMPApp_exec(Void)
         /* enter GateMP */
         gateKey = GateMP_enter(Module.slaveGateMPHandle);
 
+        /* read shared variable value */
+        prevNum = *Module.intPtr;
+
         /* randomly modify the shared variable */
         if (rand() % 2) {
             *Module.intPtr -= 1;
@@ -367,14 +375,15 @@ Int GateMPApp_exec(Void)
             *Module.intPtr += 1;
         }
 
-        /* read shared variable value */
+        /* read shared variable value again */
         num = *Module.intPtr;
-        printf("GateMPApp_exec: Current value: %d, " \
-            "previously read=%d\n", *Module.intPtr, num);
 
-        if (*Module.intPtr != num) {
-            printf("GateMPApp_exec: mismatch in variable value." \
+        if ((prevNum != num + 1) && (prevNum != num - 1)) {
+            printf("GateMPApp_exec: unexpected variable value." \
                 "Test failed.\n");
+            printf("GateMPApp_exec: Previous value: %d, " \
+                "current value=%d\n", prevNum, num);
+
             status = GATEMPAPP_E_FAILURE;
             goto leave;
         }