freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c
- From: Frediano Ziglio <freddy77 AT gmail.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c
- Date: Thu, 23 Sep 2010 09:23:22 +0200
2010/9/23 Peter C. Norton <spacey-freetds.org AT ssr.com>
> Frediano,
>
> For the SIGBUS, the fix at
>
> http://freetds.cvs.sourceforge.net/viewvc/freetds/freetds/src/odbc/unittests/array_out.c?r1=1.16&r2=1.17
> works fine for me, thanks!.
>
> More unittest failures:
>
> (1) data fails in the following manner:
>
> SELECT CONVERT(INT, '-123') AS data
> SELECT CONVERT(INT, '78654') AS data
> SELECT CONVERT(VARCHAR(10), ' 51245 ') AS data
> SELECT CONVERT(UNIVARCHAR(10), u&'\06A4\FBA5') AS data
> Wrong result
> Got: 2 \ua406\ua5fb
> Expected: 2 \u06a4\ufba5
> SELECT CONVERT(DECIMAL, '1234.5678') AS data
> SELECT CONVERT(NUMERIC, '8765.4321') AS data
> SELECT CONVERT(FLOAT, '1234.5678') AS data
> SELECT CONVERT(REAL, '8765.4321') AS data
> SELECT CONVERT(SMALLMONEY, '765.4321') AS data
> SELECT CONVERT(MONEY, '4321234.5678') AS data
> SELECT CONVERT(DATETIME, '2006-06-09 11:22:44') AS data
> SELECT CONVERT(SMALLDATETIME, '2006-06-12 22:37:21') AS data
> SELECT CONVERT(DATETIME, '2006-06-09 11:22:44') AS data
> SELECT CONVERT(SMALLDATETIME, '2006-06-12 22:37:21') AS data
> FAIL: data
>
> This looks like an endian problem, as the bytes appear to be swapped.
> From googling around, it looks like in the case of ODBC, it specifies
> that that SQL_W_CHAR is in host byte order. However, this SPARC is
> connecting to an x86 server and I don't see any checks for byte
> ordering being done in the test:
>
> case SQL_C_WCHAR:
> assert(out_len >=0 && (out_len % sizeof(SQLWCHAR)) == 0);
> sprintf(sbuf, "%u ", (unsigned int) (out_len /
> sizeof(SQLWCHAR)));
> wp = (SQLWCHAR*) out_buf;
> for (i = 0; i < out_len / sizeof(SQLWCHAR); ++i)
> if ((unsigned int) wp[i] < 256)
> sprintf(strchr(sbuf, 0), "%c", (char)
> wp[i]);
> else
> sprintf(strchr(sbuf, 0), "\\u%04x",
> (unsigned int) wp[i]);
> break;
>
>
it's ok as ODBC should encode SQLWCHAR in proper order. Could you post
TDSDUMP ?? Just to understand in which encoding server send data.
> Is there a right way to check the byte order of the remote host and
> correct for this in the test?
>
> (2) timeout3 isn't returning consistently:
>
> /tmp/freetds/src/odbc/unittests $ ./timeout3
> Fake server binded at port 12340
> try to connect to our port just to check connection timeout
> Alarm Clock
> /tmp/freetds/src/odbc/unittests $ ./timeout3
> Fake server binded at port 12340
> try to connect to our port just to check connection timeout
> Message: HYT00 - [unixODBC][FreeTDS][SQL Server]Timeout expired
> Done.
>
> I'm testing this because my prior "make check" looked like this:
> Fake server binded at port 12340
> try to connect to our port just to check connection timeout
> /bin/bash: line 4: 2854 Alarm Clock ${dir}$tst
> FAIL: timeout3
>
>
Mmmm... even in this case a TDSDUMP would help. timeout should occur in
10/20 seconds so 30 seconds should suffice and alarm should not raise in the
test.
Thanks for keeping testing
freddy77
-
[freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Peter C. Norton, 09/21/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Christos Zoulas, 09/21/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Frediano Ziglio, 09/22/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Peter C. Norton, 09/23/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Frediano Ziglio, 09/23/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Peter C. Norton, 09/23/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Frediano Ziglio, 09/24/2010
- Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c, Peter C. Norton, 09/27/2010
- Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c, Frediano Ziglio, 09/28/2010
- Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c, Frediano Ziglio, 09/28/2010
- Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c, Peter C. Norton, 09/30/2010
- Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c, Frediano Ziglio, 09/30/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Frediano Ziglio, 09/24/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Peter C. Norton, 09/23/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Frediano Ziglio, 09/23/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Peter C. Norton, 09/23/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Frediano Ziglio, 09/22/2010
-
Re: [freetds] Solaris/SPARC: SIGBUS in unittests/array_out.c,
Christos Zoulas, 09/21/2010
Archive powered by MHonArc 2.6.24.