Skip to content

sqlite3 bigmem test catches wrong exception #99659

Closed
@ambv

Description

@ambv

Lib/test/test_sqlite3/test_types.py has two bigmem tests:

  • test_too_large_string; and
  • test_too_large_blob.

Those are skipped unless -M is passed to the test runner so nobody was running those tests until I set up a bigmem buildbot. Running tests on the buildbot revealed two failures:


======================================================================
ERROR: test_too_large_blob (test.test_sqlite3.test_types.SqliteTypeTests.test_too_large_blob)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\support\__init__.py", line 967, in wrapper
    return f(self, maxsize)
           ^^^^^^^^^^^^^^^^
  File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\test_sqlite3\test_types.py", line 121, in test_too_large_blob
    self.cur.execute("insert into test(s) values (?)", (b'x'*(2**31-1),))
sqlite3.DataError: string or blob too big
Stdout:
 ... expected peak memory use: 6.0G
Stderr:
R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\support\__init__.py:910: RuntimeWarning: /proc not available for stats: [Errno 2] No such file or directory: '/proc/10708/statm'
  warnings.warn('/proc not available for stats: {}'.format(e),
======================================================================
ERROR: test_too_large_string (test.test_sqlite3.test_types.SqliteTypeTests.test_too_large_string)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\support\__init__.py", line 967, in wrapper
    return f(self, maxsize)
           ^^^^^^^^^^^^^^^^
  File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\test_sqlite3\test_types.py", line 110, in test_too_large_string
    self.cur.execute("insert into test(s) values (?)", ('x'*(2**31-1),))
sqlite3.DataError: string or blob too big
Stdout:
 ... expected peak memory use: 8.0G
----------------------------------------------------------------------

The with self.assertRaises() in those tests should catch sqlite.DataError instead of the exceptions currently listed.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions