From d8b16d924a6d85c5dfb8a0617bc126812adf0899 Mon Sep 17 00:00:00 2001 From: Regina Obe Date: Wed, 13 Jan 2016 00:37:25 +0000 Subject: [PATCH] Patch from Sebastiaan Couwenberg to fix test_wkb_out_point failure on hppa & mips. closes #3426 git-svn-id: http://svn.osgeo.org/postgis/trunk@14593 b70326c6-7e19-0410-871a-916f4a2858ee --- liblwgeom/cunit/cu_out_wkb.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/liblwgeom/cunit/cu_out_wkb.c b/liblwgeom/cunit/cu_out_wkb.c index 8094f87b5..05f509499 100644 --- a/liblwgeom/cunit/cu_out_wkb.c +++ b/liblwgeom/cunit/cu_out_wkb.c @@ -66,6 +66,13 @@ static void cu_wkb(char *wkt) } +/* parisc and mips (at least some processors) have a different nan representation from other arches. */ +#if !defined(__hppa__) && !defined(__mips__) +# define nan_val( v1, v2) v1 +#else +# define nan_val( v1, v2) v2 +#endif + static void test_wkb_out_point(void) { cu_wkb("POINT(0 0 0 0)"); @@ -75,19 +82,24 @@ static void test_wkb_out_point(void) CU_ASSERT_STRING_EQUAL(s,"0060000001000000043FF00000000000003FF00000000000003FF0000000000000"); cu_wkb("POINT EMPTY"); - CU_ASSERT_STRING_EQUAL(s,"00000000017FF80000000000007FF8000000000000"); + CU_ASSERT_STRING_EQUAL(s, nan_val("00000000017FF80000000000007FF8000000000000", + "00000000017FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF")); cu_wkb("SRID=4326;POINT EMPTY"); - CU_ASSERT_STRING_EQUAL(s,"0020000001000010E67FF80000000000007FF8000000000000"); + CU_ASSERT_STRING_EQUAL(s, nan_val("0020000001000010E67FF80000000000007FF8000000000000", + "0020000001000010E67FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF")); cu_wkb("POINT Z EMPTY"); - CU_ASSERT_STRING_EQUAL(s,"00800000017FF80000000000007FF80000000000007FF8000000000000"); + CU_ASSERT_STRING_EQUAL(s, nan_val("00800000017FF80000000000007FF80000000000007FF8000000000000", + "00800000017FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF")); cu_wkb("POINT M EMPTY"); - CU_ASSERT_STRING_EQUAL(s,"00400000017FF80000000000007FF80000000000007FF8000000000000"); + CU_ASSERT_STRING_EQUAL(s, nan_val("00400000017FF80000000000007FF80000000000007FF8000000000000", + "00400000017FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF")); cu_wkb("POINT ZM EMPTY"); - CU_ASSERT_STRING_EQUAL(s,"00C00000017FF80000000000007FF80000000000007FF80000000000007FF8000000000000"); + CU_ASSERT_STRING_EQUAL(s, nan_val("00C00000017FF80000000000007FF80000000000007FF80000000000007FF8000000000000", + "00C00000017FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF")); } static void test_wkb_out_linestring(void) -- 2.40.0