diff options
Diffstat (limited to 'test')
43 files changed, 820 insertions, 1034 deletions
diff --git a/test/Rules.mak b/test/Rules.mak index 4e76ed3..b81eb19 100644 --- a/test/Rules.mak +++ b/test/Rules.mak @@ -21,6 +21,7 @@ TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \ -e 's/sun.*/sparc/' -e 's/sparc.*/sparc/' \ -e 's/sa110/arm/' -e 's/arm.*/arm/g' \ -e 's/m68k.*/m68k/' \ + -e 's/nds32.*/nds32/' \ -e 's/parisc.*/hppa/' \ -e 's/ppc/powerpc/g' \ -e 's/sh[234].*/sh/' \ diff --git a/test/iconv/tst-iconv5.c b/test/iconv/tst-iconv5.c index ff3fde5..f8f4fb5 100644 --- a/test/iconv/tst-iconv5.c +++ b/test/iconv/tst-iconv5.c @@ -59,7 +59,7 @@ static int convert (const char *tocode, const char *fromcode, char *inbufp, size_t inbytesleft, char *outbufp, size_t outbytesleft) { - iconv_t *ic; + iconv_t ic; size_t outbytes = outbytesleft; int ret; diff --git a/test/malloc/malloc.c b/test/malloc/malloc.c index e24ea3f..24dc69b 100644 --- a/test/malloc/malloc.c +++ b/test/malloc/malloc.c @@ -4,8 +4,8 @@ #include <string.h> #include <stdio.h> -#define N_PTRS 1000 -#define N_ALLOCS 1000 +#define N_PTRS 100 +#define N_ALLOCS 100 #define MAX_SIZE 0x10000 #define random_size() (random()%MAX_SIZE) diff --git a/test/math/libm-test-ulps-csky b/test/math/libm-test-ulps-csky new file mode 100644 index 0000000..46b2ac5 --- /dev/null +++ b/test/math/libm-test-ulps-csky @@ -0,0 +1,145 @@ +# Begin of automatic generation + +# cos +Test "cos (M_PI_6l * 2.0) == 0.5": +double: 1 +idouble: 1 +Test "cos (M_PI_6l * 4.0) == -0.5": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +# erf +Test "erf (0.75) == 0.711155633653515131598937834591410777": +double: 1 +idouble: 1 +Test "erf (1.25) == 0.922900128256458230136523481197281140": +double: 1 +idouble: 1 + +# erfc +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8": +double: 1 +idouble: 1 + +# exp +Test "exp (1) == e": +double: 1 +idouble: 1 + +# expm1 +Test "expm1 (0.75) == 1.11700001661267466854536981983709561": +double: 1 +idouble: 1 + +# hypot +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 + +# lgamma +Test "lgamma (0.7) == 0.260867246531666514385732417016759578": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +# log10 +Test "log10 (0.75) == -0.124938736608299953132449886193870744": +double: 1 +idouble: 1 +Test "log10 (e) == log10(e)": +float: 1 +ifloat: 1 + +# tgamma +Test "tgamma (-0.5) == -2 sqrt (pi)": +double: 1 +idouble: 1 +Test "tgamma (0.7) == 1.29805533264755778568117117915281162": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# Maximal error of functions: +Function: "cos": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +Function: "erf": +double: 1 +idouble: 1 + +Function: "erfc": +double: 1 +idouble: 1 + +Function: "exp": +double: 1 +idouble: 1 + +Function: "expm1": +double: 1 +idouble: 1 + +Function: "hypot": +float: 1 +ifloat: 1 + +Function: "lgamma": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +Function: "log": +float: 1 +ifloat: 1 + +Function: "log10": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "tan": +double: 1 +idouble: 1 + +Function: "tgamma": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# end of automatic generation diff --git a/test/math/libm-test-ulps-nds32 b/test/math/libm-test-ulps-nds32 new file mode 100644 index 0000000..46b2ac5 --- /dev/null +++ b/test/math/libm-test-ulps-nds32 @@ -0,0 +1,145 @@ +# Begin of automatic generation + +# cos +Test "cos (M_PI_6l * 2.0) == 0.5": +double: 1 +idouble: 1 +Test "cos (M_PI_6l * 4.0) == -0.5": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +# erf +Test "erf (0.75) == 0.711155633653515131598937834591410777": +double: 1 +idouble: 1 +Test "erf (1.25) == 0.922900128256458230136523481197281140": +double: 1 +idouble: 1 + +# erfc +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8": +double: 1 +idouble: 1 + +# exp +Test "exp (1) == e": +double: 1 +idouble: 1 + +# expm1 +Test "expm1 (0.75) == 1.11700001661267466854536981983709561": +double: 1 +idouble: 1 + +# hypot +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271": +float: 1 +ifloat: 1 + +# lgamma +Test "lgamma (0.7) == 0.260867246531666514385732417016759578": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +# log10 +Test "log10 (0.75) == -0.124938736608299953132449886193870744": +double: 1 +idouble: 1 +Test "log10 (e) == log10(e)": +float: 1 +ifloat: 1 + +# tgamma +Test "tgamma (-0.5) == -2 sqrt (pi)": +double: 1 +idouble: 1 +Test "tgamma (0.7) == 1.29805533264755778568117117915281162": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# Maximal error of functions: +Function: "cos": +double: 2 +float: 1 +idouble: 2 +ifloat: 1 + +Function: "erf": +double: 1 +idouble: 1 + +Function: "erfc": +double: 1 +idouble: 1 + +Function: "exp": +double: 1 +idouble: 1 + +Function: "expm1": +double: 1 +idouble: 1 + +Function: "hypot": +float: 1 +ifloat: 1 + +Function: "lgamma": +double: 1 +float: 2 +idouble: 1 +ifloat: 2 + +Function: "log": +float: 1 +ifloat: 1 + +Function: "log10": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +Function: "tan": +double: 1 +idouble: 1 + +Function: "tgamma": +double: 1 +float: 1 +idouble: 1 +ifloat: 1 + +# end of automatic generation diff --git a/test/math/libm-test-ulps-sh b/test/math/libm-test-ulps-sh index 4831f48..a6f0c2d 100644 --- a/test/math/libm-test-ulps-sh +++ b/test/math/libm-test-ulps-sh @@ -1,1094 +1,92 @@ # Begin of automatic generation -# asin -Test "asin (-0.5) == -pi/6": -float: 2 -ifloat: 2 -Test "asin (0.5) == pi/6": -float: 2 -ifloat: 2 -Test "asin (0.7) == 0.7753974966107530637": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -# atan2 -Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267": -float: 3 -ifloat: 3 -Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267": -float: 3 -ifloat: 3 -Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736": -float: 4 -ifloat: 4 - -# atanh -Test "atanh (0.7) == 0.8673005276940531944": -double: 1 -idouble: 1 - -# cabs -Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554": -double: 1 -idouble: 1 -Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 - -# cacos -Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i": -float: 1 -ifloat: 1 - -# cacosh -Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": -double: 1 -float: 7 -idouble: 1 -ifloat: 7 -Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 -Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# casin -Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 -Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i": -float: 1 -ifloat: 1 - -# casinh -Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i": -double: 5 -float: 1 -idouble: 5 -ifloat: 1 -Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i": -double: 3 -float: 6 -idouble: 3 -ifloat: 6 -Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i": -double: 1 -idouble: 1 -Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i": -float: 1 -ifloat: 1 - -# catan -Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": -float: 3 -ifloat: 3 -Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i": -float: 4 -ifloat: 4 -Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i": -double: 1 -idouble: 1 - -# catanh -Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": -double: 4 -idouble: 4 -Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i": -float: 4 -ifloat: 4 -Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i": -float: 1 -ifloat: 1 -Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i": -double: 1 -float: 6 -idouble: 1 -ifloat: 6 - -# cbrt -Test "cbrt (-27.0) == -3.0": -double: 1 -idouble: 1 -Test "cbrt (0.970299) == 0.99": -double: 1 -idouble: 1 - -# ccos -Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": -float: 1 -ifloat: 1 -Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i": -double: 1 -idouble: 1 -Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i": -double: 1 -idouble: 1 - -# ccosh -Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": -float: 1 -ifloat: 1 -Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": -float: 1 -ifloat: 1 -Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i": -double: 1 -idouble: 1 - -# cexp -Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i": -float: 1 -ifloat: 1 -Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i": -float: 1 -ifloat: 1 - -# clog -Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 - -# clog10 -Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": -double: 1 -float: 5 -idouble: 1 -ifloat: 5 -Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i": -double: 1 -idouble: 1 -Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i": -float: 1 -ifloat: 1 -Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i": -float: 1 -ifloat: 1 - # cos -Test "cos (0.7) == 0.7648421872844884262": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 Test "cos (M_PI_6l * 2.0) == 0.5": double: 1 -float: 0.5 idouble: 1 -ifloat: 0.5 Test "cos (M_PI_6l * 4.0) == -0.5": double: 2 -float: 1 idouble: 2 -ifloat: 1 -Test "cos (pi/2) == 0": -double: 0.2758 -float: 0.3667 -idouble: 0.2758 -ifloat: 0.3667 - -# cpow -Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": -double: 1 -float: 4 -idouble: 1 -ifloat: 4 -Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i": -float: 2 -ifloat: 2 -Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i": -double: 1.1031 -float: 1.5 -idouble: 1.1031 -ifloat: 1.5 - -# csin -Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i": -float: 1 -ifloat: 1 -# csinh -Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": +# erf +Test "erf (0.75) == 0.711155633653515131598937834591410777": double: 1 idouble: 1 -Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i": -float: 1 -ifloat: 1 -Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i": -float: 1 -ifloat: 1 - -# csqrt -Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i": -float: 1 -ifloat: 1 -Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i": -float: 1 -ifloat: 1 -Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i": +Test "erf (1.25) == 0.922900128256458230136523481197281140": double: 1 -float: 1 idouble: 1 -ifloat: 1 -Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i": -float: 1 -ifloat: 1 - -# ctan -Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": -double: 1 -idouble: 1 -Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i": -float: 1 -ifloat: 1 -Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# ctanh -Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": -float: 1 -ifloat: 1 -Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 # erfc -Test "erfc (0.7) == 0.32219880616258152702": -double: 1 -idouble: 1 -Test "erfc (1.2) == 0.089686021770364619762": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -Test "erfc (2.0) == 0.0046777349810472658379": +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8": double: 1 idouble: 1 -Test "erfc (4.1) == 0.67000276540848983727e-8": -double: 24 -float: 12 -idouble: 24 -ifloat: 12 -# exp10 -Test "exp10 (-1) == 0.1": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "exp10 (0.7) == 5.0118723362727228500": -float: 1 -ifloat: 1 -Test "exp10 (3) == 1000": -double: 6 -float: 2 -idouble: 6 -ifloat: 2 - -# expm1 -Test "expm1 (1) == M_El - 1.0": -float: 1 -ifloat: 1 - -# fmod -Test "fmod (-6.5, -2.3) == -1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "fmod (-6.5, 2.3) == -1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "fmod (6.5, -2.3) == 1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "fmod (6.5, 2.3) == 1.9": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 - -# hypot -Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554": -double: 1 -idouble: 1 -Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 -Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271": -float: 1 -ifloat: 1 - -# j0 -Test "j0 (10.0) == -0.24593576445134833520": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "j0 (2.0) == 0.22389077914123566805": -float: 2 -ifloat: 2 -Test "j0 (8.0) == 0.17165080713755390609": -float: 1 -ifloat: 1 - -# j1 -Test "j1 (10.0) == 0.043472746168861436670": -float: 2 -ifloat: 2 -Test "j1 (2.0) == 0.57672480775687338720": -double: 1 -idouble: 1 -Test "j1 (8.0) == 0.23463634685391462438": +# exp +Test "exp (1) == e": double: 1 idouble: 1 -# jn -Test "jn (0, 10.0) == -0.24593576445134833520": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "jn (0, 2.0) == 0.22389077914123566805": -float: 2 -ifloat: 2 -Test "jn (0, 8.0) == 0.17165080713755390609": -float: 1 -ifloat: 1 -Test "jn (1, 10.0) == 0.043472746168861436670": -float: 2 -ifloat: 2 -Test "jn (1, 2.0) == 0.57672480775687338720": -double: 1 -idouble: 1 -Test "jn (1, 8.0) == 0.23463634685391462438": -double: 1 -idouble: 1 -Test "jn (10, 0.1) == 0.26905328954342155795e-19": -double: 6 -float: 4 -idouble: 6 -ifloat: 4 -Test "jn (10, 0.7) == 0.75175911502153953928e-11": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -Test "jn (10, 10.0) == 0.20748610663335885770": -double: 4 -float: 3 -idouble: 4 -ifloat: 3 -Test "jn (10, 2.0) == 0.25153862827167367096e-6": -float: 4 -ifloat: 4 -Test "jn (3, 0.1) == 0.000020820315754756261429": -double: 1 -idouble: 1 -Test "jn (3, 0.7) == 0.0069296548267508408077": -float: 1 -ifloat: 1 -Test "jn (3, 10.0) == 0.058379379305186812343": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -Test "jn (3, 2.0) == 0.12894324947440205110": +# expm1 +Test "expm1 (0.75) == 1.11700001661267466854536981983709561": double: 1 -float: 2 idouble: 1 -ifloat: 2 # lgamma Test "lgamma (0.7) == 0.260867246531666514385732417016759578": double: 1 -float: 1 idouble: 1 -ifloat: 1 Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -# log -Test "log (0.7) == -0.35667494393873237891263871124118447": -double: 1 -float: 1 idouble: 1 -ifloat: 1 # log10 -Test "log10 (0.7) == -0.15490195998574316929": +Test "log10 (0.75) == -0.124938736608299953132449886193870744": double: 1 -float: 1 idouble: 1 -ifloat: 1 -Test "log10 (e) == log10(e)": -float: 1 -ifloat: 1 - -# log1p -Test "log1p (-0.3) == -0.35667494393873237891263871124118447": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# log2 -Test "log2 (0.7) == -0.51457317282975824043": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# sincos -Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res": -double: 1 -float: 0.5 -idouble: 1 -ifloat: 0.5 -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res": -double: 0.2758 -float: 0.3667 -idouble: 0.2758 -ifloat: 0.3667 -Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res": -float: 1 -ifloat: 1 - -# sinh -Test "sinh (0.7) == 0.75858370183953350346": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# tan -Test "tan (pi/4) == 1": -double: 0.5 -idouble: 0.5 - -# tanh -Test "tanh (0.7) == 0.60436777711716349631": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 # tgamma Test "tgamma (-0.5) == -2 sqrt (pi)": double: 1 -float: 1 idouble: 1 -ifloat: 1 -Test "tgamma (0.5) == sqrt (pi)": -float: 1 -ifloat: 1 Test "tgamma (0.7) == 1.29805533264755778568117117915281162": double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# y0 -Test "y0 (0.7) == -0.19066492933739506743": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "y0 (1.0) == 0.088256964215676957983": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "y0 (1.5) == 0.38244892379775884396": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "y0 (10.0) == 0.055671167283599391424": -float: 1 -ifloat: 1 -Test "y0 (8.0) == 0.22352148938756622053": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -# y1 -Test "y1 (0.1) == -6.4589510947020269877": -double: 1 -idouble: 1 -Test "y1 (0.7) == -1.1032498719076333697": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "y1 (1.5) == -0.41230862697391129595": -float: 1 -ifloat: 1 -Test "y1 (10.0) == 0.24901542420695388392": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -Test "y1 (2.0) == -0.10703243154093754689": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "y1 (8.0) == -0.15806046173124749426": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -# yn -Test "yn (0, 0.7) == -0.19066492933739506743": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "yn (0, 1.0) == 0.088256964215676957983": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "yn (0, 1.5) == 0.38244892379775884396": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 -Test "yn (0, 10.0) == 0.055671167283599391424": -float: 1 -ifloat: 1 -Test "yn (0, 8.0) == 0.22352148938756622053": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (1, 0.1) == -6.4589510947020269877": -double: 1 -idouble: 1 -Test "yn (1, 0.7) == -1.1032498719076333697": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (1, 1.5) == -0.41230862697391129595": -float: 1 -ifloat: 1 -Test "yn (1, 10.0) == 0.24901542420695388392": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -Test "yn (1, 2.0) == -0.10703243154093754689": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (1, 8.0) == -0.15806046173124749426": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 -Test "yn (10, 0.1) == -0.11831335132045197885e19": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 -Test "yn (10, 0.7) == -0.42447194260703866924e10": -double: 3 -idouble: 3 -Test "yn (10, 1.0) == -0.12161801427868918929e9": -double: 1 -idouble: 1 -Test "yn (10, 10.0) == -0.35981415218340272205": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (10, 2.0) == -129184.54220803928264": -double: 2 -idouble: 2 -Test "yn (3, 0.1) == -5099.3323786129048894": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (3, 0.7) == -15.819479052819633505": -double: 3 -float: 1 -idouble: 3 -ifloat: 1 -Test "yn (3, 10.0) == -0.25136265718383732978": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 -Test "yn (3, 2.0) == -1.1277837768404277861": -double: 1 idouble: 1 # Maximal error of functions: -Function: "asin": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -Function: "atan2": -float: 4 -ifloat: 4 - -Function: "atanh": -double: 1 -idouble: 1 - -Function: "cabs": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Real part of "cacos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Imaginary part of "cacos": -float: 1 -ifloat: 1 - -Function: Real part of "cacosh": -double: 1 -float: 7 -idouble: 1 -ifloat: 7 - -Function: Imaginary part of "cacosh": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 - -Function: Real part of "casin": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 - -Function: Imaginary part of "casin": -float: 1 -ifloat: 1 - -Function: Real part of "casinh": -double: 5 -float: 1 -idouble: 5 -ifloat: 1 - -Function: Imaginary part of "casinh": -double: 3 -float: 6 -idouble: 3 -ifloat: 6 - -Function: Real part of "catan": -float: 4 -ifloat: 4 - -Function: Imaginary part of "catan": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Real part of "catanh": -double: 4 -float: 1 -idouble: 4 -ifloat: 1 - -Function: Imaginary part of "catanh": -double: 1 -float: 6 -idouble: 1 -ifloat: 6 - -Function: "cbrt": -double: 1 -idouble: 1 - -Function: Real part of "ccos": -double: 1 -idouble: 1 - -Function: Imaginary part of "ccos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Real part of "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Imaginary part of "ccosh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Real part of "cexp": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Imaginary part of "cexp": -float: 1 -ifloat: 1 - -Function: Imaginary part of "clog": -double: 1 -float: 3 -idouble: 1 -ifloat: 3 - -Function: Real part of "clog10": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Imaginary part of "clog10": -double: 1 -float: 5 -idouble: 1 -ifloat: 5 - Function: "cos": double: 2 -float: 1 idouble: 2 -ifloat: 1 - -Function: Real part of "cpow": -double: 1 -float: 4 -idouble: 1 -ifloat: 4 - -Function: Imaginary part of "cpow": -double: 1.1031 -float: 2 -idouble: 1.1031 -ifloat: 2 - -Function: Imaginary part of "csin": -float: 1 -ifloat: 1 - -Function: Real part of "csinh": -float: 1 -ifloat: 1 -Function: Imaginary part of "csinh": +Function: "erf": double: 1 -float: 1 idouble: 1 -ifloat: 1 -Function: Real part of "csqrt": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: Imaginary part of "csqrt": -float: 1 -ifloat: 1 - -Function: Real part of "ctan": +Function: "erfc": double: 1 -float: 1 idouble: 1 -ifloat: 1 -Function: Imaginary part of "ctan": +Function: "exp": double: 1 -float: 1 idouble: 1 -ifloat: 1 - -Function: Real part of "ctanh": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 - -Function: Imaginary part of "ctanh": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 - -Function: "erfc": -double: 24 -float: 12 -idouble: 24 -ifloat: 12 - -Function: "exp10": -double: 6 -float: 2 -idouble: 6 -ifloat: 2 Function: "expm1": -float: 1 -ifloat: 1 - -Function: "fmod": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 - -Function: "hypot": double: 1 -float: 1 idouble: 1 -ifloat: 1 - -Function: "j0": -double: 2 -float: 2 -idouble: 2 -ifloat: 2 - -Function: "j1": -double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -Function: "jn": -double: 6 -float: 4 -idouble: 6 -ifloat: 4 Function: "lgamma": double: 1 -float: 2 -idouble: 1 -ifloat: 2 - -Function: "log": -double: 1 -float: 1 idouble: 1 -ifloat: 1 Function: "log10": double: 1 -float: 1 idouble: 1 -ifloat: 1 - -Function: "log1p": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: "log2": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: "sincos": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 - -Function: "sinh": -double: 1 -float: 1 -idouble: 1 -ifloat: 1 Function: "tan": -double: 0.5 -idouble: 0.5 - -Function: "tanh": double: 1 -float: 1 idouble: 1 -ifloat: 1 Function: "tgamma": double: 1 -float: 1 idouble: 1 -ifloat: 1 - -Function: "y0": -double: 2 -float: 1 -idouble: 2 -ifloat: 1 - -Function: "y1": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 - -Function: "yn": -double: 3 -float: 2 -idouble: 3 -ifloat: 2 # end of automatic generation diff --git a/test/mmap/Makefile.in b/test/mmap/Makefile.in index 83d12fd..5eff82e 100644 --- a/test/mmap/Makefile.in +++ b/test/mmap/Makefile.in @@ -5,6 +5,10 @@ ifeq ($(TARGET_ARCH),arm) TESTS_DISABLED := mmap2 endif +ifeq ($(TARGET_ARCH),riscv32) +TESTS_DISABLED := mmap2 +endif + ifeq ($(TARGET_ARCH),xtensa) TESTS_DISABLED := mmap2 endif diff --git a/test/nptl/tst-atfork1.c b/test/nptl/tst-atfork1.c index 483f7a6..2537fc2 100644 --- a/test/nptl/tst-atfork1.c +++ b/test/nptl/tst-atfork1.c @@ -24,6 +24,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static int val; @@ -118,3 +120,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-atfork2.c b/test/nptl/tst-atfork2.c index b9808ac..00e96ed 100644 --- a/test/nptl/tst-atfork2.c +++ b/test/nptl/tst-atfork2.c @@ -25,6 +25,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + /* Must be exported. */ int val; @@ -154,3 +156,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-barrier2.c b/test/nptl/tst-barrier2.c index 8ffcda0..35a74b1 100644 --- a/test/nptl/tst-barrier2.c +++ b/test/nptl/tst-barrier2.c @@ -26,6 +26,7 @@ #include <sys/mman.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ static int do_test (void) @@ -182,3 +183,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-basic4.c b/test/nptl/tst-basic4.c index f7bdf1d..02ddf93 100644 --- a/test/nptl/tst-basic4.c +++ b/test/nptl/tst-basic4.c @@ -25,6 +25,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static void final_test (void) { @@ -98,3 +100,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cancel16.c b/test/nptl/tst-cancel16.c index a1e3c5a..9a53e99 100644 --- a/test/nptl/tst-cancel16.c +++ b/test/nptl/tst-cancel16.c @@ -26,6 +26,7 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ static pthread_barrier_t b2; static int fd; @@ -229,3 +230,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cancel21.c b/test/nptl/tst-cancel21.c index 489c18a..db2d8ae 100644 --- a/test/nptl/tst-cancel21.c +++ b/test/nptl/tst-cancel21.c @@ -24,6 +24,7 @@ #include <sys/wait.h> #include <unistd.h> +#ifdef __ARCH_USE_MMU__ static int fd[4]; static pthread_barrier_t b; @@ -291,3 +292,13 @@ do_test (void) #define TIMEOUT 40 #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cancel4.c b/test/nptl/tst-cancel4.c index 6eaf5b1..a5fc2ff 100644 --- a/test/nptl/tst-cancel4.c +++ b/test/nptl/tst-cancel4.c @@ -39,6 +39,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + #if defined(__GLIBC__) || defined(__UCLIBC__) #define SIGCANCEL __SIGRTMIN #else @@ -2396,3 +2398,13 @@ do_test (void) #define TIMEOUT 60 #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cond12.c b/test/nptl/tst-cond12.c index b38d9d5..2f41bcb 100644 --- a/test/nptl/tst-cond12.c +++ b/test/nptl/tst-cond12.c @@ -25,6 +25,7 @@ #include <sys/mman.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ static char fname[] = "/tmp/tst-cond12-XXXXXX"; static int fd; @@ -193,3 +194,13 @@ do_test (void) return 0; } + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cond4.c b/test/nptl/tst-cond4.c index 47a7380..25bfa82 100644 --- a/test/nptl/tst-cond4.c +++ b/test/nptl/tst-cond4.c @@ -26,6 +26,7 @@ #include <sys/wait.h> #include <stdint.h> +#ifdef __ARCH_USE_MMU__ int *condition; @@ -261,3 +262,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cond6.c b/test/nptl/tst-cond6.c index f28d4c1..9189989 100644 --- a/test/nptl/tst-cond6.c +++ b/test/nptl/tst-cond6.c @@ -28,6 +28,7 @@ #include <sys/wait.h> #include <stdint.h> +#ifdef __ARCH_USE_MMU__ int *condition; @@ -231,3 +232,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cpuclock1.c b/test/nptl/tst-cpuclock1.c index 9d68ec5..a7e76be 100644 --- a/test/nptl/tst-cpuclock1.c +++ b/test/nptl/tst-cpuclock1.c @@ -26,6 +26,8 @@ #include <signal.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ + /* This function is intended to rack up both user and system time. */ static void chew_cpu (void) @@ -304,3 +306,13 @@ do_test (void) #define TIMEOUT 5 #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-cputimer3.c b/test/nptl/tst-cputimer3.c index 056766a..335c9f4 100644 --- a/test/nptl/tst-cputimer3.c +++ b/test/nptl/tst-cputimer3.c @@ -13,6 +13,8 @@ #include <signal.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ + static clockid_t child_clock; #define TEST_CLOCK child_clock @@ -128,3 +130,13 @@ setup_test (void) #endif #include "tst-timer4.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-exec2.c b/test/nptl/tst-exec2.c index c621b4e..e916fec 100644 --- a/test/nptl/tst-exec2.c +++ b/test/nptl/tst-exec2.c @@ -28,6 +28,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static void * tf (void *arg) { @@ -151,3 +153,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-exec3.c b/test/nptl/tst-exec3.c index f4a6807..c4683f2 100644 --- a/test/nptl/tst-exec3.c +++ b/test/nptl/tst-exec3.c @@ -28,6 +28,7 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ static void * tf (void *arg) @@ -150,3 +151,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-flock2.c b/test/nptl/tst-flock2.c index acc6972..dac6c2c 100644 --- a/test/nptl/tst-flock2.c +++ b/test/nptl/tst-flock2.c @@ -27,6 +27,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER; static int fd; @@ -258,3 +260,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-fork1.c b/test/nptl/tst-fork1.c index 448255d..8c603b9 100644 --- a/test/nptl/tst-fork1.c +++ b/test/nptl/tst-fork1.c @@ -25,6 +25,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static void * thread_function (void * arg) { @@ -118,3 +120,13 @@ main (void) return result; } + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-fork2.c b/test/nptl/tst-fork2.c index e653d7e..1c4bc2f 100644 --- a/test/nptl/tst-fork2.c +++ b/test/nptl/tst-fork2.c @@ -24,6 +24,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static pid_t initial_pid; @@ -87,3 +89,13 @@ main (void) return status; } + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-fork3.c b/test/nptl/tst-fork3.c index 434aa8f..defac30 100644 --- a/test/nptl/tst-fork3.c +++ b/test/nptl/tst-fork3.c @@ -24,6 +24,7 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ static pid_t initial_pid; @@ -105,3 +106,13 @@ main (void) return 1; } + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-fork4.c b/test/nptl/tst-fork4.c index ee87108..5a86fe2 100644 --- a/test/nptl/tst-fork4.c +++ b/test/nptl/tst-fork4.c @@ -24,6 +24,7 @@ #include <sys/wait.h> #include <string.h> +#ifdef __ARCH_USE_MMU__ static int do_test (void) @@ -62,3 +63,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-getpid3.c b/test/nptl/tst-getpid3.c index 974cd99..01d1e46 100644 --- a/test/nptl/tst-getpid3.c +++ b/test/nptl/tst-getpid3.c @@ -7,6 +7,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static pid_t pid; static void * @@ -112,3 +114,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-mqueue1.c b/test/nptl/tst-mqueue1.c index f07df0b..1ce364e 100644 --- a/test/nptl/tst-mqueue1.c +++ b/test/nptl/tst-mqueue1.c @@ -29,6 +29,8 @@ #include "tst-mqueue.h" #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static int intcmp (const void *a, const void *b) { @@ -415,3 +417,13 @@ do_test (void) } #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-mqueue3.c b/test/nptl/tst-mqueue3.c index 2cec763..f7bee31 100644 --- a/test/nptl/tst-mqueue3.c +++ b/test/nptl/tst-mqueue3.c @@ -34,6 +34,8 @@ #if _POSIX_THREADS # include <pthread.h> +#ifdef __ARCH_USE_MMU__ + static pid_t pid; static mqd_t m; static const char message[] = "hello"; @@ -243,3 +245,13 @@ do_test (void) #endif #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-mqueue5.c b/test/nptl/tst-mqueue5.c index ea6cc96..c17cfb3 100644 --- a/test/nptl/tst-mqueue5.c +++ b/test/nptl/tst-mqueue5.c @@ -34,6 +34,8 @@ #include "tst-mqueue.h" #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + #define TIMEOUT 3 #if _POSIX_THREADS @@ -1012,3 +1014,13 @@ do_test (void) #endif #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-mutex4.c b/test/nptl/tst-mutex4.c index f66abc0..c18883f 100644 --- a/test/nptl/tst-mutex4.c +++ b/test/nptl/tst-mutex4.c @@ -26,6 +26,7 @@ #include <sys/mman.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ static int do_test (void) @@ -188,3 +189,13 @@ do_test (void) #define TIMEOUT 4 #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-mutex9.c b/test/nptl/tst-mutex9.c index 2d5bf75..687a474 100644 --- a/test/nptl/tst-mutex9.c +++ b/test/nptl/tst-mutex9.c @@ -28,6 +28,8 @@ #include <sys/time.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + //int gettimeofday(struct timeval *tv, struct timezone *tz); @@ -189,3 +191,13 @@ do_test (void) #define TIMEOUT 3 #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-rwlock12.c b/test/nptl/tst-rwlock12.c index 695e720..123a918 100644 --- a/test/nptl/tst-rwlock12.c +++ b/test/nptl/tst-rwlock12.c @@ -27,6 +27,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static int do_test (void) { @@ -205,3 +207,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-rwlock4.c b/test/nptl/tst-rwlock4.c index 0bbf083..5067462 100644 --- a/test/nptl/tst-rwlock4.c +++ b/test/nptl/tst-rwlock4.c @@ -26,6 +26,7 @@ #include <sys/mman.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ static int do_test (void) @@ -187,3 +188,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-sem3.c b/test/nptl/tst-sem3.c index 1b598dc..3969bc7 100644 --- a/test/nptl/tst-sem3.c +++ b/test/nptl/tst-sem3.c @@ -27,6 +27,7 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ int do_test (void) @@ -143,3 +144,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-sem4.c b/test/nptl/tst-sem4.c index 4293b2c..1ef1428 100644 --- a/test/nptl/tst-sem4.c +++ b/test/nptl/tst-sem4.c @@ -24,6 +24,8 @@ #include <unistd.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + static void remove_sem (int status, void *arg) { @@ -151,3 +153,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-signal1.c b/test/nptl/tst-signal1.c index cb31108..54c9a3b 100644 --- a/test/nptl/tst-signal1.c +++ b/test/nptl/tst-signal1.c @@ -27,6 +27,7 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ static sigset_t ss; static pthread_barrier_t *b; @@ -187,3 +188,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-signal2.c b/test/nptl/tst-signal2.c index 4df0868..3db8ab2 100644 --- a/test/nptl/tst-signal2.c +++ b/test/nptl/tst-signal2.c @@ -27,6 +27,7 @@ #include <string.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ static sigset_t ss; static pthread_barrier_t *b; @@ -196,3 +197,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-spin2.c b/test/nptl/tst-spin2.c index 6119a3b..af3ec05 100644 --- a/test/nptl/tst-spin2.c +++ b/test/nptl/tst-spin2.c @@ -26,6 +26,7 @@ #include <sys/mman.h> #include <sys/wait.h> +#ifdef __ARCH_USE_MMU__ static int do_test (void) @@ -156,3 +157,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/nptl/tst-tsd6.c b/test/nptl/tst-tsd6.c index ea0a481..7605745 100644 --- a/test/nptl/tst-tsd6.c +++ b/test/nptl/tst-tsd6.c @@ -6,6 +6,8 @@ #include <sys/wait.h> #include "../test-skeleton.h" +#ifdef __ARCH_USE_MMU__ + #define NKEYS 100 static pthread_key_t keys[NKEYS]; static pthread_barrier_t b; @@ -88,3 +90,13 @@ do_test (void) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" + +#else + +int main(void) +{ + printf("Skipping test on non-mmu host!\n"); + return 23; +} + +#endif diff --git a/test/pthread/Makefile.in b/test/pthread/Makefile.in index b989334..c989b58 100644 --- a/test/pthread/Makefile.in +++ b/test/pthread/Makefile.in @@ -6,6 +6,9 @@ TESTS_DISABLED += cancellation-points ifeq ($(TARGET_ARCH),microblaze) TESTS_DISABLED += ex3 endif +ifeq ($(TARGET_ARCH),nds32) +TESTS_DISABLED += ex3 +endif ifeq ($(TARGET_ARCH),sh) TESTS_DISABLED += ex2 ex7 endif diff --git a/test/test-skeleton.c b/test/test-skeleton.c index 557996d..323a9c6 100644 --- a/test/test-skeleton.c +++ b/test/test-skeleton.c @@ -222,18 +222,15 @@ handler_killpid(int sig) /* We provide the entry point here. */ int -main (int argc, char *argv[]) +main (int argc, char *argv[], char *envp[]) { -#ifdef __ARCH_USE_MMU__ int direct = 0; /* Directly call the test function? */ -#else - int direct = 1; -#endif int status; int opt; unsigned int timeoutfactor = 1; pid_t termpid; char *envstr_timeoutfactor; + char **argv1; /* Make uses of freed and uninitialized memory known. */ #ifdef __MALLOC_STANDARD__ @@ -303,19 +300,21 @@ main (int argc, char *argv[]) /* make sure temporary files are deleted. */ atexit (delete_temp_files); - /* Correct for the possible parameters. */ - argv[optind - 1] = argv[0]; - argv += optind - 1; - argc -= optind - 1; + /* If we are not expected to fork run the function immediately. */ + if (direct) + { + /* Correct for the possible parameters. */ + argv[optind - 1] = argv[0]; + argv += optind - 1; + argc -= optind - 1; - /* Call the initializing function, if one is available. */ + /* Call the initializing function, if one is available. */ #ifdef PREPARE - PREPARE (argc, argv); + PREPARE (argc, argv); #endif - /* If we are not expected to fork run the function immediately. */ - if (direct) - return TEST_FUNCTION; + return TEST_FUNCTION; + } /* Set up the test environment: - prevent core dumps @@ -340,15 +339,51 @@ main (int argc, char *argv[]) if (setpgid (0, 0) != 0) printf ("Failed to set the process group ID: %m\n"); + /* Correct for the possible parameters. */ + argv[optind - 1] = argv[0]; + argv += optind - 1; + argc -= optind - 1; + + /* Call the initializing function, if one is available. */ +#ifdef PREPARE + PREPARE (argc, argv); +#endif + /* Execute the test function and exit with the return value. */ exit (TEST_FUNCTION); } else if (pid < 0) -#endif { perror ("Cannot fork test program"); exit (1); } +#else + argv1 = malloc ((argc + 2) * sizeof(void *)); + argv1[0] = argv[0]; + argv1[1] = "-d"; + memcpy(argv1 + 2, argv + 1, argc * sizeof(void *)); + + pid = vfork (); + if (pid == 0) + { + /* This is the child. */ + /* We put the test process in its own pgrp so that if it bogusly + generates any job control signals, they won't hit the whole build. */ + if (setpgid (0, 0) != 0) + printf ("Failed to set the process group ID: %m\n"); + + if (execve (argv1[0], argv1, envp) < 0) + { + perror ("Cannot exec test program"); + _exit (1); + } + } + else if (pid < 0) + { + perror ("Cannot vfork test program"); + exit (1); + } +#endif #ifdef __XXX_HANDLE_CTRL_C signal (SIGTERM, handler_killpid); diff --git a/test/tls/tls-macros-xtensa.h b/test/tls/tls-macros-xtensa.h index 90fc726..6b2621c 100644 --- a/test/tls/tls-macros-xtensa.h +++ b/test/tls/tls-macros-xtensa.h @@ -22,6 +22,78 @@ : "a8", "a9", "a10", "a11", "a12", "a13", "a14", "a15"); \ __l; }) #elif defined(__XTENSA_CALL0_ABI__) +#ifdef __FDPIC__ +#define TLS_GD(x) \ + ({ int *__l; \ + int __t; \ + extern unsigned long _GLOBAL_OFFSET_TABLE_[]; \ + __asm__ ("movi %[tmp], " #x "@GOTTLSDESC\n\t" \ + ".reloc ., R_XTENSA_TLS_ARG, " #x "\n\t" \ + "add a2, %[tmp], %[got]\n\t" \ + ".reloc ., R_XTENSA_TLS_FUNCDESC, " #x "\n\t" \ + "l32i %[tmp], a2, 0\n\t" \ + "mov a12, a11\n\t" \ + ".reloc ., R_XTENSA_TLS_GOT, " #x "\n\t" \ + "l32i a11, %[tmp], 4\n\t" \ + ".reloc ., R_XTENSA_TLS_FUNC, " #x "\n\t" \ + "_l32i %[tmp], %[tmp], 0\n\t" \ + ".reloc ., R_XTENSA_TLS_CALL, " #x "\n\t" \ + "callx0 %[tmp]\n\t" \ + "mov a11, a12\n\t" \ + "mov %[res], a2\n\t" \ + : [res] "=r" (__l), [tmp] "=&r" (__t) \ + : [got] "r" (_GLOBAL_OFFSET_TABLE_) \ + : "a0", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a12");\ + __l; }) + +#define TLS_LD(x) \ + ({ int *__l; \ + int __t; \ + extern unsigned long _GLOBAL_OFFSET_TABLE_[]; \ + __asm__ ("movi %[tmp], _TLS_MODULE_BASE_@GOTTLSDESC\n\t" \ + ".reloc ., R_XTENSA_TLS_ARG, _TLS_MODULE_BASE_\n\t" \ + "add a2, %[tmp], %[got]\n\t" \ + ".reloc ., R_XTENSA_TLS_FUNCDESC, _TLS_MODULE_BASE_\n\t"\ + "l32i %[tmp], a2, 0\n\t" \ + "mov a12, a11\n\t" \ + ".reloc ., R_XTENSA_TLS_GOT, _TLS_MODULE_BASE_\n\t" \ + "l32i a11, %[tmp], 4\n\t" \ + ".reloc ., R_XTENSA_TLS_FUNC, _TLS_MODULE_BASE_\n\t" \ + "_l32i %[tmp], %[tmp], 0\n\t" \ + ".reloc ., R_XTENSA_TLS_CALL, _TLS_MODULE_BASE_\n\t" \ + "callx0 %[tmp]\n\t" \ + "mov a11, a12\n\t" \ + "movi %[res], " #x "@DTPOFF\n\t" \ + "add %[res], %[res], a2\n\t" \ + : [res] "=r" (__l), [tmp] "=&r" (__t) \ + : [got] "r" (_GLOBAL_OFFSET_TABLE_) \ + : "a0", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a12");\ + __l; }) + +#define TLS_IE(x) \ + ({ int *__l; \ + int __t; \ + extern unsigned long _GLOBAL_OFFSET_TABLE_[]; \ + __asm__ ("movi %[tmp], " #x "@GOTTPOFF\n\t" \ + ".reloc ., R_XTENSA_TLS_TPOFF_PTR, " #x "\n\t" \ + "add %[tmp], %[tmp], %[got]\n\t" \ + ".reloc ., R_XTENSA_TLS_TPOFF_LOAD, " #x "\n\t" \ + "l32i %[tmp], %[tmp], 0\n\t" \ + "rur %[res], threadptr\n\t" \ + "add %[res], %[res], %[tmp]\n\t" \ + : [res] "=r" (__l), [tmp] "=&r" (__t) \ + : [got] "r" (_GLOBAL_OFFSET_TABLE_)); \ + __l; }) + +#define TLS_LE(x) \ + ({ int *__l; \ + int __t; \ + __asm__ ("rur %0, threadptr\n\t" \ + "movi %1, " #x "@TPOFF\n\t" \ + "add %0, %0, %1\n\t" \ + : "=r" (__l), "=r" (__t) ); \ + __l; }) +#else #define TLS_GD(x) \ ({ int *__l; \ __asm__ ("movi a0, " #x "@TLSFUNC\n\t" \ @@ -44,10 +116,12 @@ : \ : "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11");\ __l; }) +#endif #else #error Unsupported Xtensa ABI #endif +#ifndef __FDPIC__ #define TLS_IE(x) TLS_LE(x) #define TLS_LE(x) \ @@ -57,5 +131,5 @@ "movi %1, " #x "@TPOFF\n\t" \ "add %0, %0, %1\n\t" \ : "=r" (__l), "=r" (__t) ); \ - __l; }); \ - + __l; }) +#endif |