jerryscript/tests/unit/test_string_to_number.cpp
Ruben Ayrapetyan 43ea53b1d7 Jerry is now split to several components: core, libc, plugins.
The components are build independently and then are linked with main module corresponding to target platform.
Core is supposed to be platform-independent, while libc and plugins are dependent on specific architecture / platform.

The commit disables unit tests building and running during precommit.
That is supposed to be fixed in a subsequent commit.

Also, the commit disables building and running valgrind targets during precommit.
Build is supposed to be turned on by an option that should be introduced later.
Valgrind-checked runs are supposed to be performed in asynchronous mode.
2015-02-13 21:54:27 +03:00

90 lines
2.0 KiB
C++

/* Copyright 2014-2015 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "ecma-globals.h"
#include "ecma-helpers.h"
#include "jrt.h"
#include "jerry-libc.h"
#include <math.h>
/**
* Unit test's main function.
*/
int
main( int __attr_unused___ argc,
char __attr_unused___ **argv)
{
const ecma_char_t* zt_strings[] =
{
(const ecma_char_t*) "1",
(const ecma_char_t*) "0.5",
(const ecma_char_t*) "12345",
(const ecma_char_t*) "1e-45",
(const ecma_char_t*) "-2.5e+38",
(const ecma_char_t*) "-2.5e38",
(const ecma_char_t*) "- 2.5e+38",
(const ecma_char_t*) "-2 .5e+38",
(const ecma_char_t*) "-2. 5e+38",
(const ecma_char_t*) "-2.5e+ 38",
(const ecma_char_t*) "-2.5 e+38",
(const ecma_char_t*) "-2.5e +38",
(const ecma_char_t*) "NaN",
(const ecma_char_t*) "abc",
(const ecma_char_t*) " Infinity ",
(const ecma_char_t*) "-Infinity",
(const ecma_char_t*) "0",
(const ecma_char_t*) "0",
};
const ecma_number_t nums[] =
{
1.0,
0.5,
12345.0,
1.0e-45,
-2.5e+38,
-2.5e+38,
NAN,
NAN,
NAN,
NAN,
NAN,
NAN,
NAN,
NAN,
INFINITY,
-INFINITY,
+0.0,
-0.0
};
for (uint32_t i = 0;
i < sizeof (nums) / sizeof (nums[0]);
i++)
{
ecma_number_t num = ecma_zt_string_to_number (zt_strings[i]);
if (num != nums[i]
&& (!ecma_number_is_nan (num)
|| !ecma_number_is_nan (nums[i])))
{
return 1;
}
}
return 0;
} /* main */