From ebc6a12111c6133b595cb270993687c8e13d2f5d Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Wed, 3 Oct 2001 08:02:08 +0000 Subject: [PATCH] Test floatnum_new(). svn path=/trunk/yasm/; revision=260 --- libyasm/tests/floatnum_test.c | 77 +++++++++++++++++++++++++++++++++-- src/tests/floatnum_test.c | 77 +++++++++++++++++++++++++++++++++-- 2 files changed, 148 insertions(+), 6 deletions(-) diff --git a/libyasm/tests/floatnum_test.c b/libyasm/tests/floatnum_test.c index e7e86749..b3c5c31a 100644 --- a/libyasm/tests/floatnum_test.c +++ b/libyasm/tests/floatnum_test.c @@ -148,6 +148,75 @@ static Init_Entry normalized_edgecase_vals[] = { static floatnum *flt; +/* failure messages */ +static char ret_msg[1024], result_msg[1024]; + +static void +new_setup(Init_Entry *vals, int i) +{ + flt = floatnum_new(vals[i].ascii); + strcpy(result_msg, vals[i].ascii); + strcat(result_msg, ": incorrect "); +} + +static int +new_check_flt(Init_Entry *val) +{ + unsigned char *mantissa; + int i, result = 0; + unsigned int len; + + mantissa = BitVector_Block_Read(flt->mantissa, &len); + for (i=1;imantissa[i]) + result = 1; + free(mantissa); + if (result) { + strcat(result_msg, "mantissa"); + return 1; + } + + if (flt->exponent != val->exponent) { + strcat(result_msg, "exponent"); + return 1; + } + if (flt->sign != val->sign) { + strcat(result_msg, "sign"); + return 1; + } + if (flt->flags != val->flags) { + strcat(result_msg, "flags"); + return 1; + } + return 0; +} + +START_TEST(test_new_normalized) +{ + Init_Entry *vals = normalized_vals; + int i, num = sizeof(normalized_vals)/sizeof(Init_Entry); + + for (i=0; imantissa, &len); + for (i=1;imantissa[i]) + result = 1; + free(mantissa); + if (result) { + strcat(result_msg, "mantissa"); + return 1; + } + + if (flt->exponent != val->exponent) { + strcat(result_msg, "exponent"); + return 1; + } + if (flt->sign != val->sign) { + strcat(result_msg, "sign"); + return 1; + } + if (flt->flags != val->flags) { + strcat(result_msg, "flags"); + return 1; + } + return 0; +} + +START_TEST(test_new_normalized) +{ + Init_Entry *vals = normalized_vals; + int i, num = sizeof(normalized_vals)/sizeof(Init_Entry); + + for (i=0; i