List:Commits« Previous MessageNext Message »
From:Tor Didriksen Date:January 13 2011 3:07pm
Subject:Re: bzr commit into mysql-trunk branch (tor.didriksen:3498) Bug#59241
View as plain text  
On 2011-01-13 14:59, Jorgen Loland wrote:
> Tor,
>
> Thank you for fixing this by adding proper assignment and copy 
> operators. The patch is approved, but I want you to add a unit test 
> that would fail prior to the fix, e.g. like this:

good point!

>
> TEST_F(DecimalTest, CopyAndCompare)
> {
>   ulonglong val= 42;
>   EXPECT_EQ(0, ulonglong2decimal(val, &d1));
>
>   d2= d1;                                       // operator=()
>   my_decimal d3(d1);                            // Copy constructor.
>
>   EXPECT_EQ(0, my_decimal_cmp(&d1, &d2));
>   EXPECT_EQ(0, my_decimal_cmp(&d2, &d3));
>   EXPECT_EQ(0, my_decimal_cmp(&d3, &d1));
>
>   ulonglong val1, val2, val3;
>   EXPECT_EQ(0, decimal2ulonglong(&d1, &val1));
>   EXPECT_EQ(0, decimal2ulonglong(&d2, &val2));
>   EXPECT_EQ(0, decimal2ulonglong(&d3, &val3));
>   EXPECT_EQ(val, val1);
>   EXPECT_EQ(val, val2);
>   EXPECT_EQ(val, val3);
>
> +  val= 45;
> +  EXPECT_EQ(0, ulonglong2decimal(val, &d1));
> +  EXPECT_EQ(1, my_decimal_cmp(&d1, &d2));
> }
>
>
>
> On 01/13/2011 12:37 PM, Tor Didriksen wrote:
>> #At file:///export/home/didrik/repo/trunk-bug59241divmod/ based on 
>> revid:ole.john.aske@stripped
>>
>>   3498 Tor Didriksen    2011-01-13
>>        Bug #59241 invalid memory read in do_div_mod with doubly 
>> assigned variables
>>
>>        Fix: copy my_decimal by value, to avoid dangling pointers.
>>       @ mysql-test/r/func_math.result
>>          New test case.
>>       @ mysql-test/t/func_math.test
>>          New test case.
>>       @ sql/item_cmpfunc.cc
>>          No need to call fix_buffer_pointer() anymore.
>>       @ sql/item_func.cc
>>          Copy my_decimal by value, to avoid dangling pointers.
>>       @ sql/my_decimal.h
>>          Implement proper copy constructor and assignment operator 
>> for my_decimal.
>>       @ sql/sql_analyse.cc
>>          No need to call fix_buffer_pointer() anymore.
>>       @ strings/decimal.c
>>          Remove #line directive: it messes up TAGS and it confuses 
>> gdb when debugging.
>>       @ unittest/gunit/CMakeLists.txt
>>          New unit test.
>>       @ unittest/gunit/my_decimal-t.cc
>>          Unit test for my_decimal copy constructor and assignment 
>> operator.
>>
>>      added:
>>        unittest/gunit/my_decimal-t.cc
>>      modified:
>>        mysql-test/r/func_math.result
>>        mysql-test/t/func_math.test
>>        sql/item_cmpfunc.cc
>>        sql/item_func.cc
>>        sql/my_decimal.h
>>        sql/sql_analyse.cc
>>        strings/decimal.c
>>        unittest/gunit/CMakeLists.txt
>
>

Thread
bzr commit into mysql-trunk branch (tor.didriksen:3498) Bug#59241Tor Didriksen13 Jan
  • Re: bzr commit into mysql-trunk branch (tor.didriksen:3498) Bug#59241Jorgen Loland13 Jan
    • Re: bzr commit into mysql-trunk branch (tor.didriksen:3498) Bug#59241Tor Didriksen13 Jan
  • Re: bzr commit into mysql-trunk branch (tor.didriksen:3498) Bug#59241Olav Sandstaa13 Jan
    • Re: bzr commit into mysql-trunk branch (tor.didriksen:3498) Bug#59241Tor Didriksen13 Jan