On 7/15/21 8:31 PM, Dumitru Ceara wrote:
> On 7/15/21 7:37 PM, Han Zhou wrote:
>> On Thu, Jul 15, 2021 at 9:17 AM Ilya Maximets <i.maxim...@ovn.org> wrote:
>>>
>>> On 6/29/21 9:57 PM, Ilya Maximets wrote:
>>>>>> Regarding the current patch, I think it's better to add a test case to
>>>>>> cover the scenario and confirm that existing connections didn't
>> reset. With
>>>>>> that:
>>>>>> Acked-by: Han Zhou <hz...@ovn.org>
>>>>
>>>> I'll work on a unit test for this.
>>>
>>> Hi.  Here is a unit test that I came up with:
>>>
>>> diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at
>>> index 62181dd4d..e32f9ec89 100644
>>> --- a/tests/ovsdb-idl.at
>>> +++ b/tests/ovsdb-idl.at
>>> @@ -2282,3 +2282,27 @@ OVSDB_CHECK_CLUSTER_IDL_C([simple idl,
>> monitor_cond_since, cluster disconnect],
>>>  008: table simple: i=1 r=2 b=true s= u=<0> ia=[] ra=[] ba=[] sa=[] ua=[]
>> uuid=<2>
>>>  009: done
>>>  ]])
>>> +
>>> +dnl This test checks that IDL keeps the existing connection to the
>> server if
>>> +dnl it's still on a list of remotes after update.
>>> +OVSDB_CHECK_IDL_C([simple idl, initially empty, set remotes],
>>> +  [],
>>> +  [['set-remote unix:socket' \
>>> +    '+set-remote unix:bad_socket,unix:socket' \
>>> +    '+set-remote unix:bad_socket' \
>>> +    '+set-remote unix:socket' \
>>> +    'set-remote unix:bad_socket,unix:socket' \
>>> +    '+set-remote unix:socket' \
>>> +    '+reconnect']],
>>> +  [[000: empty
>>> +001: new remotes: unix:socket, is connected: true
>>> +002: new remotes: unix:bad_socket,unix:socket, is connected: true
>>> +003: new remotes: unix:bad_socket, is connected: false
>>> +004: new remotes: unix:socket, is connected: false
>>> +005: empty
>>> +006: new remotes: unix:bad_socket,unix:socket, is connected: true
>>> +007: new remotes: unix:socket, is connected: true
>>> +008: reconnect
>>> +009: empty
>>> +010: done
>>> +]])
>>> diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c
>>> index a886f971e..93329cd4c 100644
>>> --- a/tests/test-ovsdb.c
>>> +++ b/tests/test-ovsdb.c
>>> @@ -2621,6 +2621,7 @@ do_idl(struct ovs_cmdl_context *ctx)
>>>      setvbuf(stdout, NULL, _IONBF, 0);
>>>
>>>      symtab = ovsdb_symbol_table_create();
>>> +    const char remote_s[] = "set-remote ";
>>>      const char cond_s[] = "condition ";
>>>      if (ctx->argc > 2 && strstr(ctx->argv[2], cond_s)) {
>>>          update_conditions(idl, ctx->argv[2] + strlen(cond_s));
>>> @@ -2664,6 +2665,11 @@ do_idl(struct ovs_cmdl_context *ctx)
>>>          if (!strcmp(arg, "reconnect")) {
>>>              print_and_log("%03d: reconnect", step++);
>>>              ovsdb_idl_force_reconnect(idl);
>>> +        }  else if (!strncmp(arg, remote_s, strlen(remote_s))) {
>>> +            ovsdb_idl_set_remote(idl, arg + strlen(remote_s), true);
>>> +            print_and_log("%03d: new remotes: %s, is connected: %s",
>> step++,
>>> +                          arg + strlen(remote_s),
>>> +                          ovsdb_idl_is_connected(idl) ? "true" :
>> "false");
>>>          }  else if (!strncmp(arg, cond_s, strlen(cond_s))) {
>>>              update_conditions(idl, arg + strlen(cond_s));
>>>              print_and_log("%03d: change conditions", step++);
>>> ---
>>>
>>> Dumitru, Han, if it looks good to you, I can squash it in before
>>> applying the patch.   What do you think?
>>
>> Thanks Ilya. LGTM.
> 
> Looks good to me too, thanks!

Applied.  Thanks!

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to