tests: Remove skipped tests

They serve no purpose being skipped, better get rid of them than be
misled by their presence.
This commit is contained in:
Jakub Stasiak 2016-01-06 23:55:44 +01:00
parent e0d923488c
commit 05cfa71341
5 changed files with 3 additions and 304 deletions

View File

@ -7,7 +7,7 @@ import os
import traceback import traceback
from unittest import TestCase, main from unittest import TestCase, main
from tests import mock, skipped, skip_unless, skip_with_pyevent, get_database_auth from tests import mock, skip_unless, skip_with_pyevent, get_database_auth
from eventlet import event from eventlet import event
from eventlet import db_pool from eventlet import db_pool
from eventlet.support import six from eventlet.support import six
@ -116,14 +116,6 @@ class DBConnectionPool(DBTester):
assert self.pool.free() == 1 assert self.pool.free() == 1
self.assertRaises(AttributeError, self.connection.cursor) self.assertRaises(AttributeError, self.connection.cursor)
@skipped
def test_deletion_does_a_put(self):
# doing a put on del causes some issues if __del__ is called in the
# main coroutine, so, not doing that for now
assert self.pool.free() == 0
self.connection = None
assert self.pool.free() == 1
def test_put_doesnt_double_wrap(self): def test_put_doesnt_double_wrap(self):
self.pool.put(self.connection) self.pool.put(self.connection)
conn = self.pool.get() conn = self.pool.get()
@ -213,45 +205,6 @@ class DBConnectionPool(DBTester):
conn.commit() conn.commit()
self.pool.put(conn) self.pool.put(conn)
@skipped
def test_two_simultaneous_connections(self):
# timing-sensitive test, disabled until we come up with a better
# way to do this
self.pool = self.create_pool(max_size=2)
conn = self.pool.get()
self.set_up_dummy_table(conn)
self.fill_up_table(conn)
curs = conn.cursor()
conn2 = self.pool.get()
self.set_up_dummy_table(conn2)
self.fill_up_table(conn2)
curs2 = conn2.cursor()
results = []
LONG_QUERY = "select * from test_table"
SHORT_QUERY = "select * from test_table where row_id <= 20"
evt = event.Event()
def long_running_query():
self.assert_cursor_works(curs)
curs.execute(LONG_QUERY)
results.append(1)
evt.send()
evt2 = event.Event()
def short_running_query():
self.assert_cursor_works(curs2)
curs2.execute(SHORT_QUERY)
results.append(2)
evt2.send()
eventlet.spawn(long_running_query)
eventlet.spawn(short_running_query)
evt.wait()
evt2.wait()
results.sort()
self.assertEqual([1, 2], results)
def test_clear(self): def test_clear(self):
self.pool = self.create_pool() self.pool = self.create_pool()
self.pool.put(self.connection) self.pool.put(self.connection)
@ -318,80 +271,6 @@ class DBConnectionPool(DBTester):
self.connection.close() self.connection.close()
self.assertEqual(len(self.pool.free_items), 0) self.assertEqual(len(self.pool.free_items), 0)
@skipped
def test_max_idle(self):
# This test is timing-sensitive. Rename the function without
# the "dont" to run it, but beware that it could fail or take
# a while.
self.pool = self.create_pool(max_size=2, max_idle=0.02)
self.connection = self.pool.get()
self.connection.close()
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0.01) # not long enough to trigger the idle timeout
self.assertEqual(len(self.pool.free_items), 1)
self.connection = self.pool.get()
self.connection.close()
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0.01) # idle timeout should have fired but done nothing
self.assertEqual(len(self.pool.free_items), 1)
self.connection = self.pool.get()
self.connection.close()
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0.03) # long enough to trigger idle timeout for real
self.assertEqual(len(self.pool.free_items), 0)
@skipped
def test_max_idle_many(self):
# This test is timing-sensitive. Rename the function without
# the "dont" to run it, but beware that it could fail or take
# a while.
self.pool = self.create_pool(max_size=2, max_idle=0.02)
self.connection, conn2 = self.pool.get(), self.pool.get()
self.connection.close()
eventlet.sleep(0.01)
self.assertEqual(len(self.pool.free_items), 1)
conn2.close()
self.assertEqual(len(self.pool.free_items), 2)
eventlet.sleep(0.02) # trigger cleanup of conn1 but not conn2
self.assertEqual(len(self.pool.free_items), 1)
@skipped
def test_max_age(self):
# This test is timing-sensitive. Rename the function without
# the "dont" to run it, but beware that it could fail or take
# a while.
self.pool = self.create_pool(max_size=2, max_age=0.05)
self.connection = self.pool.get()
self.connection.close()
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0.01) # not long enough to trigger the age timeout
self.assertEqual(len(self.pool.free_items), 1)
self.connection = self.pool.get()
self.connection.close()
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0.05) # long enough to trigger age timeout
self.assertEqual(len(self.pool.free_items), 0)
@skipped
def test_max_age_many(self):
# This test is timing-sensitive. Rename the function without
# the "dont" to run it, but beware that it could fail or take
# a while.
self.pool = self.create_pool(max_size=2, max_age=0.15)
self.connection, conn2 = self.pool.get(), self.pool.get()
self.connection.close()
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0) # not long enough to trigger the age timeout
self.assertEqual(len(self.pool.free_items), 1)
eventlet.sleep(0.2) # long enough to trigger age timeout
self.assertEqual(len(self.pool.free_items), 0)
conn2.close() # should not be added to the free items
self.assertEqual(len(self.pool.free_items), 0)
def test_waiters_get_woken(self): def test_waiters_get_woken(self):
# verify that when there's someone waiting on an empty pool # verify that when there's someone waiting on an empty pool
# and someone puts an immediately-closed connection back in # and someone puts an immediately-closed connection back in
@ -421,29 +300,6 @@ class DBConnectionPool(DBTester):
self.assertEqual(self.pool.waiting(), 0) self.assertEqual(self.pool.waiting(), 0)
self.pool.put(conn) self.pool.put(conn)
@skipped
def test_0_straight_benchmark(self):
""" Benchmark; don't run unless you want to wait a while."""
import time
iterations = 20000
c = self.connection.cursor()
self.connection.commit()
def bench(c):
for i in six.moves.range(iterations):
c.execute('select 1')
bench(c) # warm-up
results = []
for i in range(3):
start = time.time()
bench(c)
end = time.time()
results.append(end - start)
print("\n%u iterations took an average of %f seconds, (%s) in %s\n" % (
iterations, sum(results) / len(results), results, type(self)))
def test_raising_create(self): def test_raising_create(self):
# if the create() method raises an exception the pool should # if the create() method raises an exception the pool should
# not lose any connections # not lose any connections

