Ejemplo n.º 1
0
    def test_81_protect(self):

        flags = mdbm.MDBM_O_RDWR | mdbm.MDBM_PROTECT
        self.dbm_prot = mdbm.open(self.path, flags, self.mode, 0, 0)

        k = str(random.randint(0, 65535))

        rv = self.dbm_prot.protect(mdbm.MDBM_PROT_READ)
        self.assertTrue((rv >= 0))

        rv = self.dbm_prot.get_lockmode()
        self.assertTrue((rv >= 0))

        v = str(random.randint(0, 65535))
        rv = self.dbm_prot.store(k, v, mdbm.MDBM_REPLACE)
        self.assertTrue(
            rv, "failred to store, \
        rv=%d, key=%s, val=%s" % (rv, k, v))

        rv = self.dbm_prot.protect(mdbm.MDBM_PROT_WRITE)
        self.assertTrue((rv >= 0))

        rv = self.dbm_prot.fetch(str(1))
        self.assertTrue(rv, "rv=%s" % rv)

        rv = self.dbm_prot.protect(mdbm.MDBM_PROT_NONE)
        self.assertTrue((rv >= 0))

        self.dbm_prot.close()
Ejemplo n.º 2
0
def mdbm_fetch(limit):
    path = "/tmp/test_py_benchmark_%s.mdbm" % limit
    flags = mdbm.MDBM_O_RDWR
    mode = 0o644  # means 0644
    dbm = mdbm.open(path, flags, mode, 0, 0)

    for i in range(0, limit):
        k = str(random.randrange(0, limit - 1))
        v = dbm.fetch(k)
        if len(v) < 1:
            return False

    dbm.close()
    return True
Ejemplo n.º 3
0
 def setUp(self):
     self.path = "/tmp/test_py.mdbm"
     self.path_pure = "/tmp/test_py_pure.mdbm"
     self.path_split = "/tmp/test_py_split.mdbm"
     self.path_prot = "/tmp/test_py_protect.mdbm"
     flags = mdbm.MDBM_O_RDWR
     flags = flags | mdbm.MDBM_O_CREAT
     flags = flags | mdbm.MDBM_LARGE_OBJECTS
     flags = flags | mdbm.MDBM_ANY_LOCKS
     flags = flags | mdbm.MDBM_O_TRUNC
     self.flags = flags
     self.mode = 0o644  # means 0644
     self.dbm = mdbm.open(self.path, flags, self.mode, 0, 0)
     self.dbm.enable_stat_operations(mdbm.MDBM_STATS_BASIC
                                     | mdbm.MDBM_STATS_TIMED)
     self.dbm.set_stat_time_func(mdbm.MDBM_CLOCK_TSC)
     initDefaultData(self.dbm)
Ejemplo n.º 4
0
def mdbm_store(limit):
    path = "/tmp/test_py_benchmark_%s.mdbm" % limit
    flags = mdbm.MDBM_O_RDWR
    flags = flags | mdbm.MDBM_O_CREAT
    flags = flags | mdbm.MDBM_LARGE_OBJECTS
    flags = flags | mdbm.MDBM_ANY_LOCKS
    flags = flags | mdbm.MDBM_O_TRUNC
    mode = 0o644  # means 0644
    dbm = mdbm.open(path, flags, mode, 0, 0)

    for i in range(0, limit):
        k = str(i)
        v = str(random.randrange(0, 65535))

        rv = dbm.store(k, v, mdbm.MDBM_INSERT)
        if not rv:
            return False

    dbm.close()
    return True
Ejemplo n.º 5
0
    def test_99_set_cachemode_get_cachemode(self):

        dbm_pure = mdbm.open(self.path_pure, self.flags, self.mode, 0, 0)
        rv = dbm_pure.set_cachemode(mdbm.MDBM_CACHEMODE_NONE)
        self.assertTrue(rv, "rv=%s" % rv)
        rv = dbm_pure.get_cachemode()
        self.assertEqual(rv, mdbm.MDBM_CACHEMODE_NONE)

        rv = dbm_pure.set_cachemode(mdbm.MDBM_CACHEMODE_LFU)
        self.assertTrue(rv, "rv=%s" % rv)
        rv = dbm_pure.get_cachemode()
        self.assertEqual(rv, mdbm.MDBM_CACHEMODE_LFU)

        rv = dbm_pure.set_cachemode(mdbm.MDBM_CACHEMODE_LRU)
        self.assertTrue(rv, "rv=%s" % rv)
        rv = dbm_pure.get_cachemode()
        self.assertEqual(rv, mdbm.MDBM_CACHEMODE_LRU)

        rv = dbm_pure.set_cachemode(mdbm.MDBM_CACHEMODE_GDSF)
        self.assertTrue(rv, "rv=%s" % rv)
        rv = dbm_pure.get_cachemode()
        self.assertEqual(rv, mdbm.MDBM_CACHEMODE_GDSF)
Ejemplo n.º 6
0
 def test_99_pre_split(self):
     dbm2 = mdbm.open(self.path_split, self.flags, self.mode)
     rv = dbm2.pre_split(512)
     self.assertTrue(rv, "rv=%s" % rv)
Ejemplo n.º 7
0
 def test_01_open(self):
     flags = mdbm.MDBM_O_RDONLY
     dbm = mdbm.open(self.path, flags, self.mode, 0, 0)
     self.assertTrue(dbm)
Ejemplo n.º 8
0
#!/usr/bin/env python
# encoding: utf-8
import mdbm
import random

print("[*] Deleting records in-place")

path = "/tmp/test1.mdbm"
flags = mdbm.MDBM_O_RDWR
mode = 0o644  # means 0644

dbm = mdbm.open(path, flags, mode)

for i in range(0, 10):

    k = str(random.randrange(0, 65534))

    rv = dbm.delete(k)
    if not rv:
        print("[-] failed to delete an record, key=%s" % k)

    v = dbm.fetch(k)
    if v:
        print("[-] failed to delete an record, key=%s, val=%s" % (k, v))
        break

print("[*] count of records : %d" % dbm.count_records())

dbm.close()

print("done")