forked from enlightenment/efl
eina: avoid wrong implicit conversion from unsigned to unsigned long in Eina_Value tests
There is no automatic promotion of unsigned to unsigned long when using va_arg, which means it is illegal to pass an 'unsigned' value and then use it as an unsigned long in eina_arg_vset. Doing so yields incorrect results on some architectures like itanium Patch by Albin 'Lutin' Tonnerre <albin.tonnerre@gmail.com> SVN revision: 71196
This commit is contained in:
parent
b19de09bae
commit
fa1569eb9b
|
@ -278,3 +278,5 @@
|
|||
2012-05-17 Albin Tonnerre
|
||||
|
||||
* Fix portability issue of Eina_Value on ARM and PPC.
|
||||
* Fix portability issue of Eina_Value test on Itanium.
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ Fixes:
|
|||
* Rounding issue with eina_f32p32_cos and eina_f32p32_sin when getting close to 1.0.
|
||||
* Portability issue with Eina_Value when char are not signed by default (case on ARM
|
||||
and PPC).
|
||||
* Portability issue with Eina_Value test suite when unsigned where not promoted to
|
||||
unsigned long (case on Itanium).
|
||||
|
||||
Eina 1.2.0
|
||||
|
||||
|
|
|
@ -99,9 +99,9 @@ START_TEST(eina_value_test_simple)
|
|||
eina_value_flush(value);
|
||||
|
||||
fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG));
|
||||
fail_unless(eina_value_set(value, 3000000001U));
|
||||
fail_unless(eina_value_set(value, 3000000001UL));
|
||||
fail_unless(eina_value_get(value, &ul));
|
||||
fail_unless(ul == 3000000001U);
|
||||
fail_unless(ul == 3000000001UL);
|
||||
eina_value_flush(value);
|
||||
|
||||
fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64));
|
||||
|
@ -540,10 +540,10 @@ START_TEST(eina_value_test_pvariant)
|
|||
eina_value_flush(value);
|
||||
|
||||
fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG));
|
||||
in_ul = 3000000001U;
|
||||
in_ul = 3000000001UL;
|
||||
fail_unless(eina_value_pset(value, &in_ul));
|
||||
fail_unless(eina_value_pget(value, &ul));
|
||||
fail_unless(ul == 3000000001U);
|
||||
fail_unless(ul == 3000000001UL);
|
||||
eina_value_flush(value);
|
||||
|
||||
fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_UINT64));
|
||||
|
@ -713,10 +713,10 @@ START_TEST(eina_value_test_to_string)
|
|||
eina_value_flush(value);
|
||||
|
||||
fail_unless(eina_value_setup(value, EINA_VALUE_TYPE_ULONG));
|
||||
in_ul = 3000000001U;
|
||||
in_ul = 3000000001UL;
|
||||
fail_unless(eina_value_pset(value, &in_ul));
|
||||
fail_unless(eina_value_pget(value, &ul));
|
||||
fail_unless(ul == 3000000001U);
|
||||
fail_unless(ul == 3000000001UL);
|
||||
snprintf(buf, sizeof(buf), "%lu", in_ul);
|
||||
out = eina_value_to_string(value);
|
||||
fail_unless(out != NULL);
|
||||
|
|
Loading…
Reference in New Issue