Merge pull request #9278 from valeriosetti/fix-psasim-logs

psa_sim: improve log prints
diff --git a/tests/psa-client-server/psasim/include/util.h b/tests/psa-client-server/psasim/include/util.h
index 558149f..5eb8238 100644
--- a/tests/psa-client-server/psasim/include/util.h
+++ b/tests/psa-client-server/psasim/include/util.h
@@ -13,20 +13,18 @@
 #if defined(DEBUG)
 #define INFO(fmt, ...) \
     fprintf(stdout, "Info (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
+#else /* !DEBUG */
+#define INFO(...)
+#endif /* DEBUG*/
 
 #define ERROR(fmt, ...) \
-    fprintf(stdout, "Error (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
+    fprintf(stderr, "Error (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__)
 
 #define FATAL(fmt, ...) \
     { \
-        fprintf(stdout, "Fatal (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__); \
+        fprintf(stderr, "Fatal (%s - %d): " fmt "\n", __FILE__, __LINE__, ##__VA_ARGS__); \
         abort(); \
     }
-#else /* DEBUG */
-#define INFO(...)
-#define ERROR(...)
-#define FATAL(...)
-#endif /* DEBUG*/
 
 #define PROJECT_ID              'M'
 #define PATHNAMESIZE            256
diff --git a/tests/psa-client-server/psasim/src/client.c b/tests/psa-client-server/psasim/src/client.c
index a8c9e08..4c63abf 100644
--- a/tests/psa-client-server/psasim/src/client.c
+++ b/tests/psa-client-server/psasim/src/client.c
@@ -7,12 +7,14 @@
 
 /* Includes from mbedtls */
 #include "psa/crypto.h"
+#include "util.h"
 
 int main()
 {
     /* psa_crypto_init() connects to the server */
     psa_status_t status = psa_crypto_init();
     if (status != PSA_SUCCESS) {
+        ERROR("psa_crypto_init returned %d", status);
         return 1;
     }
 
diff --git a/tests/psa-client-server/psasim/src/psa_ff_client.c b/tests/psa-client-server/psasim/src/psa_ff_client.c
index 21a43b3..0d6bbf3 100644
--- a/tests/psa-client-server/psasim/src/psa_ff_client.c
+++ b/tests/psa-client-server/psasim/src/psa_ff_client.c
@@ -199,7 +199,6 @@
             default:
                 FATAL("   ERROR: unknown internal message type: %ld",
                       response.message_type);
-                return ret;
         }
     }
 }
@@ -301,10 +300,10 @@
                 handles[idx].valid = 1;
                 return idx;
             } else {
-                INFO("Server didn't like you");
+                ERROR("Server didn't like you");
             }
         } else {
-            INFO("Couldn't contact RoT service. Does it exist?");
+            ERROR("Couldn't contact RoT service. Does it exist?");
 
             if (__psa_ff_client_security_state == 0) {
                 ERROR("Invalid SID");
@@ -339,7 +338,7 @@
             }
         }
     }
-    INFO("psa_version failed: does the service exist?");
+    ERROR("psa_version failed: does the service exist?");
     return PSA_VERSION_NONE;
 }
 
diff --git a/tests/psa-client-server/psasim/src/psa_sim_crypto_client.c b/tests/psa-client-server/psasim/src/psa_sim_crypto_client.c
index 2ffb615..758e9b2 100644
--- a/tests/psa-client-server/psasim/src/psa_sim_crypto_client.c
+++ b/tests/psa-client-server/psasim/src/psa_sim_crypto_client.c
@@ -22,7 +22,7 @@
 #include "psa/crypto.h"
 
 #define CLIENT_PRINT(fmt, ...) \
