Hi,

as requested in the unit tests, I'm here attaching my results for
DBD::ODBC's t/ExecuteArray.pm tests in combination with sqlite3odbc.

I *know* it is probably not very useful to use DBD::ODBC in
combination with SQLite, as there is already a dedicated DBI driver,
but I chose this because I want to package DBD::ODBC for Fedora, and
in Fedora the idea is to run as many tests as possible for the
packages involved, so someone suggested to use a SQLite test database
for use with the DBD::ODBC tests.

In case you're interested:
Original package review:
https://bugzilla.redhat.com/show_bug.cgi?id=441830

my current specfile for DBD::ODBC (without SQLite tests)
https://gist.github.com/3155925

Below are the test results from DBD::ODBC. I ran the tests on EL6 with
stock perl, DBI and SQLite.

t/01base.t ................... ok
#
# Perl 5.10.1
# osname=linux, osvers=2.6.32-220.el6.x86_64, archname=i386-linux-thread-multi
# Using DBI 1.609
# Using DBD::ODBC 1.39
# Using DBMS_NAME 'SQLite'
# Using DBMS_VER '3.6.20'
# Using DRIVER_NAME 'sqlite3odbc.so'
# Using DRIVER_VER '0.97'
# odbc_has_unicode 0

#   Failed test 'ReadOnly set'
#   at t/02simple.t line 57.
#          got: '0'
#     expected: '1'
# Looks like you failed 1 test of 65.
t/02simple.t .................
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/65 subtests
#
# N.B. Some drivers (postgres/cache) may return ODBC 2.0 column names
for the SQLTables result-set e.g. TABLE_QUALIFIER instead of TABLE_CAT
t/03dbatt.t .................. ok
t/05meth.t ................... ok
t/07bind.t ................... ok
t/08bind2.t .................. ok
t/09multi.t .................. ok
t/10handler.t ................ ok
t/12blob.t ................... ok
t/20SqlServer.t .............. ok
t/30Oracle.t ................. ok
t/40UnicodeRoundTrip.t ....... ok
t/41Unicode.t ................ ok
t/50_odbc_utf8_on.t .......... ok
#
#
# NOTE: This tests execute_array and execute_for_fetch using DBI's
version and not the native DBD::ODBC execute_for_fetch. It should work
as it is using nothing special in DBD::ODBC other than the normal
methods.
t/70execute_array_dbi.t ...... ok
#
#
# NOTE: This is an experimental test. Since DBD::ODBC added the
execute_for_fetch method this tests the native method and not DBI's
fallback method. If you fail this test it probably means the ODBC
driver you are using does not have sufficient support (or is buggy)
for array operations. If you pass this test your ODBC Driver seems ok
and you can get faster insert/update/delete operations using DBI's
execute_array or execute_for_fetch methods by setting the
odbc_array_operations to true.
#
# If this test fails it should not stop you installing DBD::ODBC but
if it fails with an error other than something indicating 'connection
busy' I'd strongly suggest you don't set odbc_array_operations and
stick with DBI's default implementation.
#
# If this test fails for your driver I'd like to hear about it so I
can compile a list of working drivers and perhaps pass bug reports on
to the maintainers. Please rerun this test with TEST_VERBOSE set or
using prove and send the results to the dbi-users mailing list.
#
#
# Perl 5.10.1
# osname=linux, osvers=2.6.32-220.el6.x86_64, archname=i386-linux-thread-multi
# Using DBI 1.609
# Using DBD::ODBC 1.39
# Using DBMS_NAME 'SQLite'
# Using DBMS_VER '3.6.20'
# Using DRIVER_NAME 'sqlite3odbc.so'
# Using DRIVER_VER '0.97'
# odbc_has_unicode 0

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x956c680)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x956c700)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x956c780)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x956c800)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x956c880)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x956cac0)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x959f998)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x959fa18)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x959fa98)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x959fb18)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x959fd68)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a03d8)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a0a98)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a0b18)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a0b98)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a1448)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a14c8)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a1548)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a15c8)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a1648)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a5848)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a58c8)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a5948)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a59c8)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a5a48)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a5908)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a7560)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a75d0)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a7650)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a76d0)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a78b0)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a7f20)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a7fa0)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a8020)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a80a0)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95aa418)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95aa498)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95aa518)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95aa598)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95aa618)'
#     expected: '1'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'array in array tuple status'
#   at t/ExecuteArray.pm line 136.
#          got: ''
#     expected: 'ARRAY'

#   Failed test '3 elements in array tuple status error'
#   at t/ExecuteArray.pm line 137.
#          got: '0'
#     expected: '3'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a96f8)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a97a8)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95a9828)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b92a8)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9328)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b98a8)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9a18)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b99a8)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b98f8)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9618)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bca68)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9f48)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9dc8)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9688)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95b9cc8)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bce98)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bd508)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bd588)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bd608)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bd688)'
#     expected: '1'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95befd0)'
#     expected: '1'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bf040)'
#     expected: '1'

#   Failed test 'row 2 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bf0c0)'
#     expected: '1'

#   Failed test 'row 3 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bf140)'
#     expected: '1'

#   Failed test 'row 4 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bf1c0)'
#     expected: '0E0'

#   Failed test 'row 0 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bf2d0)'
#     expected: '4'

#   Failed test 'row 1 tuple status'
#   at t/ExecuteArray.pm line 143.
#          got: 'ARRAY(0x95bf2e0)'
#     expected: '1'
# Looks like you failed 83 tests of 397.
t/70execute_array_native.t ...
Dubious, test returned 83 (wstat 21248, 0x5300)
Failed 83/397 subtests
t/80_odbc_diags.t ............
No subtests run
t/odbc_describe_parameter.t .. ok
t/pod-coverage.t ............. ok
t/pod.t ...................... ok
t/rt_38977.t ................. ok
t/rt_39841.t ................. ok
t/rt_39897.t ................. ok
t/rt_43384.t ................. ok
t/rt_46597.t ................. ok
t/rt_50852.t ................. ok
#
# Some of these tests may fail for your driver - please let me know if
they do along with the strings SQLite/sqlite3odbc.so
t/rt_57957.t ................. ok
t/rt_59621.t ................. ok
t/rt_61370.t ................. ok
t/rt_62033.t ................. ok
t/rt_63550.t ................. ok
t/rt_null_nvarchar.t ......... ok
t/sql_type_cast.t ............ skipped: DBI version is too old for this test

Test Summary Report
-------------------
t/02simple.t               (Wstat: 256 Tests: 65 Failed: 1)
  Failed test:  3
  Non-zero exit status: 1
t/70execute_array_native.t (Wstat: 21248 Tests: 397 Failed: 83)
  Failed tests:  7-11, 27-31, 47-51, 67-71, 91-95, 110-114
                129-133, 148-152, 173-174, 188-189, 203-204
                218-219, 234-235, 250-251, 265-266, 280-281
                294-298, 306-310, 326-330, 346-350, 366-370
                386-387
  Non-zero exit status: 83
t/80_odbc_diags.t          (Wstat: 139 Tests: 0 Failed: 0)
  Non-zero wait status: 139
  Parse errors: No plan found in TAP output
Files=33, Tests=1307,  5 wallclock secs ( 0.48 usr  0.08 sys +  3.24
cusr  0.61 csys =  4.41 CPU)
Result: FAIL

Reply via email to