summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/py_install
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2019-07-05 12:27:29 +1000
committerLuke Chen <luke.chen@mongodb.com>2019-07-05 12:27:29 +1000
commitdaceefe370a71036df6e1ecb209e966d29bc2871 (patch)
tree93d837763bfeb38e8c59bc665742dce99d242e31 /src/third_party/wiredtiger/test/py_install
parent7d88bdb226e8a3dc9b5eb4b57edcca111619c5f9 (diff)
downloadmongo-daceefe370a71036df6e1ecb209e966d29bc2871.tar.gz
Import wiredtiger: b50d65e8560446e2cd205594e07bbcaa2305b144 from branch mongodb-4.2
ref: d86b3a8a33..b50d65e856 for: 4.3.1 WT-4502 Assertion checking hazard pointers on page discard is too strong WT-4733 Change test/format to do longer-term repeatable read testing WT-4743 Fix memory leaks and core dumps in page-split error handling WT-4786 Coverity: Invalid format specifiers in printf-like invocations WT-4805 Modify error message verification for test_prepare04.py WT-4812 Fix the Python distribution script for Python3 changes WT-4818 Add debugging of bad read file descriptor when files are missing during recovery WT-4840 WT_CURSOR.modify must require explicit, snapshot-isolation transaction WT-4864 Coverity: Redundant NULL check WT-4866 Coverity: WT_SESSION.import can leak memory WT-4867 Skip assertion when reserved updates are seen WT-4882 Improve checkpoint performance when there are large metadata pages WT-4887 Skip read timestamp required assert during recovery WT-4888 Remove support for Berkeley DB WT-4891 WT_SESSION.verify memory allocation overrun WT-4895 Fix debug eviction mode so it chooses skew more randomly WT-4910 Port Windows SConstruct to Python 3
Diffstat (limited to 'src/third_party/wiredtiger/test/py_install')
-rwxr-xr-xsrc/third_party/wiredtiger/test/py_install/testbase.py52
-rwxr-xr-xsrc/third_party/wiredtiger/test/py_install/testpack.py51
2 files changed, 103 insertions, 0 deletions
diff --git a/src/third_party/wiredtiger/test/py_install/testbase.py b/src/third_party/wiredtiger/test/py_install/testbase.py
new file mode 100755
index 00000000000..a7559981513
--- /dev/null
+++ b/src/third_party/wiredtiger/test/py_install/testbase.py
@@ -0,0 +1,52 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2019 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.
+
+# A quick sanity test of an installation via 'pip install wiredtiger'.
+
+import wiredtiger, shutil, os
+from wiredtiger import wiredtiger_open, wiredtiger_version
+
+wthome = "WTPY_TEST"
+shutil.rmtree(wthome, ignore_errors=True)
+os.mkdir(wthome)
+conn = wiredtiger_open(wthome, "create")
+session = conn.open_session()
+session.create('table:foo', 'key_format=S,value_format=i')
+c = session.open_cursor('table:foo')
+c['A'] = 100
+c['B'] = 200
+c['C'] = 300
+print('Expect 200 = ' + str(c['B']))
+if c['B'] != 200:
+ raise Exception('BAD RESULT')
+c.close()
+session.close()
+conn.close()
+
+print(wiredtiger_version())
+print('testbase success.')
diff --git a/src/third_party/wiredtiger/test/py_install/testpack.py b/src/third_party/wiredtiger/test/py_install/testpack.py
new file mode 100755
index 00000000000..9c00184fc4f
--- /dev/null
+++ b/src/third_party/wiredtiger/test/py_install/testpack.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2019 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.
+
+# A quick sanity test of an installation via 'pip install wiredtiger'.
+# This program only uses the packing API.
+
+import sys
+from wiredtiger.packing import unpack, pack
+
+testval = '8281e420f2fa4a8381e40c5855ca808080808080e22fc0e20fc0'
+# Jump through hoops to make code work for Py2 + Py3
+x = bytes(bytearray.fromhex(testval))
+
+unpacked = unpack('iiiiiiiiiiiiii',x)
+unexpect = [2, 1, 552802954, 3, 1, 207123978, 0, 0, 0, 0, 0, 0, 20480, 12288]
+#print(str(unpacked)))
+if unpacked != unexpect:
+ raise Exception('BAD RESULT FOR UNPACK')
+
+packed = pack('iiii', 1, 2, 3, 4)
+expect = b'\x81\x82\x83\x84'
+#print(str(packed)))
+if packed != expect:
+ raise Exception('BAD RESULT FOR PACK')
+
+print('testpack success.')