-    PRINT("Client: " fmt, ##__VA_ARGS__)
+    INFO("Client: " fmt, ##__VA_ARGS__)
 
 static psa_handle_t handle = -1;
 
diff --git a/tests/psa-client-server/psasim/src/psa_sim_generate.pl b/tests/psa-client-server/psasim/src/psa_sim_generate.pl
index ee3894f..15f5794 100755
--- a/tests/psa-client-server/psasim/src/psa_sim_generate.pl
+++ b/tests/psa-client-server/psasim/src/psa_sim_generate.pl
@@ -302,7 +302,7 @@
 #include "psa/crypto.h"
 
 #define CLIENT_PRINT(fmt, ...) \
-    PRINT("Client: " fmt, ##__VA_ARGS__)
+    INFO("Client: " fmt, ##__VA_ARGS__)
 
 static psa_handle_t handle = -1;
 
diff --git a/tests/psa-client-server/psasim/src/psa_sim_serialise.c b/tests/psa-client-server/psasim/src/psa_sim_serialise.c
index 9e8c38b..aaf47db 100644
--- a/tests/psa-client-server/psasim/src/psa_sim_serialise.c
+++ b/tests/psa-client-server/psasim/src/psa_sim_serialise.c
@@ -10,6 +10,7 @@
  */
 
 #include "psa_sim_serialise.h"
+#include "util.h"
 #include <stdlib.h>
 #include <string.h>
 
@@ -71,8 +72,7 @@
 {
     psasim_client_handle_t handle = next_hash_operation_handle++;
     if (next_hash_operation_handle == 0) {      /* wrapped around */
-        fprintf(stderr, "MAX HASH HANDLES REACHED\n");
-        exit(1);
+        FATAL("Hash operation handle wrapped");
     }
 
     for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) {
@@ -82,6 +82,8 @@
         }
     }
 
+    ERROR("All slots are currently used. Unable to allocate a new one.");
+
     return -1;  /* all in use */
 }
 
@@ -94,7 +96,9 @@
         }
     }
 
-    return -1;  /* all in use */
+    ERROR("Unable to find slot by handle %u", handle);
+
+    return -1;  /* not found */
 }
 
 static psa_aead_operation_t aead_operations[MAX_LIVE_HANDLES_PER_CLASS];
@@ -106,8 +110,7 @@
 {
     psasim_client_handle_t handle = next_aead_operation_handle++;
     if (next_aead_operation_handle == 0) {      /* wrapped around */
-        fprintf(stderr, "MAX HASH HANDLES REACHED\n");
-        exit(1);
+        FATAL("Aead operation handle wrapped");
     }
 
     for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) {
@@ -117,6 +120,8 @@
         }
     }
 
+    ERROR("All slots are currently used. Unable to allocate a new one.");
+
     return -1;  /* all in use */
 }
 
@@ -129,7 +134,9 @@
         }
     }
 
-    return -1;  /* all in use */
+    ERROR("Unable to find slot by handle %u", handle);
+
+    return -1;  /* not found */
 }
 
 size_t psasim_serialise_begin_needs(void)
diff --git a/tests/psa-client-server/psasim/src/psa_sim_serialise.pl b/tests/psa-client-server/psasim/src/psa_sim_serialise.pl
index e09bb81..c795fd4 100755
--- a/tests/psa-client-server/psasim/src/psa_sim_serialise.pl
+++ b/tests/psa-client-server/psasim/src/psa_sim_serialise.pl
@@ -724,6 +724,7 @@
  */
 
 #include "psa_sim_serialise.h"
+#include "util.h"
 #include <stdlib.h>
 #include <string.h>
 
@@ -788,6 +789,8 @@
 {
     my ($type) = @_;    # e.g. 'hash' rather than 'psa_hash_operation_t'
 
+    my $utype = ucfirst($type);
+
     return <<EOF;
 
 static psa_${type}_operation_t ${type}_operations[MAX_LIVE_HANDLES_PER_CLASS];
@@ -799,8 +802,7 @@
 {
     psasim_client_handle_t handle = next_${type}_operation_handle++;
     if (next_${type}_operation_handle == 0) {      /* wrapped around */
-        fprintf(stderr, "MAX HASH HANDLES REACHED\\n");
-        exit(1);
+        FATAL("$utype operation handle wrapped");
     }
 
     for (ssize_t i = 0; i < MAX_LIVE_HANDLES_PER_CLASS; i++) {
@@ -810,6 +812,8 @@
         }
     }
 
+    ERROR("All slots are currently used. Unable to allocate a new one.");
+
     return -1;  /* all in use */
 }
 
@@ -822,7 +826,9 @@
         }
     }
 
-    return -1;  /* all in use */
+    ERROR("Unable to find slot by handle %u", handle);
+
+    return -1;  /* not found */
 }
 EOF
 }