fix checkers
authorLaurent Mazet <mazet@softndesign.org>
Fri, 25 Apr 2025 20:03:10 +0000 (22:03 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Fri, 25 Apr 2025 20:03:10 +0000 (22:03 +0200)
morep_valid.c
parse.c
parse.h
script-cross_crypto.eth

index 40155d8addfa28196ae357d0b644594798101ff4..7aeb5175bf42594dc333dd0fd205f91a87c110f9 100644 (file)
@@ -329,6 +329,8 @@ int main (int argc, char **argv)
             else if ((rxlen != payload.data_len) ||
                     ((memcmp (rxpayload, payload.data, rxlen) != 0))) {
                 VERBOSE (morep, WARNING, PRINTF ("R%s SEQ=%d MSG=%d: payloads differed %d/%d\n", comm->etype, seqnum, rxmsgtype, payload.data_len, rxlen));
+            } else {
+                VERBOSE (morep, INFO, PRINTF ("R%s SEQ=%d MSG=%d: payloads matched [%d]\n", comm->etype, seqnum, rxmsgtype, rxlen));
             }
             if (log) {
                 print_message (log, comm->etype, 0, rxmsgtype, seqnum, rxpayload, rxlen);
diff --git a/parse.c b/parse.c
index a23c4768878be6df53eb1668b090044d49e1601c..27a07f4c75cb4998e781e0cf04c45cf23d93d2e7 100644 (file)
--- a/parse.c
+++ b/parse.c
@@ -85,13 +85,13 @@ int parse_array (char *str, uint8_t *buffer, int maxlen)
         }
     }
 
