@@ -747,6 +747,46 @@ func TestOldestEntryDeletionWhenMaxCacheSizeIsReached(t *testing.T) {
747
747
assertEqual (t , blob ('c' , 1024 * 800 ), entry3 )
748
748
}
749
749
750
+ func TestNewEntryWriteWhenMaxCacheSizeIsReached (t * testing.T ) {
751
+ t .Parallel ()
752
+
753
+ // given
754
+ cache , _ := NewBigCache (Config {
755
+ Shards : 1 ,
756
+ LifeWindow : 5 * time .Second ,
757
+ MaxEntriesInWindow : 2 ,
758
+ MaxEntrySize : 400 ,
759
+ HardMaxCacheSize : 1 ,
760
+ })
761
+
762
+ // when
763
+ key1Err := cache .Set ("key1" , blob ('a' , 1024 * 400 ))
764
+ key2Err := cache .Set ("key2" , blob ('b' , 1024 * 400 ))
765
+ key3Err := cache .Set ("key3" , blob ('c' , 1024 * 400 ))
766
+ key4Err := cache .Set ("key4" , blob ('d' , 1024 * 400 ))
767
+
768
+
769
+ //then
770
+ noError (t ,key1Err )
771
+ noError (t ,key2Err )
772
+ noError (t ,key3Err )
773
+ noError (t ,key4Err )
774
+
775
+ // when
776
+ _ , key1Err = cache .Get ("key1" )
777
+ _ , key2Err = cache .Get ("key2" )
778
+ entry3 , _ := cache .Get ("key3" )
779
+ entry4 , _ := cache .Get ("key4" )
780
+
781
+ // then
782
+ assertEqual (t , key1Err , ErrEntryNotFound )
783
+ assertEqual (t , key2Err , ErrEntryNotFound )
784
+ assertEqual (t , blob ('c' , 1024 * 400 ), entry3 )
785
+ assertEqual (t , blob ('d' , 1024 * 400 ), entry4 )
786
+
787
+ }
788
+
789
+
750
790
func TestRetrievingEntryShouldCopy (t * testing.T ) {
751
791
t .Parallel ()
752
792
0 commit comments