[v2,1/2] Convert tst-efgcvt to the new test framework

Message ID 20181101193412.3073-2-gabriel@inconstante.eti.br
State Committed
Headers

Commit Message

Gabriel F. T. Gomes Nov. 1, 2018, 7:34 p.m. UTC
  New since v1.

-- 8< --
The function do_test in tst-efgcvt.c increments an error counter for
each error that it finds, then returns it to the test framework.
However, the test framework does not expect an error count as return,
but zero for a passing test, one for a failing test, or 77 for an
unsupported test.  Alternatively, the framework provides the function
support_record_failure that records errors, which then allows the test
program to return zero unconditionally.

This patch removes the error counter, replaces each increment of the
counter with a call to support_record_failure, and makes do_test
unconditionally return zero.

Tested for powerpc64le (as-is and with a patched results table to check
that the error reporting actually works).

	* misc/tst-efgcvt.c: Include support/check.h and
	support/test-driver.c.
	(error_count): Remove.
	(output_error): Replace increments to error_count with calls to
	support_record_failure.
	(output_r_error): Likewise.
	(special): Likewise.
	(do_test): Unconditionally return zero.
---
 misc/tst-efgcvt.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)
  

Comments

Florian Weimer Nov. 1, 2018, 8:33 p.m. UTC | #1
* Gabriel F. T. Gomes:

> 	* misc/tst-efgcvt.c: Include support/check.h and
> 	support/test-driver.c.
> 	(error_count): Remove.
> 	(output_error): Replace increments to error_count with calls to
> 	support_record_failure.
> 	(output_r_error): Likewise.
> 	(special): Likewise.
> 	(do_test): Unconditionally return zero.

Looks good.  Thanks.
  
Gabriel F. T. Gomes Nov. 9, 2018, 6:26 p.m. UTC | #2
On Thu, 01 Nov 2018, Florian Weimer wrote:

>* Gabriel F. T. Gomes:
>
>> 	* misc/tst-efgcvt.c: Include support/check.h and
>> 	support/test-driver.c.
>> 	(error_count): Remove.
>> 	(output_error): Replace increments to error_count with calls to
>> 	support_record_failure.
>> 	(output_r_error): Likewise.
>> 	(special): Likewise.
>> 	(do_test): Unconditionally return zero.  
>
>Looks good.  Thanks.

Thanks.  Now committed.
  

Patch

diff --git a/misc/tst-efgcvt.c b/misc/tst-efgcvt.c
index bb716d5198..5a598f49e3 100644
--- a/misc/tst-efgcvt.c
+++ b/misc/tst-efgcvt.c
@@ -25,7 +25,7 @@ 
 #include <stdlib.h>
 #include <string.h>
 
-int error_count;
+#include <support/check.h>
 
 typedef struct
 {
@@ -101,7 +101,7 @@  output_error (const char *name, double value, int ndigit,
 	  res_p, res_decpt, res_sign);
   printf ("Should be  p: \"%s\", decpt: %d, sign: %d\n",
 	  exp_p, exp_decpt, exp_sign);
-  ++error_count;
+  support_record_failure ();
 }
 
 
@@ -116,7 +116,7 @@  output_r_error (const char *name, double value, int ndigit,
 	  res_p, res_decpt, res_sign, res_return);
   printf ("Should be  buf: \"%s\", decpt: %d, sign: %d\n",
 	  exp_p, exp_decpt, exp_sign);
-  ++error_count;
+  support_record_failure ();
 }
 
 static void
@@ -189,13 +189,13 @@  special (void)
   if (res == 0)
     {
       printf ("ecvt_r with a too small buffer was succesful.\n");
-      ++error_count;
+      support_record_failure ();
     }
   res = fcvt_r (123.456, 10, &decpt, &sign, buf, 1);
   if (res == 0)
     {
       printf ("fcvt_r with a too small buffer was succesful.\n");
-      ++error_count;
+      support_record_failure ();
     }
 }
 
@@ -209,8 +209,7 @@  do_test (void)
   test_r (fcvt_tests, fcvt_r, "fcvt_r");
   special ();
 
-  return error_count;
+  return 0;
 }
 
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>