From: Dan K. <da...@ke...> - 2003-03-27 20:21:22
Attachments:
posixify-1.patch
|
Here's a sample patch that looks only at the shell scripts testcases/kernel/syscalls/syslog/syslog0? It removes what appear to be non-posixisms, and removes some redundant lines from syslog05. In particular: 1. it avoids the bashism [[ in favor of the posix-compliant [ which requires minor rewrites in a few places. e.g. [[ cond1 && cond2 && cond3 ]] is rewritten [ cond1 ] && [ cond2 ] && [ cond3 ] since the -a (and) operator for posix [ doesn't handle more than two operands e.g. if [[ $var1 == "stringconst1" ]] is rewritten if [ $var1 = "stringconst1" ] (note the single = sign). 2. it avoids the bashism (( foo=expr1-expr2 )) in favor of the posix-compliant foo=$(( expr1-expr2 )) This should let these scripts run on strictly posix compliant shells like busybox ash. Comments welcome. If this doesn't look bad to the maintainers, I may post patches to fix more of the scripts in the kernel/syscalls subdirectories. - Dan -- Dan Kegel http://www.kegel.com http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045 |
From: Robert W. <ro...@us...> - 2003-04-07 18:10:20
|
Patch 1 of what I have called the "Kegel Patches" has been tested and applied to CVS. - Robbie Robert V. Williamson <ro...@us...> Linux Test Project IBM Linux Technology Center Phone: (512) 838-9295 T/L: 678-9295 Fax: (512) 838-4603 Web: http://ltp.sourceforge.net IRC: #ltp on freenode.irc.net ==================== "Only two things are infinite, the universe and human stupidity, and I'm not sure about the former." -Albert Einstein Dan Kegel <da...@ke...> To: "'ltp...@li...'" <ltp...@li...> Sent by: cc: ltp...@li...ur Subject: [LTP] [RFC] sample patch to remove non-posixisms ceforge.net 03/27/2003 02:26 PM Here's a sample patch that looks only at the shell scripts testcases/kernel/syscalls/syslog/syslog0? It removes what appear to be non-posixisms, and removes some redundant lines from syslog05. In particular: 1. it avoids the bashism [[ in favor of the posix-compliant [ which requires minor rewrites in a few places. e.g. [[ cond1 && cond2 && cond3 ]] is rewritten [ cond1 ] && [ cond2 ] && [ cond3 ] since the -a (and) operator for posix [ doesn't handle more than two operands e.g. if [[ $var1 == "stringconst1" ]] is rewritten if [ $var1 = "stringconst1" ] (note the single = sign). 2. it avoids the bashism (( foo=expr1-expr2 )) in favor of the posix-compliant foo=$(( expr1-expr2 )) This should let these scripts run on strictly posix compliant shells like busybox ash. Comments welcome. If this doesn't look bad to the maintainers, I may post patches to fix more of the scripts in the kernel/syscalls subdirectories. - Dan -- Dan Kegel http://www.kegel.com http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045 diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog01 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog01 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog01 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog01 2003-03-27 12:03:02.000000000 -0800 @@ -51,14 +51,14 @@ oldvalue1=`grep -c "syslogtst: mail info test" /var/log/maillog` # Call syslogtst executable with case number as argument syslogtst 1 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi sleep 2 newvalue1=`grep -c "syslogtst: mail info test" /var/log/maillog` - (( diff=$newvalue1 - $oldvalue1 )) - if [[ $diff -ne 1 ]]; then + diff=$(( $newvalue1 - $oldvalue1 )) + if [ $diff -ne 1 ]; then status_flag=1 fi } diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog02 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog02 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog02 2003-01-09 09:03:26.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog02 2003-03-27 12:03:36.000000000 -0800 @@ -54,17 +54,17 @@ # syslogtst has to be called with additional level argument(0-7) syslogtst 2 $level_no 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi sleep 2 newvalue=`grep -c "syslogtst: mail $current test" /var/log/maillog` - (( diff=$newvalue - $oldvalue )) - if [[ $diff -eq 0 ]]; then + diff=$(( $newvalue - $oldvalue )) + if [ $diff -eq 0 ]; then status_flag=1 echo "*****--- Level $current failed ---*****" - elif [[ $diff -ge 1 ]]; then + elif [ $diff -ge 1 ]; then echo "*****--- Level $current passed ---*****" fi # Increment the level_no for next level... diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog03 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog03 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog03 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog03 2003-03-27 12:08:57.000000000 -0800 @@ -48,14 +48,14 @@ # Grep for the ident prefix: SYSLOG_CASE3 in the log file. oldvalue4=`grep -c "SYSLOG_CASE3" /var/log/messages` syslogtst 3 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi sleep 2 newvalue4=`grep -c "SYSLOG_CASE3" /var/log/messages` - (( diff=$newvalue4 - $oldvalue4 )) - if [[ $diff -ne 1 ]]; then + diff=$(( $newvalue4 - $oldvalue4 )) + if [ $diff -ne 1 ]; then status_flag=1 fi diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog04 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog04 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog04 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog04 2003-03-27 12:09:10.000000000 -0800 @@ -47,14 +47,14 @@ syslogtst 4 2>/dev/null & log_pid=$! wait $log_pid - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi sleep 2 found=`grep -c "\[$log_pid\]: syslogtst: user info test." /var/log/messages` - if [[ found -ne 1 ]]; then + if [ found -ne 1 ]; then status_flag=1 fi diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog05 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog05 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog05 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog05 2003-03-27 12:08:29.000000000 -0800 @@ -52,7 +52,7 @@ # syslogtst does the disabling of /dev/syslog, sends the message and # enables /dev/syslog. syslogtst 5 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi @@ -60,17 +60,13 @@ newvalue=`grep -c "syslogtst: info to console test." /var/log/messages` - (( diff=$newvalue - $oldvalue )) - if [[ $diff -ne 1 ]]; then + diff=$(( $newvalue - $oldvalue )) + if [ $diff -ne 1 ]; then status_flag=1 echo "*****--- Level $current failed ---*****" - elif [[ $diff -eq 1 ]]; then + elif [ $diff -eq 1 ]; then echo "*****--- Level $current passed ---*****" fi - (( diff=$newvalue - $oldvalue )) - if [[ $diff -ne 1 ]]; then - status_flag=1 - fi } echo start $0 diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog06 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog06 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog06 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog06 2003-03-27 12:09:18.000000000 -0800 @@ -52,7 +52,7 @@ # It will return 0 to indicate that test has passed. syslogtst 6 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 fi } diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog07 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog07 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog07 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog07 2003-03-27 12:05:53.000000000 -0800 @@ -57,7 +57,7 @@ # Call syslogtst. It will send the messages of all levels. syslogtst 7 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi @@ -72,16 +72,16 @@ info_new=`grep -c "syslogtst: info log" /var/log/messages` debug_new=`grep -c "syslogtst: debug log" /var/log/messages` - (( emerg=$emerg_new - $emerg_old )) - (( alert=$alert_new - $alert_old )) - (( crit=$crit_new - $crit_old )) - (( err=$err_new - $err_old )) - (( warning=$warning_new - $warning_old )) - (( notice=$notice_new - $notice_old )) - (( info=$info_new - $info_old )) + emerg=$(( $emerg_new - $emerg_old )) + alert=$(( $alert_new - $alert_old )) + crit=$(( $crit_new - $crit_old )) + err=$(( $err_new - $err_old )) + warning=$(( $warning_new - $warning_old )) + notice=$(( $notice_new - $notice_old )) + info=$(( $info_new - $info_old )) - if [[ $emerg -ne 1 || $alert -ne 1 || $crit -ne 1 || $err -ne 1 || \ - $warning -ne 1 || $notice -ne 1 || $info -ne 1 || $info -ne 1 ]];then + if [ $emerg -ne 1 ] || [ $alert -ne 1 ] || [ $crit -ne 1 ] || [ $err -ne 1 ] || \ + [ $warning -ne 1 ] || [ $notice -ne 1 ] || [ $info -ne 1 ] || [ $info -ne 1 ]; then status_flag=1 fi } diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog08 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog08 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog08 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog08 2003-03-27 12:06:34.000000000 -0800 @@ -63,7 +63,7 @@ # syslogtst has to be called with one more additional facility argument(1-6) syslogtst 8 $facility_no 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi @@ -71,16 +71,16 @@ new_mail_check=`grep -c "syslogtst: $current info test." /var/log/maillog` newvalue=`grep -c "syslogtst: $current info test." /var/log/messages` - (( diff=$newvalue - $oldvalue )) - (( mail_check=$new_mail_check - $old_mail_check )) - if [[ $current == "mail" ]]; then - if [[ $mail_check -ne 1 ]]; then + diff=$(( $newvalue - $oldvalue )) + mail_check=$(( $new_mail_check - $old_mail_check )) + if [ $current = "mail" ]; then + if [ $mail_check -ne 1 ]; then status_flag=1 echo "****--- Facility $current failed ---****" - elif [[ $mail_check -eq 1 ]]; then + elif [ $mail_check -eq 1 ]; then echo "****--- Facility $current passed ---****" fi - elif [[ $diff -ne 1 ]]; then + elif [ $diff -ne 1 ]; then status_flag=1 echo "****--- Facility $current failed ---****" else diff -aur ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog09 ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog09 --- ltp-full-20030321-before/testcases/kernel/syscalls/syslog/syslog09 2002-12-12 12:52:18.000000000 -0800 +++ ltp-full-20030321-after/testcases/kernel/syscalls/syslog/syslog09 2003-03-27 12:07:09.000000000 -0800 @@ -49,7 +49,7 @@ donot_allow1=`grep -c "syslogtst: warning level not to be logged" /var/log/messages` syslogtst 9 2>/dev/null - if [[ $? -ne 0 ]]; then + if [ $? -ne 0 ]; then status_flag=1 return fi @@ -58,15 +58,15 @@ allow2=`grep -c "syslogtst: error level is logged" /var/log/messages` donot_allow2=`grep -c "syslogtst: warning level not to be logged" /var/log/messages` - (( diff1=$allow2 - $allow1 )) - if [[ $diff1 -ne 1 ]]; then + diff1=$(( $allow2 - $allow1 )) + if [ $diff1 -ne 1 ]; then echo "Expected message is not logged...." status_flag=1 return fi - (( diff2=$donot_allow2 - $donot_allow1 )) - if [[ $diff2 -ne 0 ]]; then + diff2=$(( $donot_allow2 - $donot_allow1 )) + if [ $diff2 -ne 0 ]; then echo "Unexpected message is logged..." status_flag=1 fi |