annotate test/benchmark.py @ 7872:163d2c60fdf3

test: benchmark no progress when INCI defined; set path; signal handling The progress reports on issue creation in the db breaks up the table in CI as each is reported on a new line. If the environment variable INCI is set to any value, don't generate progress output. Change GitHub action to define INCI Insert roundup root directory in sys.path so import from test directory will be found. Also set up signal handler to delete the database if ^C is pressed during creation. The interrupted db is incomplete (required data missing), but it is used as is for a subsequent run. This causes the benchmark to crash.
author John Rouillard <rouilj@ieee.org>
date Wed, 10 Apr 2024 12:54:18 -0400
parents 30fcdf60da44
children 867418c24339
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 2823
diff changeset
1 from __future__ import print_function
2823
d41f38de578e remove unused imports: shutil, Indexer;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2813
diff changeset
2 import sys, os, time
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
3 import importlib, signal, shutil
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
4
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
5 # --- patch sys.path to make sure 'import roundup' finds correct version
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
6 import os.path as osp
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
7 import pdb; pdb.set_trace()
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
8 thisdir = osp.dirname(osp.abspath(__file__))
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
9 rootdir = osp.dirname(thisdir)
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
10 if (osp.exists(thisdir + '/benchmark.py') and
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
11 osp.exists(rootdir + '/roundup/__init__.py')):
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
12 # the script is located inside roundup source code
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
13 sys.path.insert(0, rootdir)
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
14
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
15 from roundup.hyperdb import String, Password, Link, Multilink, Date, \
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
16 Interval, DatabaseError, Boolean, Number
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
17 from roundup import date, password
2823
d41f38de578e remove unused imports: shutil, Indexer;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2813
diff changeset
18
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
19 from test.db_test_base import config
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
21 int_sig_default_handler = None
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
22
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
23 def setupSchema(db, module):
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
24 status = module.Class(db, "status", name=String())
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25 status.setkey("name")
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
26 user = module.Class(db, "user", username=String(), password=Password(),
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
27 assignable=Boolean(), age=Number(), roles=String())
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
28 user.setkey("username")
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
29 file = module.FileClass(db, "file", name=String(), type=String(),
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30 comment=String(indexme="yes"))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 issue = module.IssueClass(db, "issue", title=String(indexme="yes"),
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
32 status=Link("status"), nosy=Multilink("user"), deadline=Date(),
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
33 foo=Interval(), files=Multilink("file"), assignedto=Link('user'))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
34 session = module.Class(db, 'session', title=String())
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
35 session.disableJournalling()
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36 db.post_init()
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 db.commit()
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
38
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
39 def rm_db_on_signal(sig, frame):
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
40 print("removing incomplete database %s due to interruption." %
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
41 config.DATABASE)
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
42 shutil.rmtree(config.DATABASE)
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
43 signal.signal(signal.SIGINT, int_sig_default_handler)
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
44 signal.raise_signal(signal.SIGTERM)
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
45
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 def main(backendname, time=time.time, numissues=10):
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
47 global int_sig_default_handler
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 try:
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
49 backend = importlib.import_module("roundup.backends.back_%s" %
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
50 backendname)
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 except ImportError:
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 return
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 times = []
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
56 config.DATABASE = os.path.join('_benchmark', '%s-%s'%(backendname,
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
57 numissues))
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
58 if not os.path.exists(config.DATABASE):
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
59 int_sig_default_handler = signal.signal(signal.SIGINT, rm_db_on_signal)
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
60 db = backend.Database(config, 'admin')
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
61 setupSchema(db, backend)
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
62 # create a whole bunch of stuff
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
63 db.user.create(**{'username': 'admin', 'roles': 'Admin'})
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
64 db.status.create(name="unread")
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
65 db.status.create(name="in-progress")
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
66 db.status.create(name="testing")
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
67 db.status.create(name="resolved")
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
68 pc = -1
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
69 for i in range(numissues):
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
70 db.user.create(**{'username': 'user %s'%i, 'roles': 'User'})
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
71 for j in range(10):
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
72 db.user.set(str(i+1), assignable=1)
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
73 db.user.set(str(i+1), assignable=0)
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
74 db.issue.create(**{'title': 'issue %s'%i})
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
75 for j in range(10):
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
76 db.issue.set(str(i+1), status='2', assignedto='2', nosy=[])
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
77 db.issue.set(str(i+1), status='1', assignedto='1',
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
78 nosy=['1','2'])
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
79 if (i*100//numissues) != pc and 'INCI' not in os.environ:
5400
2120f77554d5 Python 3 preparation: use // and __truediv__ as needed.
Joseph Myers <jsm@polyomino.org.uk>
parents: 5388
diff changeset
80 pc = (i*100//numissues)
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
81 sys.stdout.write("%d%%\r"%pc)
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
82 sys.stdout.flush()
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
83 db.commit()
7872
163d2c60fdf3 test: benchmark no progress when INCI defined; set path; signal handling
John Rouillard <rouilj@ieee.org>
parents: 7871
diff changeset
84 signal.signal(signal.SIGINT, int_sig_default_handler)
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
85 else:
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
86 db = backend.Database(config, 'admin')
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
87 setupSchema(db, backend)
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
88
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
89 sys.stdout.write('%7s: %-6d'%(backendname, numissues))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
90 sys.stdout.flush()
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
91
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 times.append(('start', time()))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
93
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 # fetch
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
95 db.clearCache()
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 for i in db.issue.list():
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
97 db.issue.get(i, 'title')
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 times.append(('fetch', time()))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 # journals
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
101 db.clearCache()
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102 for i in db.issue.list():
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 db.issue.history(i)
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
104 times.append(('journal', time()))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
106 # "calculated" props
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
107 db.clearCache()
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
108 for i in db.issue.list():
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 db.issue.get(i, 'activity')
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
110 db.issue.get(i, 'creator')
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 db.issue.get(i, 'creation')
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
112 times.append(('jprops', time()))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
114 # lookup
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
115 db.clearCache()
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
116 for i in range(numissues):
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
117 db.user.lookup('user %s'%i)
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
118 times.append(('lookup', time()))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
119
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
120 # filter
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
121 db.clearCache()
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
122 for i in range(100):
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
123 db.issue.filter(None, {'assignedto': '1', 'title':'issue'},
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
124 ('+', 'activity'), ('+', 'status'))
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
125 times.append(('filter', time()))
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
126
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
127 # filter with multilink
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
128 db.clearCache()
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
129 for i in range(100):
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
130 db.issue.filter(None, {'nosy': ['1'], 'assignedto': '1',
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
131 'title':'issue'}, ('+', 'activity'), ('+', 'status'))
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
132 times.append(('filtml', time()))
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
133
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
134 # results
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
135 last = None
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
136 for event, stamp in times:
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
137 if last is None:
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
138 first = stamp
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
139 else:
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
140 sys.stdout.write(' %-6.2f'%(stamp-last))
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
141 last = stamp
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 2823
diff changeset
142 print(' %-6.2f'%(last-first))
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
143 sys.stdout.flush()
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
144
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
145 if __name__ == '__main__':
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
146 # 0 1 2 3 4 5 6
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
147 # 01234567890123456789012345678901234567890123456789012345678901234
5376
64b05e24dbd8 Python 3 preparation: convert print to a function.
Joseph Myers <jsm@polyomino.org.uk>
parents: 2823
diff changeset
148 print('Test name fetch journl jprops lookup filter filtml TOTAL ')
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
149 for name in 'anydbm sqlite'.split():
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
150 main(name)
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
151 for name in 'anydbm sqlite'.split():
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
152 main(name, numissues=20)
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
153 for name in 'anydbm sqlite'.split():
1181
49aebf5a8691 some speedups, some fixes to the benchmarking
Richard Jones <richard@users.sourceforge.net>
parents: 1174
diff changeset
154 main(name, numissues=100)
1233
69bf0d381fd7 Zope Collector fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 1181
diff changeset
155 # don't even bother benchmarking the dbm backends > 100!
7871
30fcdf60da44 test: fix benchmark.py and set up to run under github if requested
John Rouillard <rouilj@ieee.org>
parents: 5400
diff changeset
156 for name in 'sqlite'.split():
1233
69bf0d381fd7 Zope Collector fixes.
Richard Jones <richard@users.sourceforge.net>
parents: 1181
diff changeset
157 main(name, numissues=1000)
1174
8e318dfaf479 Verify contents of tracker module when the tracker is opened
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
158
2813
91d4d28c4a86 remove bsddb, bsddb3 backends;
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 1233
diff changeset
159 # vim: set et sts=4 sw=4 :

Roundup Issue Tracker: http://roundup-tracker.org/