[LTP] [PATCH v2 2/3] lib: TCONF on "not supported" errnos in SAFE_SOCKET()

sunlianwen sunlw.fnst@cn.fujitsu.com
Wed Mar 14 01:42:22 CET 2018


Hi
    I am sorry I forget to report my debug info on RHEL7.5Beta about 
this question.
I write a testcase on RHEL7.5Beta. the test case is below.

#include <netinet/in.h>
#include <sys/socket.h>
#include <stdio.h>

int main (int argc, const char * argv[])
{
     //create a dccp socket
     int server_socket = socket(AF_INET6, SOCK_DCCP, IPPROTO_DCCP);
     if (server_socket == -1) {
         perror("socket error");
         return 1;
     }
    printf("test is ok \n");
}

And the  RHEL7.5Beta will report "Socket type not supported"  when run 
my testcase  on RHEL7.5Beta .
and the RHEL7.4GA will report "Permission denied " when run my testcase 
on RHEL7.4GA
it's ok when run my testcase on RHEL7.3GA.

That's all.

Thanks
Lianwen Sun

On 03/13/2018 11:01 PM, Petr Vorel wrote:
> *NOSUPPORT errnos likely mean there is configuration issue rather than
> test failure.
>
> e.g. missing dccp module in netstress.c which was so far set as TBROK:
> safe_net.c:117: BROK: netstress.c:654: socket(10, 6, 33) failed: ESOCKTNOSUPPORT
>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> Acked-by: Alexey Kodanev <alexey.kodanev@oracle.com>
> ---
>   lib/safe_net.c | 16 ++++++++++++++--
>   1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/lib/safe_net.c b/lib/safe_net.c
> index 9ea9d2b42..9ed52dcd1 100644
> --- a/lib/safe_net.c
> +++ b/lib/safe_net.c
> @@ -107,12 +107,24 @@ int tst_getsockport(const char *file, const int lineno, int sockfd)
>   int safe_socket(const char *file, const int lineno, void (cleanup_fn)(void),
>   		int domain, int type, int protocol)
>   {
> -	int rval;
> +	int rval, ttype;
>   
>   	rval = socket(domain, type, protocol);
>   
>   	if (rval < 0) {
> -		tst_brkm(TBROK | TERRNO, cleanup_fn,
> +		switch (errno) {
> +		case EPROTONOSUPPORT:
> +		case ESOCKTNOSUPPORT:
> +		case EOPNOTSUPP:
> +		case EPFNOSUPPORT:
> +		case EAFNOSUPPORT:
> +			ttype = TCONF;
> +			break;
> +		default:
> +			ttype = TBROK;
> +		}
> +
> +		tst_brkm(ttype | TERRNO, cleanup_fn,
>   			 "%s:%d: socket(%d, %d, %d) failed", file, lineno,
>   			 domain, type, protocol);
>   	}



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20180314/e9a14bbf/attachment.html>


More information about the ltp mailing list