-    /* hexa payload: xxxxxx [0-9a-fA-F] */
+    /* hexa payload: xx:xx:xx [0-9a-fA-F] */
     else {
         if (maxlen * 3 - 1 < slen) {
             slen = maxlen * 3 - 1;
         }
         if (slen % 3 == 2) {
-            VERBOSE (morep, TRACE, PRINTF ("hexa payload: xxxxxx\n"));
+            VERBOSE (morep, TRACE, PRINTF ("hexa payload: xx:xx:xx\n"));
             len = slen / 3 + 1;
             if (len > maxlen) {
                 VERBOSE (morep, WARNING, PRINTF ("string too large (%d > %d) for '%s'\n", len, maxlen, str));
diff --git a/parse.h b/parse.h
index 398bfd036079118d25377fbd724a1079a84979e1..0a3e06dd418af8ffc8495e52d2868d7e0d4354d0 100644 (file)
--- a/parse.h
+++ b/parse.h
@@ -58,10 +58,10 @@ __BEGIN_DECLS
 */
 #define BEGIN_PARSE(line)                                  \
 {                                                          \
-    int p = 0;                                             \
     int rc = 0;                                            \
     char *pt = line;                                       \
     while (1) {                                            \
+        int p = 0;                                         \
         /* find variable */                                \
         TEST_CHARS (pt, " \t", 0);                         \
         char *var = pt;                                    \
@@ -503,6 +503,7 @@ __BEGIN_DECLS
 */
 #define BEGIN_CHECK(fields) \
     int _fields = fields;   \
+    VERBOSE (morep, TRACE, PRINTF ("fields: 0x%04x\n", 0xffff & fields)); \
     int p = 0;              \
     int rc = 0;
 
@@ -515,10 +516,14 @@ __BEGIN_DECLS
    @param first first value
    @param second second value
 */
-#define CHECK_INT(name, first, second)                                                   \
-    if ((_fields & (1 << (++p))) && (first != second)) {                                 \
-        VERBOSE (morep, WARNING, PRINTF ("%s differed %d / %d\n", name, first, second)); \
-        rc = 1;                                                                          \
+#define CHECK_INT(name, first, second)                                                       \
+    if (_fields & (1 << (++p))) {                                                            \
+        if (first != second) {                                                               \
+            VERBOSE (morep, WARNING, PRINTF ("%s differed %d / %d\n", name, first, second)); \
+            rc = 1;                                                                          \
+        } else {                                                                             \
+            VERBOSE (morep, INFO, PRINTF ("%s matched %d\n", name, first));                  \
+        }                                                                                    \
     }
 
 /**
@@ -533,9 +538,11 @@ __BEGIN_DECLS
 #define CHECK_DOUBLE(name, first, second)                                                        \
     if (_fields & (1 << (++p))) {                                                                \
         if (first == 0) {                                                                        \
-            if (first ! second) {                                                                \
+            if (first != second) {                                                               \
                 VERBOSE (morep, WARNING, PRINTF ("%s differed %g / %g\n", name, first, second)); \
                 rc = 1;                                                                          \
+            } else {                                                                             \
+                VERBOSE (morep, INFO, PRINTF ("%s matched %g\n", name, first));                  \
             }                                                                                    \
         } else {                                                                                 \
             double diff = (first - second) / first;                                              \
@@ -545,6 +552,8 @@ __BEGIN_DECLS
             if (diff > TOLERANCE) {                                                              \
                 VERBOSE (morep, WARNING, PRINTF ("%s differed %g / %g\n", name, first, second)); \
                 rc = 1;                                                                          \
+            } else {                                                                             \
+                VERBOSE (morep, INFO, PRINTF ("%s matched %g\n", name, first));                  \
             }                                                                                    \
         }                                                                                        \
     }
@@ -558,10 +567,15 @@ __BEGIN_DECLS
    @param first first value
    @param second second value
 */
-#define CHECK_TAB(name, first, second)                                          \
-    if ((_fields & (1 << (++p))) && (memcmp (first, second, sizeof (first)))) { \
-        VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name));               \
-        rc = 1;                                                                 \
+#define CHECK_TAB(name, first, second)                                      \
+    if (_fields & (1 << (++p))) {                                           \
+        int len = sizeof (first);                                           \
+        if (memcmp (first, second, len)) {                                  \
+            VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name));       \
+            rc = 1;                                                         \
+        } else {                                                            \
+            VERBOSE (morep, INFO, PRINTF ("%s matched [%d]\n", name, len)); \
+        }                                                                   \
     }
 
 /**
@@ -573,15 +587,17 @@ __BEGIN_DECLS
    @param first first value
    @param second second value
 */
-#define CHECK_ARRAY(name, first, second)                              \
-    if (_fields & (1 << (++p))) {                                     \
-        if (first##_len != second##_len) {                            \
+#define CHECK_ARRAY(name, first, second)                                            \
+    if (_fields & (1 << (++p))) {                                                   \
+        if (first##_len != second##_len) {                                          \
             VERBOSE (morep, WARNING, PRINTF ("%s size differed %d / %d\n", name, first##_len, second##_len)); \
-            rc = 1;                                                   \
-        } else if (memcmp (first, second, first##_len)) {             \
-            VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name)); \
-            rc = 1;                                                   \
-        }                                                             \
+            rc = 1;                                                                 \
+        } else if (memcmp (first, second, first##_len)) {                           \
+            VERBOSE (morep, WARNING, PRINTF ("%s differed\n", name));               \
+            rc = 1;                                                                 \
+        } else {                                                                    \
+            VERBOSE (morep, INFO, PRINTF ("%s matched [%d]\n", name, first##_len)); \
+        }                                                                           \
     }
 
 /**
index 63cc8e5ada5b0f4baea64672c64f17e12822876e..57a10bbc5ec6edbae667b40e98352c78cbde76d9 100644 (file)
@@ -10,4 +10,4 @@ T:CROSS_CRYPTO DECRYPT_CROSS_ASYNC CHANNELID=5 BYPASSLEN=0 DATA=@script-local_cr
 R:CROSS_CRYPTO DECRYPT_CROSS_ASYNC DATA=@script-local_crypto.eth
 
 T:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC CHANNELID=0 BYPASSLEN=4 BYPASS=11:22:33:44 DATA=@script-cross_crypto.eth
-R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC
+R:CROSS_CRYPTO DECRYPTED_CROSS_ASYNC DATA=@script-cross_crypto.eth CHANNELID=0