diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2016-12-27 16:46:08 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2016-12-27 16:46:08 +0900 |
commit | db20f3f1bb8595633a7e16c8900fd401a453a6b5 (patch) | |
tree | e5435159cd1bf0519276363a6fe1663d1721bed3 /src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp | |
parent | 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b (diff) | |
download | coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.tar.gz coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.tar.bz2 coreclr-db20f3f1bb8595633a7e16c8900fd401a453a6b5.zip |
Imported Upstream version 1.0.0.9127upstream/1.0.0.9127
Diffstat (limited to 'src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp')
-rw-r--r-- | src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp b/src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp new file mode 100644 index 0000000000..e312d98f58 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/strtod/test1/test1.cpp @@ -0,0 +1,93 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*===================================================================== +** +** Source: test1.c +** +** Purpose: Tests the PAL implementation of the strtod function. +** Convert a number of strings to doubles. Ensure they +** convert correctly. +** +** +**===================================================================*/ + +#include <palsuite.h> + + +struct testCase +{ + double CorrectResult; /* The returned double value */ + char ResultString[20]; /* The remainder string */ + char string[20]; /* The test string */ +}; + + +int __cdecl main(int argc, char **argv) +{ + + char * endptr; + double result; + int i; + + struct testCase testCases[] = + { + {1234,"","1234"}, + {-1234,"","-1234"}, + {1234.44,"","1234.44"}, + {1234e-5,"","1234e-5"}, + {1234e+5,"","1234e+5"}, + {12345E5,"","12345e5"}, + {1234.657e-8,"","1234.657e-8"}, + {1234567e-8,"foo","1234567e-8foo"}, + {999,"foo","999 foo"}, + {7,"foo"," 7foo"}, + {0,"a7","a7"}, + {-777777,"z zz","-777777z zz"} + }; + + /* + * Initialize the PAL + */ + if (0 != PAL_Initialize(argc,argv)) + { + return FAIL; + } + + /* Loop through the structure to test each case */ + for(i = 0; i < sizeof(testCases) / sizeof(struct testCase); i++) + { + result = strtod(testCases[i].string,&endptr); + + /* need to check the result and the endptr result */ + if ((testCases[i].CorrectResult != result) && + (strcmp(testCases[i].ResultString,endptr)!=0)) + { + Fail("ERROR: strtod returned %f instead of %f and " + "\"%s\" instead of \"%s\" for the test of \"%s\"\n", + result, + testCases[i].CorrectResult, + endptr, + testCases[i].ResultString, + testCases[i].string); + } + + } + + PAL_Terminate(); + return PASS; +} + + + + + + + + + + + + + |