549 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			549 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash
 | 
						|
################################################################################
 | 
						|
##                                                                            ##
 | 
						|
## Copyright (c) International Business Machines  Corp., 2001                 ##
 | 
						|
##                                                                            ##
 | 
						|
## This program is free software;  you can redistribute it and#or modify      ##
 | 
						|
## it under the terms of the GNU General Public License as published by       ##
 | 
						|
## the Free Software Foundation; either version 2 of the License, or          ##
 | 
						|
## (at your option) any later version.                                        ##
 | 
						|
##                                                                            ##
 | 
						|
## This program is distributed in the hope that it will be useful, but        ##
 | 
						|
## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
 | 
						|
## or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License   ##
 | 
						|
## for more details.                                                          ##
 | 
						|
##                                                                            ##
 | 
						|
## You should have received a copy of the GNU General Public License          ##
 | 
						|
## along with this program;  if not, write to the Free Software               ##
 | 
						|
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA    ##
 | 
						|
##                                                                            ##
 | 
						|
################################################################################
 | 
						|
#
 | 
						|
# File:        runltp
 | 
						|
#
 | 
						|
# Description: This program is a Graphical User Interface (GUI)
 | 
						|
#              Control Centre for LTP. The Control Centre provides
 | 
						|
#              functionality to Compile, Execute and View Results of
 | 
						|
#              LTP test cases.
 | 
						|
#
 | 
						|
# Author:      Manoj Iyer - manjo@mail.utexas.edu
 | 
						|
#
 | 
						|
# Thanks:      Jim Choate - For suggesting the use of dialog command.
 | 
						|
#
 | 
						|
# History:     March 26 2003 - Created.
 | 
						|
#
 | 
						|
#	       March 28 2003 - Removed gauges and put make commands in foreground.
 | 
						|
#	                     Robbie Williamson - robbiew@us.ibm.com
 | 
						|
#
 | 
						|
#	       March 31 2003 - Made scenario menu creation dynamic and code
 | 
						|
#                              to pull the test descriptions from the scenario files.
 | 
						|
#                            Robbie Williamson - robbiew@us.ibm.com
 | 
						|
#
 | 
						|
#	       April 17 2003 - Added menu selection to list contents of selected
 | 
						|
#			       scenario file.
 | 
						|
#			     Robbie Williamson - robbiew@us.ibm.com
 | 
						|
#
 | 
						|
#	       April 23 2003 - Added PID to results filename.
 | 
						|
#			     - Added code to allow users to redirect output and
 | 
						|
#                              specify test execution duration.
 | 
						|
#			     Robbie Williamson - robbiew@us.ibm.com
 | 
						|
#
 | 
						|
#	       April 30, 2003 - Recoded results display to allow selection
 | 
						|
#				of results file.
 | 
						|
#			      - Created variable to hold results filename
 | 
						|
#		 	      - Added time to results filename.
 | 
						|
# Function:    cleanup
 | 
						|
#
 | 
						|
# Description: Remove all temporary files created by this program. Cleanup
 | 
						|
#              always called on program exit.
 | 
						|
#
 | 
						|
# Input:       NONE
 | 
						|
#
 | 
						|
# Output:      NONE
 | 
						|
