diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-02-13 19:50:46 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-02-13 19:50:46 +0000 |
commit | e8cda341a4e8893a5932a0d22440e7c191c37564 (patch) | |
tree | 153610ed89e615fb1475ae0c3ab897726cb652c1 /nptl/tst-attr2.c | |
parent | 89e78a954dbd659e0e118aa577d0656363d3c1c2 (diff) | |
download | glibc-e8cda341a4e8893a5932a0d22440e7c191c37564.zip glibc-e8cda341a4e8893a5932a0d22440e7c191c37564.tar.gz glibc-e8cda341a4e8893a5932a0d22440e7c191c37564.tar.bz2 |
Update.
2003-02-13 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add tst-cleanup3.
* tst-cleanup3.c: New file.
Diffstat (limited to 'nptl/tst-attr2.c')
-rw-r--r-- | nptl/tst-attr2.c | 190 |
1 files changed, 186 insertions, 4 deletions
diff --git a/nptl/tst-attr2.c b/nptl/tst-attr2.c index bf9ecbc..b5c1a5f 100644 --- a/nptl/tst-attr2.c +++ b/nptl/tst-attr2.c @@ -17,6 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <errno.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> @@ -49,7 +50,8 @@ default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n", exit (1); } - if (pthread_attr_setdetachstate (&a, PTHREAD_CREATE_DETACHED) != 0) + int e = pthread_attr_setdetachstate (&a, PTHREAD_CREATE_DETACHED); + if (e != 0) { puts ("1st attr_setdetachstate failed"); exit (1); @@ -65,7 +67,8 @@ default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n", exit (1); } - if (pthread_attr_setdetachstate (&a, PTHREAD_CREATE_JOINABLE) != 0) + e = pthread_attr_setdetachstate (&a, PTHREAD_CREATE_JOINABLE); + if (e != 0) { puts ("2nd attr_setdetachstate failed"); exit (1); @@ -95,7 +98,8 @@ default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n", exit (1); } - if (pthread_attr_setguardsize (&a, 0) != 0) + e = pthread_attr_setguardsize (&a, 0); + if (e != 0) { puts ("1st attr_setguardsize failed"); exit (1); @@ -111,7 +115,8 @@ default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n", exit (1); } - if (pthread_attr_setguardsize (&a, 1) != 0) + e = pthread_attr_setguardsize (&a, 1); + if (e != 0) { puts ("2nd attr_setguardsize failed"); exit (1); @@ -127,6 +132,183 @@ default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n", exit (1); } + + if (pthread_attr_getinheritsched (&a, &s) != 0) + { + puts ("1st attr_getinheritsched failed"); + exit (1); + } + /* XXX What is the correct default value. */ + if (s != PTHREAD_INHERIT_SCHED && s != PTHREAD_EXPLICIT_SCHED) + { + puts ("incorrect default value for inheritsched"); + exit (1); + } + + e = pthread_attr_setinheritsched (&a, PTHREAD_EXPLICIT_SCHED); + if (e != 0) + { + puts ("1st attr_setinheritsched failed"); + exit (1); + } + if (pthread_attr_getinheritsched (&a, &s) != 0) + { + puts ("2nd attr_getinheritsched failed"); + exit (1); + } + if (s != PTHREAD_EXPLICIT_SCHED) + { + printf ("inheritsched set to PTHREAD_EXPLICIT_SCHED, but got %d\n", s); + exit (1); + } + + e = pthread_attr_setinheritsched (&a, PTHREAD_INHERIT_SCHED); + if (e != 0) + { + puts ("2nd attr_setinheritsched failed"); + exit (1); + } + if (pthread_attr_getinheritsched (&a, &s) != 0) + { + puts ("3rd attr_getinheritsched failed"); + exit (1); + } + if (s != PTHREAD_INHERIT_SCHED) + { + printf ("inheritsched set to PTHREAD_INHERIT_SCHED, but got %d\n", s); + exit (1); + } + + + if (pthread_attr_getschedpolicy (&a, &s) != 0) + { + puts ("1st attr_getschedpolicy failed"); + exit (1); + } + /* XXX What is the correct default value. */ + if (s != SCHED_OTHER && s != SCHED_FIFO && s != SCHED_RR) + { + puts ("incorrect default value for schedpolicy"); + exit (1); + } + + e = pthread_attr_setschedpolicy (&a, SCHED_RR); + if (e != 0) + { + puts ("1st attr_setschedpolicy failed"); + exit (1); + } + if (pthread_attr_getschedpolicy (&a, &s) != 0) + { + puts ("2nd attr_getschedpolicy failed"); + exit (1); + } + if (s != SCHED_RR) + { + printf ("schedpolicy set to SCHED_RR, but got %d\n", s); + exit (1); + } + + e = pthread_attr_setschedpolicy (&a, SCHED_FIFO); + if (e != 0) + { + puts ("2nd attr_setschedpolicy failed"); + exit (1); + } + if (pthread_attr_getschedpolicy (&a, &s) != 0) + { + puts ("3rd attr_getschedpolicy failed"); + exit (1); + } + if (s != SCHED_FIFO) + { + printf ("schedpolicy set to SCHED_FIFO, but got %d\n", s); + exit (1); + } + + e = pthread_attr_setschedpolicy (&a, SCHED_OTHER); + if (e != 0) + { + puts ("3rd attr_setschedpolicy failed"); + exit (1); + } + if (pthread_attr_getschedpolicy (&a, &s) != 0) + { + puts ("4th attr_getschedpolicy failed"); + exit (1); + } + if (s != SCHED_OTHER) + { + printf ("schedpolicy set to SCHED_OTHER, but got %d\n", s); + exit (1); + } + + + if (pthread_attr_getscope (&a, &s) != 0) + { + puts ("1st attr_getscope failed"); + exit (1); + } + /* XXX What is the correct default value. */ + if (s != PTHREAD_SCOPE_SYSTEM && s != PTHREAD_SCOPE_PROCESS) + { + puts ("incorrect default value for contentionscope"); + exit (1); + } + + e = pthread_attr_setscope (&a, PTHREAD_SCOPE_PROCESS); + if (e != ENOTSUP) + { + if (e != 0) + { + puts ("1st attr_setscope failed"); + exit (1); + } + if (pthread_attr_getscope (&a, &s) != 0) + { + puts ("2nd attr_getscope failed"); + exit (1); + } + if (s != PTHREAD_SCOPE_PROCESS) + { + printf ("\ +contentionscope set to PTHREAD_SCOPE_PROCESS, but got %d\n", s); + exit (1); + } + } + + e = pthread_attr_setscope (&a, PTHREAD_SCOPE_SYSTEM); + if (e != 0) + { + puts ("2nd attr_setscope failed"); + exit (1); + } + if (pthread_attr_getscope (&a, &s) != 0) + { + puts ("3rd attr_getscope failed"); + exit (1); + } + if (s != PTHREAD_SCOPE_SYSTEM) + { + printf ("contentionscope set to PTHREAD_SCOPE_SYSTEM, but got %d\n", s); + exit (1); + } + + char buf[1]; + e = pthread_attr_setstack (&a, buf, 1); + if (e != EINVAL) + { + puts ("setstack with size 1 did not produce EINVAL"); + exit (1); + } + + e = pthread_attr_setstacksize (&a, 1); + if (e != EINVAL) + { + puts ("setstacksize with size 1 did not produce EINVAL"); + exit (1); + } + return 0; } |