]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/ocf/tests/functional/tests/security/conftest.py
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / ocf / tests / functional / tests / security / conftest.py
1 #
2 # Copyright(c) 2019 Intel Corporation
3 # SPDX-License-Identifier: BSD-3-Clause-Clear
4 #
5
6 import os
7 import sys
8 from ctypes import (
9 c_uint64,
10 c_uint32,
11 c_uint16,
12 c_int
13 )
14 from tests.utils.random import RandomStringGenerator, RandomGenerator, DefaultRanges, Range
15
16 from pyocf.types.cache import CacheMode, EvictionPolicy, MetadataLayout, PromotionPolicy
17 from pyocf.types.shared import CacheLineSize
18
19 import pytest
20
21 sys.path.append(os.path.join(os.path.dirname(__file__), os.path.pardir))
22
23
24 def enum_min(enum):
25 return list(enum)[0].value
26
27
28 def enum_max(enum):
29 return list(enum)[-1].value
30
31
32 def enum_range(enum):
33 return Range(enum_min(enum), enum_max(enum))
34
35
36 @pytest.fixture(params=RandomGenerator(DefaultRanges.UINT16))
37 def c_uint16_randomize(request):
38 return request.param
39
40
41 @pytest.fixture(params=RandomGenerator(DefaultRanges.UINT32))
42 def c_uint32_randomize(request):
43 return request.param
44
45
46 @pytest.fixture(params=RandomGenerator(DefaultRanges.UINT64))
47 def c_uint64_randomize(request):
48 return request.param
49
50
51 @pytest.fixture(params=RandomGenerator(DefaultRanges.INT))
52 def c_int_randomize(request):
53 return request.param
54
55
56 @pytest.fixture(params=RandomGenerator(DefaultRanges.INT))
57 def c_int_sector_randomize(request):
58 return request.param // 512 * 512
59
60
61 @pytest.fixture(params=RandomStringGenerator())
62 def string_randomize(request):
63 return request.param
64
65
66 @pytest.fixture(
67 params=RandomGenerator(DefaultRanges.UINT32).exclude_range(enum_range(CacheMode))
68 )
69 def not_cache_mode_randomize(request):
70 return request.param
71
72
73 @pytest.fixture(
74 params=RandomGenerator(DefaultRanges.UINT32).exclude_range(enum_range(CacheLineSize))
75 )
76 def not_cache_line_size_randomize(request):
77 return request.param
78
79
80 @pytest.fixture(
81 params=RandomGenerator(DefaultRanges.UINT32).exclude_range(enum_range(EvictionPolicy))
82 )
83 def not_eviction_policy_randomize(request):
84 return request.param
85
86
87 @pytest.fixture(
88 params=RandomGenerator(DefaultRanges.UINT32).exclude_range(enum_range(PromotionPolicy))
89 )
90 def not_promotion_policy_randomize(request):
91 return request.param
92
93
94 @pytest.fixture(
95 params=RandomGenerator(DefaultRanges.UINT32).exclude_range(enum_range(MetadataLayout))
96 )
97 def not_metadata_layout_randomize(request):
98 return request.param