cleanup()
 | 
						|
{
 | 
						|
    rm -f /tmp/runltp.*
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    display_info_msg
 | 
						|
#
 | 
						|
# Description: Displays informational messages window. This window may
 | 
						|
#              may be used to display information like errors, instructions
 | 
						|
#              etc to the user. The window is dismissed when the user hits
 | 
						|
#              the [ENTER] key.
 | 
						|
#
 | 
						|
# Input:       $1 - Title the needs to be displayed on the window.
 | 
						|
#                   eg: ERROR: Compiling LTP
 | 
						|
#              $2 - Message text.
 | 
						|
#
 | 
						|
# Output:      Information message window.
 | 
						|
display_info_msg()
 | 
						|
{
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
           --title " $1 " \
 | 
						|
           --msgbox " $2 " 10 70
 | 
						|
    return $?
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    compile_ltp
 | 
						|
#
 | 
						|
# Description: Checks for commands that are pre-reqs for compiling and
 | 
						|
#              installing LTP. It displays a confirmation window inorder to
 | 
						|
#              confirm the choice made by the user.
 | 
						|
#
 | 
						|
# Calls:       do_make_clean()
 | 
						|
#              do_make()
 | 
						|
#              do_make_install()
 | 
						|
#
 | 
						|
# Input:       NONE
 | 
						|
#
 | 
						|
# Output:      Confirmation window.
 | 
						|
compile_ltp()
 | 
						|
{
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
           --title "Compiling LTP testsuite"\
 | 
						|
           --yesno "This will compile all the test cases in\
 | 
						|
                    LTP test suite and place the executables\
 | 
						|
                    in testcases/bin directory. Do\
 | 
						|
                    you wish to continue ??" 7 70 || RC=$?
 | 
						|
    case $RC in
 | 
						|
        0) \
 | 
						|
            for cmd in cc make lex ;
 | 
						|
            do \
 | 
						|
                which $cmd >/tmp/runltp.err.$$ 2>&1 ;
 | 
						|
                if [ $? -ne 0 ] ;
 | 
						|
                    then \
 | 
						|
                        display_info_msg "Compiling LTP testsuite" \
 | 
						|
                                 "ERROR: command $cmd not found, $cmd is\
 | 
						|
                                  required to compile LTP test cases. Please\
 | 
						|
                                  install $cmd or export PATH correctly before\
 | 
						|
                                  running this program" ;
 | 
						|
                    return ;
 | 
						|
                fi ;
 | 
						|
            done ;
 | 
						|
            make clean;
 | 
						|
	    if [ $? -ne 0 ];then
 | 
						|
              echo "ERROR in \'make clean\' - exiting."
 | 
						|
	      exit
 | 
						|
	    fi
 | 
						|
            make ;
 | 
						|
	    if [ $? -ne 0 ];then
 | 
						|
              echo "ERROR in \'make all\' - exiting."
 | 
						|
	      exit
 | 
						|
	    fi
 | 
						|
            make install ;
 | 
						|
	    if [ $? -ne 0 ];then
 | 
						|
              echo "ERROR in \'make install\' - exiting."
 | 
						|
	      exit
 | 
						|
	    fi
 | 
						|
            return ;;
 | 
						|
 | 
						|
        1)  return ;;
 | 
						|
 | 
						|
        255) return ;;
 | 
						|
    esac
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    disp_ltpres
 | 
						|
#
 | 
						|
# Description: The results generated after the ltp execution located under
 | 
						|
#              ltp-mmddyy/results/ directory in a text (ASCII) file called
 | 
						|
#              results.todaysdate. This function displays this file in a
 | 
						|
#              window. If the results file does not exit it displays an
 | 
						|
#              info message window notifing the user that LTP test cases
 | 
						|
#              need to be executed inorder to view results.
 | 
						|
#
 | 
						|
# Input:       ltp-mmddyy/results/results.todaysdate.time
 | 
						|
#
 | 
						|
# Output:      Window displaying results of testcases that were executed.
 | 
						|
disp_ltpres()
 | 
						|
{
 | 
						|
    RC=0
 | 
						|
 | 
						|
    RESULTS_LIST=$(for i in `ls -1 -A -I "CVS" results`;do echo -n "$i [more...] "; done)
 | 
						|
    if ! [ -z $RESULTS_LIST ] ;then
 | 
						|
      while [ $RC -ne "1" ]
 | 
						|
      do
 | 
						|
        dialog --clear
 | 
						|
        dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
               --title "LTP Test Results" \
 | 
						|
               --menu "Move using[UP] [DOWN], Select using [ENTER]" 15 70 8 \
 | 
						|
                      $RESULTS_LIST \
 | 
						|
                      2>/tmp/runltp.results.$$ || RC=$?
 | 
						|
        results_item=$(cat /tmp/runltp.results.$$)
 | 
						|
        if ! [ -z $results_item ];then
 | 
						|
          dialog --clear
 | 
						|
          dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
                 --title "LTP Test Results" \
 | 
						|
                 --textbox results/$results_item 17 70
 | 
						|
 | 
						|
          dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
                 --title "LTP Test Results." \
 | 
						|
                 --yesno "Would you like to share these results with the LTP \
 | 
						|
                          community by posting it to the LTP results mailing list?" \
 | 
						|
                          7 70 || RESPONSE=$?
 | 
						|
          case $RESPONSE in
 | 
						|
              0) \
 | 
						|
                  mail ltp-results@lists.sourceforge.net < \
 | 
						|
                          ./results/$results_item ;
 | 
						|
                  ;;
 | 
						|
 | 
						|
              1)  ;;
 | 
						|
 | 
						|
              255)  ;;
 | 
						|
          esac
 | 
						|
        fi
 | 
						|
      done
 | 
						|
    else
 | 
						|
      dialog --clear
 | 
						|
      dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
             --title "LTP Test Results" \
 | 
						|
             --msgbox "ERROR: No files to view in /results directory." 5 53
 | 
						|
    fi
 | 
						|
    return
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    flags_prompt
 | 
						|
