Details
Description
The python tests don't necessarily provide a config string when calling session methods.
This shows up, for example, in some of the test_cursor12 tests that use WT_SESSION::verify. Because verify isn't implemented (yet) on tiered tables, we have a hook function that always returns success when a test calls verify. This fails if the test doesn't provide a config string as an argument to verify:
$ python3 ../test/suite/run.py --hook tiered test_cursor12.test_cursor12.test_modify_smoke_recover -s 8
|
ERROR in test_cursor12.test_cursor12.test_modify_smoke_recover -s 8 (table.recno.item)
|
E
|
======================================================================
|
ERROR: test_cursor12.test_cursor12.test_modify_smoke_recover -s 8 (table.recno.item)
|
----------------------------------------------------------------------
|
Traceback (most recent call last):
|
File "/home/ubuntu/src/wiredtiger/test/suite/test_cursor12.py", line 337, in test_modify_smoke_recover
|
self.session.verify(self.uri)
|
File "/home/ubuntu/src/wiredtiger/test/suite/wthooks.py", line 192, in <lambda>
|
f = lambda self, *args: hooked_function(self, orig_func, hook_info_name, *args)
|
File "/home/ubuntu/src/wiredtiger/test/suite/wthooks.py", line 120, in hooked_function
|
ret = call_func(self, *args)
|
TypeError: <lambda>() missing 1 required positional argument: 'config'
|
|
----------------------------------------------------------------------
|
Ran 1 test in 0.988s
|
|
FAILED (errors=1)
|
The fix is to provide a default value of None in the verify hook. We should do the same in all of the other hook functions, as well.