Hi,

The following patches fixes a useless error log and possible segmentation fault 
with fclose[1], a failure to report client and server failures[2], and  missing 
data file installation[3].

[1]
# ./run_sched_cliserv.sh 
fopen: No such file or directory
sockfd = 4
str_echo: n = 0
./run_sched_cliserv.sh: line 4: 29752 Segmentation fault      pthcli 127.0.0.1
./run_sched_cliserv.sh: line 6: 29751 Terminated              pthserv

[2]
# ./run_sched_cliserv.sh 
fopen: No such file or directory
sockfd = 4
str_echo: n = 0
./run_sched_cliserv.sh: line 4: 29757 Segmentation fault      pthcli 127.0.0.1
./run_sched_cliserv.sh: line 6: 29756 Terminated              pthserv

# echo $?
0

[3]
# ./run_sched_cliserv.sh 
fopen: No such file or directory
sockfd = 4
str_echo: n = 0
./run_sched_cliserv.sh: line 7: 29689 Terminated              pthserv

Signed-off-by: CAI Qian <[EMAIL PROTECTED]>

--- testcases/kernel/sched/clisrv/pthcli.c.orig    2008-12-09 
08:47:49.000000000 -0500
+++ testcases/kernel/sched/clisrv/pthcli.c    2008-12-09 08:52:59.000000000 
-0500
@@ -99,10 +99,9 @@
 int
 main(int argc, char *argv[])
 {
-    FILE *fi=NULL, *input;
+    FILE *input;
     int sockfd;
     struct sockaddr_in serv_addr;
-    char *errfilename;
 
     pname = argv[0];
     if (argc < 2) 
@@ -111,8 +110,6 @@
       exit(1);
     }
 
-    errfilename = argv[1];
-
     /* Fill in the structure */
     memset((char *) &serv_addr, 0x00, sizeof(serv_addr));
     serv_addr.sin_family = AF_INET;
@@ -128,12 +125,8 @@
     /* Open Internet stream socket */
     if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
     {
-    if ((fi = fopen(errfilename, "w")) != 0)
-    {
-        fprintf(fi,"client: socket open failure, no = %d\n", errno);
-             fclose(fi);
-            return(errno);
-    }
+    printf("client: socket open failure, no = %d\n", errno);
+    return(errno);
     exit(1);
     }
     prtln();
@@ -143,19 +136,14 @@
     if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
     {
         prtln();
-    if ((fi = fopen(errfilename, "w")) != 0)
-    {
-        fprintf(fi,"client: connect failure, no = %d\n", errno);
-             fclose(fi);
-            return(errno);
-    }
+    printf("client: connect failure, no = %d\n", errno);
+    return(errno);
     exit(1);
     }
 #ifdef _LINUX
     if ((input = fopen("./data", "r")) == NULL) 
     {
     perror("fopen");
-        fclose(fi);
         return(errno);
     }
     str_cli(input, sockfd); /* call the routines that do the work */

--- testcases/kernel/sched/clisrv/run_sched_cliserv.sh.orig    2008-12-09 
08:59:26.000000000 -0500
+++ testcases/kernel/sched/clisrv/run_sched_cliserv.sh    2008-12-09 
09:04:48.000000000 -0500
@@ -1,6 +1,11 @@
-#!/bin/bash
+#!/bin/sh
 
 pthserv &
 pthcli 127.0.0.1
+clientCode=$?
 killall pthserv
-
+serverCode=$?
+if [ $clientCode -ne 0 ] || [ $serverCode -ne 0 ]; then
+    exit 1
+fi
+exit 0

--- testcases/kernel/sched/clisrv/Makefile.orig    2008-12-09 
09:27:58.000000000 -0500
+++ testcases/kernel/sched/clisrv/Makefile    2008-12-09 09:17:22.000000000 
-0500
@@ -15,6 +15,7 @@
 install:
     @set -e; for i in $(TESTS) ; do ln -f $$i ../../../bin/$$i ; done ;
     ln -f run_sched_cliserv.sh ../../../bin/
+    ln -f data ../../../bin/
 
 clean:
     rm -fr $(OFILES) $(TESTS)


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to