#
 | 
						|
# Description: Prompt for and record user options for run duration and
 | 
						|
#	       test output direction
 | 
						|
#
 | 
						|
# Input:       none
 | 
						|
#
 | 
						|
# Output:      none
 | 
						|
flags_prompt()
 | 
						|
{
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
           --title "Output Direction" --clear\
 | 
						|
	   --yesno "Would you like test output recorded to a file, instead of STDOUT?" 7 80
 | 
						|
    RC=$?
 | 
						|
    if [ $RC -eq "0" ]
 | 
						|
    then
 | 
						|
	dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
               --title "Output Direction" --clear\
 | 
						|
               --inputbox " Please enter the full path and \
 | 
						|
                            name of the file where you wish \
 | 
						|
                            to redirect output to" 17 80 \
 | 
						|
                          2>/tmp/runltp.outdir.$$ ;
 | 
						|
        flags_outfile=$(cat /tmp/runltp.outdir.$$ | awk '{print $1}')
 | 
						|
        ./ver_linux > $flags_outfile 2>&1
 | 
						|
	RUNALL_FLAGS=" -o $flags_outfile"
 | 
						|
    fi
 | 
						|
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
           --title "Test Duration" --clear\
 | 
						|
	   --yesno "Would you like to specify test duration? \
 | 
						|
                    Default is the length of one loop." 7 80
 | 
						|
    RC=$?
 | 
						|
    if [ $RC -eq "0" ]
 | 
						|
    then
 | 
						|
	dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
	       --title "Test Duration - Interval Selection" --clear\
 | 
						|
               --menu "Move using[UP] [DOWN], Select using [ENTER]" 15 70 4 \
 | 
						|
                       s    "Seconds" \
 | 
						|
                       m    "Minutes" \
 | 
						|
                       h    "Hours" \
 | 
						|
                       d    "Days" \
 | 
						|
                  2>/tmp/runltp.interval.$$ ;
 | 
						|
	flags_interval=$(cat /tmp/runltp.interval.$$ | awk '{print $1}')
 | 
						|
	case $flags_interval in
 | 
						|
                s)	INTERVAL="seconds" ;;
 | 
						|
                m)      INTERVAL="minutes" ;;
 | 
						|
                h)      INTERVAL="hours"   ;;
 | 
						|
                d)      INTERVAL="days"    ;;
 | 
						|
        esac
 | 
						|
 | 
						|
	echo $INTERVAL
 | 
						|
	WINDOW_MSG="Please enter the number of $INTERVAL to run"
 | 
						|
	dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
               --title "Test Duration - Length Specification" --clear\
 | 
						|
               --inputbox "$WINDOW_MSG" 7 80 \
 | 
						|
		          2>/tmp/runltp.length.$$ ;
 | 
						|
	flags_length=$(cat /tmp/runltp.length.$$ | awk '{print $1}')
 | 
						|
        flags_duration="$flags_length$flags_interval"
 | 
						|
	RUNALL_FLAGS=" $RUNALL_FLAGS -t $flags_duration"
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
# Function:    exectest_screenout
 | 
						|
#
 | 
						|
# Description: Execute tests by calling runltp, display test status
 | 
						|
#              in a window.
 | 
						|
#
 | 
						|
# Input:       none
 | 
						|
#
 | 
						|
# Output:      messages printed by testcases.
 | 
						|
