def dump(self, usingapi, hexoutput, commit_timestamp, read_timestamp): params = self.table_config() self.session.create('table:' + self.tablename, params) cursor = self.session.open_cursor('table:' + self.tablename, None, None) ver = wiredtiger.wiredtiger_version() verstring = str(ver[1]) + '.' + str(ver[2]) + '.' + str(ver[3]) with open("expect.out", "w") as expectout: if not usingapi: # Note: this output is sensitive to the precise output format # generated by wt dump. If this is likely to change, we should # make this test more accommodating. expectout.write('WiredTiger Dump (WiredTiger Version ' + verstring + ')\n') if hexoutput: expectout.write('Format=hex\n') else: expectout.write('Format=print\n') expectout.write('Header\n') expectout.write('table:' + self.tablename + '\n') expectout.write('colgroups=,columns=,' + params + '\n') expectout.write('Data\n') if commit_timestamp is not None and read_timestamp is not None: if commit_timestamp == read_timestamp: self.write_entries(cursor, expectout, hexoutput, commit_timestamp, True) self.write_entries(cursor, expectout, hexoutput, commit_timestamp + 1, False) elif commit_timestamp < read_timestamp: self.write_entries(cursor, expectout, hexoutput, commit_timestamp, False) self.write_entries(cursor, expectout, hexoutput, commit_timestamp + 1, True) else: self.write_entries(cursor, expectout, hexoutput, commit_timestamp, False) self.write_entries(cursor, expectout, hexoutput, commit_timestamp + 1, False) else: self.write_entries(cursor, expectout, hexoutput, commit_timestamp, True) cursor.close() self.pr('calling dump') with open("dump.out", "w") as dumpout: if usingapi: if hexoutput: dumpopt = "dump=hex" else: dumpopt = "dump=print" dumpcurs = self.session.open_cursor('table:' + self.tablename, None, dumpopt) for key, val in dumpcurs: dumpout.write(self.dump_kv_to_line(key) + \ self.dump_kv_to_line(val)) dumpcurs.close() else: dumpargs = ["dump"] if hexoutput: dumpargs.append("-x") if read_timestamp: dumpargs.append("-t " + str(read_timestamp)) dumpargs.append(self.tablename) self.runWt(dumpargs, outfilename="dump.out") self.assertTrue(self.compare_files("expect.out", "dump.out"))
def dump(self, usingapi, hexoutput): params = self.table_config() self.session.create('table:' + self.tablename, params) cursor = self.session.open_cursor('table:' + self.tablename, None, None) ver = wiredtiger.wiredtiger_version() verstring = str(ver[1]) + '.' + str(ver[2]) + '.' + str(ver[3]) with open("expect.out", "w") as expectout: if not usingapi: # Note: this output is sensitive to the precise output format # generated by wt dump. If this is likely to change, we should # make this test more accommodating. expectout.write('WiredTiger Dump (WiredTiger Version ' + verstring + ')\n') if hexoutput: expectout.write('Format=hex\n') else: expectout.write('Format=print\n') expectout.write('Header\n') expectout.write('table:' + self.tablename + '\n') expectout.write('colgroups=,columns=,' + params + '\n') expectout.write('Data\n') for i in range(0, self.nentries): key = self.get_key(i) value = self.get_value(i) cursor.set_key(key) cursor.set_value(value) cursor.insert() expectout.write(self.dumpstr(key, hexoutput)) expectout.write(self.dumpstr(value, hexoutput)) cursor.close() self.pr('calling dump') with open("dump.out", "w") as dumpout: if usingapi: if hexoutput: dumpopt = "dump=hex" else: dumpopt = "dump=print" dumpcurs = self.session.open_cursor('table:' + self.tablename, None, dumpopt) for key, val in dumpcurs: dumpout.write(str(key) + "\n" + str(val) + "\n") dumpcurs.close() else: dumpargs = ["dump"] if hexoutput: dumpargs.append("-x") dumpargs.append(self.tablename) self.runWt(dumpargs, outfilename="dump.out") self.assertTrue(self.compare_files("expect.out", "dump.out"))
def test_dump_config(self): # The number of btree_entries reported is influenced by the # number of column groups and indices. Each insert will have # a multiplied effect. ds = self.dataset(self, self.uri, self.nentries, config=self.table_config, cgconfig=self.cg_config) ds.populate() ver = wiredtiger.wiredtiger_version() verstring = str(ver[1]) + '.' + str(ver[2]) + '.' + str(ver[3]) expectfile = "expect.out" with open(expectfile, "w") as expectout: # Note: this output is sensitive to the precise output format # generated by wt dump. If this is likely to change, we should # make this test more accommodating. expectout.write('WiredTiger Dump (WiredTiger Version ' + verstring + ')\n') expectout.write('Format=print\n') expectout.write('Header\n') expectout.write(self.uri + '\n') # Check the config on the colgroup itself for complex tables. if self.dataset != SimpleDataSet: expectout.write('key_format=S\n') expectout.write('colgroup:' + self.pfx + ':cgroup1\n') if self.cfg == '': expectout.write(self.table_config + '\n') else: expectout.write(self.cfg + '\n') expectout.write('Data\n') self.pr('calling dump') outfile = "dump.out" dumpargs = ["dump"] dumpargs.append(self.uri) self.runWt(dumpargs, outfilename=outfile) self.assertTrue(self.compare_files(expectfile, outfile)) self.assertTrue(self.load_recheck(ds, expectfile, outfile))
def test_dump_config(self): # The number of btree_entries reported is influenced by the # number of column groups and indices. Each insert will have # a multiplied effect. ds = self.dataset(self, self.uri, self.nentries, config=self.table_config, cgconfig=self.cg_config) ds.populate() ver = wiredtiger.wiredtiger_version() verstring = str(ver[1]) + '.' + str(ver[2]) + '.' + str(ver[3]) expectfile="expect.out" with open(expectfile, "w") as expectout: # Note: this output is sensitive to the precise output format # generated by wt dump. If this is likely to change, we should # make this test more accommodating. expectout.write( 'WiredTiger Dump (WiredTiger Version ' + verstring + ')\n') expectout.write('Format=print\n') expectout.write('Header\n') expectout.write(self.uri + '\n') # Check the config on the colgroup itself for complex tables. if self.dataset != SimpleDataSet: expectout.write('key_format=S\n') expectout.write('colgroup:' + self.pfx + ':cgroup1\n') if self.cfg == '': expectout.write(self.table_config + '\n') else: expectout.write(self.cfg + '\n') expectout.write('Data\n') self.pr('calling dump') outfile="dump.out" dumpargs = ["dump"] dumpargs.append(self.uri) self.runWt(dumpargs, outfilename=outfile) self.assertTrue(self.compare_files(expectfile, outfile)) self.assertTrue(self.load_recheck(ds, expectfile, outfile))
def test_version(self): version = wiredtiger.wiredtiger_version()
# 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.')