1276478Sngie/* $NetBSD: t_isnan.c,v 1.5 2014/11/04 00:20:19 justin Exp $ */ 2272343Sngie 3272343Sngie/* 4272343Sngie * This file is in the Public Domain. 5272343Sngie * 6272343Sngie * The nan test is blatently copied by Simon Burge from the infinity 7272343Sngie * test by Ben Harris. 8272343Sngie */ 9272343Sngie 10272343Sngie#include <sys/param.h> 11272343Sngie 12272343Sngie#include <atf-c.h> 13272343Sngie 14272343Sngie#include <math.h> 15272343Sngie#include <string.h> 16272343Sngie 17272343SngieATF_TC(isnan_basic); 18272343SngieATF_TC_HEAD(isnan_basic, tc) 19272343Sngie{ 20272343Sngie atf_tc_set_md_var(tc, "descr", "Verify that isnan(3) works"); 21272343Sngie} 22272343Sngie 23272343SngieATF_TC_BODY(isnan_basic, tc) 24272343Sngie{ 25272343Sngie#if defined(__m68k__) 26272343Sngie atf_tc_skip("Test not applicable on " MACHINE_ARCH); 27272343Sngie#endif 28272343Sngie 29272343Sngie#ifdef NAN 30272343Sngie /* NAN is meant to be a (float)NaN. */ 31272343Sngie ATF_CHECK(isnan(NAN) != 0); 32272343Sngie ATF_CHECK(isnan((double)NAN) != 0); 33272343Sngie#else 34272343Sngie atf_tc_skip("Test not applicable"); 35272343Sngie#endif 36272343Sngie} 37272343Sngie 38272343SngieATF_TC(isinf_basic); 39272343SngieATF_TC_HEAD(isinf_basic, tc) 40272343Sngie{ 41272343Sngie atf_tc_set_md_var(tc, "descr", "Verify that isinf(3) works"); 42272343Sngie} 43272343Sngie 44272343SngieATF_TC_BODY(isinf_basic, tc) 45272343Sngie{ 46272343Sngie#if defined(__m68k__) 47272343Sngie atf_tc_skip("Test not applicable on " MACHINE_ARCH); 48272343Sngie#endif 49272343Sngie 50272343Sngie /* HUGE_VAL is meant to be an infinity. */ 51272343Sngie ATF_CHECK(isinf(HUGE_VAL) != 0); 52272343Sngie 53272343Sngie /* HUGE_VALF is the float analog of HUGE_VAL. */ 54272343Sngie ATF_CHECK(isinf(HUGE_VALF) != 0); 55272343Sngie 56272343Sngie /* HUGE_VALL is the long double analog of HUGE_VAL. */ 57272343Sngie ATF_CHECK(isinf(HUGE_VALL) != 0); 58272343Sngie} 59272343Sngie 60272343SngieATF_TP_ADD_TCS(tp) 61272343Sngie{ 62272343Sngie ATF_TP_ADD_TC(tp, isnan_basic); 63272343Sngie ATF_TP_ADD_TC(tp, isinf_basic); 64272343Sngie 65272343Sngie return atf_no_error(); 66272343Sngie} 67