exectest_screenout()
 | 
						|
{
 | 
						|
    RC=0    # setting return code to 0, to loop in while
 | 
						|
 | 
						|
    RESULTS_FILE=$(date +%Y-%m-%d.%H.%M.%S).$$
 | 
						|
 | 
						|
    # execute runltp with user defined command file.
 | 
						|
    ./runltp -q -p $RUNALL_FLAGS -l results.$RESULTS_FILE \
 | 
						|
	-f /tmp/runltp.test.list.$$
 | 
						|
 | 
						|
    sleep 2
 | 
						|
 | 
						|
    return
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    execute_ltp
 | 
						|
#
 | 
						|
# Description: This function provides a menu of testcases that can be
 | 
						|
#              selected for execution. If networking tests are selected,
 | 
						|
#              they require a remote machine and remote machines root
 | 
						|
#              users password. The user will be prompted to enter this
 | 
						|
#              information in a text box.
 | 
						|
#              The function checks to see if the ltp-mmddyy/testcases/bin
 | 
						|
#              directory was created, this directory is created when the
 | 
						|
#              testcases are compiled and installed, if it is not found
 | 
						|
#              an info message window will notify the user that LTP needs to
 | 
						|
#              be compiled before tests can be executed.
 | 
						|
#              This function creates the senatrio file based on the users
 | 
						|
#              choice of testcases and uses the runltp script to
 | 
						|
#              execute these tests.
 | 
						|
#              The messages printed by the testcases are displayed on this
 | 
						|
#              terminal.
 | 
						|
#
 | 
						|
# Input:       Users selection of testcases; scenario file.
 | 
						|
#
 | 
						|
# Output:      Test selection window, Message window,
 | 
						|
#              information message window
 | 
						|
execute_ltp()
 | 
						|
{
 | 
						|
    RC=0
 | 
						|
    host_name=" "
 | 
						|
    rhost_passwd=" "
 | 
						|
    run_net_test=" "
 | 
						|
 | 
						|
    if ! [ -d ./testcases/bin ]
 | 
						|
    then
 | 
						|
	display_info_msg "Executing LTP testcases" \
 | 
						|
	    "The testcases must to be compiled inorder\
 | 
						|
       to execute them. Returning to main menu. \
 | 
						|
       Please select the Compile option."
 | 
						|
	return
 | 
						|
    fi
 | 
						|
 | 
						|
    LIST=$(for i in `ls -1 -A -I "CVS" runtest`; do echo -n "$i "; j=$(head -n1 runtest/$i | cut -d: -f2|sed s/" "/_/g); echo -n "$j off "; done)
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
           --title "Execute LTP" --clear\
 | 
						|
           --checklist "Select [SPACEBAR] tests to run" 20 80 5 \
 | 
						|
    	    $LIST \
 | 
						|
            2>/tmp/runltp.choice.$$ || RC=$?
 | 
						|
    size=`wc -m /tmp/runltp.choice.$$|awk '{print $1}'`
 | 
						|
    if [ $size -eq 0 ];then
 | 
						|
      tst_choice=$(echo "NULL")
 | 
						|
    else
 | 
						|
      tst_choice=$(cat /tmp/runltp.choice.$$)
 | 
						|
    fi
 | 
						|
    if [[ $tst_choice == NULL ]];then
 | 
						|
      RC=1
 | 
						|
    fi
 | 
						|
    case $RC in
 | 
						|
        0)    \
 | 
						|
            for i in $tst_choice ;
 | 
						|
            do \
 | 
						|
                cat ./runtest/$(echo $i | sed -e 's/"//g') \
 | 
						|
                   >> /tmp/runltp.test.list.$$ ;
 | 
						|
                if [[ $(echo $i | sed -e 's/"//g') == "tcp_cmds" || \
 | 
						|
		      $(echo $i | sed -e 's/"//g') == "tcp_cmds_noexpect" || \
 | 
						|
                      $(echo $i | sed -e 's/"//g') == "multicast" || \
 | 
						|
                      $(echo $i | sed -e 's/"//g') == "ipv6" || \
 | 
						|
                      $(echo $i | sed -e 's/"//g') == "ipv6_noexpect" || \
 | 
						|
                      $(echo $i | sed -e 's/"//g') == "nfs" || \
 | 
						|
                      $(echo $i | sed -e 's/"//g') == "multicast" ]] ;
 | 
						|
                then \
 | 
						|
                    run_net_test="Y" ;
 | 
						|
                fi ;
 | 
						|
 | 
						|
            done ;
 | 
						|
            if ! [ -z $run_net_test ] ;
 | 
						|
            then \
 | 
						|
                dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
                       --title "Execute LTP test cases" \
 | 
						|
                       --clear \
 | 
						|
                       --inputbox "You have chosen to execute testcases \
 | 
						|
                                  that require a Remote Machine. \
 | 
						|
                                  Please enter the fully qualified host \
 | 
						|
                                  name" 17 80 $(hostname --long) \
 | 
						|
                                  2>/tmp/runltp.out.$$ ;
 | 
						|
                host_name=$(cat /tmp/runltp.out.$$ | awk '{print $1}') ;
 | 
						|
                unset $RHOST ;
 | 
						|
                RHOST=$host_name ;
 | 
						|
                export RHOST;
 | 
						|
 | 
						|
                dialog --backtitle "Linux Test Project Control Centre"\
 | 
						|
                       --title "Execute LTP test cases" \
 | 
						|
                       --clear \
 | 
						|
                       --inputbox " Please enter the root password \
 | 
						|
                                     of this remote machine" 17 80 \
 | 
						|
                        2>/tmp/runltp.out.$$ ;
 | 
						|
                rhost_passwd=$(cat /tmp/runltp.out.$$ | awk '{print $1}') ;
 | 
						|
 | 
						|
                PASSWD=$rhost_passwd ;
 | 
						|
                export PASSWD;
 | 
						|
            fi ;
 | 
						|
 | 
						|
            if ! [ -d ./testcases/bin ] ;
 | 
						|
            then \
 | 
						|
                display_info_msg "Executing LTP testcases" \
 | 
						|
                    "The testcases must to be compiled inorder\
 | 
						|
                     to execute them. Returning to main menu. \
 | 
						|
                     Please select the Compile option." ;
 | 
						|
                return ;
 | 
						|
            fi ;
 | 
						|
 | 
						|
            dialog --clear ;
 | 
						|
 | 
						|
	    flags_prompt ;
 | 
						|
 | 
						|
            exectest_screenout ;
 | 
						|
 | 
						|
            return ;;
 | 
						|
        1)    \
 | 
						|
            # echo "Cancel pressed" ;
 | 
						|
            return ;;
 | 
						|
        255)    \
 | 
						|
            # echo "ESC pressed" ;
 | 
						|
            return ;;
 | 
						|
    esac
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    about_ltpcc
 | 
						|
