diff --git a/pisi/pisitest.py b/pisi/pisitest.py deleted file mode 100644 index 9a35ca6a..00000000 --- a/pisi/pisitest.py +++ /dev/null @@ -1,282 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2006, TUBITAK/UEKAE -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 2 of the License, or (at your option) -# any later version. -# -# Please read the COPYING file. - -import os -import sys -import exceptions - -import pisi -import pisi.testdb -import time - - -def handle_exception(exception, value, tb): - print exception, value, tb - if exception == exceptions.KeyboardInterrupt: - pisi.api.finalize() - print("\n") - sys.exit() - -def testPickle(iter): - import cPickle - pisi.api.init(write=True) - - packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all) - packages = {} - totalPack = len(packageNames) - - for name in packageNames: - packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all) - - start = time.clock() - for i in range(iter): - size = 0; - for pak in packages: - pickled = cPickle.dumps(packages[pak],1) - size += len(pickled) - #pisi.context.packagedb.add_package2(pak, pisi.db.itembyrepodb.installed) - #print pak.source.name, pak.installedSize - end = time.clock() - delta = (end - start) - print("Total Packages: %s" % totalPack) - print("Total Size: %s, Average Size: %s" % (size, size / totalPack)) - print("Iterations: %s Total time: %ss. Average time :%ss." % (iter, delta , delta/iter) ) - pisi.api.finalize() - -def testUnPickle(iter): - import cPickle - pisi.api.init(write=True) - - packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all) - packages = {} - pickles = {} - totalPack = len(packageNames) - - for name in packageNames: - packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all) - - size = 0; - for pak in packages: - pickled = cPickle.dumps(packages[pak],1) - pickles[pak] = pickled - - start = time.clock() - for i in range(iter): - for name in pickles: - package = cPickle.loads(pickles[name]) - end = time.clock() - - delta = (end - start) - print("Total Packages: %s" % totalPack) - print("Iterations: %s Total time: %ss. Average time :%ss." % (iter, delta , delta/iter) ) - pisi.api.finalize() - -def testDatabaseSingleTransaction(): - import cPickle - import pisi.context as ctx - import bsddb3.db as bsd - from pisi.db.itembyrepodb import ItemByRepoDB - - pisi.api.init(write=True) - - packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all) - packages = {} - totalPack = len(packageNames) - - try: - os.unlink("/var/db/pisi/package_perf.bdb") - os.unlink("/var/db/pisi/package_perf.bdb.lock") - except: - pass - - db = ItemByRepoDB('package_perf') - - for name in packageNames: - packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all) - - start = time.time() - txn = ctx.dbenv.txn_begin() - for pak in packages: - db.add_item(pak, packages[pak], pisi.db.itembyrepodb.installed, txn) - txn.commit() - - end = time.time() - - delta = (end - start) - print("Total Packages: %s" % totalPack) - print("Total time: %.2f" % (delta) ) - db.close(); - pisi.api.finalize() - -def testDatabaseFullTransaction(): - import cPickle - import pisi.context as ctx - import bsddb3.db as bsd - from pisi.db.itembyrepodb import ItemByRepoDB - - pisi.api.init(write=True) - - packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all) - packages = {} - totalPack = len(packageNames) - - try: - os.unlink("/var/db/pisi/package_perf.bdb") - os.unlink("/var/db/pisi/package_perf.bdb.lock") - except: - pass - - db = ItemByRepoDB('package_perf') - - for name in packageNames: - packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all) - - start = time.time() - for pak in packages: - txn = ctx.dbenv.txn_begin() - db.add_item(pak, packages[pak], pisi.db.itembyrepodb.installed, txn) - txn.commit() - - #ctx.txn_proc(addAllPacks, None) - end = time.time() - - delta = (end - start) - print("Total Packages: %s" % totalPack) - print("Total time: %.2f" % (delta) ) - db.close(); - pisi.api.finalize() - - -def testDatabaseRead(iter): - import cPickle - import pisi.context as ctx - import bsddb3.db as bsd - from pisi.db.itembyrepodb import ItemByRepoDB - - pisi.api.init(write=True) - - packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all) - packages = {} - totalPack = len(packageNames) - - for name in packageNames: - packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all) - - try: - os.unlink("/var/db/pisi/package_perf.bdb") - os.unlink("/var/db/pisi/package_perf.bdb.lock") - except: - pass - - db = ItemByRepoDB('package_perf') - - count = 0; - txn = ctx.dbenv.txn_begin() - for pak in packages: - db.add_item(pak, packages[pak], pisi.db.itembyrepodb.installed, txn) - count += 1 - txn.commit() - print ( "%s packages written" % count) - - start = time.time() - - for i in range(iter): - for name in packageNames: - package = db.get_item(name, pisi.db.itembyrepodb.all, txn) - - end = time.time() - - delta = (end - start) - print("Total Packages: %s" % totalPack) - print("%s iters, Total time: %.2fs., average Time: %.2fs." % (iter, delta, delta/iter) ) - db.close(); - pisi.api.finalize() - -def cleanDB(): - try: - os.unlink("/var/db/pisi/package_perf.bdb") - os.unlink("/var/db/pisi/package_perf.bdb.lock") - os.unlink("/var/db/pisi/package_perf_info.bdb") - os.unlink("/var/db/pisi/package_perf_info.lock") - os.unlink("/var/db/pisi/package_perf_history.bdb") - os.unlink("/var/db/pisi/package_perf_history.bdb.lock") - except: - pass - - -def testDatabaseSingleTransaction2(iter): - import cPickle - import pisi.context as ctx - import bsddb3.db as bsd - from pisi.db.itembyrepodb import ItemByRepoDB - - cleanDB() - pisi.api.init(write=True) - - packageNames = pisi.context.packagedb.list_packages(pisi.db.itembyrepodb.all) - packages = {} - totalPack = len(packageNames) - - - dbPack = ItemByRepoDB('package_perf') - #dbInfo = ItemByRepoDB('package_perf_info') - dbHistory = ItemByRepoDB('package_perf_history') - - for name in packageNames: - packages[name] = pisi.context.packagedb.get_package(name, pisi.db.itembyrepodb.all) - - print "Write test.." - start = time.time() - txn = ctx.dbenv.txn_begin() - for pak in packages: - packageDAO = pisi.testdb.PackageDAO(packages[pak]) - #packageInfoDAO = pisi.testdb.PackageInfoDAO(packages[pak]) - dbPack.add_item(pak, packageDAO, pisi.db.itembyrepodb.installed, txn) - #dbInfo.add_item(pak, packageInfoDAO, pisi.db.itembyrepodb.installed, txn) - dbHistory.add_item(pak, packages[pak].history, pisi.db.itembyrepodb.installed, txn) - txn.commit() - end = time.time() - - delta = (end - start) - print("Total time: %.2f" % (delta) ) - - txn = ctx.dbenv.txn_begin() - print "read test. Read only package bodies" - start = time.time() - for i in range(iter): - for name in packageNames: - packageDAO = dbPack.get_item(name, pisi.db.itembyrepodb.all, txn) - end = time.time() - txn.commit() - delta = (end - start) - print("%s iters, Total time: %.2fs., average Time: %.2fs." % (iter, delta, delta/iter) ) - - txn = ctx.dbenv.txn_begin() - print "read test. Read only histories" - start = time.time() - for i in range(iter): - for name in packageNames: - hist = dbHistory.get_item(name, pisi.db.itembyrepodb.all, txn) - end = time.time() - txn.commit() - delta = (end - start) - print("%s iters, Total time: %.2fs., average Time: %.2fs." % (iter, delta, delta/iter) ) - - dbPack.close() - #dbInfo.close() - dbHistory.close() - pisi.api.finalize() - -if __name__ == "__main__": - sys.excepthook = handle_exception - #testDatabaseRead(10) - testDatabaseSingleTransaction2(20) \ No newline at end of file diff --git a/pisi/testdb.py b/pisi/testdb.py deleted file mode 100644 index 5a7eb44c..00000000 --- a/pisi/testdb.py +++ /dev/null @@ -1,105 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Copyright (C) 2005 - 2007, TUBITAK/UEKAE -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 2 of the License, or (at your option) -# any later version. -# -# Please read the COPYING file. -# - -import os -import fcntl -import types - -import gettext -__trans = gettext.translation('pisi', fallback=True) -_ = __trans.ugettext - -import pisi -import pisi.util as util -import pisi.context as ctx -import pisi.db.itembyrepodb as itembyrepodb -import pisi.metadata - -class TestDB: - def __init__(self): - self.db = itembyrepodb.ItemByRepoDB("packages2") - - def addPackage(self): - a = "Hello World" - self.db.add_item("hello", a, itembyrepodb.installed) - - def getPackage(self, name): - return self.db.get_item(name, itembyrepodb.installed) - - def addAllPackages(self): - pisi.api.init(write=True) - packages = pisi.context.installdb.list_installed() - for name in packages: - pak = pisi.context.packagedb.get_package(name, itembyrepodb.installed) - #pisi.context.packagedb.add_package(pak, itembyrepodb.installed) - #print pak.source.name, pak.installedSize - pisi.api.finalize() - - if __name__ == "__main__": - t = testdb.TestDB() - t.addAllPackages() - -class PackageInfoDAO: - def __init__(self, package): - """ - package : pisi.metadata.Package - """ - self.summary = package.summary - self.description = package.description - - -class PackageDAO: - def __init__(self, package): - """ - package : pisi.metadata.Package - """ - # - #from specfile.Package - # - self.name = package.name - #Summary and description will be in another place - self.summary = package.summary - self.description = package.description - self.isA = package.isA - self.partOf = package.partOf - self.license = package.license - self.icon = package.icon - #from dependencies.Dependency - self.packageDependencies = package.packageDependencies - #String - self.componentDependencies = package.componentDependencies - self.files = package.files - self.conflicts = package.conflicts - self.providesComar = package.providesComar - self.additionalFiles = package.additionalFiles - #List of specfile.UPDATE. History will be in another place - #self.history = package.history - # - #from metadata.Package (This is plain stupid.. classes with same name, extending one another.) - # - self.build = package.build - self.distribution = package.distribution - self.distributionRelease = package.distributionRelease - self.architecture = package.architecture - self.installedSize = package.installedSize - self.packageSize = package.packageSize - self.packageHash = package.packageHash - self.packageURI = package.packageURI - #Delta (List of metadata.Delta objects) - #self.deltaPackages = package.deltaPackages - self.packageFormat = package.packageFormat - #Expanded from metadata.Source - self.sourceName = package.source.name - self.sourceHomepage = package.source.homepage - #Expanded from specfile.Packager - self.sourcePackagerName = package.source.packager.name - self.sourcePackagerEmail = package.source.packager.email