View File

@ -836,110 +836,6 @@ class TestGreenIoLong(tests.LimitedTestCase):
assert len(results2) > 0 assert len(results2) > 0
debug.hub_prevent_multiple_readers() debug.hub_prevent_multiple_readers()
@tests.skipped # by rdw because it fails but it's not clear how to make it pass
@tests.skip_with_pyevent
def test_multiple_readers2(self):
self.test_multiple_readers(clibufsize=True)
class TestGreenIoStarvation(tests.LimitedTestCase):
# fixme: this doesn't succeed, because of eventlet's predetermined
# ordering. two processes, one with server, one with client eventlets
# might be more reliable?
TEST_TIMEOUT = 300 # the test here might take a while depending on the OS
@tests.skipped # by rdw, because it fails but it's not clear how to make it pass
@tests.skip_with_pyevent
def test_server_starvation(self, sendloops=15):
recvsize = 2 * min_buf_size()
sendsize = 10000 * recvsize
results = [[] for i in range(5)]
listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listener.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listener.bind(('127.0.0.1', 0))
port = listener.getsockname()[1]
listener.listen(50)
base_time = time.time()
def server(my_results):
sock, addr = listener.accept()
datasize = 0
t1 = None
t2 = None
try:
while True:
data = sock.recv(recvsize)
if not t1:
t1 = time.time() - base_time
if not data:
t2 = time.time() - base_time
my_results.append(datasize)
my_results.append((t1, t2))
break
datasize += len(data)
finally:
sock.close()
def client():
pid = os.fork()
if pid:
return pid
client = _orig_sock.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('127.0.0.1', port))
bufsized(client, size=sendsize)
for i in range(sendloops):
client.sendall(b'*' * sendsize)
client.close()
os._exit(0)
clients = []
servers = []
for r in results:
servers.append(eventlet.spawn(server, r))
for r in results:
clients.append(client())
for s in servers:
s.wait()
for c in clients:
os.waitpid(c, 0)
listener.close()
# now test that all of the server receive intervals overlap, and
# that there were no errors.
for r in results:
assert len(r) == 2, "length is %d not 2!: %s\n%s" % (len(r), r, results)
assert r[0] == sendsize * sendloops
assert len(r[1]) == 2
assert r[1][0] is not None
assert r[1][1] is not None
starttimes = sorted(r[1][0] for r in results)
endtimes = sorted(r[1][1] for r in results)
runlengths = sorted(r[1][1] - r[1][0] for r in results)
# assert that the last task started before the first task ended
# (our no-starvation condition)
assert starttimes[-1] < endtimes[0], \
"Not overlapping: starts %s ends %s" % (starttimes, endtimes)
maxstartdiff = starttimes[-1] - starttimes[0]
assert maxstartdiff * 2 < runlengths[0], \
"Largest difference in starting times more than twice the shortest running time!"
assert runlengths[0] * 2 > runlengths[-1], \
"Longest runtime more than twice as long as shortest!"
def test_set_nonblocking(): def test_set_nonblocking():
sock = _orig_sock.socket(socket.AF_INET, socket.SOCK_DGRAM) sock = _orig_sock.socket(socket.AF_INET, socket.SOCK_DGRAM)

View File

@ -8,7 +8,7 @@ from eventlet import greenthread
from eventlet.green import thread from eventlet.green import thread
from eventlet.support import six from eventlet.support import six
from tests import LimitedTestCase, skipped from tests import LimitedTestCase
class Locals(LimitedTestCase): class Locals(LimitedTestCase):
@ -24,29 +24,6 @@ class Locals(LimitedTestCase):
self.results = [] self.results = []
super(Locals, self).tearDown() super(Locals, self).tearDown()
@skipped # cause it relies on internal details of corolocal that are no longer true
def test_simple(self):
tls = thread._local()
g_ids = []
evt = event.Event()
def setter(tls, v):
g_id = id(greenthread.getcurrent())
g_ids.append(g_id)
tls.value = v
evt.wait()
thread.start_new_thread(setter, args=(tls, 1))
thread.start_new_thread(setter, args=(tls, 2))
eventlet.sleep()
objs = object.__getattribute__(tls, "__objs")
assert sorted(g_ids) == sorted(objs.keys())
assert objs[g_ids[0]]['value'] == 1
assert objs[g_ids[1]]['value'] == 2
assert getattr(tls, 'value', None) is None
evt.send("done")
eventlet.sleep()
def test_assignment(self): def test_assignment(self):
my_local = corolocal.local() my_local = corolocal.local()
my_local.a = 1 my_local.a = 1

View File

@ -22,7 +22,7 @@ import time
import eventlet import eventlet
from eventlet import tpool, debug, event from eventlet import tpool, debug, event
from eventlet.support import six from eventlet.support import six
from tests import LimitedTestCase, skipped, skip_with_pyevent, main from tests import LimitedTestCase, skip_with_pyevent, main
one = 1 one = 1
@ -339,28 +339,6 @@ class TpoolLongTests(LimitedTestCase):
self.assertEqual(len(results), cnt) self.assertEqual(len(results), cnt)
tpool.killall() tpool.killall()
@skipped
def test_benchmark(self):
""" Benchmark computing the amount of overhead tpool adds to function calls."""
iterations = 10000
import timeit
imports = """
from tests.tpool_test import noop
from eventlet.tpool import execute
"""
t = timeit.Timer("noop()", imports)
results = t.repeat(repeat=3, number=iterations)
best_normal = min(results)
t = timeit.Timer("execute(noop)", imports)
results = t.repeat(repeat=3, number=iterations)
best_tpool = min(results)
tpool_overhead = (best_tpool - best_normal) / iterations
print("%s iterations\nTpool overhead is %s seconds per call. Normal: %s; Tpool: %s" % (
iterations, tpool_overhead, best_normal, best_tpool))
tpool.killall()
@skip_with_pyevent @skip_with_pyevent
def test_leakage_from_tracebacks(self): def test_leakage_from_tracebacks(self):
tpool.execute(noop) # get it started tpool.execute(noop) # get it started

View File

@ -335,14 +335,6 @@ class TestHttpd(_TestBase):
self.assertRaises(ConnectionClosed, read_http, sock) self.assertRaises(ConnectionClosed, read_http, sock)
fd.close() fd.close()
@tests.skipped
def test_005_run_apachebench(self):
url = 'http://localhost:12346/'
# ab is apachebench
subprocess.call(
[tests.find_command('ab'), '-c', '64', '-n', '1024', '-k', url],
stdout=subprocess.PIPE)
def test_006_reject_long_urls(self): def test_006_reject_long_urls(self):
sock = eventlet.connect( sock = eventlet.connect(
('localhost', self.port)) ('localhost', self.port))