Opened 15 years ago
Closed 15 years ago
#264 closed defect (fixed)
CUnit geography suite failures
Reported by: | robe | Owned by: | pramsey |
---|---|---|---|
Priority: | medium | Milestone: | PostGIS 1.5.0 |
Component: | postgis | Version: | master |
Keywords: | Cc: |
Description
I'm seeing more of a pattern between GCC than OS as to how this fails. As I mentioned I found it strange that one of my OpenSUSE vms fails more like one of my MingWs. In fact teh OpenSUSEs fail in different ways. It occurred to me that what the similarities are between the like MingW/OpenSuse pairs I believe to be version of GCC. I'll have to double-check since I don't have those available at the moment.
Here is what I have
CUnit geography failures on various mixins of OpenSuse, MingW, GCC --On one Windows XP MingW running gcc.exe (GCC) 3.4.5 (mingw-vista special r3) Suite: Geodetic Suite Test: test_signum() ... passed Test: test_gbox_from_spherical_coordinates() ... passed Test: test_gserialized_get_gbox_geocentric() ... passed Test: test_clairaut() ... passed Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:375 - CU_ASSERT_EQUAL(rv,LW_TRUE) 2. cu_geodetic.c:383 - CU_ASSERT_EQUAL(rv,LW_TRUE) Test: test_edge_distance_to_point() ... passed Test: test_edge_distance_to_edge() ... passed Test: test_lwgeom_distance_sphere() ... passed Test: test_ptarray_point_in_ring() ... passed --On other MingW running (I thinkg gcc 4.11 -- have to double-check - I know I upgraded this one to newest MingW gcc) Don't have stats but recall it fails like my OpenSuse 11.0 VM -- On OpenSuse 10.3 fails same as first MingW - have to double-check gcc but think its in the 3. something series Suite: Geodetic Suite Test: test_signum() ... passed Test: test_gbox_from_spherical_coordinates() ... passed Test: test_gserialized_get_gbox_geocentric() ... passed Test: test_clairaut() ... passed Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:375 - CU_ASSERT_EQUAL(rv,LW_TRUE) 2. cu_geodetic.c:383 - CU_ASSERT_EQUAL(rv,LW_TRUE) Test: test_edge_distance_to_point() ... passed Test: test_edge_distance_to_edge() ... passed Test: test_lwgeom_distance_sphere() ... passed Test: test_ptarray_point_in_ring() ... passed -- On OpenSuse 11.0 vM fails as my second MingW runnning new gcc -- gcc (SUSE Linux) 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] Suite: Geodetic Suite Test: test_signum() ... passed Test: test_gbox_from_spherical_coordinates() ... passed Test: test_gserialized_get_gbox_geocentric() ... passed Test: test_clairaut() ... passed Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:324 - CU_ASSERT_DOUBLE_EQUAL(g.lon,0.0,0.00001) 2. cu_geodetic.c:325 - CU_ASSERT_EQUAL(rv,LW_TRUE) 3. cu_geodetic.c:340 - CU_ASSERT_DOUBLE_EQUAL(g.lon,0.0,0.00001) 4. cu_geodetic.c:341 - CU_ASSERT_EQUAL(rv,LW_TRUE) Test: test_edge_distance_to_point() ... passed Test: test_edge_distance_to_edge() ... passed Test: test_lwgeom_distance_sphere() ... passed Test: test_ptarray_point_in_ring() ... passed
Change History (14)
comment:1 by , 15 years ago
Version: | → trunk |
---|
comment:2 by , 15 years ago
comment:3 by , 15 years ago
Was a bit wrong about the gcc on my OpenSUSE 10.3 and MingW they are both newer than I thought. Latest results against trunk for both these are below.
So I guess if its a GCC issue, its something that changed between GCC 4.2 and GCC 4.3
gcc --version --> gcc (GCC) 4.2.1 (SUSE Linux) Suite: Geodetic Suite Test: test_signum() ... passed Test: test_gbox_from_spherical_coordinates() ... passed Test: test_gserialized_get_gbox_geocentric() ... passed Test: test_clairaut() ... passed Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:375 - CU_ASSERT_EQUAL(rv,LW_TRUE) 2. cu_geodetic.c:383 - CU_ASSERT_EQUAL(rv,LW_TRUE) Test: test_edge_distance_to_point() ... passed Test: test_edge_distance_to_edge() ... passed Test: test_lwgeom_distance_sphere() ... passed Test: test_ptarray_point_in_ring() ... passed
My MingW running the newer gcc compiling against latest trunk
gcc --version --> gcc.exe (GCC) 4.4.0 Suite: Geodetic Suite Test: test_signum() ... passed Test: test_gbox_from_spherical_coordinates() ... passed Test: test_gserialized_get_gbox_geocentric() ... passed Test: test_clairaut() ... passed Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:324 - CU_ASSERT_DOUBLE_EQUAL(g.lon,0.0,0.00001) 2. cu_geodetic.c:325 - CU_ASSERT_EQUAL(rv,LW_TRUE) 3. cu_geodetic.c:340 - CU_ASSERT_DOUBLE_EQUAL(g.lon,0.0,0.00001) 4. cu_geodetic.c:341 - CU_ASSERT_EQUAL(rv,LW_TRUE) Test: test_edge_distance_to_point() ... passed Test: test_edge_distance_to_edge() ... passed Test: test_lwgeom_distance_sphere() ... passed Test: test_ptarray_point_in_ring() ... passed
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
I believe I have fixed this last night.
comment:6 by , 15 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
My 4.4.0 MingW is still unhappy. Haven't tested on OpenSUSE 11.
Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:333 - CU_ASSERT_DOUBLE_EQUAL(g.lon,0.0,0.00001) 2. cu_geodetic.c:334 - CU_ASSERT_EQUAL(rv,LW_TRUE)
comment:7 by , 15 years ago
Hrm, hrm, sure you're upgraded to the latest? Just a hopeful question, if not this is a very ugly problem, because a tolerance that is loose enough to catch double equality in MinGW is going to be loose enough to give wrong false positives on other platforms.
comment:8 by , 15 years ago
Paul, Keep on dreaming. Just tested on my OpenSUSE 11 and same error
Test: test_edge_intersection() ... FAILED 1. cu_geodetic.c:333 - CU_ASSERT_DOUBLE_EQUAL(g.lon,0.0,0.00001) 2. cu_geodetic.c:334 - CU_ASSERT_EQUAL(rv,LW_TRUE)
Well 2 out of 4 is better. These were the two machines running newer GCC versions (in the 4 series) that had 4 errors before. So you got them down to 2, now just try to get rid of the other 2.
comment:9 by , 15 years ago
Can you give me the GCC numbers? This will be easier if I have my own environment and am not trying to do it by remote control.
comment:10 by , 15 years ago
Its all above but here it is again.
For the MingW — gcc.exe (GCC) 4.4.0 (note the other MingW I normally use ((GCC) 3.4.5) only had 2 errors before and you fixed those which also knocked of 2 of the 4 in the newer GCCs)
Open SUSE 11 — 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036]
comment:11 by , 15 years ago
Ever so slightly loosen equality tolerance in double comparison at r4788. This fixed my GCC4 failures…
comment:12 by , 15 years ago
… and r4788 did not regress my Centos or OS/X installations. Hate this silly balancing act.
If this is GCC related — I wonder if its a similar issue as #119 And Mark's note about: http://fedoraproject.org/wiki/Security/Features#Compile_Time_Buffer_Checks_.28FORTIFY_SOURCE.29
That would explain why I was picking up some failures in the CUnit that you were missing. Which GCC are you running Paul?