On 5/11/23 15:49, Stefan Hoffmann wrote:
> On Thu, 2023-05-11 at 15:38 +0200, Stefan Hoffmann wrote:
>> This tests stream.c and stream.py with ssl connection at
>> CHECK_STREAM_OPEN_BLOCK.
>> For the tests, ovsdb needs to be build with libssl.
>>
>> Signed-off-by: Stefan Hoffmann <[email protected]>
>> ---
>>
>> Changes based on comments from Ilya Maximets:
>> use m4_join; use m4_substr directly at call, without using variable in
>> between
>>
>> Hint: at some places we can't use brackets, as m4 seems to not resolve the
>> variables otherwise. Mail with comments at this places will follow.
>>
>>  tests/ovsdb-idl.at   | 31 +++++++++++++++++++++++++++----
>>  tests/test-stream.c  | 12 +++++++++++-
>>  tests/test-stream.py | 18 ++++++++++++++++++
>>  3 files changed, 56 insertions(+), 5 deletions(-)
>>
>> diff --git a/tests/ovsdb-idl.at b/tests/ovsdb-idl.at
>> index 258d79fe9..978a6677b 100644
>> --- a/tests/ovsdb-idl.at
>> +++ b/tests/ovsdb-idl.at
>> @@ -28,8 +28,13 @@ m4_define([OVSDB_START_IDLTEST],
>>  [
>>    AT_CHECK([ovsdb-tool create db dnl
>>                m4_if([$2], [], [$abs_srcdir/idltest.ovsschema], [$2])])
>> +  PKIDIR=$abs_top_builddir/tests
>>    AT_CHECK([ovsdb-server -vconsole:warn --log-file --detach --no-chdir dnl
>>                --pidfile --remote=punix:socket dnl
>> +              m4_if(m4_substr($1, 0, 5), [pssl:],
>> +                    [--private-key=$PKIDIR/testpki-privkey2.pem dnl
>> +                     --certificate=$PKIDIR/testpki-cert2.pem dnl
>> +                     --ca-cert=$PKIDIR/testpki-cacert.pem], []) dnl
>>                m4_if([$1], [], [], [--remote=$1]) db dnl
>>    ])
>>    on_exit 'kill `cat ovsdb-server.pid`'
>> @@ -2286,14 +2291,26 @@ m4_define([CHECK_STREAM_OPEN_BLOCK],
>>    [AT_SETUP([Check stream open block - $1 - $3])
>>     AT_SKIP_IF([test "$3" = "tcp6" && test "$IS_WIN32" = "yes"])
>>     AT_SKIP_IF([test "$3" = "tcp6" && test "$HAVE_IPV6" = "no"])
>> +   AT_SKIP_IF([test "$3" = "ssl6" && test "$IS_WIN32" = "yes"])
>> +   AT_SKIP_IF([test "$3" = "ssl6" && test "$HAVE_IPV6" = "no"])
>> +   AT_SKIP_IF([test "$3" = "ssl" && test "$HAVE_OPENSSL" = "no"])
>> +   $PYTHON3 -c "import ssl"
>> +   SSL_PRESENT=$?
>> +   AT_SKIP_IF([test "$3" = "ssl" && test $SSL_PRESENT != 0])
>> +   AT_SKIP_IF([test "$3" = "ssl6" && test "$HAVE_OPENSSL" = "no"])
>> +   AT_SKIP_IF([test "$3" = "ssl6" && test $SSL_PRESENT != 0])
>>     AT_KEYWORDS([ovsdb server stream open_block $3])
>> -   OVSDB_START_IDLTEST(["ptcp:0:$4"])
>> +   PKIDIR=$abs_top_builddir/tests
>> +   m4_define([PROTOCOL], [m4_substr([$3], [0], [3])])
>> +   OVSDB_START_IDLTEST([m4_join([], [p], PROTOCOL, [:0:], $4)])
> 
> Badly we must not use brackets here for the arguments that are
> variables (PROTOCOL), we want to get resolved.
> I guess, otherwise, m4 takes them as text instead.
> 
> Also we need to handover `$4` directly without brackets, else we get
> issues with IPv6 IPs.
> The ovsdb-server call would be '--remote=ptcp:0:[[::1]]' instead of '--
> remote=ptcp:0:[::1]'.
> We could use brackets here but would need to remove them above at
> OVSDB_START_IDLTEST (--remote=$4 instead of [--remote=$4]). I decidet
> to miss the brackets here is the better way.
> Another solution would be to remove one pair of brackets at the
> CHECK_STREAM_OPEN_BLOCK function call below, but than we also more or
> less handover the plain value without brackets there.
> 
> Do you have a better idea how to solve that or should I add a comment
> to the code therefore?

I guess, we can keep as-is.  No need for extra comments.

Best regards, Ilya Maximets.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to