[perl-CGI-Application-Plugin-RateLimit] Fix a race in tests that depends on a time frame really
Petr Pisar
ppisar at fedoraproject.org
Mon Jul 21 15:19:25 UTC 2014
commit aa6f381f9937d51437be8a2f720652f7a79d28a2
Author: Petr Písař <ppisar at redhat.com>
Date: Mon Jul 21 17:18:25 2014 +0200
Fix a race in tests that depends on a time frame really
...me-test-if-run-time-execeeds-a-time-frame.patch | 27 +++++++++++---------
perl-CGI-Application-Plugin-RateLimit.spec | 5 +++-
2 files changed, 19 insertions(+), 13 deletions(-)
---
diff --git a/CGI-Application-Plugin-RateLimit-1.0-Skip-some-test-if-run-time-execeeds-a-time-frame.patch b/CGI-Application-Plugin-RateLimit-1.0-Skip-some-test-if-run-time-execeeds-a-time-frame.patch
index f543a03..fd3fa4f 100644
--- a/CGI-Application-Plugin-RateLimit-1.0-Skip-some-test-if-run-time-execeeds-a-time-frame.patch
+++ b/CGI-Application-Plugin-RateLimit-1.0-Skip-some-test-if-run-time-execeeds-a-time-frame.patch
@@ -1,4 +1,4 @@
-From 179def78f6adf6546dc2f4e8f9619fe8babf1d16 Mon Sep 17 00:00:00 2001
+From 9d16171dcccea3f4994a404f1780351e454bc018 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
Date: Thu, 5 Jun 2014 09:43:10 +0200
Subject: [PATCH] Skip some test if run-time execeeds a time frame
@@ -13,12 +13,12 @@ the tests would fail. This patch skips these test in such case.
Signed-off-by: Petr Písař <ppisar at redhat.com>
---
- t/02simple.t | 40 ++++++++++++++++++++++++++++------------
- t/03complex.t | 21 ++++++++++++++++-----
- 2 files changed, 44 insertions(+), 17 deletions(-)
+ t/02simple.t | 41 +++++++++++++++++++++++++++++------------
+ t/03complex.t | 23 ++++++++++++++++++-----
+ 2 files changed, 47 insertions(+), 17 deletions(-)
diff --git a/t/02simple.t b/t/02simple.t
-index 4a49a42..7251909 100644
+index 4a49a42..7c6bb5d 100644
--- a/t/02simple.t
+++ b/t/02simple.t
@@ -45,6 +45,7 @@ my ($count) = $dbh->selectrow_array('SELECT COUNT(*) FROM rate_limit_hits');
@@ -38,11 +38,12 @@ index 4a49a42..7251909 100644
max_hits => 1
},
two => {timeframe => '10s',
-@@ -93,32 +94,47 @@ my $start = time;
+@@ -93,32 +94,48 @@ my $start = time;
{
my $query = CGI->new({rm => 'one'});
my $app = TestApp->new(QUERY => $query);
- like($app->run(), qr/TOO FAST FOR TestApp::one/);
++ my $output = $app->run();
+ SKIP: {
+ skip "Test did not run less than $one_timeframe s", 2
+ unless (time - $start < $one_timeframe);
@@ -50,7 +51,7 @@ index 4a49a42..7251909 100644
- # should be a second row for it in the DB
- ($count) = $dbh->selectrow_array('SELECT COUNT(*) FROM rate_limit_hits');
- is($count, 2, 'second hit recorded');
-+ like($app->run(), qr/TOO FAST FOR TestApp::one/);
++ like($output, qr/TOO FAST FOR TestApp::one/);
+
+ # should be a second row for it in the DB
+ ($count) = $dbh->selectrow_array('SELECT COUNT(*) FROM rate_limit_hits');
@@ -98,7 +99,7 @@ index 4a49a42..7251909 100644
+ }
}
diff --git a/t/03complex.t b/t/03complex.t
-index 45b9277..bf1c201 100644
+index 45b9277..eb88681 100644
--- a/t/03complex.t
+++ b/t/03complex.t
@@ -42,6 +42,8 @@ $dbh->do(
@@ -136,15 +137,16 @@ index 45b9277..bf1c201 100644
my $query = CGI->new({rm => 'one', revoke_me => 1});
my $app = TestApp->new(QUERY => $query);
like($app->run(), qr/ONE/);
-@@ -104,11 +106,16 @@ my $start = time;
+@@ -104,11 +106,17 @@ my $start = time;
like($app->run(), qr/ONE/);
$app = TestApp->new(QUERY => $query);
- like($app->run(), qr/TOO FAST/);
++ my $output = $app->run();
+ SKIP: {
+ skip "Test did not run less than $one_timeframe s", 1
+ unless (time - $start < $one_timeframe);
-+ like($app->run(), qr/TOO FAST/);
++ like($output, qr/TOO FAST/);
+ }
}
@@ -154,15 +156,16 @@ index 45b9277..bf1c201 100644
$ENV{REMOTE_USER} = $user;
for (1 .. 3) {
my $query = CGI->new({rm => 'login', failed => 1});
-@@ -118,5 +125,9 @@ for my $user (qw(eenie meenie moe)) {
+@@ -118,5 +126,10 @@ for my $user (qw(eenie meenie moe)) {
my $query = CGI->new({rm => 'login', failed => 1});
my $app = TestApp->new(QUERY => $query);
- like($app->run(), qr/TOO FAST FOR failed_login/);
++ my $output = $app->run();
+ SKIP: {
+ skip "Test did not run less than $failed_login_timeframe s", 1
+ unless (time - $start < $failed_login_timeframe);
-+ like($app->run(), qr/TOO FAST FOR failed_login/);
++ like($output, qr/TOO FAST FOR failed_login/);
+ }
}
--
diff --git a/perl-CGI-Application-Plugin-RateLimit.spec b/perl-CGI-Application-Plugin-RateLimit.spec
index 3953fba..bf426a6 100644
--- a/perl-CGI-Application-Plugin-RateLimit.spec
+++ b/perl-CGI-Application-Plugin-RateLimit.spec
@@ -1,6 +1,6 @@
Name: perl-CGI-Application-Plugin-RateLimit
Version: 1.0
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: Limits runmode call rate per user
License: GPL+ or Artistic
@@ -56,6 +56,9 @@ make test
%{_mandir}/man3/*
%changelog
+* Mon Jul 21 2014 Petr Pisar <ppisar at redhat.com> - 1.0-13
+- Fix a race in tests that depends on a time frame really (bug #1104721)
+
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.0-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
More information about the perl-devel
mailing list