Thread: Testsuite failing on s390x

Testsuite failing on s390x

From
Christoph Berg
Date:
Hi,

thanks for the new regression test suite in psqlodbc - I've activated
it for the Debian package.

It runs fine on all architectures except s390x (our 64bit s390 port)
where 3 tests fail:

test sampletables             ... ok
test connect                  ... ok
test stmthandles              ... ok
test select                   ... ok
test getresult                ... ok
test prepare                  ... FAILED
test params                   ... ok
test notice                   ... ok
test arraybinding             ... FAILED
test insertreturning          ... ok
test dataatexecution          ... FAILED
test boolsaschar              ... ok
test cvtnulldate              ... ok
test alter                    ... ok

regression.diffs:
*** /build/buildd-psqlodbc_09.02.0100-1-s390x-d7IBem/psqlodbc-09.02.0100/test/expected/prepare.out    Tue Jun 11
16:17:502013 
--- /build/buildd-psqlodbc_09.02.0100-1-s390x-d7IBem/psqlodbc-09.02.0100/test/results/prepare.out    Tue Jun 11
16:18:422013 
***************
*** 4,10 ****
  Result set:
  2    bar
  Result set:
- 3    foobar
  Result set:
  1    @ 1 day    one day
  2    @ 10 secs    ten secs
--- 4,9 ----

======================================================================

*** /build/buildd-psqlodbc_09.02.0100-1-s390x-d7IBem/psqlodbc-09.02.0100/test/expected/arraybinding.out    Tue Jun 11
16:17:502013 
--- /build/buildd-psqlodbc_09.02.0100-1-s390x-d7IBem/psqlodbc-09.02.0100/test/results/arraybinding.out    Tue Jun 11
16:18:432013 
***************
*** 1,30 ****
  \! ./src/arraybinding-test
! connected
! Parameter    Status
! Result set:
! 10000
! Result set:
! 0    columnwise 0
! 1    columnwise 1
! 100    columnwise 100
! 9999    columnwise 9999
! Parameter    Status
! Fetching result sets for array bound (5 results expected)
! 1: Result set:
! columnwise 100
! 2: Result set:
! columnwise 101
! 3: Result set:
! columnwise 102
! 4: Result set:
! columnwise 103
! 5: Result set:
! columnwise 104
! Number of rows in table:
! Result set:
! 9995
! Result set:
! 0    columnwise 0
! 1    columnwise 1
! 9999    columnwise 9999
! disconnecting
--- 1,2 ----
  \! ./src/arraybinding-test
! Segmentation fault (core dumped)

======================================================================

*** /build/buildd-psqlodbc_09.02.0100-1-s390x-d7IBem/psqlodbc-09.02.0100/test/expected/dataatexecution.out    Tue Jun
1116:17:50 2013 
--- /build/buildd-psqlodbc_09.02.0100-1-s390x-d7IBem/psqlodbc-09.02.0100/test/results/dataatexecution.out    Tue Jun 11
16:18:432013 
***************
*** 3,12 ****
  Result set:
  2
  3
! Parameter    Status
! Fetching result sets for array bound (2 results expected)
! 1: Result set:
! 4
! 2: Result set:
! 5
! disconnecting
--- 3,6 ----
  Result set:
  2
  3
! unexpected # of rows processed after SQL_NEED_DATA: 0


I can provide backtraces and look into the core, but maybe someone
already knows what the problem is before I dig deeper into it.

Christoph
--
cb@df7cb.de | http://www.df7cb.de/


Re: Testsuite failing on s390x

From
Heikki Linnakangas
Date:
On 12.06.2013 13:47, Christoph Berg wrote:
> thanks for the new regression test suite in psqlodbc - I've activated
> it for the Debian package.
>
> It runs fine on all architectures except s390x (our 64bit s390 port)
> where 3 tests fail:
>
> test sampletables             ... ok
> test connect                  ... ok
> test stmthandles              ... ok
> test select                   ... ok
> test getresult                ... ok
> test prepare                  ... FAILED
> test params                   ... ok
> test notice                   ... ok
> test arraybinding             ... FAILED
> test insertreturning          ... ok
> test dataatexecution          ... FAILED
> test boolsaschar              ... ok
> test cvtnulldate              ... ok
> test alter                    ... ok
>
> ...
>
> I can provide backtraces and look into the core, but maybe someone
> already knows what the problem is before I dig deeper into it.

Nope, dunno what's going on. I suspect the prepare test might be failing
because of some mismatch between integer types. It's binding a parameter
as SQL_C_SLONG, which means it's passed as a C variable with "signed
long int" type. Maybe that behaves funnily on s390x.

Backtraces would be helpful. Or if you can give me access to a box
running debian on s390x, I can log in and take a look myself.

- Heikki


Re: Testsuite failing on s390x

From
Tom Lane
Date:
Heikki Linnakangas <hlinnakangas@vmware.com> writes:
> Nope, dunno what's going on. I suspect the prepare test might be failing
> because of some mismatch between integer types. It's binding a parameter
> as SQL_C_SLONG, which means it's passed as a C variable with "signed
> long int" type. Maybe that behaves funnily on s390x.

Remember that s390 is big-endian, so integer width mismatches are more
likely to be exposed than they are on Intel hardware.  For instance,
passing a long by-reference to an integer parameter will work fine on
x86_64 and not so fine on s390x.

            regards, tom lane


Re: Testsuite failing on s390x

From
Hiroshi Inoue
Date:
Hi Christoph,

(2013/06/12 19:47), Christoph Berg wrote:
> Hi,
>
> thanks for the new regression test suite in psqlodbc - I've activated
> it for the Debian package.
>
> It runs fine on all architectures except s390x (our 64bit s390 port)
> where 3 tests fail:
>
> test sampletables             ... ok
> test connect                  ... ok
> test stmthandles              ... ok
> test select                   ... ok
> test getresult                ... ok
> test prepare                  ... FAILED
> test params                   ... ok
> test notice                   ... ok
> test arraybinding             ... FAILED
> test insertreturning          ... ok
> test dataatexecution          ... FAILED
> test boolsaschar              ... ok
> test cvtnulldate              ... ok
> test alter                    ... ok

Thanks for the report.
Could you please try the attached patch?
The patch changes both the driver and testsuite.

regard,
Hiroshsi Inoue


Attachment

Re: Testsuite failing on s390x

From
Christoph Berg
Date:
Re: Hiroshi Inoue 2013-06-12 <51B88B07.8070007@tpf.co.jp>
> Thanks for the report.
> Could you please try the attached patch?
> The patch changes both the driver and testsuite.

The patch fixed all the problems, thanks!

Btw, lots of files in the current release tarball seem to have dos
line endings which broke the testsuite, I've recoded them for Debian,
but it would be nice if the next tarball was clean.

Also, test/src/common.o is not cleaned by the Makefile in test/.

(And as a minor nitpick "make installcheck" should imho rather be
"make check" because it doesn't install anything.)

Christoph
--
cb@df7cb.de | http://www.df7cb.de/