Skip to content

Commit f6f29af

Browse files
committed
test: fix benchmark.py and set up to run under github if requested
Add the word "benchmark" to the comment to get the benchmarking code to run.
1 parent db40abb commit f6f29af

File tree

2 files changed

+14
-8
lines changed

2 files changed

+14
-8
lines changed

.github/workflows/ci-test.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,10 @@ jobs:
313313
# -f scripts/Docker/Dockerfile .
314314

315315

316+
- name: run benchmarks
317+
if: "contains(github.event.head_commit.message, 'benchmark')"
318+
run: PYTHONPATH=. python test/benchmark.py
319+
316320
# in parallel build coveralls requires a finish step
317321
finish:
318322
needs: test

test/benchmark.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
from __future__ import print_function
22
import sys, os, time
3+
import importlib
34

45
from roundup.hyperdb import String, Password, Link, Multilink, Date, \
56
Interval, DatabaseError, Boolean, Number
67
from roundup import date, password
78

8-
from .db_test_base import config
9+
from test.db_test_base import config
910

1011
def setupSchema(db, module):
1112
status = module.Class(db, "status", name=String())
@@ -25,7 +26,8 @@ def setupSchema(db, module):
2526

2627
def main(backendname, time=time.time, numissues=10):
2728
try:
28-
exec('from roundup.backends import %s as backend'%backendname)
29+
backend = importlib.import_module("roundup.backends.back_%s" %
30+
backendname)
2931
except ImportError:
3032
return
3133

@@ -37,14 +39,14 @@ def main(backendname, time=time.time, numissues=10):
3739
db = backend.Database(config, 'admin')
3840
setupSchema(db, backend)
3941
# create a whole bunch of stuff
40-
db.user.create(**{'username': 'admin'})
42+
db.user.create(**{'username': 'admin', 'roles': 'Admin'})
4143
db.status.create(name="unread")
4244
db.status.create(name="in-progress")
4345
db.status.create(name="testing")
4446
db.status.create(name="resolved")
4547
pc = -1
4648
for i in range(numissues):
47-
db.user.create(**{'username': 'user %s'%i})
49+
db.user.create(**{'username': 'user %s'%i, 'roles': 'User'})
4850
for j in range(10):
4951
db.user.set(str(i+1), assignable=1)
5052
db.user.set(str(i+1), assignable=0)
@@ -122,14 +124,14 @@ def main(backendname, time=time.time, numissues=10):
122124
# 0 1 2 3 4 5 6
123125
# 01234567890123456789012345678901234567890123456789012345678901234
124126
print('Test name fetch journl jprops lookup filter filtml TOTAL ')
125-
for name in 'anydbm metakit sqlite'.split():
127+
for name in 'anydbm sqlite'.split():
126128
main(name)
127-
for name in 'anydbm metakit sqlite'.split():
129+
for name in 'anydbm sqlite'.split():
128130
main(name, numissues=20)
129-
for name in 'anydbm metakit sqlite'.split():
131+
for name in 'anydbm sqlite'.split():
130132
main(name, numissues=100)
131133
# don't even bother benchmarking the dbm backends > 100!
132-
for name in 'metakit sqlite'.split():
134+
for name in 'sqlite'.split():
133135
main(name, numissues=1000)
134136

135137
# vim: set et sts=4 sw=4 :

0 commit comments

Comments
 (0)