All of lore.kernel.org
 help / color / mirror / Atom feed
From: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
To: ltp-list@lists.sourceforge.net
Subject: [LTP] [PATCH 2/2] semop/semop02.c: add ERANGE error value test
Date: Thu, 26 Dec 2013 14:23:01 +0800	[thread overview]
Message-ID: <52BBCB45.2000502@cn.fujitsu.com> (raw)


Signed-off-by: Xiaoguang Wang <wangxg.fnst@cn.fujitsu.com>
---
 testcases/kernel/syscalls/ipc/semop/semop02.c | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/testcases/kernel/syscalls/ipc/semop/semop02.c b/testcases/kernel/syscalls/ipc/semop/semop02.c
index 08fc43c..b2ed38c 100644
--- a/testcases/kernel/syscalls/ipc/semop/semop02.c
+++ b/testcases/kernel/syscalls/ipc/semop/semop02.c
@@ -19,7 +19,7 @@
 
 /*
  * DESCRIPTION
- *	semop02 - test for E2BIG, EACCES, EFAULT and EINVAL errors
+ *	semop02 - test for E2BIG, EACCES, EFAULT, EINVAL and ERANGE errors
  *
  * HISTORY
  *	03/2001 - Written by Wayne Boyer
@@ -29,6 +29,7 @@
  *        conflict with the key from another task.
  */
 
+#define _GNU_SOURCE
 #include <pwd.h>
 #include "test.h"
 #include "safe_macros.h"
@@ -38,7 +39,7 @@ char *TCID = "semop02";
 
 static void semop_verify(int i);
 
-static int exp_enos[] = { E2BIG, EACCES, EFAULT, EINVAL, 0 };
+static int exp_enos[] = { E2BIG, EACCES, EFAULT, EINVAL, ERANGE, 0 };
 int sem_id_1 = -1;	/* a semaphore set with read & alter permissions */
 int sem_id_2 = -1;	/* a semaphore set without read & alter permissions */
 int bad_id = -1;
@@ -50,7 +51,6 @@ int badbuf = -1;
 #define NSOPS	5		/* a resonable number of operations */
 #define	BIGOPS	1024		/* a value that is too large for the number */
 				/* of semop operations that are permitted   */
-
 struct test_case_t {
 	int *semid;
 	struct sembuf *t_sbuf;
@@ -61,7 +61,8 @@ struct test_case_t {
 	{&sem_id_2, (struct sembuf *)&s_buf, NSOPS, EACCES},
 	{&sem_id_1, (struct sembuf *)-1, NSOPS, EFAULT},
 	{&sem_id_1, (struct sembuf *)&s_buf, 0, EINVAL},
-	{&bad_id, (struct sembuf *)&s_buf, NSOPS, EINVAL}
+	{&bad_id, (struct sembuf *)&s_buf, NSOPS, EINVAL},
+	{&sem_id_1, (struct sembuf *)&s_buf, 1, ERANGE}
 };
 
 int TST_TOTAL = ARRAY_SIZE(TC);
@@ -94,6 +95,8 @@ void setup(void)
 	char nobody_uid[] = "nobody";
 	struct passwd *ltpuser;
 	key_t semkey2;
+	struct seminfo ipc_buf;
+	union semun arr;
 
 	tst_require_root(NULL);
 
@@ -127,6 +130,16 @@ void setup(void)
 		tst_brkm(TBROK | TERRNO, cleanup,
 			 "couldn't create semaphore in setup");
 	}
+
+	arr.ipc_buf = &ipc_buf;
+	if (semctl(sem_id_1, 0, IPC_INFO, arr) == -1)
+		tst_brkm(TBROK | TERRNO, cleanup, "semctl() IPC_INFO failed");
+
+	/* for ERANGE errno test */
+	arr.val = 1;
+	s_buf[0].sem_op = ipc_buf.semvmx;
+	if (semctl(sem_id_1, 0, SETVAL, arr) == -1)
+		tst_brkm(TBROK | TERRNO, cleanup, "semctl() SETVAL failed");
 }
 
 static void semop_verify(int i)
-- 
1.8.2.1


------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

             reply	other threads:[~2013-12-26  6:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-26  6:23 Xiaoguang Wang [this message]
2014-01-06 11:42 ` [LTP] [PATCH 2/2] semop/semop02.c: add ERANGE error value test Jan Stancek
2014-01-21  2:10 ` 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=52BBCB45.2000502@cn.fujitsu.com \
    --to=wangxg.fnst@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.