The default value of the mutex's protocol shall be PTHREAD_PRIO_NONE, 
so pthread_mutex_getprioceiling should return EINVAL.

Signed-off-by: Bian Naimeng <[email protected]>

---
 .../interfaces/pthread_mutex_getprioceiling/1-1.c  |   30 ++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git 
a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/1-1.c
 
b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/1-1.c
index d9251e6..65c8c6b 100644
--- 
a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/1-1.c
+++ 
b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/1-1.c
@@ -18,6 +18,7 @@
 #include <pthread.h>
 #include <stdio.h>
 #include <sched.h>
+#include <errno.h>
 #include "posixtest.h"
 
 int main()
@@ -29,6 +30,7 @@ int main()
          return PTS_UNRESOLVED;        
        #endif */
 
+       pthread_mutexattr_t mattr;
        pthread_mutex_t mutex;
        int prioceiling, max_prio, min_prio;
        
@@ -40,6 +42,34 @@ int main()
        }
        
        /* Get the prioceiling of the mutex. */
+       if(pthread_mutex_getprioceiling(&mutex, &prioceiling) != EINVAL)
+       {
+               printf("Test FAILED: Default, the protocol attribute of mutex "
+                      "is PTHREAD_PRIO_NONE, so pthread_mutex_getprioceiling "
+                      "should return EINVAL\n");
+               return PTS_FAIL;
+       }
+
+       if (pthread_mutexattr_init(&mattr) != 0)
+       {
+               perror("Error at pthread_mutexattr_init()\n");
+               return PTS_UNRESOLVED;
+       }
+
+       if (pthread_mutexattr_setprotocol(&mattr, PTHREAD_PRIO_PROTECT) != 0)
+       {
+               perror("Error at pthread_mutexattr_setprotocol()\n");
+               return PTS_UNRESOLVED;
+       }
+
+       /* Initialize a mutex object */
+       if(pthread_mutex_init(&mutex, &mattr) != 0)
+       {
+               perror("Error at pthread_mutex_init()\n");
+               return PTS_UNRESOLVED;
+       }
+       
+       /* Get the prioceiling of the mutex. */
        if(pthread_mutex_getprioceiling(&mutex, &prioceiling) != 0)
        {
                printf("Test FAILED: Error obtaining the priority ceiling\n");
-- 
1.7.0.4



-- 
Regards
Bian Naimeng


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to