From 5262a288df07daa050a0e17669c3f103f47a8640 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Wed, 5 Sep 2012 23:02:33 -0400 Subject: [PATCH] Fixed #18687: Removed test_performance_scalability Even after repeated adjustment of the constants, this test still fails randomly. It has educated us to ignore messages from Jenkins, to a point where we missed some actual failures. In addition, it accounts for a non-negligible percentage of the run time of the test suite just by itself. Since no one has proposed a convincing patch in months, I'm going to remove the patch. We can't keep a randomly failing test forever. --- tests/regressiontests/utils/crypto.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/tests/regressiontests/utils/crypto.py b/tests/regressiontests/utils/crypto.py index 4c6b722ca9..5cf2934ab0 100644 --- a/tests/regressiontests/utils/crypto.py +++ b/tests/regressiontests/utils/crypto.py @@ -144,21 +144,3 @@ class TestUtilsCryptoPBKDF2(unittest.TestCase): result = pbkdf2(**vector['args']) self.assertEqual(binascii.hexlify(result).decode('ascii'), vector['result']) - - def test_performance_scalability(self): - """ - Theory: If you run with 100 iterations, it should take 100 - times as long as running with 1 iteration. - """ - # These values are chosen as a reasonable tradeoff between time - # to run the test suite and false positives caused by imprecise - # measurement. - n1, n2 = 200000, 800000 - elapsed = lambda f: timeit.Timer(f, - 'from django.utils.crypto import pbkdf2').timeit(number=1) - t1 = elapsed('pbkdf2("password", "salt", iterations=%d)' % n1) - t2 = elapsed('pbkdf2("password", "salt", iterations=%d)' % n2) - measured_scale_exponent = math.log(t2 / t1, n2 / n1) - # This should be less than 1. We allow up to 1.2 so that tests don't - # fail nondeterministically too often. - self.assertLess(measured_scale_exponent, 1.2)