From 4c66fa8b1bfc3f99ef0a4801783776f2c8d17b47 Mon Sep 17 00:00:00 2001 From: Katarzyna Lapinska Date: Thu, 23 Jan 2020 11:36:14 +0100 Subject: [PATCH] Add cache mode traits --- test/functional/api/cas/cache_config.py | 26 +++++++++++++++++++++++-- test/functional/test-framework | 2 +- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/test/functional/api/cas/cache_config.py b/test/functional/api/cas/cache_config.py index 0908cb9..1da49f9 100644 --- a/test/functional/api/cas/cache_config.py +++ b/test/functional/api/cas/cache_config.py @@ -3,8 +3,7 @@ # SPDX-License-Identifier: BSD-3-Clause-Clear # -from enum import IntEnum -from aenum import Enum +from aenum import Enum, IntFlag from test_utils.size import Size, Unit from attotime import attotimedelta @@ -27,11 +26,34 @@ class CacheMode(Enum): WA = "Write-Around" PT = "Pass-Through" WO = "Write-Only" + WI = "Write-Invalidate" DEFAULT = WT def __str__(self): return self.value + @staticmethod + def get_traits(cache_mode): + if cache_mode == CacheMode.PT: + return 0 + elif cache_mode == CacheMode.WT: + return CacheModeTrait.InsertRead | CacheModeTrait.InsertWrite + elif cache_mode == CacheMode.WB: + return CacheModeTrait.InsertRead | CacheModeTrait.InsertWrite | CacheModeTrait.LazyFlush + elif cache_mode == CacheMode.WO: + return CacheModeTrait.InsertWrite | CacheModeTrait.LazyFlush + elif cache_mode == CacheMode.WA: + return CacheModeTrait.InsertRead + elif cache_mode == CacheMode.WI: + return CacheModeTrait.InsertRead | CacheModeTrait.WriteInvalidate + + +class CacheModeTrait(IntFlag): + InsertWrite = 1 + InsertRead = 2 + LazyFlush = 4 + WriteInvalidate = 8 + class SeqCutOffPolicy(Enum): full = 0 diff --git a/test/functional/test-framework b/test/functional/test-framework index 2f911d1..8e0855c 160000 --- a/test/functional/test-framework +++ b/test/functional/test-framework @@ -1 +1 @@ -Subproject commit 2f911d1117d2220d85c76bbd293a58bd291c63e1 +Subproject commit 8e0855c0671e38cbf74f768e18f8b75d16752eb8