Skip to content

sqlite3 bigmem test catches wrong exception #99659

@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