diff options
author | Sergei Golubchik <sergii@pisem.net> | 2013-09-18 13:07:31 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2013-09-18 13:07:31 +0200 |
commit | 4ec2e9d7eda78d409d1b017ef4d8928fe9055438 (patch) | |
tree | 6c3a74a740d3c1c5f3a7d1f8154d8a791b435b3f /unittest/my_decimal | |
parent | 1a2a9d74fe1256554eceb09bbc6752a6376df87d (diff) | |
parent | 197bdbae4db78ba65f3668803bebd3c4a4509ae5 (diff) | |
download | mariadb-git-4ec2e9d7eda78d409d1b017ef4d8928fe9055438.tar.gz |
5.5 merge and fixes for compiler/test errors
Diffstat (limited to 'unittest/my_decimal')
-rw-r--r-- | unittest/my_decimal/CMakeLists.txt | 23 | ||||
-rw-r--r-- | unittest/my_decimal/my_decimal-t.cc | 72 |
2 files changed, 95 insertions, 0 deletions
diff --git a/unittest/my_decimal/CMakeLists.txt b/unittest/my_decimal/CMakeLists.txt new file mode 100644 index 00000000000..85d203e8f47 --- /dev/null +++ b/unittest/my_decimal/CMakeLists.txt @@ -0,0 +1,23 @@ +# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/sql + ${CMAKE_SOURCE_DIR}/regex + ${CMAKE_SOURCE_DIR}/extra/yassl/include + ${CMAKE_SOURCE_DIR}/unittest/mytap) + +# +MY_ADD_TESTS(my_decimal EXT "cc" LINK_LIBRARIES strings dbug) diff --git a/unittest/my_decimal/my_decimal-t.cc b/unittest/my_decimal/my_decimal-t.cc new file mode 100644 index 00000000000..48d00465af9 --- /dev/null +++ b/unittest/my_decimal/my_decimal-t.cc @@ -0,0 +1,72 @@ +/* Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 of the License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ + +#include "my_config.h" +#include "config.h" +#include <tap.h> +#include <my_global.h> +#include <my_sys.h> +#include <m_string.h> +#include <sql_string.h> +#include <my_decimal.h> + + + +/* + Test my_decimal constuctor and assignement operators +*/ +static int +test_copy_and_compare() +{ + my_decimal d1,d2; + + ulonglong val= 42; + + ok(ulonglong2decimal(val,&d1) == 0, "Pass"); + d2= d1; + my_decimal d3(d1); + + ok(my_decimal_cmp(&d1, &d2) == 0, "Pass"); + ok(my_decimal_cmp(&d2, &d3) == 0, "Pass"); + ok(my_decimal_cmp(&d3, &d1) == 0,"Pass"); + + ulonglong val1, val2, val3; + ok(decimal2ulonglong(&d1, &val1) == 0, "Pass"); + ok(decimal2ulonglong(&d2, &val2) == 0,"Pass"); + ok(decimal2ulonglong(&d3, &val3) == 0,"Pass"); + + ok(val == val1,"Pass"); + ok(val == val2,"Pass"); + ok(val == val3,"Pass"); + + // The CTOR/operator=() generated by the compiler would fail here: + val= 45; + ok(ulonglong2decimal(val, &d1) == 0,"Pass"); + ok(my_decimal_cmp(&d1, &d2) == 1,"Pass"); + ok(my_decimal_cmp(&d1, &d3) == 1,"Pass"); + + return 0; + +} + +int main() +{ + plan(13); + diag("Testing my_decimal constructor and assignment operators"); + + test_copy_and_compare(); + + return exit_status(); +} |