diff --git a/tests/generators/ssz_generic/ssz_container.py b/tests/generators/ssz_generic/ssz_container.py index 8f3a59ce3..9c1d9d0cb 100644 --- a/tests/generators/ssz_generic/ssz_container.py +++ b/tests/generators/ssz_generic/ssz_container.py @@ -105,7 +105,7 @@ def invalid_cases(): RandomizationMode.mode_one_count, RandomizationMode.mode_max_count]: if len(offsets) != 0: - for offset_index in offsets: + for index,offset_index in enumerate(offsets): yield f'{name}_{mode.to_name()}_offset_{offset_index}_plus_one', \ invalid_test_case(lambda: mod_offset( b=serialize(container_case_fn(rng, mode, typ)), @@ -118,3 +118,20 @@ def invalid_cases(): offset_index=offset_index, change=lambda x: 0 )) + if index == 0: + yield f'{name}_{mode.to_name()}_first offset_{offset_index}_minus_one', \ + invalid_test_case(lambda: mod_offset( + b=serialize(container_case_fn(rng, mode, typ)), + offset_index=offset_index, + change=lambda x: x - 1 + )) + if mode == RandomizationMode.mode_max_count: + serialized = serialize(container_case_fn(rng, mode, typ)) + serialized = serialized + serialized[0:2] + yield f'{name}_{mode.to_name()}_last offset_{offset_index}_overflow', \ + invalid_test_case(lambda:serialized) + if mode == RandomizationMode.mode_one_count: + serialized = serialize(container_case_fn(rng, mode, typ)) + serialized = serialized + serialized[0:1] + yield f'{name}_{mode.to_name()}_last offset_{offset_index}_wrong_byte_length', \ + invalid_test_case(lambda:serialized)