Unique cache name - test update

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
This commit is contained in:
Robert Baldyga 2019-07-25 15:25:01 +02:00
parent 901b39031f
commit 9853814252
3 changed files with 24 additions and 9 deletions

View File

@ -135,7 +135,7 @@ class Cache:
self, self,
owner, owner,
cache_id: int = DEFAULT_ID, cache_id: int = DEFAULT_ID,
name: str = "", name: str = "cache",
cache_mode: CacheMode = CacheMode.DEFAULT, cache_mode: CacheMode = CacheMode.DEFAULT,
eviction_policy: EvictionPolicy = EvictionPolicy.DEFAULT, eviction_policy: EvictionPolicy = EvictionPolicy.DEFAULT,
promotion_policy: PromotionPolicy = PromotionPolicy.DEFAULT, promotion_policy: PromotionPolicy = PromotionPolicy.DEFAULT,
@ -155,7 +155,7 @@ class Cache:
self.cfg = CacheConfig( self.cfg = CacheConfig(
_id=cache_id, _id=cache_id,
_name=name.encode("ascii") if name else None, _name=cast(create_string_buffer(name.encode("ascii")), c_char_p),
_cache_mode=cache_mode, _cache_mode=cache_mode,
_eviction_policy=eviction_policy, _eviction_policy=eviction_policy,
_promotion_policy=promotion_policy, _promotion_policy=promotion_policy,

View File

@ -152,7 +152,7 @@ def test_adding_to_random_cache(pyocf_ctx):
# Create 5 cache devices # Create 5 cache devices
for i in range(0, cache_amount): for i in range(0, cache_amount):
cache_device = Volume(S.from_MiB(30)) cache_device = Volume(S.from_MiB(30))
cache = Cache.start_on_device(cache_device) cache = Cache.start_on_device(cache_device, name=f"cache{i}")
cache_devices.append(cache) cache_devices.append(cache)
# Create 50 core devices and add to random cache # Create 50 core devices and add to random cache
@ -204,13 +204,13 @@ def test_adding_core_already_used(pyocf_ctx, cache_mode, cls):
# Start first cache device # Start first cache device
cache_device1 = Volume(S.from_MiB(30)) cache_device1 = Volume(S.from_MiB(30))
cache1 = Cache.start_on_device( cache1 = Cache.start_on_device(
cache_device1, cache_mode=cache_mode, cache_line_size=cls cache_device1, cache_mode=cache_mode, cache_line_size=cls, name="cache1"
) )
# Start second cache device # Start second cache device
cache_device2 = Volume(S.from_MiB(30)) cache_device2 = Volume(S.from_MiB(30))
cache2 = Cache.start_on_device( cache2 = Cache.start_on_device(
cache_device2, cache_mode=cache_mode, cache_line_size=cls cache_device2, cache_mode=cache_mode, cache_line_size=cls, name="cache2"
) )
# Create core device # Create core device

View File

@ -6,6 +6,7 @@
import logging import logging
from ctypes import c_int, c_void_p, byref from ctypes import c_int, c_void_p, byref
from random import randrange from random import randrange
from itertools import count
import pytest import pytest
@ -209,12 +210,14 @@ def test_start_stop_multiple(pyocf_ctx):
caches_no = randrange(6, 11) caches_no = randrange(6, 11)
for i in range(1, caches_no): for i in range(1, caches_no):
cache_device = Volume(Size.from_MiB(20)) cache_device = Volume(Size.from_MiB(20))
cache_name = f"cache{i}"
cache_mode = CacheMode(randrange(0, len(CacheMode))) cache_mode = CacheMode(randrange(0, len(CacheMode)))
size = 4096 * 2**randrange(0, len(CacheLineSize)) size = 4096 * 2**randrange(0, len(CacheLineSize))
cache_line_size = CacheLineSize(size) cache_line_size = CacheLineSize(size)
cache = Cache.start_on_device( cache = Cache.start_on_device(
cache_device, cache_device,
name=cache_name,
cache_mode=cache_mode, cache_mode=cache_mode,
cache_line_size=cache_line_size) cache_line_size=cache_line_size)
caches.append(cache) caches.append(cache)
@ -239,12 +242,14 @@ def test_100_start_stop(pyocf_ctx):
for i in range(1, 101): for i in range(1, 101):
cache_device = Volume(Size.from_MiB(20)) cache_device = Volume(Size.from_MiB(20))
cache_name = f"cache{i}"
cache_mode = CacheMode(randrange(0, len(CacheMode))) cache_mode = CacheMode(randrange(0, len(CacheMode)))
size = 4096 * 2**randrange(0, len(CacheLineSize)) size = 4096 * 2**randrange(0, len(CacheLineSize))
cache_line_size = CacheLineSize(size) cache_line_size = CacheLineSize(size)
cache = Cache.start_on_device( cache = Cache.start_on_device(
cache_device, cache_device,
name=cache_name,
cache_mode=cache_mode, cache_mode=cache_mode,
cache_line_size=cache_line_size) cache_line_size=cache_line_size)
stats = cache.get_stats() stats = cache.get_stats()
@ -262,6 +267,7 @@ def test_start_stop_incrementally(pyocf_ctx):
and then proportions are reversed and number of caches gradually falls to 0. and then proportions are reversed and number of caches gradually falls to 0.
""" """
counter = count()
caches = [] caches = []
caches_limit = 10 caches_limit = 10
add = True add = True
@ -271,12 +277,14 @@ def test_start_stop_incrementally(pyocf_ctx):
if add: if add:
for i in range(0, randrange(3, 5) if increase else randrange(1, 3)): for i in range(0, randrange(3, 5) if increase else randrange(1, 3)):
cache_device = Volume(Size.from_MiB(20)) cache_device = Volume(Size.from_MiB(20))
cache_name = f"cache{next(counter)}"
cache_mode = CacheMode(randrange(0, len(CacheMode))) cache_mode = CacheMode(randrange(0, len(CacheMode)))
size = 4096 * 2**randrange(0, len(CacheLineSize)) size = 4096 * 2**randrange(0, len(CacheLineSize))
cache_line_size = CacheLineSize(size) cache_line_size = CacheLineSize(size)
cache = Cache.start_on_device( cache = Cache.start_on_device(
cache_device, cache_device,
name=cache_name,
cache_mode=cache_mode, cache_mode=cache_mode,
cache_line_size=cache_line_size) cache_line_size=cache_line_size)
caches.append(cache) caches.append(cache)
@ -310,18 +318,21 @@ def test_start_cache_same_id(pyocf_ctx, mode, cls):
cache_device1 = Volume(Size.from_MiB(20)) cache_device1 = Volume(Size.from_MiB(20))
cache_device2 = Volume(Size.from_MiB(20)) cache_device2 = Volume(Size.from_MiB(20))
cache_name = "cache"
cache_id = randrange(1, 16385) cache_id = randrange(1, 16385)
cache = Cache.start_on_device(cache_device1, cache = Cache.start_on_device(cache_device1,
cache_mode=mode, cache_mode=mode,
cache_line_size=cls, cache_line_size=cls,
cache_id=cache_id) cache_id=cache_id,
name=cache_name)
cache.get_stats() cache.get_stats()
with pytest.raises(OcfError, match="OCF_ERR_CACHE_EXIST"): with pytest.raises(OcfError, match="OCF_ERR_CACHE_EXIST"):
cache = Cache.start_on_device(cache_device2, cache = Cache.start_on_device(cache_device2,
cache_mode=mode, cache_mode=mode,
cache_line_size=cls, cache_line_size=cls,
cache_id=cache_id) cache_id=cache_id,
name=cache_name)
cache.get_stats() cache.get_stats()
@ -333,11 +344,15 @@ def test_start_cache_same_device(pyocf_ctx, mode, cls):
""" """
cache_device = Volume(Size.from_MiB(20)) cache_device = Volume(Size.from_MiB(20))
cache = Cache.start_on_device(cache_device, cache_mode=mode, cache_line_size=cls) cache = Cache.start_on_device(
cache_device, cache_mode=mode, cache_line_size=cls, name="cache1"
)
cache.get_stats() cache.get_stats()
with pytest.raises(OcfError, match="OCF_ERR_NOT_OPEN_EXC"): with pytest.raises(OcfError, match="OCF_ERR_NOT_OPEN_EXC"):
cache = Cache.start_on_device(cache_device, cache_mode=mode, cache_line_size=cls) cache = Cache.start_on_device(
cache_device, cache_mode=mode, cache_line_size=cls, name="cache2"
)
cache.get_stats() cache.get_stats()