On Fri, Jan 05, 2024 at 12:46:54PM +0100, Adrian Moreno wrote:
> Parsing of info and matches was being tested as generic k-v parsing.
> Also verify we don't find any unexpected field.
> 
> Signed-off-by: Adrian Moreno <[email protected]>
> ---
>  python/ovs/tests/test_ofp.py | 73 +++++++++++++++++++++++++++---------
>  1 file changed, 55 insertions(+), 18 deletions(-)
> 
> diff --git a/python/ovs/tests/test_ofp.py b/python/ovs/tests/test_ofp.py
> index 27bcf0c47..5d2736ab4 100644
> --- a/python/ovs/tests/test_ofp.py
> +++ b/python/ovs/tests/test_ofp.py
> @@ -6,6 +6,30 @@ from ovs.flow.kv import KeyValue, ParseError
>  from ovs.flow.decoders import EthMask, IPMask, decode_mask
>  
>  
> +def do_test_section(input_string, section, expected):
> +    flow = OFPFlow(input_string)
> +    kv_list = flow.section(section).data
> +
> +    for i in range(len(expected)):
> +        assert expected[i].key == kv_list[i].key
> +        assert expected[i].value == kv_list[i].value
> +
> +        # Assert positions relative to action string are OK.
> +        pos = flow.section(section).pos
> +        string = flow.section(section).string
> +
> +        kpos = kv_list[i].meta.kpos
> +        kstr = kv_list[i].meta.kstring
> +        vpos = kv_list[i].meta.vpos
> +        vstr = kv_list[i].meta.vstring
> +        assert string[kpos : kpos + len(kstr)] == kstr
> +        if vpos != -1:
> +            assert string[vpos : vpos + len(vstr)] == vstr
> +
> +        # Assert string meta is correct.
> +        assert input_string[pos : pos + len(string)] == string

Hi Adrian,

I'm probably missing something obvious.
But I wonder if there a possibility that kv_list contains more elements
than expected, and if so, is that something we should check for?

> +
> +
>  @pytest.mark.parametrize(
>      "input_string,expected",
>      [

...
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to