On Thursday 04 October 2007 12:42:48 Subrata Modak wrote:
>runltp-stress.patch
>  --- ltp-full-20070930/runltp.orig       2007-10-04 15:35:02.000000000
> +0530 +++ ltp-full-20070930/runltp    2007-10-04 20:47:57.000000000 +0530
> @@ -96,19 +96,36 @@ usage()
>     cat <<-EOF >&2
>
>     usage: ./${0##*/} -c [-C FAILCMDFILE ] [-d TMPDIR] [-f CMDFILES(,...) ]
>-    [-i # (in Mb)] [ -l LOGFILE ] [ -o OUTPUTFILE ] [ -m # (in Mb)] -N -n
> -q +    [ -l LOGFILE ] [ -o OUTPUTFILE ] -N -n -q
>     [ -r LTPROOT ] [ -s PATTERN ] [ -t DURATION ] -v [ -w CMDFILEADDR ]
>     [ -x INSTANCES ]
>                 
>     -C FAILCMDFILE  Command file with all failed test cases.
>-    -c NUM_PROCS    Run LTP under additional background CPU load.
>+    -c NUM_PROCS    Run LTP under additional background CPU load
>+                    [NUM_PROCS = no. of processes creating the CPU Load by
> spinning over sqrt() +                                 (Defaults to 1 when
> value 0 or undefined)

As we're using getopts (with var followed by ':'), there's no undefined state 
(you can only use -C/-c if you give one argument).

[EMAIL PROTECTED] ltp-full-20070930]# ./runltp -c
./runltp: option requires an argument -- c

>+        D)  NUM_PROCS=1; NUM_FILES=1; NUM_BYTES=$(1024 * 1024 * 1024);
> CLEAN_FLAG=0 +            ARGUMENT_LIST=$(($OPTARG))
>+            if [ ! "$ARGUMENT_LIST" ]; then                                
>   # User Did not Define +               NUM_PROCS=1                        
>                            # All values to Default +              
> NUM_FILES=1
>+               NUM_BYTES=$(1024 * 1024 * 1024)
>+               CLEAN_FLAG=0
>+            else
        
Here you don't need to redefine all vars if the user didn't give any argument 
(and this is not possible, as I wrote about getopts). You already defined 
everything before checking ARGUMENT_LIST, just go to the else side.
                                                  
>    # User has Defined Something +                TOTAL_ARGUMENTS=1        
>                                     # Initial Assume +                for
> ARGUMENT in `echo "$ARGUMENT_LIST" | sed 's/,/\n/g'`      # Store all value
> in a Loop +                   do
>+                     case $TOTAL_ARGUMENTS in
>+                      1) NUM_PROCS="$ARGUMENT" ;;
>+                      2) NUM_FILES="$ARGUMENT" ;;
>+                      3) NUM_BYTES="$ARGUMENT" ;;
>+                      4) CLEAN_FLAG="$ARGUMENT" ;;
>+                     esac
>+                     TOTAL_ARGUMENTS=`expr $TOTAL_ARGUMENTS + 1`
>+                   done
>+                if [ ! "$NUM_PROCS" -o "$NUM_PROCS" -eq 0 ]; then          
>   # Verify once again if NUM_PROCS is defined and not Zero +              
>           NUM_PROCS=1
>+                fi
>+                if [ ! "$NUM_FILES" -o "$NUM_FILES" -eq 0 ]; then          
>   # Verify once again if NUM_FILES is defined and not Zero +              
>           NUM_FILES=1
>+                fi
>+                if [ ! "$NUM_BYTES" -o "$NUM_BYTES" -eq 0 ]; then          
>   # Verify once again if NUM_BYTES is defined and not Zero +              
>           NUM_BYTES=$(1024 * 1024 * 1024)
>+                fi
>+                if [ ! "$CLEAN_FLAG" -o "$CLEAN_FLAG" -ne 1 ]; then        
>   # Verify once again if CLEAN_FLAG is defined and 1 +                    
>     CLEAN_FLAG=0
>+                fi
>+            fi

For me I guess that'd be better if you could check the variable value inside 
the case code, something like:
case $TOTAL_ARGUMENTS in
  1) 
        if [[ "$ARGUMENT" -eq 0 ]]; then
                NUM_PROCS=1
        else
                NUM_PROCS="$ARGUMENT"
        fi;;

>-        i)      
>-            BYTESIZE=$(($OPTARG * 1024 * 1024))
>-            $LTPROOT/testcases/bin/genload --io 1 >/dev/null 2>&1 &
>-            $LTPROOT/testcases/bin/genload --hdd 1 --hdd-bytes $BYTESIZE \
>-            >/dev/null 2>&1 &
>+        i)  
>+            NUM_PROCS=$(($OPTARG))
>+            if   [ ! "$NUM_PROCS" -o "$NUM_PROCS" -eq 0 ]; then            

Here it's fine, but it'll break the script interface. Please remember to add a 
note at the next release saying so.

>-        m)      
>-            MEMSIZE=$(($OPTARG * 1024 * 1024))
>-            $LTPROOT/testcases/bin/genload  --vm 0 --vm-bytes $MEMSIZE \
>-                >/dev/null 2>&1 &
>+        m)  NUM_PROCS=1; CHUNKS=1; BYTES=$(256 * 1024 * 1024);
> HANGUP_FLAG=0 +            ARGUMENT_LIST=$(($OPTARG))
>+            if [ ! "$ARGUMENT_LIST" ]; then                                
>   # User Did not Define +               NUM_PROCS=1                        
>                            # All values to Default +               CHUNKS=1
>+               BYTES=$(256 * 1024 * 1024)
>+               HANGUP_FLAG=0
>+            else                                                          
>    # User has Defined Something +                TOTAL_ARGUMENTS=1        
>                                     # Initial Assume +                for
> ARGUMENT in `echo "$ARGUMENT_LIST" | sed 's/,/\n/g'`      # Store all value
> in a Loop +                   do
>+                     case $TOTAL_ARGUMENTS in
>+                      1) NUM_PROCS="$ARGUMENT" ;;
>+                      2) CHUNKS="$ARGUMENT" ;;
>+                      3) BYTES="$ARGUMENT" ;;
>+                      4) HANGUP_FLAG="$ARGUMENT" ;;
>+                     esac
>+                     TOTAL_ARGUMENTS=`expr $TOTAL_ARGUMENTS + 1`
>+                   done
>+                if [ ! "$NUM_PROCS" -o "$NUM_PROCS" -eq 0 ]; then          
>   # Verify once again if NUM_PROCS is defined and not Zero +              
>           NUM_PROCS=1
>+                fi
>+                if [ ! "$CHUNKS" -o "$CHUNKS" -eq 0 ]; then                
>   # Verify once again if CHUNKS is defined and not Zero +                  
>       CHUNKS=1
>+                fi
>+                if [ ! "$BYTES" -o "$BYTES" -eq 0 ]; then                  
>   # Verify once again if BYTES is defined and not Zero +                  
>       BYTES=$(256 * 1024 * 1024)
>+                fi
>+                if [ ! "$HANGUP_FLAG" -o "$HANGUP_FLAG" -ne 1 ]; then      
>   # Verify once again if HANGUP_FLAG is defined and 1 +                    
>     HANGUP_FLAG=0
>+                fi
>+            fi

Here it's the same as I commented about the option 'D' and 'i'

I was also thinking if we could integrate something like what the ltpstress 
script is doing, so the user could just use the runltp to run both normal and 
stress test runs.

-- 
Ricardo Salveti de Araujo
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to