Skip to contentSkip to conversation

getcontext01: check getcontext function in libc

PATCH Superseded Honggyu Kim 2 participants 2 messages Oct 23, 2013

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 getcontext01: check getcontext function in libc

getcontext function is implemented depends on libc version and arch. Some libc version for specific arch does not implement getcontext yet. In that case, getcontext just sets errno to ENOSYS and returns -1. For example, getcontext is not implemented before libc-2.17 in ARM. Current test goes to TFAIL when lower version of libc is used in ARM.

This patch sets the test as TCONF if libc does not implement getcontext. If ENOSYS is not set and -1 is returned, it goes to TFAIL as it was.

Change-Id I93cab9805e5bc9cd05f9f473b466e0dc2bc4fa8f
---
 .../kernel/syscalls/getcontext/getcontext01.c      |   24
+++++++++++++-------
 1 file changed, 16 insertions(+), 8 deletions(-)
(quoted diff) +0 -0

b/testcases/kernel/syscalls/getcontext/getcontext01.c index 03b2df9..7919fb5 100644

testcases/kernel/syscalls/getcontext/getcontext01.c +9 -0
@@ -54,12 +54,26 @@ int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 
+static void test_getcontext(void)
+{
+	ucontext_t ptr;
+
+	TEST(getcontext(&ptr));
+
+	if (TEST_RETURN == -1) {
+		if (errno == ENOSYS)
+			tst_resm(TCONF, "getcontext is not implemented in

libc");
+ else
+ tst_resm(TFAIL | TTERRNO, "getcontext failed");
+ } else if (TEST_RETURN >= 0)
+ tst_resm(TPASS, "getcontext passed");
+}
+
int main(int ac, char **av)
{
int lc;
char *msg;

- ucontext_t ptr;
if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);

@@ -71,13 +85,7 @@ int main(int ac, char **av)

tst_count = 0;

- TEST(getcontext(&ptr));
-
- if (TEST_RETURN == -1)
- tst_resm(TFAIL | TTERRNO, "getcontext failed");
- else if (TEST_RETURN >= 0)
- tst_resm(TPASS, "getcontext passed");
-
+ test_getcontext();
}

cleanup();

Signature · 14 lines
1.7.9.5



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list
#1 lore raw

----- Original Message -----

Quoted 30 lines

From: "Honggyu Kim" <[email protected]>
To: [email protected]
Sent: Wednesday, 23 October, 2013 3:54:45 PM
Subject: [LTP] [PATCH v3] getcontext01: check getcontext function in libc

getcontext function is implemented depends on libc version and arch. Some libc version for specific arch does not implement getcontext yet. In that case, getcontext just sets errno to ENOSYS and returns -1. For example, getcontext is not implemented before libc-2.17 in ARM. Current test goes to TFAIL when lower version of libc is used in ARM.

This patch sets the test as TCONF if libc does not implement getcontext. If ENOSYS is not set and -1 is returned, it goes to TFAIL as it was.

Change-Id I93cab9805e5bc9cd05f9f473b466e0dc2bc4fa8f
---
 .../kernel/syscalls/getcontext/getcontext01.c      |   24
+++++++++++++-------
 1 file changed, 16 insertions(+), 8 deletions(-)
testcases/kernel/syscalls/getcontext/getcontext01.c +0 -0
index 03b2df9..7919fb5 100644
@@ -54,12 +54,26 @@ int TST_TOTAL = 1;
 
 int exp_enos[] = { 0 };		/* must be a 0 terminated list */
 

testcases/kernel/syscalls/getcontext/getcontext01.c int TST_TOTAL = 1; · line 66

Quoted 10 lines
testcases/kernel/syscalls/getcontext/getcontext01.c +9 -0
+static void test_getcontext(void)
+{
+	ucontext_t ptr;
+
+	TEST(getcontext(&ptr));
+
+	if (TEST_RETURN == -1) {
+		if (errno == ENOSYS)
+			tst_resm(TCONF, "getcontext is not implemented in
 libc");

Hi,

I see the line above getting wrapped. I can recommend "git send-email":
1. git format-patch -1
2. git send-email --to [email protected] 0001-...

Regards,
Jan

Quoted 35 lines
testcases/kernel/syscalls/getcontext/getcontext01.c +7 -9
+		else
+			tst_resm(TFAIL | TTERRNO, "getcontext failed");
+	} else if (TEST_RETURN >= 0)
+		tst_resm(TPASS, "getcontext passed");
+}
+
 int main(int ac, char **av)
 {
 	int lc;
 	char *msg;
 
-	ucontext_t ptr;
 	if ((msg = parse_opts(ac, av, NULL, NULL)) != NULL)
 		tst_brkm(TBROK, NULL, "OPTION PARSING ERROR - %s", msg);
@@ -71,13 +85,7 @@ int main(int ac, char **av)
 
 		tst_count = 0;
 
-		TEST(getcontext(&ptr));
-
-		if (TEST_RETURN == -1)
-			tst_resm(TFAIL | TTERRNO, "getcontext failed");
-		else if (TEST_RETURN >= 0)
-			tst_resm(TPASS, "getcontext passed");
-
+		test_getcontext();
 	}
 
 	cleanup();
--

1.7.9.5

Quoted 11 lines

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list