Refactor strtod tests
[glibc.git] / math / test-signgam-main.c
blob5e65375397c0c35d7fabacea314f82af4ecc7e2e
1 /* Test lgamma functions do not set signgam for ISO C.
2 Copyright (C) 2015-2016 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <http://www.gnu.org/licenses/>. */
19 #undef _LIBC
20 #undef __LIBC_INTERNAL_MATH_INLINES
21 #undef _GNU_SOURCE
22 #define _ISOMAC
24 #include <math.h>
25 #include <stdio.h>
27 #define INITVAL ((TYPE) -1 / 3)
29 #if DO_INIT
30 TYPE signgam = INITVAL;
31 #else
32 TYPE signgam;
33 #endif
35 #define RUN_TESTS(FUNC, TYPE) \
36 do \
37 { \
38 volatile TYPE a, b, c __attribute__ ((unused)); \
39 a = 0.5; \
40 b = -0.5; \
41 signgam = INITVAL; \
42 c = FUNC (a); \
43 if (signgam == INITVAL) \
44 puts ("PASS: " #FUNC " (0.5) setting signgam"); \
45 else \
46 { \
47 puts ("FAIL: " #FUNC " (0.5) setting signgam"); \
48 result = 1; \
49 } \
50 signgam = INITVAL; \
51 c = FUNC (b); \
52 if (signgam == INITVAL) \
53 puts ("PASS: " #FUNC " (-0.5) setting signgam"); \
54 else \
55 { \
56 puts ("FAIL: " #FUNC " (-0.5) setting signgam"); \
57 result = 1; \
58 } \
59 } \
60 while (0)
62 int
63 main (void)
65 int result = 0;
66 RUN_TESTS (lgammaf, float);
67 RUN_TESTS (lgamma, double);
68 #ifndef NO_LONG_DOUBLE
69 RUN_TESTS (lgammal, long double);
70 #endif
71 return result;