summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2009-02-17 13:05:04 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2009-02-17 13:05:04 +0000
commit8a7390cdc0a5de7e5d6be4aee2ac5fb30f5e39f4 (patch)
tree1a75cfd99de778b669931551c228b77f20579188
parent050aa62a226723e9b8420a41edb821aec9bb1ff9 (diff)
test/math/compile_test.c: add compile testing of (some) floats
-rw-r--r--test/math/compile_test.c69
1 files changed, 67 insertions, 2 deletions
diff --git a/test/math/compile_test.c b/test/math/compile_test.c
index 2e7be1a93..4647b2381 100644
--- a/test/math/compile_test.c
+++ b/test/math/compile_test.c
@@ -1,6 +1,71 @@
#include <math.h>
-int testl(long double long_double_x, int int_x, long long_x)
+static int testf(float float_x, long double long_double_x, /*float complex float_complex_x,*/ int int_x, long long_x)
+{
+int r = 0;
+r += acosf(float_x);
+r += acoshf(float_x);
+r += asinf(float_x);
+r += asinhf(float_x);
+r += atan2f(float_x, float_x);
+r += atanf(float_x);
+r += atanhf(float_x);
+/*r += cargf(float_complex_x); - will fight with complex numbers later */
+r += cbrtf(float_x);
+r += ceilf(float_x);
+r += copysignf(float_x, float_x);
+r += cosf(float_x);
+r += coshf(float_x);
+r += erfcf(float_x);
+r += erff(float_x);
+/*r += exp2f(float_x); - uclibc does not have it (yet?) */
+r += expf(float_x);
+r += expm1f(float_x);
+r += fabsf(float_x);
+/*r += fdimf(float_x, float_x); - uclibc does not have it (yet?) */
+r += floorf(float_x);
+/*r += fmaf(float_x, float_x, float_x); - uclibc does not have it (yet?) */
+/*r += fmaxf(float_x, float_x); - uclibc does not have it (yet?) */
+/*r += fminf(float_x, float_x); - uclibc does not have it (yet?) */
+r += fmodf(float_x, float_x);
+r += frexpf(float_x, &int_x);
+r += gammaf(float_x);
+r += hypotf(float_x, float_x);
+r += ilogbf(float_x);
+r += ldexpf(float_x, int_x);
+r += lgammaf(float_x);
+r += llrintf(float_x);
+r += llroundf(float_x);
+r += log10f(float_x);
+r += log1pf(float_x);
+/*r += log2f(float_x); - uclibc does not have it (yet?) */
+r += logbf(float_x);
+r += logf(float_x);
+r += lrintf(float_x);
+r += lroundf(float_x);
+r += modff(float_x, &float_x);
+/*r += nearbyintf(float_x); - uclibc does not have it (yet?) */
+/*r += nexttowardf(float_x, long_double_x); - uclibc does not have it (yet?) */
+r += powf(float_x, float_x);
+r += remainderf(float_x, float_x);
+/*r += remquof(float_x, float_x, &int_x); - uclibc does not have it (yet?) */
+r += rintf(float_x);
+r += roundf(float_x);
+r += scalbf(float_x, float_x);
+/*r += scalblnf(float_x, long_x); - uclibc does not have it (yet?) */
+r += scalbnf(float_x, int_x);
+r += significandf(float_x);
+r += sinf(float_x);
+r += sinhf(float_x);
+r += sqrtf(float_x);
+r += tanf(float_x);
+r += tanhf(float_x);
+/*r += tgammaf(float_x); - uclibc does not have it (yet?) */
+r += truncf(float_x);
+return r;
+}
+
+static int testl(long double long_double_x, int int_x, long long_x)
{
int r = 0;
r += __finitel(long_double_x);
@@ -69,5 +134,5 @@ return r;
int main(int argc, char **argv)
{
- return (long) &testl;
+ return (long) &testf + (long) &testl;
}