summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/suite/test_assert05.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/test/suite/test_assert05.py')
-rw-r--r--src/third_party/wiredtiger/test/suite/test_assert05.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/src/third_party/wiredtiger/test/suite/test_assert05.py b/src/third_party/wiredtiger/test/suite/test_assert05.py
deleted file mode 100644
index 9ca5ee02fff..00000000000
--- a/src/third_party/wiredtiger/test/suite/test_assert05.py
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/usr/bin/env python
-#
-# Public Domain 2014-present MongoDB, Inc.
-# Public Domain 2008-2014 WiredTiger, Inc.
-#
-# This is free and unencumbered software released into the public domain.
-#
-# Anyone is free to copy, modify, publish, use, compile, sell, or
-# distribute this software, either in source code form or as a compiled
-# binary, for any purpose, commercial or non-commercial, and by any
-# means.
-#
-# In jurisdictions that recognize copyright laws, the author or authors
-# of this software dedicate any and all copyright interest in the
-# software to the public domain. We make this dedication for the benefit
-# of the public at large and to the detriment of our heirs and
-# successors. We intend this dedication to be an overt act of
-# relinquishment in perpetuity of all present and future rights to this
-# software under copyright law.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-#
-# test_assert05.py
-# Timestamps: assert durable timestamp settings
-#
-
-from suite_subprocess import suite_subprocess
-import wttest
-from wtscenario import make_scenarios
-
-class test_assert05(wttest.WiredTigerTestCase, suite_subprocess):
- base = 'assert05'
- base_uri = 'file:' + base
- uri_always = base_uri + '.always.wt'
- uri_def = base_uri + '.def.wt'
- uri_never = base_uri + '.never.wt'
- uri_none = base_uri + '.none.wt'
- cfg_always = 'verbose=(write_timestamp=true),write_timestamp_usage=always,assert=(write_timestamp=on)'
- cfg_def = ''
- cfg_never = 'write_timestamp_usage=never,assert=(write_timestamp=on)'
- cfg_none = 'assert=(write_timestamp=off)'
-
- key_format_values = [
- ('column', dict(key_format='r', usestrings=False)),
- ('string-row', dict(key_format='S', usestrings=True))
- ]
- scenarios = make_scenarios(key_format_values)
-
- count = 1
- #
- # Commit a k/v pair making sure that it detects an error if needed, when
- # used with and without a durable timestamp.
- #
- def insert_check(self, uri, use_ts):
- c = self.session.open_cursor(uri)
- key = 'key' + str(self.count) if self.usestrings else self.count
- val = 'value' + str(self.count)
-
- # Commit with a timestamp
- self.session.begin_transaction()
- c[key] = val
- self.session.prepare_transaction(
- 'prepare_timestamp=' + self.timestamp_str(self.count))
- self.session.timestamp_transaction(
- 'commit_timestamp=' + self.timestamp_str(self.count))
- self.session.timestamp_transaction(
- 'durable_timestamp=' + self.timestamp_str(self.count))
- # All settings other than never should commit successfully
- if (use_ts != 'never'):
- self.session.commit_transaction()
- else:
- '''
- Commented out for now: the system panics if we fail after preparing a transaction.
-
- msg = "/timestamp set on this transaction/"
- self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
- lambda:self.assertEquals(self.session.commit_transaction(),
- 0), msg)
- '''
- self.session.rollback_transaction()
- c.close()
- self.count += 1
-
- # Commit without a timestamp
- key = 'key' + str(self.count) if self.usestrings else self.count
- val = 'value' + str(self.count)
- c = self.session.open_cursor(uri)
- self.session.begin_transaction()
- c[key] = val
- if (use_ts == 'always'):
- self.session.prepare_transaction(
- 'prepare_timestamp=' + self.timestamp_str(self.count))
-
- self.session.timestamp_transaction(
- 'commit_timestamp=' + self.timestamp_str(self.count))
- # All settings other than always should commit successfully
- if (use_ts != 'always' and use_ts != 'never'):
- self.session.commit_transaction()
- else:
- '''
- Commented out for now: the system panics if we fail after preparing a transaction.
-
- msg = "/durable_timestamp is required for a prepared/"
- self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
- lambda:self.assertEquals(self.session.commit_transaction(),
- 0), msg)
- '''
- self.session.rollback_transaction()
- self.count += 1
- c.close()
-
- def test_durable_timestamp(self):
- cfg = 'key_format={},value_format=S,'.format(self.key_format)
-
- # Create a data item at a timestamp
- self.session.create(self.uri_always, cfg + self.cfg_always)
- self.session.create(self.uri_def, cfg + self.cfg_def)
- self.session.create(self.uri_never, cfg + self.cfg_never)
- self.session.create(self.uri_none, cfg + self.cfg_none)
-
- # Check inserting into each table
- self.insert_check(self.uri_always, 'always')
- self.insert_check(self.uri_def, 'none')
- self.insert_check(self.uri_never, 'never')
- self.insert_check(self.uri_none, 'none')
-
-if __name__ == '__main__':
- wttest.run()