#
 | 
						|
# Description: This function displays a window containing a brief message
 | 
						|
#              describing this programs functionality, and credits the author.
 | 
						|
#
 | 
						|
# Input:       NONE
 | 
						|
#
 | 
						|
# Output:      Message window, description of LTP Control Center.
 | 
						|
about_ltpcc()
 | 
						|
{
 | 
						|
    display_info_msg "About LTP Control Centre" \
 | 
						|
                     "The LTP Control Centre can be used to\
 | 
						|
                     to compile, install and execute\
 | 
						|
                     The Linux Test Project test suite. Written by\
 | 
						|
                     Manoj Iyer <manjo@mail.utexas.edu>"
 | 
						|
    return
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
# Function:    ltp_scenarios
 | 
						|
#
 | 
						|
# Description: This function displays a list of scenario files located
 | 
						|
#              in /runtest.  Users can list the contents of each file.
 | 
						|
#
 | 
						|
# Input:       Files from /runtest
 | 
						|
#
 | 
						|
# Output:      1) Menu selection containing each file as an option to list.
 | 
						|
#              2) Contents of selected scenario.
 | 
						|
ltp_scenarios()
 | 
						|
{
 | 
						|
 | 
						|
RC=0
 | 
						|
SCENARIOS=$(for i in `ls -1 -A -I "CVS" runtest`;do echo -n "$i [more...] "; done)
 | 
						|
 | 
						|
while [ $RC -ne "1" ]
 | 
						|
do
 | 
						|
  dialog --clear
 | 
						|
  dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
         --title "LTP Scenario Files" \
 | 
						|
         --menu "Move using[UP] [DOWN], Select using [ENTER]" 15 70 8 \
 | 
						|
                $SCENARIOS \
 | 
						|
                2>/tmp/runltp.scenario.$$ || RC=$?
 | 
						|
  scenario_item=$(cat /tmp/runltp.scenario.$$)
 | 
						|
  if ! [ -z $scenario_item ];then
 | 
						|
    dialog --clear
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
           --title "LTP Scenario Files" \
 | 
						|
           --textbox runtest/$scenario_item 17 70
 | 
						|
  fi
 | 
						|
done
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# Function:    main
 | 
						|
#
 | 
						|
# Description: Displays the main menu to the LTP Control Centre. The menu
 | 
						|
#              provides options to Compile, Execute, and View test execution
 | 
						|
#              results.
 | 
						|
#
 | 
						|
# Calls:       about_ltpcc()
 | 
						|
#              compile_ltp()
 | 
						|
#              execute_ltp()
 | 
						|
#              disp_ltpres()
 | 
						|
#
 | 
						|
# Input:       NONE
 | 
						|
#
 | 
						|
# Output:      Menu selection of actions to perform.
 | 
						|
 | 
						|
# Global variables.
 | 
						|
RC=0              # return code from commands and local functions
 | 
						|
mmenu_item=" "
 | 
						|
RHOST=" "
 | 
						|
PASSWD=" "
 | 
						|
RUNALL_FLAGS=" "
 | 
						|
RESULTS_FILE=" "
 | 
						|
 | 
						|
# test for dialog program exist
 | 
						|
if [ ! -x /usr/bin/dialog ]; then
 | 
						|
       echo "Sorry, ltpmenu GUI not available, can't find dialog. Exiting...";
 | 
						|
       exit 1;
 | 
						|
fi
 | 
						|
 | 
						|
# call cleanup function on program exit.
 | 
						|
trap "cleanup" 0
 | 
						|
 | 
						|
 | 
						|
# wait in a loop until user hits [Cancel] button on the main menu.
 | 
						|
while :
 | 
						|
do
 | 
						|
    RC=0
 | 
						|
    dialog --clear
 | 
						|
    dialog --backtitle "Linux Test Project Control Centre" \
 | 
						|
           --title "Main Menu" \
 | 
						|
           --menu "Move using[UP] [DOWN], Select using [ENTER]" 15 70 5 \
 | 
						|
                  About        "About LTP Control Centre" \
 | 
						|
                  Compile      "Compile LTP testsuite" \
 | 
						|
		  Details      "Details of scenario files" \
 | 
						|
                  Execute      "Execute LTP testsuite" \
 | 
						|
                  Results      "Display a summary of test results" \
 | 
						|
                  2>/tmp/runltp.mainmenu.$$ || RC=$?
 | 
						|
 | 
						|
    case $RC in
 | 
						|
        0) mmenu_item=`cat /tmp/runltp.mainmenu.$$` ;
 | 
						|
           # echo "return code = $RC" ;
 | 
						|
           # echo "MENU ITEM = $mmenu_item" ;
 | 
						|
           case $mmenu_item in
 | 
						|
                About)        about_ltpcc    ;;
 | 
						|
                Compile)      compile_ltp    ;;
 | 
						|
		Details)      ltp_scenarios  ;;
 | 
						|
                Execute)      execute_ltp    ;;
 | 
						|
                Results)      disp_ltpres    ;;
 | 
						|
           esac ;;
 | 
						|
 | 
						|
        1) display_info_msg "Good Bye!" \
 | 
						|
                            "Thank you for using Linux Test Project test suite.\
 | 
						|
                             Please visit our project website \
 | 
						|
                             http://ltp.sourceforge.net \
 | 
						|
                             for latest news on The Linux Test Project. "
 | 
						|
           exit ;;
 | 
						|
 | 
						|
        255) display_info_msg "Good Bye!" \
 | 
						|
                            "Thank you for using Linux Test Project test suite.\
 | 
						|
                             Please visit our project website\
 | 
						|
                             http://ltp.sourceforge.net for latest news\
 | 
						|
                             on The Linux Test Project. "
 | 
						|
            exit;;
 | 
						|
    esac
 | 
						|
done
 |