diff options
Diffstat (limited to 'support/support_test_compare_string.c')
-rw-r--r-- | support/support_test_compare_string.c | 83 |
1 files changed, 10 insertions, 73 deletions
diff --git a/support/support_test_compare_string.c b/support/support_test_compare_string.c index cbeaf7b1ee..12bafe43d4 100644 --- a/support/support_test_compare_string.c +++ b/support/support_test_compare_string.c @@ -16,76 +16,13 @@ License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <support/check.h> -#include <support/support.h> -#include <support/xmemstream.h> - -static void -report_length (const char *what, const char *str, size_t length) -{ - if (str == NULL) - printf (" %s string: NULL\n", what); - else - printf (" %s string: %zu bytes\n", what, length); -} - -static void -report_string (const char *what, const unsigned char *blob, - size_t length, const char *expr) -{ - if (length > 0) - { - printf (" %s (evaluated from %s):\n", what, expr); - char *quoted = support_quote_blob (blob, length); - printf (" \"%s\"\n", quoted); - free (quoted); - - fputs (" ", stdout); - for (size_t i = 0; i < length; ++i) - printf (" %02X", blob[i]); - putc ('\n', stdout); - } -} - -static size_t -string_length_or_zero (const char *str) -{ - if (str == NULL) - return 0; - else - return strlen (str); -} - -void -support_test_compare_string (const char *left, const char *right, - const char *file, int line, - const char *left_expr, const char *right_expr) -{ - /* Two null pointers are accepted. */ - if (left == NULL && right == NULL) - return; - - size_t left_length = string_length_or_zero (left); - size_t right_length = string_length_or_zero (right); - - if (left_length != right_length || left == NULL || right == NULL - || memcmp (left, right, left_length) != 0) - { - support_record_failure (); - printf ("%s:%d: error: string comparison failed\n", file, line); - if (left_length == right_length && right != NULL && left != NULL) - printf (" string length: %zu bytes\n", left_length); - else - { - report_length ("left", left, left_length); - report_length ("right", right, right_length); - } - report_string ("left", (const unsigned char *) left, - left_length, left_expr); - report_string ("right", (const unsigned char *) right, - right_length, right_expr); - } -} +#define CHAR char +#define UCHAR unsigned char +#define LPREFIX "" +#define STRLEN strlen +#define MEMCMP memcmp +#define SUPPORT_QUOTE_BLOB support_quote_blob +#define SUPPORT_TEST_COMPARE_STRING support_test_compare_string +#define WIDE 0 + +#include "support_test_compare_string_main.c" |