From: Subrata M. <su...@li...> - 2010-06-28 11:52:30
|
Hi, The recently introduced option: -K DMESG_LOG_DIR Log Kernel messages generated for each test cases inside this directory, when used will generate huge no. of files inside the DMESG_DIR. Many of them will be ZERO size as we do not expect KERNEL MESSAGE to be generated against all the LTP TESTS that we will run. It is better to prune them, and let only those files exist which will have real entries. The following patch fixes the same. Signed-off-by: Subrata Modak <su...@li...>, --- --- ltp/runltp.orig 2010-06-28 10:02:42.000000000 +0530 +++ ltp/runltp 2010-06-28 10:21:04.000000000 +0530 @@ -858,6 +858,30 @@ main() cd .. echo "LTP Version: $version_date" + # DMESG_DIR will contain hell lot of files which will not have any entry + # since kernel message(s) will not be generated for every test. The zero size + # files will clog the directory. Lets keep only those fules which have real + # kernel message entries. If DMESG_DIR directroy is empty after test run, it + # will indicate that no kernel message was generated during test run + + if [ $ALT_DMESG_OUT -eq 1 ] ; then + PWD=`pwd` + cd $DMESG_DIR + for dmesg_file in `ls` + do + dmesg_file_size=`wc -c $dmesg_file | cut -d ' ' -f1 | tr -d '\n'` + if [ $dmesg_file_size -eq 0 ]; then + rm -rf $dmesg_file + fi + done + cd $PWD + fi + if [ `ls -l $DMESG_DIR | wc -l` -ge 1 ]; then + echo "Kernel messages were generated for LTP tests $version_date" + else + echo "No Kernel messages were generated for LTP tests $version_date" + fi + if [ "$ALT_HTML_OUT" -eq 1 ] ; then #User wants the HTML output to be created, it then needs to be generated export LTP_VERSION=$version_date export TEST_START_TIME=$test_start_time --- Regards-- Subrata |
From: Garrett C. <yan...@gm...> - 2010-06-28 19:47:35
|
On Mon, Jun 28, 2010 at 12:44 PM, Mike Frysinger <va...@ge...> wrote: > On Monday, June 28, 2010 07:52:18 Subrata Modak wrote: >> + if [ $ALT_DMESG_OUT -eq 1 ] ; then >> + PWD=`pwd` >> + cd $DMESG_DIR >> + for dmesg_file in `ls` >> + do >> + dmesg_file_size=`wc -c $dmesg_file | cut -d ' ' -f1 | tr -d > '\n'` >> + if [ $dmesg_file_size -eq 0 ]; then >> + rm -rf $dmesg_file >> + fi >> + done >> + cd $PWD >> + fi > > ugh. what's wrong with simply executing: > find "$DMESG_DIR" -size 0 -exec rm {} + Or find "$DMESG_DIR" -size 0 | xargs rm -f ? >> + if [ `ls -l $DMESG_DIR | wc -l` -ge 1 ]; then > > if [ -n "$(ls "$DMESG_DIR")" ] ; then > -mike |
From: Mike F. <va...@ge...> - 2010-06-28 20:00:12
|
On Monday, June 28, 2010 15:47:27 Garrett Cooper wrote: > On Mon, Jun 28, 2010 at 12:44 PM, Mike Frysinger <va...@ge...> wrote: > > On Monday, June 28, 2010 07:52:18 Subrata Modak wrote: > >> + if [ $ALT_DMESG_OUT -eq 1 ] ; then > >> + PWD=`pwd` > >> + cd $DMESG_DIR > >> + for dmesg_file in `ls` > >> + do > >> + dmesg_file_size=`wc -c $dmesg_file | cut -d ' ' > >> -f1 | tr -d > > > > '\n'` > > > >> + if [ $dmesg_file_size -eq 0 ]; then > >> + rm -rf $dmesg_file > >> + fi > >> + done > >> + cd $PWD > >> + fi > > > > ugh. what's wrong with simply executing: > > find "$DMESG_DIR" -size 0 -exec rm {} + > > Or find "$DMESG_DIR" -size 0 | xargs rm -f ? no, because mine handles funky named files while yours does not. both are POSIX and handle command line length issues correctly. -mike |
From: Garrett C. <yan...@gm...> - 2010-06-28 19:53:27
|
On Mon, Jun 28, 2010 at 4:52 AM, Subrata Modak <su...@li...> wrote: > Hi, > > The recently introduced option: > > -K DMESG_LOG_DIR > Log Kernel messages generated for each test cases inside this directory, > > when used will generate huge no. of files inside the DMESG_DIR. Many of > them will be ZERO size as we do not expect KERNEL MESSAGE to be generated > against all the LTP TESTS that we will run. It is better to prune them, and > let only those files exist which will have real entries. The following > patch fixes the same. > > Signed-off-by: Subrata Modak <su...@li...>, > --- > > --- ltp/runltp.orig 2010-06-28 10:02:42.000000000 +0530 > +++ ltp/runltp 2010-06-28 10:21:04.000000000 +0530 > @@ -858,6 +858,30 @@ main() > cd .. > echo "LTP Version: $version_date" > > + # DMESG_DIR will contain hell lot of files which will not have any entry > + # since kernel message(s) will not be generated for every test. The zero size > + # files will clog the directory. Lets keep only those fules which have real > + # kernel message entries. If DMESG_DIR directroy is empty after test run, it > + # will indicate that no kernel message was generated during test run > + This comment could be abbreviated to: # $DMESG_DIR is used to cache messages obtained from dmesg after a test run. # Proactively reap all of the 0-byte files in $DMESG_DIR as they have zero value # and only clutter up the filesystem. > + if [ $ALT_DMESG_OUT -eq 1 ] ; then > + PWD=`pwd` Please use a different variable name. This obfuscates the meaning of the shell set value. > + cd $DMESG_DIR What if this fails? Won't this nuke all of the files in the current directory? Are you checking to ensure that this isn't empty beforehand as well? I hate it when scripts nuke files like this (I lost several hours of work last week because of a similar mistake). > + for dmesg_file in `ls` > + do > + dmesg_file_size=`wc -c $dmesg_file | cut -d ' ' -f1 | tr -d '\n'` > + if [ $dmesg_file_size -eq 0 ]; then > + rm -rf $dmesg_file > + fi > + done > + cd $PWD > + fi Thanks, -Garrett |
From: Mike F. <va...@ge...> - 2010-06-28 20:05:16
|
On Monday, June 28, 2010 15:53:11 Garrett Cooper wrote: > On Mon, Jun 28, 2010 at 4:52 AM, Subrata Modak wrote: > > + if [ $ALT_DMESG_OUT -eq 1 ] ; then > > + PWD=`pwd` > > Please use a different variable name. This obfuscates the meaning of > the shell set value. use a `find` as i suggested and changing dir isnt necessary. it replaces the entire body of the if statement. -mike |
From: Mike F. <va...@ge...> - 2010-06-28 20:10:10
|
On Monday, June 28, 2010 07:52:18 Subrata Modak wrote: > + if [ $ALT_DMESG_OUT -eq 1 ] ; then > + PWD=`pwd` > + cd $DMESG_DIR > + for dmesg_file in `ls` > + do > + dmesg_file_size=`wc -c $dmesg_file | cut -d ' ' -f1 | tr -d '\n'` > + if [ $dmesg_file_size -eq 0 ]; then > + rm -rf $dmesg_file > + fi > + done > + cd $PWD > + fi ugh. what's wrong with simply executing: find "$DMESG_DIR" -size 0 -exec rm {} + > + if [ `ls -l $DMESG_DIR | wc -l` -ge 1 ]; then if [ -n "$(ls "$DMESG_DIR")" ] ; then -mike |
From: Subrata M. <su...@li...> - 2010-07-01 15:35:03
|
Hi, The recently introduced option: -K DMESG_LOG_DIR Log Kernel messages generated for each test cases inside this directory, when used will generate huge no. of files inside the DMESG_DIR. Many of them will be ZERO size as we do not expect KERNEL MESSAGE to be generated against all the LTP TESTS that we will run. It is better to prune them, and let only those files exist which will have real entries. The following patch fixes the same. Signed-off-by: Subrata Modak <su...@li...>, --- --- ltp/runltp.orig 2010-07-01 20:51:15.000000000 +0530 +++ ltp/runltp 2010-07-01 21:01:07.000000000 +0530 @@ -858,6 +858,26 @@ main() cd .. echo "LTP Version: $version_date" + # $DMESG_DIR is used to cache messages obtained from dmesg after a test run. + # Proactively reap all of the 0-byte files in $DMESG_DIR as they have zero value + # and only clutter up the filesystem. + + if [ $ALT_DMESG_OUT -eq 1 ] ; then + PREVIOUS_TO_DMESG_DIR=`pwd` + cd $DMESG_DIR + if [ $? -eq 0 ] ; then + find . -size 0 -exec rm {} + + else + echo "cd to $DMESG_DIR failed: $?" + fi + cd $PREVIOUS_TO_DMESG_DIR + if [ -n "$(ls "$DMESG_DIR")" ] ; then + echo "Kernel messages were generated for LTP tests $version_date" + else + echo "No Kernel messages were generated for LTP tests $version_date" + fi + fi + if [ "$ALT_HTML_OUT" -eq 1 ] ; then #User wants the HTML output to be created, it then needs to be generated export LTP_VERSION=$version_date export TEST_START_TIME=$test_start_time --- Regards-- Subrata |
From: Mike F. <va...@ge...> - 2010-07-01 16:45:52
|
On Thursday, July 01, 2010 11:34:47 Subrata Modak wrote: > + PREVIOUS_TO_DMESG_DIR=`pwd` > + cd $DMESG_DIR > + if [ $? -eq 0 ] ; then > + find . -size 0 -exec rm {} + > + else > + echo "cd to $DMESG_DIR failed: $?" > + fi > + cd $PREVIOUS_TO_DMESG_DIR if find "$DMESG_DIR" -size 0 -exec rm {} + ; then echo "cd to $DMESG_DIR failed: $?" fi -mike |
From: Subrata M. <su...@li...> - 2010-07-01 16:52:16
|
[PATCH v3] Remove files which does not have a dmesg entry The recently introduced option: -K DMESG_LOG_DIR Log Kernel messages generated for each test cases inside this directory, when used will generate huge no. of files inside the DMESG_DIR. Many of them will be ZERO size as we do not expect KERNEL MESSAGE to be generated against all the LTP TESTS that we will run. It is better to prune them, and let only those files exist which will have real entries. The following patch fixes the same. Signed-off-by: Subrata Modak <su...@li...>, --- --- ltp/runltp.orig 2010-07-01 20:51:15.000000000 +0530 +++ ltp/runltp 2010-07-01 22:19:53.000000000 +0530 @@ -858,6 +858,21 @@ main() cd .. echo "LTP Version: $version_date" + # $DMESG_DIR is used to cache messages obtained from dmesg after a test run. + # Proactively reap all of the 0-byte files in $DMESG_DIR as they have zero value + # and only clutter up the filesystem. + + if [ $ALT_DMESG_OUT -eq 1 ] ; then + if find "$DMESG_DIR" -size 0 -exec rm {} + ; then + echo "cd to $DMESG_DIR failed: $?" + fi + if [ -n "$(ls "$DMESG_DIR")" ] ; then + echo "Kernel messages were generated for LTP tests $version_date" + else + echo "No Kernel messages were generated for LTP tests $version_date" + fi + fi + if [ "$ALT_HTML_OUT" -eq 1 ] ; then #User wants the HTML output to be created, it then needs to be generated export LTP_VERSION=$version_date export TEST_START_TIME=$test_start_time --- Regards-- Subrata |
From: Mike F. <va...@ge...> - 2010-07-01 17:03:15
|
On Thursday, July 01, 2010 12:52:07 Subrata Modak wrote: > + if find "$DMESG_DIR" -size 0 -exec rm {} + ; then > + echo "cd to $DMESG_DIR failed: $?" > + fi err, sorry, you probably want "! find" -mike |
From: Subrata M. <su...@li...> - 2010-07-03 18:04:55
|
On Thu, 2010-07-01 at 13:01 -0400, Mike Frysinger wrote: > On Thursday, July 01, 2010 12:52:07 Subrata Modak wrote: > > + if find "$DMESG_DIR" -size 0 -exec rm {} + ; then > > + echo "cd to $DMESG_DIR failed: $?" > > + fi > > err, sorry, you probably want "! find" True. Resending ;-) Regards-- Subrata > -mike |
From: Subrata M. <su...@li...> - 2010-07-03 17:50:40
|
[PATCH v4] Remove files which does not have a dmesg entry The recently introduced option: -K DMESG_LOG_DIR Log Kernel messages generated for each test cases inside this directory, when used will generate huge no. of files inside the DMESG_DIR. Many of them will be ZERO size as we do not expect KERNEL MESSAGE to be generated against all the LTP TESTS that we will run. It is better to prune them, and let only those files exist which will have real entries. The following patch fixes the same. Signed-off-by: Subrata Modak <su...@li...>, --- --- ltp/runltp.orig 2010-07-01 20:51:15.000000000 +0530 +++ ltp/runltp 2010-07-01 22:19:53.000000000 +0530 @@ -858,6 +858,21 @@ main() cd .. echo "LTP Version: $version_date" + # $DMESG_DIR is used to cache messages obtained from dmesg after a test run. + # Proactively reap all of the 0-byte files in $DMESG_DIR as they have zero value + # and only clutter up the filesystem. + + if [ $ALT_DMESG_OUT -eq 1 ] ; then + if ! find "$DMESG_DIR" -size 0 -exec rm {} + ; then + echo "cd to $DMESG_DIR failed: $?" + fi + if [ -n "$(ls "$DMESG_DIR")" ] ; then + echo "Kernel messages were generated for LTP tests $version_date" + else + echo "No Kernel messages were generated for LTP tests $version_date" + fi + fi + if [ "$ALT_HTML_OUT" -eq 1 ] ; then #User wants the HTML output to be created, it then needs to be generated export LTP_VERSION=$version_date export TEST_START_TIME=$test_start_time --- Regards-- Subrata |