image-fuzzer: Add fuzzing functions for L1/L2 table entries
Signed-off-by: Maria Kustova <maria.k@catit.be> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
489cb4d7f9
commit
eeadd92487
@ -325,3 +325,31 @@ def feature_name(current):
|
||||
truncate_string(STRING_V, 46) # Fuzz padding (field length = 46)
|
||||
]
|
||||
return selector(current, constraints, string_validator)
|
||||
|
||||
|
||||
def l1_entry(current):
|
||||
"""Fuzz an entry of the L1 table."""
|
||||
constraints = UINT64_V
|
||||
# Reserved bits are ignored
|
||||
# Added a possibility when only flags are fuzzed
|
||||
offset = 0x7fffffffffffffff & random.choice([selector(current,
|
||||
constraints),
|
||||
current])
|
||||
is_cow = random.randint(0, 1)
|
||||
return offset + (is_cow << UINT64_M)
|
||||
|
||||
|
||||
def l2_entry(current):
|
||||
"""Fuzz an entry of an L2 table."""
|
||||
constraints = UINT64_V
|
||||
# Reserved bits are ignored
|
||||
# Add a possibility when only flags are fuzzed
|
||||
offset = 0x3ffffffffffffffe & random.choice([selector(current,
|
||||
constraints),
|
||||
current])
|
||||
is_compressed = random.randint(0, 1)
|
||||
is_cow = random.randint(0, 1)
|
||||
is_zero = random.randint(0, 1)
|
||||
value = offset + (is_cow << UINT64_M) + \
|
||||
(is_compressed << UINT64_M - 1) + is_zero
|
||||
return value
|
||||
|
Loading…
Reference in New Issue
Block a user