public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
From: Wanlong Gao <gaowanlong@cn.fujitsu.com>
To: lidan <li.dan@cn.fujitsu.com>
Cc: ltp-list@lists.sourceforge.net
Subject: Re: [LTP] [PATCHv2]pthread_join:4-1.c: clean up code
Date: Wed, 28 Mar 2012 15:39:10 +0800	[thread overview]
Message-ID: <4F72C01E.9090501@cn.fujitsu.com> (raw)
In-Reply-To: <4F72BE67.6010602@cn.fujitsu.com>

On 03/28/2012 03:31 PM, lidan wrote:

> 
> sorry for using old version checkpatch.pl.
> 
> code cleanup for pthread_join/4-1.c


ACK

> 
> Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
> Signed-off-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
> ---
>  .../conformance/interfaces/pthread_join/4-1.c      |  159 ++++++--------------
>  1 file changed, 43 insertions(+), 116 deletions(-)
> 
> diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/4-1.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/4-1.c
> index baf0992..fb8c8d3 100644
> --- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/4-1.c
> +++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/4-1.c
> @@ -1,7 +1,7 @@
>  /*
>  * Copyright (c) 2005, Bull S.A..  All rights reserved.
>  * Created by: Sebastien Decugis
> -
> +*
>  * This program is free software; you can redistribute it and/or modify it
>  * under the terms of version 2 of the GNU General Public License as
>  * published by the Free Software Foundation.
> @@ -13,27 +13,23 @@
>  * You should have received a copy of the GNU General Public License along
>  * with this program; if not, write the Free Software Foundation, Inc., 59
>  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
> -
> +*
>  * This sample test aims to check the following assertion:
>  *
> -* If the thread calling pthread_join is canceled, the joined thread remains joinable.
> -
> +* If the thread calling pthread_join is canceled, the joined thread
> +* remains joinable.
> +*
>  * The steps are:
>  * -> create a thread blocked on a mutex.
>  * -> create another thread which tries and join the first thread.
>  * -> cancel the 2nd thread.
>  * -> unblock the semaphore then join the 1st thread
> -
>  * The test fails if the main thread is unable to join the 1st thread.
> -
>  */
>  
>  /* We are testing conformance to IEEE Std 1003.1, 2003 Edition */
>  #define _POSIX_C_SOURCE 200112L
>  
> -/********************************************************************************************/
> -/****************************** standard includes *****************************************/
> -/********************************************************************************************/
>  #include <pthread.h>
>  #include <stdarg.h>
>  #include <stdio.h>
> @@ -41,82 +37,37 @@
>  #include <string.h>
>  #include <unistd.h>
>  #include <semaphore.h>
> -
>  #include <errno.h>
>  
> -/********************************************************************************************/
> -/******************************   Test framework   *****************************************/
> -/********************************************************************************************/
>  #include "../testfrmw/testfrmw.h"
>  #include "../testfrmw/testfrmw.c"
> -/* This header is responsible for defining the following macros:
> - * UNRESOLVED(ret, descr);
> - *    where descr is a description of the error and ret is an int (error code for example)
> - * FAILED(descr);
> - *    where descr is a short text saying why the test has failed.
> - * PASSED();
> - *    No parameter.
> - *
> - * Both three macros shall terminate the calling process.
> - * The testcase shall not terminate in any other maneer.
> - *
> - * The other file defines the functions
> - * void output_init()
> - * void output(char * string, ...)
> - *
> - * Those may be used to output information.
> - */
> -
> -/********************************************************************************************/
> -/********************************** Configuration ******************************************/
> -/********************************************************************************************/
>  #ifndef VERBOSE
>  #define VERBOSE 1
>  #endif
>  
> -/********************************************************************************************/
> -/***********************************     Helper     *****************************************/
> -/********************************************************************************************/
>  #include "../testfrmw/threads_scenarii.c"
> -/* this file defines:
> -* scenarii: array of struct __scenario type.
> -* NSCENAR : macro giving the total # of scenarii
> -* scenar_init(): function to call before use the scenarii array.
> -* scenar_fini(): function to call after end of use of the scenarii array.
> -*/
> -
> -/********************************************************************************************/
> -/***********************************    Test case   *****************************************/
> -/********************************************************************************************/
>  
>  pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
>  
>  /* 1st thread function */
> -void * threaded (void * arg)
> +void *threaded(void *arg)
>  {
>  	int ret = 0;
>  
>  	/* Try and lock the mutex, then exit */
> -
>  	ret = pthread_mutex_lock(&mtx);
> -
>  	if (ret != 0)
> -	{
>  		UNRESOLVED(ret, "Failed to lock mutex");
> -	}
>  
>  	ret = pthread_mutex_unlock(&mtx);
> -
>  	if (ret != 0)
> -	{
>  		UNRESOLVED(ret, "Failed to unlock mutex");
> -	}
>  
>  	return NULL;
>  }
>  
>  /* Canceled thread */
> -void * joiner_func(void * arg)
> +void *joiner_func(void *arg)
>  {
>  	(void) pthread_join(*(pthread_t *) arg, NULL);
>  
> @@ -139,116 +90,92 @@ int main(int argc, char *argv[])
>  	/* Initialize thread attribute objects */
>  	scenar_init();
>  
> -	for (sc = 0; sc < NSCENAR; sc++)
> -	{
> +	for (sc = 0; sc < NSCENAR; sc++) {
>  #if VERBOSE > 0
>  		output("-----\n");
> -		output("Starting test with scenario (%i): %s\n", sc, scenarii[ sc ].descr);
> +		output("Starting test with scenario (%i): %s\n",
> +		       sc, scenarii[sc].descr);
>  #endif
>  
>  		/* Lock the mutex */
>  		ret = pthread_mutex_lock(&mtx);
> -
>  		if (ret != 0)
> -		{
>  			UNRESOLVED(ret, "failed to lock the mutex");
> -		}
>  
> -		ret = pthread_create(&child, &scenarii[ sc ].ta, threaded, NULL);
> +		ret = pthread_create(&child, &scenarii[sc].ta,
> +				     threaded, NULL);
>  
> -		switch (scenarii[ sc ].result)
> -		{
> -				case 0:                                       /* Operation was expected to succeed */
> +		switch (scenarii[sc].result) {
> +		/* Operation was expected to succeed */
> +		case 0:
>  
> -				if (ret != 0)
> -				{
> -					UNRESOLVED(ret, "Failed to create this thread");
> -				}
> -
> -				break;
> -
> -				case 1:                                       /* Operation was expected to fail */
> +			if (ret != 0)
> +				UNRESOLVED(ret, "Failed to create this thread");
>  
> -				if (ret == 0)
> -				{
> -					UNRESOLVED(-1, "An error was expected but the thread creation succeeded");
> -				}
> +			break;
> +		/* Operation was expected to fail */
> +		case 1:
>  
> -				break;
> +			if (ret == 0)
> +				UNRESOLVED(-1, "An error was expected "
> +					   "but the thread creation succeeded");
>  
> -				case 2:                                       /* We did not know the expected result */
> -				default:
> +			break;
> +		/* We did not know the expected result */
> +		case 2:
> +		default:
>  #if VERBOSE > 0
>  
> -				if (ret == 0)
> -				{
> -					output("Thread has been created successfully for this scenario\n");
> -				}
> -				else
> -				{
> -					output("Thread creation failed with the error: %s\n", strerror(ret));
> -				}
> +			if (ret == 0)
> +				output("Thread has been created "
> +				       "successfully for this scenario\n");
> +			else
> +				output("Thread creation failed with the error: "
> +				       "%s\n", strerror(ret));
>  
>  #endif
>  
>  		}
> -
> -		if (ret == 0)                                       /* The new thread is running */
> -		{
> -
> +		/* The new thread is running */
> +		if (ret == 0) {
>  			/* Now create the joiner thread */
> -			ret = pthread_create(&joiner, NULL, joiner_func, &child);
> +			ret = pthread_create(&joiner, NULL,
> +					     joiner_func, &child);
>  
>  			if (ret != 0)
> -			{
> -				UNRESOLVED(ret, "Failed to create the joiner thread");
> -			}
> +				UNRESOLVED(ret, "Failed to create the "
> +					   "joiner thread");
>  
>  			/* Let it enter pthread_join */
>  			sched_yield();
>  
>  			/* Cancel the joiner thread */
>  			ret = pthread_cancel(joiner);
> -
>  			if (ret != 0)
> -			{
>  				UNRESOLVED(ret, "Failed to cancel the thread");
> -			}
>  
>  			/* Join the canceled thread */
>  			ret = pthread_join(joiner, NULL);
> -
>  			if (ret != 0)
> -			{
> -				UNRESOLVED(ret, "Failed to join the canceled thread");
> -			}
> +				UNRESOLVED(ret, "Failed to join the "
> +					   "canceled thread");
>  
>  			/* Unblock the child thread */
>  			ret = pthread_mutex_unlock(&mtx);
> -
>  			if (ret != 0)
> -			{
>  				UNRESOLVED(ret, "Failed to unlock the mutex");
> -			}
>  
>  			/* Check the first thread is still joinable */
>  			ret = pthread_join(child, NULL);
> -
> -			if (ret != 0)
> -			{
> +			if (ret != 0) {
>  				output("Error returned: %d\n");
>  				FAILED("The thread is no more joinable");
>  			}
>  
> -		}
> -		else
> -		{
> +		} else {
>  			ret = pthread_mutex_unlock(&mtx);
> -
>  			if (ret != 0)
> -			{
>  				UNRESOLVED(ret, "Failed to unlock the mutex");
> -			}
>  		}
>  	}
>  



------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here 
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

  reply	other threads:[~2012-03-28  7:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-28  6:10 [LTP] [PATCH]pthread_join:4-1.c: clean up code lidan
2012-03-28  6:17 ` Caspar Zhang
2012-03-28  6:44   ` Wanlong Gao
2012-03-28  7:31   ` [LTP] [PATCHv2]pthread_join:4-1.c: " lidan
2012-03-28  7:39     ` Wanlong Gao [this message]
2012-03-29  6:07     ` Caspar Zhang
2012-03-29  9:56       ` Wanlong Gao

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F72C01E.9090501@cn.fujitsu.com \
    --to=gaowanlong@cn.fujitsu.com \
    --cc=li.dan@cn.fujitsu.com \
    --cc=ltp-list@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox