[perl-Cache-Cache] Fix race between adding two key sets in tests

Petr Pisar ppisar at fedoraproject.org
Wed Aug 13 10:06:58 UTC 2014


commit e5b1262b2fb6caece67fdb8c32d3ff80126e6631
Author: Petr Písař <ppisar at redhat.com>
Date:   Wed Aug 13 12:06:54 2014 +0200

    Fix race between adding two key sets in tests

 ...che-1.06-Make-tests-aware-of-running-time.patch |   29 +++++++++++++-------
 perl-Cache-Cache.spec                              |    5 +++-
 2 files changed, 23 insertions(+), 11 deletions(-)
---
diff --git a/Cache-Cache-1.06-Make-tests-aware-of-running-time.patch b/Cache-Cache-1.06-Make-tests-aware-of-running-time.patch
index 6fbe9f1..370817e 100644
--- a/Cache-Cache-1.06-Make-tests-aware-of-running-time.patch
+++ b/Cache-Cache-1.06-Make-tests-aware-of-running-time.patch
@@ -1,4 +1,4 @@
-From 53b0e5405595a8a9b87b53dea1464584237f4dc7 Mon Sep 17 00:00:00 2001
+From 847184c72a9e76612cd76e97b676af85202be27c Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar at redhat.com>
 Date: Thu, 26 Jun 2014 13:43:09 +0200
 Subject: [PATCH] Make tests aware of running time
@@ -16,8 +16,8 @@ CPAN RT#88418
 Signed-off-by: Petr Písař <ppisar at redhat.com>
 ---
  lib/Cache/CacheTester.pm          | 30 ++++++++++++++++++++++++------
- lib/Cache/SizeAwareCacheTester.pm | 19 +++++++++++++++----
- 2 files changed, 39 insertions(+), 10 deletions(-)
+ lib/Cache/SizeAwareCacheTester.pm | 25 +++++++++++++++++++++----
+ 2 files changed, 45 insertions(+), 10 deletions(-)
 
 diff --git a/lib/Cache/CacheTester.pm b/lib/Cache/CacheTester.pm
 index 8f64577..1cd6f82 100644
@@ -87,7 +87,7 @@ index 8f64577..1cd6f82 100644
    sleep( $EXPIRES_DELAY + 1 );
  
 diff --git a/lib/Cache/SizeAwareCacheTester.pm b/lib/Cache/SizeAwareCacheTester.pm
-index 1a660f7..1cf744f 100644
+index 1a660f7..b2bcb79 100644
 --- a/lib/Cache/SizeAwareCacheTester.pm
 +++ b/lib/Cache/SizeAwareCacheTester.pm
 @@ -110,6 +110,7 @@ sub _test_two
@@ -98,7 +98,11 @@ index 1a660f7..1cf744f 100644
    $cache->set( $first_key, $value, $first_expires_in );
  
    my $first_size = $cache->size( );
-@@ -132,8 +133,13 @@ sub _test_two
+@@ -129,11 +130,17 @@ sub _test_two
+ 
+     $cache->set( $key, $value, $second_expires_in );
+   }
++  my $second_inserted = time;
  
    my $second_size = $cache->size( );
  
@@ -114,18 +118,23 @@ index 1a660f7..1cf744f 100644
  
    my $size_limit = $first_size;
  
-@@ -146,8 +152,13 @@ sub _test_two
+@@ -146,8 +153,18 @@ sub _test_two
  
    my $first_value = $cache->get( $first_key );
  
 -  ( $first_value eq $value ) ?
 -    $self->ok( ) : $self->not_ok( '$first_value eq $value' );
-+  if (time - $start < $first_expires_in ) {
-+    ( $first_value eq $value ) ?
-+      $self->ok( ) : $self->not_ok( '$first_value eq $value' );
-+  } else {
++  if (time - $start >= $first_expires_in) {
 +    $self->skip( '$first_value eq $value (not finished in ' .
 +      $first_expires_in . ' s)');
++  } elsif ($second_inserted + $second_expires_in >=
++      $start + $first_expires_in) {
++    $self->skip( '$first_value eq $value (second key insterted to late, ' .
++     'so first key had expiration time before the second one, ' .
++     'thus the first key was removed when limit cache size');
++  } else {
++    ( $first_value eq $value ) ?
++      $self->ok( ) : $self->not_ok( '$first_value eq $value' );
 +  }
  
  }
diff --git a/perl-Cache-Cache.spec b/perl-Cache-Cache.spec
index c9b5885..20f0b27 100644
--- a/perl-Cache-Cache.spec
+++ b/perl-Cache-Cache.spec
@@ -1,6 +1,6 @@
 Name:           perl-Cache-Cache
 Version:        1.06
-Release:        17%{?dist}
+Release:        18%{?dist}
 Summary:        Generic cache interface and implementations
 License:        GPL+ or Artistic
 Group:          Development/Libraries
@@ -58,6 +58,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man3/*
 
 %changelog
+* Wed Aug 13 2014 Petr Pisar <ppisar at redhat.com> - 1.06-18
+- Fix race between adding two key sets in tests (bug #1128792)
+
 * Wed Aug 13 2014 Petr Pisar <ppisar at redhat.com> - 1.06-17
 - Fix other time race in tests (bug #1112553)
 



More information about the perl-devel mailing list