Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: third_party/buildbot_8_4p1/buildbot/test/unit/test_db_pool.py

Issue 2103053002: Cherry-pick buildbot 95deef27d7c531ead19e0ac86a9aa1546d4ee7f9: (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/build.git@buildbot-version-2
Patch Set: Disable the test again Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/buildbot_8_4p1/buildbot/test/unit/test_db_pool.py
diff --git a/third_party/buildbot_8_4p1/buildbot/test/unit/test_db_pool.py b/third_party/buildbot_8_4p1/buildbot/test/unit/test_db_pool.py
index 09d0e21d7a35180933b924c4a11cb73eb31d02cc..35d480223928e6bddd678aaf55df0087d37f0082 100644
--- a/third_party/buildbot_8_4p1/buildbot/test/unit/test_db_pool.py
+++ b/third_party/buildbot_8_4p1/buildbot/test/unit/test_db_pool.py
@@ -13,9 +13,11 @@
#
# Copyright Buildbot Team Members
+import os
+import time
import sqlalchemy as sa
from twisted.trial import unittest
-from twisted.internet import defer
+from twisted.internet import defer, reactor
from buildbot.db import pool
from buildbot.test.util import db
@@ -103,6 +105,49 @@ class Basic(unittest.TestCase):
d.addCallback( lambda r : self.pool.do_with_engine(insert_into_table))
return d
+
+class Stress(unittest.TestCase):
+
+ def setUp(self):
+ setup_engine = sa.create_engine('sqlite:///test.sqlite')
+ setup_engine.execute("pragma journal_mode = wal")
+ setup_engine.execute("CREATE TABLE test (a integer, b integer)")
+
+ self.engine = sa.create_engine('sqlite:///test.sqlite')
+ self.engine.optimal_thread_pool_size = 2
+ self.pool = pool.DBThreadPool(self.engine)
+
+ def tearDown(self):
+ self.pool.shutdown()
+ os.unlink("test.sqlite")
+
+ @defer.deferredGenerator
+ def test_inserts(self):
+ def write(conn):
+ trans = conn.begin()
+ conn.execute("INSERT INTO test VALUES (1, 1)")
+ time.sleep(31)
+ trans.commit()
+ d1 = self.pool.do(write)
+
+ def write2(conn):
+ trans = conn.begin()
+ conn.execute("INSERT INTO test VALUES (1, 1)")
+ trans.commit()
+ d2 = defer.Deferred()
+ d2.addCallback(lambda _ :
+ self.pool.do(write2))
+ reactor.callLater(0.1, d2.callback, None)
+
+ wfd = defer.waitForDeferred(
+ defer.DeferredList([ d1, d2 ]))
+ yield wfd
+ wfd.getResult()
+
+ # don't run this test, since it takes 30s
+ del test_inserts
+
+
class Native(unittest.TestCase, db.RealDatabaseMixin):
# similar tests, but using the BUILDBOT_TEST_DB_URL

Powered by Google App Engine
This is Rietveld 408576698