diff --git a/CREDITS b/CREDITS
index 9a0c2a7..0b9414e 100644
--- a/CREDITS
+++ b/CREDITS
@@ -1,7 +1,7 @@
 This is an attempt at a credits-file in the style begun by Linus
 Torvalds and the Linux project. It is sorted by name and formatted
 to allow easy grepping and beautification by scripts.  The fields
-are: name (N), email (E), web-address (W), PGP key ID and 
+are: name (N), email (E), web-address (W), PGP key ID and
 fingerprint (P), description (D), and snail-mail address (S).
 
 N: Rich Logan
diff --git a/INSTALL b/INSTALL
index 19cb6f6..39910e2 100644
--- a/INSTALL
+++ b/INSTALL
@@ -257,7 +257,7 @@
 1. When running configure (CC, CXX, CXXFLAGS, LDLIBS, etc).
 2. Manually edit include/mk/config.mk, as described in Configuration.
 
-Note: Do not specify variables on the command-line. Use config.mk instead. 
+Note: Do not specify variables on the command-line. Use config.mk instead.
 
 uClinux Users
 --------------
@@ -311,7 +311,7 @@
     install -m 00644 "/scratch/ltp-dev2/ltp/include/usctest.h" "/scratch/ltp-install12/include/usctest.h"
     install -m 00644 "/scratch/ltp-dev2/ltp/include/write_log.h" "/scratch/ltp-install12/include/write_log.h"
     make[1]: Leaving directory `/scratch/ltp-dev2/ltp/include'
-    make -C lib -f "/scratch/ltp-dev2/ltp/lib/Makefile" all 
+    make -C lib -f "/scratch/ltp-dev2/ltp/lib/Makefile" all
     make[1]: Entering directory `/scratch/ltp-dev2/ltp/lib'
     " *** No rule to make target `dataascii.o', needed by `libltp.a'.  Stop." # <-- the error
 
diff --git a/Makefile b/Makefile
index 147fa62..09524bb 100644
--- a/Makefile
+++ b/Makefile
@@ -117,7 +117,7 @@
 # Let's not conflict with ac-clean, maintainer-clean, etc, so.
 $(filter-out include-clean,$(CLEAN_TARGETS))::
 	-$(MAKE) -C "$(subst -clean,,$@)" \
-		 -f "$(abs_top_srcdir)/$(subst -clean,,$@)/Makefile" clean 
+		 -f "$(abs_top_srcdir)/$(subst -clean,,$@)/Makefile" clean
 
 # Just like everything depends on include-all / -install, we need to get rid
 # of include last to ensure that things won't be monkey screwed up. Only do
@@ -167,7 +167,7 @@
 SRCDIR_INSTALL_READONLY	:= Version
 SRCDIR_INSTALL_TARGETS	:= $(SRCDIR_INSTALL_SCRIPTS) $(SRCDIR_INSTALL_READONLY)
 
-# 
+#
 # If we are in git repository, use git describe to indentify current version,
 # otherwise if downloaded as tarball use VERSION file.
 #
@@ -220,7 +220,7 @@
 	@$(SHELL) "$(top_srcdir)/ltpmenu"
 
 ## Package
-package: 
+package:
 	@$(RPMBUILD) -ba ltp-devel.spec
 
 ## End misc targets.
diff --git a/doc/automation-README.html b/doc/automation-README.html
index 6357d58..865bce3 100644
--- a/doc/automation-README.html
+++ b/doc/automation-README.html
@@ -1,101 +1,101 @@
 <html>
 <head>
 	<title>autoltp readme</title>
-   
+
 </head>
  <body bgcolor="#ffffff" vlink="#800000">
-       
+
 <div align="center"><big><big><big><b>LTP Automation README<br>
 using autoltp</b></big></big></big></div>
   <br>
   <br>
-  <big><big><b>Prerequisites</b></big></big>   
+  <big><big><b>Prerequisites</b></big></big>
 <ul>
   <li>All LTP installation prerequisites must be met<br>
    </li>
    <li>Perl modules Net::SFTP and Net::SSH::Perl <b>must</b> be <a
- href="http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules">installed</a> 
+ href="http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules">installed</a>
 on MASTER machine. (<a href="http://www.cpan.org/">www.cpan.org</a> for instructions/downloads)</li>
    <li>MASTER and TARGET machines must have sftp and ssh capabilities.<br>
    </li>
-  <li>IP addresses may replace hostnames in this document if name service 
+  <li>IP addresses may replace hostnames in this document if name service
 is unavailable.<br>
    </li>
-   
+
 </ul>
-  <big><big><b>Install files</b></big></big>   
+  <big><big><b>Install files</b></big></big>
 <ul>
-  <li>Go to <a href="http://ltp.sf.net/" target="_top">http://ltp.sf.net</a> 
+  <li>Go to <a href="http://ltp.sf.net/" target="_top">http://ltp.sf.net</a>
 -&gt; Downloads -&gt; Download latest version of LTP</li>
   <li>Login as root on MASTER machine</li>
   <li>Untar ltp-xxxxxxxx.tgz in /root</li>
-     
+
   <ul>
   <li>tar -xzvf &lt;filename.tgz&gt;</li>
-  <li>mv ltp-&lt;yyyymmdd&gt;.tgz ltp <i>(&lt;yyyymmdd&gt; should be replaced 
+  <li>mv ltp-&lt;yyyymmdd&gt;.tgz ltp <i>(&lt;yyyymmdd&gt; should be replaced
  with the drop date you are using</i></li>
-   
+
   </ul>
- 
+
 </ul>
- <big><big><b>Setup/Edit config files</b></big></big>       
+ <big><big><b>Setup/Edit config files</b></big></big>
 <ul>
-      
+
   <ul>
-     
+
   </ul>
- 
+
 </ul>
- 
+
 <ul>
-   
+
   <ul>
-     
+
   </ul>
-   
+
 </ul>
-   
+
 <ul>
   <li>edit runalltests.sh and modify the run line to include the PAN_LOG
 options:</li>
-   
+
   <ul>
      <li>ex: <i>${LTPROOT}/pan/ltp-pan -l $PAN_LOG -e -S $instances $time -a
 $$ -n $$ -f ${TMP}/alltests</i></li>
-   
+
   </ul>
-   <li>tar up the ltp directory (<i>this is the ltp.tgz that is copied to 
+   <li>tar up the ltp directory (<i>this is the ltp.tgz that is copied to
 the TARGET machines</i>)</li>
-   
+
   <ul>
-     <li>in the root directory of MASTER type tar -czvf ltp.tgz to tar up 
+     <li>in the root directory of MASTER type tar -czvf ltp.tgz to tar up
 the testcases</li>
-     <li>copy the resulting ltp.tgz to /tmp on MASTER (<i>autoltp will look 
+     <li>copy the resulting ltp.tgz to /tmp on MASTER (<i>autoltp will look
 for /ltp.tgz in the tmp directory</i>)<br>
      </li>
-   
+
   </ul>
-     
+
   <ul>
-         
+
   </ul>
-   
+
 </ul>
-   
+
 <ul>
-     
+
   <ul>
-     
+
   </ul>
-   
+
 </ul>
   <big><big><b>Run LTP</b></big></big><br>
-   
+
 <ul>
   <li>cd to /root/ltp/auto on MASTER</li>
    <li>create a config file that contains the list of hosts (TARGETS) to
 run LTP against</li>
-   
+
   <ul>
      <li>example config file:<br>
 host1,username,password,number of instances,time<br>
@@ -113,8 +113,8 @@
   </li>
 </ul>
 <ul>
-   
+
 </ul>
-   
+
 </body>
 </html>
diff --git a/doc/automation-cookbook.html b/doc/automation-cookbook.html
index 38928af..0ce2f3d 100644
--- a/doc/automation-cookbook.html
+++ b/doc/automation-cookbook.html
@@ -1,101 +1,101 @@
 <html>
 <head>
   <title>autoltp cookbook</title>
-   
+
 </head>
  <body bgcolor="#ffffff" vlink="#800000">
-       
+
 <div align="center"><big><big><big><b>LTP Automation<br>
 using autoltp</b></big></big></big></div>
   <br>
   <br>
-  <big><big><b>Prerequisites</b></big></big>   
+  <big><big><b>Prerequisites</b></big></big>
 <ul>
   <li>All LTP installation prerequisites must be met<br>
    </li>
    <li>Perl modules Net::SFTP and Net::SSH::Perl <b>must</b> be <a
- href="http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules">installed</a> 
+ href="http://www.cpan.org/misc/cpan-faq.html#How_install_Perl_modules">installed</a>
 on MASTER machine. (<a href="http://www.cpan.org/">www.cpan.org</a> for instructions/downloads)</li>
    <li>MASTER and TARGET machines must have sftp and ssh capabilities.<br>
    </li>
-  <li>IP addresses may replace hostnames in this document if name service 
+  <li>IP addresses may replace hostnames in this document if name service
 is unavailable.<br>
    </li>
-   
+
 </ul>
-  <big><big><b>Install files</b></big></big>   
+  <big><big><b>Install files</b></big></big>
 <ul>
-  <li>Go to <a href="http://ltp.sf.net/" target="_top">http://ltp.sf.net</a> 
+  <li>Go to <a href="http://ltp.sf.net/" target="_top">http://ltp.sf.net</a>
 -&gt; Downloads -&gt; Download latest version of LTP</li>
   <li>Login as root on MASTER machine</li>
   <li>Untar ltp-xxxxxxxx.tgz in /root</li>
-     
+
   <ul>
   <li>tar -xzvf &lt;filename.tgz&gt;</li>
-  <li>mv ltp-&lt;yyyymmdd&gt;.tgz ltp <i>(&lt;yyyymmdd&gt; should be replaced 
+  <li>mv ltp-&lt;yyyymmdd&gt;.tgz ltp <i>(&lt;yyyymmdd&gt; should be replaced
  with the drop date you are using</i></li>
-   
+
   </ul>
- 
+
 </ul>
- <big><big><b>Setup/Edit config files</b></big></big>       
+ <big><big><b>Setup/Edit config files</b></big></big>
 <ul>
-      
+
   <ul>
-     
+
   </ul>
- 
+
 </ul>
- 
+
 <ul>
-   
+
   <ul>
-     
+
   </ul>
-   
+
 </ul>
-   
+
 <ul>
   <li>edit runalltests.sh and modify the run line to include the PAN_LOG
 options:</li>
-   
+
   <ul>
      <li>ex: <i>${LTPROOT}/pan/ltp-pan -l $PAN_LOG -e -S $instances $time -a
 $$ -n $$ -f ${TMP}/alltests</i></li>
-   
+
   </ul>
-   <li>tar up the ltp directory (<i>this is the ltp.tgz that is copied to 
+   <li>tar up the ltp directory (<i>this is the ltp.tgz that is copied to
 the TARGET machines</i>)</li>
-   
+
   <ul>
-     <li>in the root directory of MASTER type tar -czvf ltp.tgz to tar up 
+     <li>in the root directory of MASTER type tar -czvf ltp.tgz to tar up
 the testcases</li>
-     <li>copy the resulting ltp.tgz to /tmp on MASTER (<i>autoltp will look 
+     <li>copy the resulting ltp.tgz to /tmp on MASTER (<i>autoltp will look
 for /ltp.tgz in the tmp directory</i>)<br>
      </li>
-   
+
   </ul>
-     
+
   <ul>
-         
+
   </ul>
-   
+
 </ul>
-   
+
 <ul>
-     
+
   <ul>
-     
+
   </ul>
-   
+
 </ul>
   <big><big><b>Run LTP</b></big></big><br>
-   
+
 <ul>
   <li>cd to /root/ltp/auto on MASTER</li>
    <li>create a config file that contains the list of hosts (TARGETS) to
 run LTP against</li>
-   
+
   <ul>
      <li>example config file:<br>
 host1,username,password,number of instances,time<br>
@@ -113,8 +113,8 @@
   </li>
 </ul>
 <ul>
-   
+
 </ul>
-   
+
 </body>
 </html>
diff --git a/doc/build-system-guide.txt b/doc/build-system-guide.txt
index 224161d..ea9966e 100644
--- a/doc/build-system-guide.txt
+++ b/doc/build-system-guide.txt
@@ -6,7 +6,7 @@
 the new and improved Makefile system.
 
 Changelog:
- 
+
  * Initial version: Garrett Cooper <yanegomi@gmail.com>
  * Reformated for asciidoc: Cyril Hrubis <chrubis@suse.cz>
 ******************************************************************************
@@ -99,7 +99,7 @@
 
 $(CPP)			: The system C preprocessor.
 
-$(CFLAGS)		: C compiler flags. 
+$(CFLAGS)		: C compiler flags.
 
 $(CPPFLAGS)		: Preprocessor flags, e.g. -I arguments.
 
diff --git a/doc/ltp-howto.lyx b/doc/ltp-howto.lyx
index f0cf451..7b9f9e0 100644
--- a/doc/ltp-howto.lyx
+++ b/doc/ltp-howto.lyx
@@ -9,7 +9,7 @@
 \fontscheme default
 \graphics default
 \paperfontsize default
-\spacing single 
+\spacing single
 \papersize Default
 \paperpackage a4
 \use_geometry 0
@@ -26,11 +26,11 @@
 \paperpagestyle default
 
 \layout Title
-\added_space_top vfill \added_space_bottom vfill 
+\added_space_top vfill \added_space_bottom vfill
 Linux Test Project HOWTO
 \layout Date
 
-10 October 2000 
+10 October 2000
 \layout Author
 
 Nate Straz
@@ -49,69 +49,69 @@
  ins and outs of the Linux Test Project.
 \layout Subsection
 
-Copyright 
+Copyright
 \layout Standard
 
 Copyright (c) 2000 by SGI, Inc.
- 
+
 \layout Standard
 
 Please freely copy and distribute (sell or give away) this document in any
  format.
   It's requested that corrections and/or comments be fowarded to the document
  maintainer.
- You may create a derivative work and distribute it provided that you: 
+ You may create a derivative work and distribute it provided that you:
 \layout Itemize
 
 Send your derivative work (in the most suitable format such as sgml) to
  the LDP (Linux Documentation Project) or the like for posting on the Internet.
   If not the LDP, then let the LDP know where it is available.
- 
+
 \layout Itemize
 
 License the derivative work with this same license or use GPL.
  Include a copyright notice and at least a pointer to the license used.
- 
+
 \layout Itemize
 
 Give due credit to previous authors and major contributors.
- 
+
 \layout Standard
 
 If you're considering making a derived work other than a translation, it's
  requested that you discuss your plans with the current maintainer.
- 
+
 \layout Subsection
 
-Disclaimer 
+Disclaimer
 \layout Standard
 
 Use the information in this document at your own risk.
  I disavow any potential liability for the contents of this document.
  Use of the concepts, examples, and/or other content of this document is
  entirely at your own risk.
- 
+
 \layout Standard
 
 All copyrights are owned by their owners, unless specifically noted otherwise.
   Use of a term in this document should not be regarded as affecting the
  validity of any trademark or service mark.
- 
+
 \layout Standard
 
 Naming of particular products or brands should not be seen as endorsements.
- 
+
 \layout Standard
 
 You are strongly recommended to take a backup of your system before major
  installation and backups at regular intervals.
- 
+
 \layout Section
 
-Introduction 
+Introduction
 \layout Subsection
 
-What is the Linux Test Project? 
+What is the Linux Test Project?
 \layout Standard
 
 The Linux Test Project (LTP) is an effort to create a set of tools and tests
@@ -119,10 +119,10 @@
  We hope this will support Linux development by making unit testing more
  complete and minimizing user impact by building a barrier to keep bugs
  from making it to the user.
- 
+
 \layout Subsection
 
-What is wrong with the current testing model? 
+What is wrong with the current testing model?
 \layout Standard
 
 The Linux development community utilizes two important (some out argue most
@@ -135,54 +135,54 @@
  that of interaction of features.
  With a continuously improving set of tests and tools, developers can get
  an indication of whether their changes may have broken some other functionality.
- 
+
 \layout Standard
 
 There is no such thing as a perfect test base.
   It is only useful it if keeps up with new and changing functionality,
  and if it actually gets used.
- 
+
 \layout Subsection
 
-Are you doing benchmarking? 
+Are you doing benchmarking?
 \layout Standard
 
 Not at  this time.
  We are more interested in functional, regression, and stress testing the
  Linux kernel.
  Benchmarking may be workable to compare the performance among kernel versions.
- 
+
 \layout Subsection
 
-Are you doing standards testing? 
+Are you doing standards testing?
 \layout Standard
 
 No, we are leaving that to the Linux Standards Base (LSB).
-  See the Linux Standards Base 
+  See the Linux Standards Base
 \begin_inset LatexCommand \htmlurl[web site]{http://www.linuxbase.org/}
 
-\end_inset 
+\end_inset
 
  for more information.
- 
+
 \layout Section
 
-Structure 
+Structure
 \layout Standard
 
-The basic building block of the test project is a 
-\series bold 
+The basic building block of the test project is a
+\series bold
 test case
-\series default 
+\series default
  that consists of a single action and a verification that the action worked.
   The result of the test case is usually restricted to PASS/FAIL.
- 
+
 \layout Standard
 
-A 
-\series bold 
+A
+\series bold
 test program
-\series default 
+\series default
  is a runnable program that contains one or more test cases.
  Test programs often understand command line options which alter their behavior.
  The options could determine the amount of memory tested, the location of
@@ -190,15 +190,15 @@
 \layout Standard
 
 
-\series bold 
+\series bold
 Test tags
-\series default 
+\series default
  are used to pair a unique identifier with a test program and a set of command
  line options.
  Test tags are the basis for test suites.
 \layout Section
 
-Writing Tests 
+Writing Tests
 \layout Standard
 
 Writing a test case is a lot easier than most people think.
@@ -207,35 +207,35 @@
   All that is needed is a way to report the result of the action to the
  rest of the world.
   There are several ways of doing this, some more involved than others.
- 
+
 \layout Subsection
 
-Exit Style Tests 
+Exit Style Tests
 \layout Standard
 
 Probably the simplest way of reporting the results of a test case is the
  exit status of your program.
   If your test program encounters unexpected or incorrect results, exit
  the test program with a non-zero exit status, i.e.
- 
-\family typewriter 
+
+\family typewriter
 exit(1)
-\family default 
+\family default
 .
  Conversely, if your program completes as expected, return a zero exit status,
  i.e.
- 
-\family typewriter 
+
+\family typewriter
 exit(0)
-\family default 
+\family default
 .
  Any test driver should be able to handle this type of error reporting.
  If a test program has multiple test cases you won't know which test case
  failed, but you will know the program that failed.
- 
+
 \layout Subsection
 
-Formatted Output Tests 
+Formatted Output Tests
 \layout Standard
 
 The next easiest way of reporting the results is to write the results of
@@ -244,32 +244,32 @@
  tester and the analysis tools.
  When the results are written in a standard way, tools can be used to analyze
  the results.
- 
+
 \layout Section
 
 Testing Tools
 \layout Standard
 
 The Linux Test Project has not yet decided on a "final" test harness.
-  We have provided a simple solution with 
-\family typewriter 
+  We have provided a simple solution with
+\family typewriter
 ltp-pan
-\family default 
+\family default
  to make due until a complete solution has been found/created that compliments
  the Linux kernel development process.
   Several people have said we should use such and such a test harness.
  Until we find we need a large complex test harness, we will apply the KISS
  concept.
-   
+
 \layout Subsection
 
 Ltp-pan
 \layout Standard
 
 
-\family typewriter 
+\family typewriter
 ltp-pan
-\family default 
+\family default
  is a simple test driver with the ability to keep track of orphaned processes
  and capture test output.
  It works by reading a list of test tags and command lines and runs them.
@@ -280,14 +280,14 @@
  Ltp-pan can be nested to create very complex test environments.
 \layout Standard
 
-Ltp-pan uses an 
-\emph on 
+Ltp-pan uses an
+\emph on
 active file
-\emph default 
-, also called a 
-\emph on 
+\emph default
+, also called a
+\emph on
 zoo file
-\emph default 
+\emph default
  to keep track of which tests are currently running.
  This file holds the pid, tag, and a portion of the command line.
  When you start ltp-pan it becomes a test tag in itself, thus it requires a
@@ -297,111 +297,111 @@
  The active file can be shared between multiple instances of ltp-pan so you
  know which tests were running when the system crashes by looking at one
  file.
- 
+
 \layout Standard
 
-A 
-\emph on 
+A
+\emph on
 ltp-pan file
-\emph default 
+\emph default
  contains a list of test tags for ltp-pan to run.
  The format of a ltp-pan file is as follows:
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 testtag testprogram -o one -p two other command line options
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # This is a comment.
- It is a good idea to describe the test 
+ It is a good idea to describe the test
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # tags in your ltp-pan file.
- Tests programs can have different 
+ Tests programs can have different
 \layout Code
 
 
-\latex no_latex 
-# behaviors depending on the command line options so it is 
+\latex no_latex
+# behaviors depending on the command line options so it is
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # helpful to describe what each test tag is meant to verify or # provoke.
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # Some more test cases
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 mm01 mmap001 -m 10000
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # 40 Mb mmap() test.
 \layout Code
 
 
-\latex no_latex 
-# Creates a 10000 page mmap, touches all of the map, sync's 
+\latex no_latex
+# Creates a 10000 page mmap, touches all of the map, sync's
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # it, and munmap()s it.
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 mm03 mmap001 -i 0 -I 1 -m 100
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # repetitive mmapping test.
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # Creates a one page map repetitively for one minute.
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 dup02 dup02
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # Negative test for dup(2) with bad fd
 \layout Code
 
 
-\latex no_latex 
-kill09 kill09 
+\latex no_latex
+kill09 kill09
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # Basic test for kill(2)
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 fs-suite01 ltp-pan -e -a fs-suite01.zoo -n fs-suite01 -f runtest/fs
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 # run the entire set of file system tests
 \layout Standard
 
@@ -418,83 +418,83 @@
 The most basic way to run ltp-pan is by passing the test program and parameters
  on the command line.
  This will run the single program once and wrap the output.
- 
+
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 $ ltp-pan -a ltp.zoo -n tutor sleep 4
 \layout Code
 
 
-\latex no_latex 
-<<<test_start>>> 
+\latex no_latex
+<<<test_start>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 tag=cmdln stime=971450564
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cmdline="sleep 4"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 contacts=""
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 analysis=exit
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 initiation_status="ok"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_output>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<execution_status>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 duration=103341903 termination_type=exited termination_id=0 corefile=no
  cutime=0 cstime=0
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_end>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 $ cat ltp.zoo
 \layout Code
 
 
-\latex no_latex 
-#9357,tutor,pan/ltp-pan -a ltp.zoo -n tutor sleep 4 
+\latex no_latex
+#9357,tutor,pan/ltp-pan -a ltp.zoo -n tutor sleep 4
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 #9358,cmdln,sleep 4
 \layout Code
 
 
-\latex no_latex 
-$ 
+\latex no_latex
+$
 \layout Paragraph
 
 How it works
@@ -502,33 +502,33 @@
 
 This example shows the two parameters that are always required by ltp-pan, the
  active file and a test tag for ltp-pan.
- The 
+ The
 \begin_inset Quotes eld
-\end_inset 
+\end_inset
 
 sleep 4
 \begin_inset Quotes erd
-\end_inset 
+\end_inset
 
  on the end of the command line is a test program and parameters that ltp-pan
  should run.
- This test is given the tag 
+ This test is given the tag
 \begin_inset Quotes eld
-\end_inset 
+\end_inset
 
 cmdln.
 \begin_inset Quotes erd
-\end_inset 
+\end_inset
 
  Ltp-pan will run one test randomly, which ends up being cmdln since it is the
  only test that we told ltp-pan about.
- 
+
 \layout Standard
 
-In the active file, 
-\family typewriter 
+In the active file,
+\family typewriter
 ltp.zoo
-\family default 
+\family default
 , ltp-pan writes the pid, test tag, and part of the command line for the currently
  running tests.
  The command lines are truncated so each line will fit on an 80 column display.
@@ -542,191 +542,191 @@
 We have run one test once.
  Let's do something a little more exciting.
  Let's run one test several times, at the same time.
- 
+
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 $ ltp-pan -a ltp.zoo -n tutor -x 3 -s 3 -O /tmp sleep 1
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_start>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 tag=cmdln stime=971465653
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cmdline="sleep 1"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 contacts=""
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 analysis=exit
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 initiation_status="ok"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_output>>>
 \layout Code
 
 
-\latex no_latex 
- 
+\latex no_latex
+
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<execution_status>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 duration=103326814 termination_type=exited termination_id=0 corefile=no
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cutime=1 cstime=0
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_end>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_start>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 tag=cmdln stime=971465653
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cmdline="sleep 1"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 contacts=""
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 analysis=exit
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 initiation_status="ok"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_output>>>
 \layout Code
 
 
-\latex no_latex 
- 
+\latex no_latex
+
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<execution_status>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 duration=103326814 termination_type=exited termination_id=0 corefile=no
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cutime=0 cstime=1
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_end>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_start>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 tag=cmdln stime=971465653
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cmdline="sleep 1"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 contacts=""
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 analysis=exit
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 initiation_status="ok"
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_output>>>
 \layout Code
 
 
-\latex no_latex 
- 
+\latex no_latex
+
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<execution_status>>>
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 duration=103326814 termination_type=exited termination_id=0 corefile=no
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 cutime=0 cstime=0
 \layout Code
 
 
-\latex no_latex 
+\latex no_latex
 <<<test_end>>>
 \layout Paragraph
 
@@ -741,7 +741,7 @@
  You can see in the output that cmdln ran three times.
  If the -O option were omitted, your test output would be mixed, making
  it almost worthless.
- 
+
 \layout Itemize
 
 Using a ltp-pan file to run multiple tests
@@ -750,10 +750,10 @@
 Nesting ltp-pan
 \layout Standard
 
-For more information on ltp-pan see the man page 
-\family typewriter 
+For more information on ltp-pan see the man page
+\family typewriter
 doc/man1/ltp-pan.1
-\family default 
+\family default
 .
 \layout Subsection
 
@@ -761,20 +761,20 @@
 \layout Standard
 
 
-\family typewriter 
+\family typewriter
 Ltp-scanner
-\family default 
- is a results analysis tool that understands the 
-\emph on 
+\family default
+ is a results analysis tool that understands the
+\emph on
 rts
-\emph default 
- style output which 
-\family typewriter 
+\emph default
+ style output which
+\family typewriter
 ltp-pan
-\family default 
+\family default
  generates by default.
  It will produce a table summarizing which tests passed and which failed.
-   
+
 \layout Subsection
 
 The Quick-hitter Package
@@ -784,33 +784,33 @@
  tasks like create and move to a temporary directory, handle some common
  command line parameters, loop, run in parallel, handle signals, and clean
  up.
- 
+
 \layout Standard
 
-There is an example test case, 
-\family typewriter 
+There is an example test case,
+\family typewriter
 doc/examples/quickhit.c
-\family default 
+\family default
 , which shows how the quick-hitter package can be used.
  The file is meant to be a supplement to the documentation, not a working
  test case.
- Use any of the tests in 
-\family typewriter 
+ Use any of the tests in
+\family typewriter
 tests/
-\family default 
+\family default
  as a template.
 \layout Section
 
-To Do 
+To Do
 \layout Standard
 
 There are a lot of things that still need to be done to make this a complete
  kernel testing system.
  The following sections will discuss some of the to do items in detail.
-  
+
 \layout Subsection
 
-Configuration Analysis 
+Configuration Analysis
 \layout Standard
 
 While the number of configuration options for the Linux kernel is seen as
@@ -818,7 +818,7 @@
   To create a powerful automated testing system, we need to be able to determine
  what the configuration on the booted box is and then determine which tests
  should be run on that box.
- 
+
 \layout Standard
 
 The Linux kernel has hundreds of configuration options that can be set to
@@ -827,10 +827,10 @@
  it is running.
   There are also many patches that can be applied to the kernel to add functiona
 lity or change behavior.
-   
+
 \layout Subsection
 
-Result Comparison 
+Result Comparison
 \layout Standard
 
 A lot of testing will be done in the life of the Linux Test Project.
@@ -840,16 +840,16 @@
  program and receive a list of items that broke since the last run on that
  machine, or were fixed, or work on another test machine but not on this
  one.
-   
+
 \layout Section
 
-Contact information and updates 
+Contact information and updates
 \layout Literal
 
 URL: http://ltp.sourceforge.net/
 \layout Literal
 
-mailing list: ltp-list@lists.sourceforge.net 
+mailing list: ltp-list@lists.sourceforge.net
 \layout Literal
 
 list archive: https://sourceforge.net/mailarchive/forum.php?forum_name=ltp-list
@@ -858,51 +858,51 @@
 Questions and comments should be sent to the LTP mailing
  list at ltp-list@lists.sourceforge.net.  To subscribe, please go to
  https://lists.sourceforge.net/lists/listinfo/ltp-list.
- 
+
 \layout Standard
 
 The source is also available via CVS.
   See the web site for a web interface and check out instructions.
- 
+
 \layout Section
 
-Glossary 
+Glossary
 \layout Description
 
 Test IEEE/ANSI
-\begin_float footnote 
+\begin_float footnote
 \layout Standard
 
 Kit, Edward, Software Testing in the Real World: Improving the Process.
  P.
  82.
  ACM Press, 1995.
-\end_float 
-: 
-\shape italic 
+\end_float
+:
+\shape italic
 
-\newline 
+\newline
 
-\shape default 
- 
-\shape italic 
+\shape default
+
+\shape italic
 (i)
-\shape default 
+\shape default
  An activity in which a system or component is executed under specified
  conditions, the results are observed or record, and an evaluation is made
  of some aspect of the system or component.
- 
-\shape italic 
 
-\newline 
+\shape italic
 
-\shape default 
- 
-\shape italic 
+\newline
+
+\shape default
+
+\shape italic
 (ii)
-\shape default 
+\shape default
  A set of one or more test cases.
- 
+
 \layout Description
 
 Test\SpecialChar ~
@@ -911,25 +911,25 @@
  bit of functionality.
   A single test case may be one of many test cases for testing the complete
  functionality of a system.
- 
-\newline 
-IEEE/ANSI: 
-\shape italic 
 
-\newline 
+\newline
+IEEE/ANSI:
+\shape italic
+
+\newline
 (i)
-\shape default 
+\shape default
 A set of test inputs, execution conditions, and expected results developed
  for a particular objective.
- 
-\shape italic 
 
-\newline 
+\shape italic
+
+\newline
 (ii)
-\shape default 
+\shape default
  The smallest entity that is always executed as a unit, from beginning to
  end.
- 
+
 \layout Description
 
 Test\SpecialChar ~
@@ -944,7 +944,7 @@
   Frameworks may have complex or very simple API's, drivers and result logging
  mechanisms.
  Examples of frameworks are TETware and DejaGnu.
- 
+
 \layout Description
 
 Test\SpecialChar ~
@@ -953,7 +953,7 @@
   It may be a specification of exit codes,  or a set of libraries for formatting
  messages and determining exit codes.
   In TETware, the tet_result() API is the test harness.
- 
+
 \layout Description
 
 Test\SpecialChar ~
@@ -961,18 +961,18 @@
   A test program can contain one or more test cases.
  The test harness's API allows for reporting/analysis of the individual
  test cases.
- 
+
 \layout Description
 
 Test\SpecialChar ~
 Suite A collection of tests programs, assertions, cases grouped together
  under a framework.
-   
+
 \layout Description
 
 Test\SpecialChar ~
 Tag An identifier that corresponds to a command line which runs a test.
   The tag is a single word that matches a test program with a set of command
  line arguments.
- 
+
 \the_end
diff --git a/doc/ltp-howto.txt b/doc/ltp-howto.txt
index cb1d33a..0f53894 100644
--- a/doc/ltp-howto.txt
+++ b/doc/ltp-howto.txt
@@ -2,7 +2,7 @@
 
 Linux Test Project HOWTO
 
-10 October 2000 
+10 October 2000
 
 Nate Straz
 
@@ -18,61 +18,61 @@
 This document was written to help bring the community up
 to speed on the ins and outs of the Linux Test Project.
 
-1.1 Copyright 
+1.1 Copyright
 
-Copyright (c) 2000 by SGI, Inc. 
+Copyright (c) 2000 by SGI, Inc.
 
 Please freely copy and distribute (sell or give away) this
 document in any format.  It's requested that corrections
 and/or comments be fowarded to the document maintainer.
 You may create a derivative work and distribute it provided
-that you: 
+that you:
 
 * Send your derivative work (in the most suitable format
   such as sgml) to the LDP (Linux Documentation Project)
   or the like for posting on the Internet.  If not the LDP,
-  then let the LDP know where it is available. 
+  then let the LDP know where it is available.
 
 * License the derivative work with this same license or use
   GPL. Include a copyright notice and at least a pointer
-  to the license used. 
+  to the license used.
 
-* Give due credit to previous authors and major contributors. 
+* Give due credit to previous authors and major contributors.
 
 If you're considering making a derived work other than a
 translation, it's requested that you discuss your plans
-with the current maintainer. 
+with the current maintainer.
 
-1.2 Disclaimer 
+1.2 Disclaimer
 
 Use the information in this document at your own risk. I
 disavow any potential liability for the contents of this
 document. Use of the concepts, examples, and/or other content
-of this document is entirely at your own risk. 
+of this document is entirely at your own risk.
 
 All copyrights are owned by their owners, unless specifically
 noted otherwise.  Use of a term in this document should
 not be regarded as affecting the validity of any trademark
-or service mark. 
+or service mark.
 
 Naming of particular products or brands should not be seen
-as endorsements. 
+as endorsements.
 
 You are strongly recommended to take a backup of your system
-before major installation and backups at regular intervals. 
+before major installation and backups at regular intervals.
 
-2 Introduction 
+2 Introduction
 
-2.1 What is the Linux Test Project? 
+2.1 What is the Linux Test Project?
 
 The Linux Test Project (LTP) is an effort to create a set
 of tools and tests to verify the functionality and stability
 of the Linux kernel. We hope this will support Linux development
 by making unit testing more complete and minimizing user
 impact by building a barrier to keep bugs from making it
-to the user. 
+to the user.
 
-2.2 What is wrong with the current testing model? 
+2.2 What is wrong with the current testing model?
 
 The Linux development community utilizes two important (some
 out argue most important) testing techniques in its normal
@@ -84,31 +84,31 @@
 is that of interaction of features. With a continuously
 improving set of tests and tools, developers can get an
 indication of whether their changes may have broken some
-other functionality. 
+other functionality.
 
 There is no such thing as a perfect test base.  It is only
 useful it if keeps up with new and changing functionality,
-and if it actually gets used. 
+and if it actually gets used.
 
-2.3 Are you doing benchmarking? 
+2.3 Are you doing benchmarking?
 
 Not at  this time. We are more interested in functional,
 regression, and stress testing the Linux kernel. Benchmarking
 may be workable to compare the performance among kernel
-versions. 
+versions.
 
-2.4 Are you doing standards testing? 
+2.4 Are you doing standards testing?
 
 No, we are leaving that to the Linux Standards Base (LSB).
  See the Linux Standards Base [http://www.linuxbase.org/||web site]
-for more information. 
+for more information.
 
-3 Structure 
+3 Structure
 
 The basic building block of the test project is a test case
 that consists of a single action and a verification that
 the action worked.  The result of the test case is usually
-restricted to PASS/FAIL. 
+restricted to PASS/FAIL.
 
 A test program is a runnable program that contains one or
 more test cases. Test programs often understand command
@@ -121,16 +121,16 @@
 program and a set of command line options. Test tags are
 the basis for test suites.
 
-4 Writing Tests 
+4 Writing Tests
 
 Writing a test case is a lot easier than most people think.
  Any code that you write to examine how a part of the kernel
 works can be adapted into a test case.  All that is needed
 is a way to report the result of the action to the rest
 of the world.  There are several ways of doing this, some
-more involved than others. 
+more involved than others.
 
-4.1 Exit Style Tests 
+4.1 Exit Style Tests
 
 Probably the simplest way of reporting the results of a test
 case is the exit status of your program.  If your test program
@@ -140,26 +140,26 @@
 status, i.e. exit(0). Any test driver should be able to
 handle this type of error reporting. If a test program has
 multiple test cases you won't know which test case failed,
-but you will know the program that failed. 
+but you will know the program that failed.
 
-4.2 Formatted Output Tests 
+4.2 Formatted Output Tests
 
 The next easiest way of reporting the results is to write
 the results of each test case to standard output. This allows
 for the testing results to be more understandable to both
 the tester and the analysis tools. When the results are
 written in a standard way, tools can be used to analyze
-the results. 
+the results.
 
 5 Testing Tools
 
 The Linux Test Project has not yet decided on a "final" test
 harness.  We have provided a simple solution with ltp-pan to
 make due until a complete solution has been found/created
-that compliments the Linux kernel development process. 
+that compliments the Linux kernel development process.
 Several people have said we should use such and such a test
 harness. Until we find we need a large complex test harness,
-we will apply the KISS concept.   
+we will apply the KISS concept.
 
 5.1 Ltp-pan
 
@@ -182,18 +182,18 @@
 ltp-pan will overwrite the first character with a '#'. The active
 file can be shared between multiple instances of ltp-pan so
 you know which tests were running when the system crashes
-by looking at one file. 
+by looking at one file.
 
 A ltp-pan file contains a list of test tags for ltp-pan to run. The
 format of a ltp-pan file is as follows:
 
 testtag testprogram -o one -p two other command line options
 
-# This is a comment. It is a good idea to describe the test 
+# This is a comment. It is a good idea to describe the test
 
-# tags in your ltp-pan file. Tests programs can have different 
+# tags in your ltp-pan file. Tests programs can have different
 
-# behaviors depending on the command line options so it is 
+# behaviors depending on the command line options so it is
 
 # helpful to describe what each test tag is meant to verify
 or # provoke.
@@ -204,7 +204,7 @@
 
 # 40 Mb mmap() test.
 
-# Creates a 10000 page mmap, touches all of the map, sync's 
+# Creates a 10000 page mmap, touches all of the map, sync's
 
 # it, and munmap()s it.
 
@@ -218,7 +218,7 @@
 
 # Negative test for dup(2) with bad fd
 
-kill09 kill09 
+kill09 kill09
 
 # Basic test for kill(2)
 
@@ -237,11 +237,11 @@
 
 The most basic way to run ltp-pan is by passing the test program
 and parameters on the command line. This will run the single
-program once and wrap the output. 
+program once and wrap the output.
 
 $ ltp-pan -a ltp.zoo -n tutor sleep 4
 
-<<<test_start>>> 
+<<<test_start>>>
 
 tag=cmdln stime=971450564
 
@@ -264,11 +264,11 @@
 
 $ cat ltp.zoo
 
-#9357,tutor,pan/ltp-pan -a ltp.zoo -n tutor sleep 4 
+#9357,tutor,pan/ltp-pan -a ltp.zoo -n tutor sleep 4
 
 #9358,cmdln,sleep 4
 
-$ 
+$
 
 How it works
 
@@ -278,7 +278,7 @@
 parameters that ltp-pan should run. This test is given the tag
 "cmdln." Ltp-pan will run one test randomly, which ends
 up being cmdln since it is the only test that we told ltp-pan
-about. 
+about.
 
 In the active file, ltp.zoo, ltp-pan writes the pid, test tag,
 and part of the command line for the currently running tests.
@@ -291,7 +291,7 @@
 
 We have run one test once. Let's do something a little more
 exciting. Let's run one test several times, at the same
-time. 
+time.
 
 $ ltp-pan -a ltp.zoo -n tutor -x 3 -s 3 -O /tmp sleep 1
 
@@ -309,7 +309,7 @@
 
 <<<test_output>>>
 
- 
+
 
 <<<execution_status>>>
 
@@ -334,7 +334,7 @@
 
 <<<test_output>>>
 
- 
+
 
 <<<execution_status>>>
 
@@ -359,7 +359,7 @@
 
 <<<test_output>>>
 
- 
+
 
 <<<execution_status>>>
 
@@ -378,7 +378,7 @@
 a directory where temporary files can be created to buffer
 the output of each test tag. You can see in the output that
 cmdln ran three times. If the -O option were omitted, your
-test output would be mixed, making it almost worthless. 
+test output would be mixed, making it almost worthless.
 
 * Using a ltp-pan file to run multiple tests
 
@@ -391,42 +391,42 @@
 Ltp-scanner is a results analysis tool that understands the rts
 style output which ltp-pan generates by default. It will produce
 a table summarizing which tests passed and which failed.
-  
+
 
 5.3 The Quick-hitter Package
 
 Many of the tests released use the Quick-hitter test package
 to perform tasks like create and move to a temporary directory,
 handle some common command line parameters, loop, run in
-parallel, handle signals, and clean up. 
+parallel, handle signals, and clean up.
 
 There is an example test case, doc/examples/quickhit.c, which
 shows how the quick-hitter package can be used. The file
 is meant to be a supplement to the documentation, not a
 working test case. Use any of the tests in tests/ as a template.
 
-6 To Do 
+6 To Do
 
 There are a lot of things that still need to be done to make
 this a complete kernel testing system. The following sections
-will discuss some of the to do items in detail.  
+will discuss some of the to do items in detail.
 
-6.1 Configuration Analysis 
+6.1 Configuration Analysis
 
 While the number of configuration options for the Linux kernel
 is seen as a strength to developers and users alike, it
 is a curse to testers.  To create a powerful automated testing
 system, we need to be able to determine what the configuration
 on the booted box is and then determine which tests should
-be run on that box. 
+be run on that box.
 
 The Linux kernel has hundreds of configuration options that
 can be set to compile the kernel.  There are more options
 that can be set when you boot the kernel and while it is
 running.  There are also many patches that can be applied
-to the kernel to add functionality or change behavior.   
+to the kernel to add functionality or change behavior.
 
-6.2 Result Comparison 
+6.2 Result Comparison
 
 A lot of testing will be done in the life of the Linux Test
 Project. Keeping track of the results from all the testing
@@ -434,43 +434,43 @@
 that output from a test machine, feed it to a program and
 receive a list of items that broke since the last run on
 that machine, or were fixed, or work on another test machine
-but not on this one.   
+but not on this one.
 
-7 Contact information and updates 
+7 Contact information and updates
 
 URL: http://ltp.sourceforge.net/
 
-mailing list: ltp-list@lists.sourceforge.net 
+mailing list: ltp-list@lists.sourceforge.net
 
 list archive: https://sourceforge.net/mailarchive/forum.php?forum_name=ltp-list
 
 Questions and comments should be sent to the LTP mailing
 list at ltp-list@lists.sourceforge.net.  To subscribe, please go to
-https://lists.sourceforge.net/lists/listinfo/ltp-list. 
+https://lists.sourceforge.net/lists/listinfo/ltp-list.
 
 The source is also available via CVS.  See the web site for
-a web interface and check out instructions. 
+a web interface and check out instructions.
 
-8 Glossary 
+8 Glossary
 
 Test IEEE/ANSI([footnote] Kit, Edward, Software Testing in the Real World:
-Improving the Process. P. 82. ACM Press, 1995.) : 
+Improving the Process. P. 82. ACM Press, 1995.) :
  (i) An activity in which a system or component is executed
 under specified conditions, the results are observed or
 record, and an evaluation is made of some aspect of the
-system or component. 
- (ii) A set of one or more test cases. 
+system or component.
+ (ii) A set of one or more test cases.
 
 Test Case A test assertion with a single result that
   is being verified. This allows designations such as PASS
   or FAIL to be applied to a single bit of functionality.
    A single test case may be one of many test cases for
-  testing the complete functionality of a system. 
-  IEEE/ANSI: 
+  testing the complete functionality of a system.
+  IEEE/ANSI:
   (i)A set of test inputs, execution conditions, and expected
-  results developed for a particular objective. 
+  results developed for a particular objective.
   (ii) The smallest entity that is always executed as a unit,
-  from beginning to end. 
+  from beginning to end.
 
 Test Driver A program that handles the execution of
   test programs. It is responsible for starting the test
@@ -480,22 +480,22 @@
 Test Framework A mechanism for organizing a group of
   tests.  Frameworks may have complex or very simple API's,
   drivers and result logging mechanisms. Examples of frameworks
-  are TETware and DejaGnu. 
+  are TETware and DejaGnu.
 
 Test Harness A Test harness is the mechanism that connects
   a test program to a test framework.  It may be a specification
   of exit codes,  or a set of libraries for formatting messages
   and determining exit codes.  In TETware, the tet_result()
-  API is the test harness. 
+  API is the test harness.
 
 Test Program A single invokable program.  A test program
   can contain one or more test cases. The test harness's
   API allows for reporting/analysis of the individual test
-  cases. 
+  cases.
 
 Test Suite A collection of tests programs, assertions,
-  cases grouped together under a framework.   
+  cases grouped together under a framework.
 
 Test Tag An identifier that corresponds to a command
   line which runs a test.  The tag is a single word that
-  matches a test program with a set of command line arguments. 
+  matches a test program with a set of command line arguments.
diff --git a/doc/ltp-run-files.txt b/doc/ltp-run-files.txt
index 620af8d..5da5747 100644
--- a/doc/ltp-run-files.txt
+++ b/doc/ltp-run-files.txt
@@ -1,4 +1,4 @@
-List of scripts or executables that need to be run for complete LTP execution. 
+List of scripts or executables that need to be run for complete LTP execution.
 The tests listed are NOT executed with the runalltests.sh script
 
 runalltests.sh
@@ -18,7 +18,7 @@
  - rpc
  - nfs
 
-To test filesystem with LVM 
+To test filesystem with LVM
 - ltpfslvm.sh
 w/o LVM
 - ltpfsnolvm.sh
diff --git a/doc/man1/Makefile b/doc/man1/Makefile
index faa189e..fa5ae4d 100644
--- a/doc/man1/Makefile
+++ b/doc/man1/Makefile
@@ -1,22 +1,22 @@
 #
 #    man1 Makefile.
-# 
+#
 #    Copyright (C) 2009, Cisco Systems Inc.
-# 
+#
 #    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.
-# 
+#
 # Garrett Cooper, July 2009
 #
 
diff --git a/doc/man1/doio.1 b/doc/man1/doio.1
index 6d7c5eb..c61e87e 100644
--- a/doc/man1/doio.1
+++ b/doc/man1/doio.1
@@ -2,42 +2,42 @@
 .\" $Id: doio.1,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
-.TH doio 1 10/13/93 "UNICOS Testing" 
+.TH doio 1 10/13/93 "UNICOS Testing"
 .SH NAME
 \*Cdoio\fR - Executes I/O Requests
 .SH IMPLEMENTATION
 All Cray Research systems
 .SH SYNOPSIS
-\*Cdoio\fR 
+\*Cdoio\fR
 .SH DESCRIPTION
 .QS
 Doio is one of the device-beater tools.
diff --git a/doc/man1/iogen.1 b/doc/man1/iogen.1
index 7732be0..0311524 100644
--- a/doc/man1/iogen.1
+++ b/doc/man1/iogen.1
@@ -2,42 +2,42 @@
 .\" $Id: iogen.1,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
-.TH iogen 1 10/13/93 "UNICOS Testing" 
+.TH iogen 1 10/13/93 "UNICOS Testing"
 .SH NAME
 \*Ciogen\fR - Generate I/O Requests
 .SH IMPLEMENTATION
 All Cray Research systems
 .SH SYNOPSIS
-\*Ciogen\fR 
+\*Ciogen\fR
 .SH DESCRIPTION
 .QS
 Iogen is one of the device-beater tools.
diff --git a/doc/man1/ltp-bump.1 b/doc/man1/ltp-bump.1
index 7ffda2f..9f147aa 100644
--- a/doc/man1/ltp-bump.1
+++ b/doc/man1/ltp-bump.1
@@ -2,33 +2,33 @@
 .\" $Id: ltp-bump.1,v 1.1 2009/05/19 09:39:11 subrata_modak Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH BUMP 1 "14 Sep 2000" "LTP" "Linux Test Project"
diff --git a/doc/man1/ltp-pan.1 b/doc/man1/ltp-pan.1
index 460db6b..f86e879 100644
--- a/doc/man1/ltp-pan.1
+++ b/doc/man1/ltp-pan.1
@@ -2,33 +2,33 @@
 .\" $Id: ltp-pan.1,v 1.1 2009/05/19 09:39:11 subrata_modak Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .TH PAN 1 "21 Jan 2011" "LTP" "Linux Test Project"
 .SH NAME
@@ -141,9 +141,9 @@
 \fI-x\fP (in other words, \fI-x\fP is always satisfied).
 .TP 1i
 \fB-t #s|m|h|d \fItime\fB
-Indicates the length that ltp-pan should run tests. By default this is not set.  If specified, 
-the \fI-s\fP flag is automatically set to 0 (infinite).  Presumably, you want as many 
-tests ran during this timeframe. Duration is measured in \fIs\fPeconds, \fIm\fPinutes, 
+Indicates the length that ltp-pan should run tests. By default this is not set.  If specified,
+the \fI-s\fP flag is automatically set to 0 (infinite).  Presumably, you want as many
+tests ran during this timeframe. Duration is measured in \fIs\fPeconds, \fIm\fPinutes,
 \fIh\fPours, or \fId\fPays.
 .TP 1i
 \fB-x \fInactive\fB
diff --git a/doc/man3/Makefile b/doc/man3/Makefile
index 46d6729..1a7a5a3 100644
--- a/doc/man3/Makefile
+++ b/doc/man3/Makefile
@@ -1,22 +1,22 @@
 #
 #    man3 Makefile.
-# 
+#
 #    Copyright (C) 2009, Cisco Systems Inc.
-# 
+#
 #    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.
-# 
+#
 # Garrett Cooper, July 2009
 #
 
diff --git a/doc/man3/bytes_by_prefix.3 b/doc/man3/bytes_by_prefix.3
index ae20b60..98a401a 100644
--- a/doc/man3/bytes_by_prefix.3
+++ b/doc/man3/bytes_by_prefix.3
@@ -2,33 +2,33 @@
 .\" $Id: bytes_by_prefix.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH BYTES_BY_PREFIX 3 07/25/2000 "Linux Test Project"
@@ -76,8 +76,8 @@
 .RE
 .br
 \fBbytes_by_prefix("5b")\fR
-.br 
-.RS 8 
+.br
+.RS 8
 Returns 5 * BSIZE.
 .RE
 \fBbytes_by_prefix("1.5m")\fR
diff --git a/doc/man3/forker.3 b/doc/man3/forker.3
index b06c1e5..fb460fb 100644
--- a/doc/man3/forker.3
+++ b/doc/man3/forker.3
@@ -2,33 +2,33 @@
 .\" $Id: forker.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH FORKER 3 07/25/2000 "Linux Test Project"
@@ -38,7 +38,7 @@
 background \- fork a process and return control to caller
 
 .SH SYNOPSIS
-int 
+int
 .br
 \fBbackground\fR(\fIprefix\fR)
 .br
diff --git a/doc/man3/get_attrib.3 b/doc/man3/get_attrib.3
index 52c673a..263bae3 100644
--- a/doc/man3/get_attrib.3
+++ b/doc/man3/get_attrib.3
@@ -2,33 +2,33 @@
 .\" $Id: get_attrib.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH GET_ATTRIB 3 07/25/2000 "Linux Test Project"
diff --git a/doc/man3/parse_open_flags.3 b/doc/man3/parse_open_flags.3
index ec55795..628fa66 100644
--- a/doc/man3/parse_open_flags.3
+++ b/doc/man3/parse_open_flags.3
@@ -2,33 +2,33 @@
 .\" $Id: parse_open_flags.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH PARSE_OPEN_FLAGS 3 07/25/2000 "Linux Test Project"
diff --git a/doc/man3/parse_opts.3 b/doc/man3/parse_opts.3
index b55900d..20fc01a 100644
--- a/doc/man3/parse_opts.3
+++ b/doc/man3/parse_opts.3
@@ -2,33 +2,33 @@
 .\" $Id: parse_opts.3,v 1.3 2000/08/31 18:40:28 nstraz Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH PARSE_OPTS 3 "21 Jan 2011" "LTP" "Linux Test Project"
@@ -49,7 +49,7 @@
 \fIargc\fP and \fIargv\fP are the argument count and array as passed to the
 main() function on program invocation. User options may be specified in the
 \fIoption_array\fR argument. A help function may be specified in the
-\fIuser_help_func\fP argument.  
+\fIuser_help_func\fP argument.
 .sp
 \fIoption_array\fP is a pointer to the first element of an array of
 \fBoption_t\fP.  If no additional options are needed, pass NULL.
@@ -90,14 +90,14 @@
 .SH "STANDARD OPTIONS"
 Below is a list of the standard options defined in \fBparse_opts()\fR:
 .TP
-.BI \-c " n" 
+.BI \-c " n"
 Run \fIn\fR copies of the test in parallel.  This is done by forking \fIn\fR
 times and running the test as usual.  If \-i or \-I are specified, each process
 will run for that amount of time.
 .TP
 .B \-e
 Turn on logging all errno's received.  This option is to facilitate security
-audit testing for MLS.  
+audit testing for MLS.
 .TP
 .B \-f
 Suppresses functional testing messages.
@@ -105,11 +105,11 @@
 .B \-h
 Print help message.  The standard options will be printed first, then a call to
 .I user_help_func()
-will be made.  
+will be made.
 .TP
 .BI \-i " n"
 Run for \fIn\fR iterations. A value of 0 makes the test loop infinitely.
-(default 1) 
+(default 1)
 .TP
 .BI \-I " x"
 The test will loop until \fIx\fR seconds have passed. (default 0.0)
@@ -131,7 +131,7 @@
 .SH "RETURN VALUE"
 .B parse_opts()
 returns a NULL pointer upon successful completion.  If an error occurs a
-pointer to an error message is returned.  
+pointer to an error message is returned.
 .SH "EXAMPLE"
 The following example defines two options, one with an argument, one without.
 .sp
@@ -161,7 +161,7 @@
 	return 0;
 }
 .fi
-.sp 
+.sp
 The following example shows how to use \fBparse_opts()\fR without defining new options.
 .sp
 .nf
@@ -171,7 +171,7 @@
 
 	if ((msg = parse_opts(argc, argv, NULL, NULL)) != NULL)
 		error_exit(msg);
-	
+
 	return 0;
 }
 .fi
diff --git a/doc/man3/parse_ranges.3 b/doc/man3/parse_ranges.3
index d7830a3..7afbc0c 100644
--- a/doc/man3/parse_ranges.3
+++ b/doc/man3/parse_ranges.3
@@ -2,33 +2,33 @@
 .\" $Id: parse_ranges.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH PARSE_RANGES 3 07/25/2000 "Linux Test Project"
diff --git a/doc/man3/pattern.3 b/doc/man3/pattern.3
index 76b3988..2e870e5 100644
--- a/doc/man3/pattern.3
+++ b/doc/man3/pattern.3
@@ -1,34 +1,34 @@
-.\" 
+.\"
 .\" $Id: pattern.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH PATTERN 3 07/25/2000 "Linux Test Project"
@@ -72,12 +72,12 @@
 
 .RE
 .br
-\fBpattern_fill(buf, sizeof(buf), "abcde", 5, 3)\fR 
-.br 
-.RS 8 
- 
+\fBpattern_fill(buf, sizeof(buf), "abcde", 5, 3)\fR
+.br
+.RS 8
+
 fill buf with repeated occurrences of "deabc"
- 
+
 .RE
 
 .SH DIAGNOSTICS
diff --git a/doc/man3/random_range.3 b/doc/man3/random_range.3
index 025b21c..b157b1e 100644
--- a/doc/man3/random_range.3
+++ b/doc/man3/random_range.3
@@ -2,33 +2,33 @@
 .\" $Id: random_range.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH random_range 3 07/25/2000 "Linux Test Project"
@@ -50,7 +50,7 @@
 random_range() chooses a random number in the range min-max (inclusive) which
 is a multiple of mult.  min and max may be any integer, but mult must be
 a positive integer greater than 0.  errp is a char ** which is used to detect
-error conditions.  If errp is not NULL, *errp will be set to point to an 
+error conditions.  If errp is not NULL, *errp will be set to point to an
 error message.  If errp is NULL, error conditions cannot be detected by the
 caller.  If mult is 1 (the most common case), there are no possible error
 conditions, and the return value is guaranteed to be valid.
@@ -63,7 +63,7 @@
 If mask is zero, zero is returned.
 
 random_range() functions uses lrand48() internally.  If the range is bigger
-than will fit in a 32 bit long (2G), lrand48() with a 
+than will fit in a 32 bit long (2G), lrand48() with a
 a internal recursive algorithm to produce a random number.
 
 .SH EXAMPLES
@@ -107,7 +107,7 @@
 On CRAY systems, random_range(), random_rangel(), random_rangell()
 all have the 64 bit limit since int, long and long long are always 64 bits.
 
-On IRIX systems, random_range() can only produce a 32 number. 
+On IRIX systems, random_range() can only produce a 32 number.
 random_rangel() when compiled as a 32 bit object is still limited to 32 bit
 number.  random_rangell() can be used to return a value bigger than 32 bits
 even when compiled as a 32 bit object.
diff --git a/doc/man3/random_range_seed.3 b/doc/man3/random_range_seed.3
index 6b4d131..8c76c2a 100644
--- a/doc/man3/random_range_seed.3
+++ b/doc/man3/random_range_seed.3
@@ -2,33 +2,33 @@
 .\" $Id: random_range_seed.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH random_range 3 07/25/2000 "Linux Test Project"
@@ -50,7 +50,7 @@
 random_range() chooses a random number in the range min-max (inclusive) which
 is a multiple of mult.  min and max may be any integer, but mult must be
 a positive integer greater than 0.  errp is a char ** which is used to detect
-error conditions.  If errp is not NULL, *errp will be set to point to an 
+error conditions.  If errp is not NULL, *errp will be set to point to an
 error message.  If errp is NULL, error conditions cannot be detected by the
 caller.  If mult is 1 (the most common case), there are no possible error
 conditions, and the return value is guaranteed to be valid.
@@ -63,7 +63,7 @@
 If mask is zero, zero is returned.
 
 random_range() functions uses lrand48() internally.  If the range is bigger
-than will fit in a 32 bit long (2G), lrand48() with a 
+than will fit in a 32 bit long (2G), lrand48() with a
 a internal recursive algorithm to produce a random number.
 
 .SH EXAMPLES
@@ -107,7 +107,7 @@
 On CRAY systems, random_range(), random_rangel(), random_rangell()
 all have the 64 bit limit since int, long and long long are always 64 bits.
 
-On IRIX systems, random_range() can only produce a 32 number. 
+On IRIX systems, random_range() can only produce a 32 number.
 random_rangel() when compiled as a 32 bit object is still limited to 32 bit
 number.  random_rangell() can be used to return a value bigger than 32 bits
 even when compiled as a 32 bit object.
diff --git a/doc/man3/rmobj.3 b/doc/man3/rmobj.3
index da8be36..84e304e 100644
--- a/doc/man3/rmobj.3
+++ b/doc/man3/rmobj.3
@@ -2,33 +2,33 @@
 .\" $Id: rmobj.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH RMOBJ 3 07/25/2000 "Linux Test Project"
diff --git a/doc/man3/string_to_tokens.3 b/doc/man3/string_to_tokens.3
index 9d864ff..6eb0677 100644
--- a/doc/man3/string_to_tokens.3
+++ b/doc/man3/string_to_tokens.3
@@ -2,33 +2,33 @@
 .\" $Id: string_to_tokens.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH STRING_TO_TOKEN 3 07/25/2000 "Linux Test Project"
diff --git a/doc/man3/tst_res.3 b/doc/man3/tst_res.3
index 98e92e7..719a6b0 100644
--- a/doc/man3/tst_res.3
+++ b/doc/man3/tst_res.3
@@ -2,33 +2,33 @@
 .\" $Id: tst_res.3,v 1.2 2008/06/10 05:52:02 subrata_modak Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH TST_RES 3 01/21/2011 "Linux Test Project"
@@ -116,7 +116,7 @@
 \fBNOTE:\fR These routines use static space internally to hold the
 expanded message.  The maximum size allowed for an expanded message is
 2048 bytes.
-.TP 10   
+.TP 10
 .I func
 pointer to a function which performs either the cleanup necessary prior to
 exiting the test or some function executed at the end of each iteration of a
diff --git a/doc/man3/tst_set_error.3 b/doc/man3/tst_set_error.3
index afe7f0c..d5aa132 100644
--- a/doc/man3/tst_set_error.3
+++ b/doc/man3/tst_set_error.3
@@ -2,33 +2,33 @@
 .\" $Id: tst_set_error.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH TST_SET_ERROR 3 07/25/2000 "Linux Test Project"
@@ -55,7 +55,7 @@
 
 .SH DESCRIPTION
 These two functions provide a simple interface to allow
-a programmer set and clear the global variables in 
+a programmer set and clear the global variables in
 \fBTst_error\fR defined in \fItest_error.c\fR.
 
 The purpose of these global variables to provide space
@@ -68,11 +68,11 @@
 like:
 
 .nf
-    int  te_line;               
+    int  te_line;
 				/* line where last error was reported. */
 				/* Use "__LINE__" and let compiler do */
 				/* the rest */
-    int  te_level;              
+    int  te_level;
 				/* If set, will prevent current stored */
 				/* error to not be overwritten */
     char te_func[TST_ERR_FUNC_SIZE+1];
@@ -145,6 +145,6 @@
 
 .SH BUGS
 There is no space overwrite preventions on the \fBTst_error.te_mesg\fR field.
-If \fIfmt\fR parameter of \fBtst_set_error\fR expands to a string 
+If \fIfmt\fR parameter of \fBtst_set_error\fR expands to a string
 larger than the space in \fBTst_error.te_mesg\fR, you will start overwriting
 memory.  This field contains 1024 bytes, which is fairly big error message.
diff --git a/doc/man3/tst_sig.3 b/doc/man3/tst_sig.3
index 81afe19..d96ee99 100644
--- a/doc/man3/tst_sig.3
+++ b/doc/man3/tst_sig.3
@@ -2,33 +2,33 @@
 .\" $Id: tst_sig.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH TST_SIG 3 07/25/2000 "Linux Test Project"
@@ -82,7 +82,7 @@
 as the \fIhandler\fR argument.  Upon receipt of an unexpected
 signal, the \fIdefault handler\fR will generate
 \fItst_res\fR(3) messages for all test results that had
-not been completed at the time of the signal, execute the 
+not been completed at the time of the signal, execute the
 \fIcleanup\fR routine, if provided, and call \fItst_exit\fR.
 Note: if the \fIdefault handler\fR is used, the variables
 \fBTCID\fR and \fBTst_count\fR must be defined and available to
@@ -127,7 +127,7 @@
 	 * set up for unexpected signals:
 	 *		\fIfork\fR() system calls will be executed during the test run
 	 *		use user-defined signal handler
-	 *		use cleanup 
+	 *		use cleanup
 	 */
 	tst_sig(FORK, handler, cleanup);
 
diff --git a/doc/man3/tst_tmpdir.3 b/doc/man3/tst_tmpdir.3
index 94656b1..ae903a3 100644
--- a/doc/man3/tst_tmpdir.3
+++ b/doc/man3/tst_tmpdir.3
@@ -2,33 +2,33 @@
 .\" $Id: tst_tmpdir.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH TST_TMPDIR 3 07/25/2000 "Linux Test Project"
diff --git a/doc/man3/usctest.3 b/doc/man3/usctest.3
index b90509e..4cae704 100644
--- a/doc/man3/usctest.3
+++ b/doc/man3/usctest.3
@@ -1,33 +1,33 @@
 .\" $Id: usctest.3,v 1.2 2000/08/31 18:40:28 nstraz Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH USCTEST 3 01/21/2011 "Linux Test Project"
@@ -43,9 +43,9 @@
 \fBMacros\fR
 .in +1
 .br
-\fBTEST_PAUSE\fR 
+\fBTEST_PAUSE\fR
 .br
-\fBTEST_PAUSEF(\fIhand\fB)\fR 
+\fBTEST_PAUSEF(\fIhand\fB)\fR
 .br
 \fBTEST(\fIsyscall\fB)\fR
 .br
@@ -79,21 +79,21 @@
 .sp
 The \fBTEST_PAUSEF(\fIhand\fB)\fR macro checks if the global variable STD_PAUSE is set.  If so, it
 pauses for a SIGUSR1 before continuing execution.  The \fIhand\fR argument is a function to be used
-to handle the SIGUSR1 signal when it is received.  
+to handle the SIGUSR1 signal when it is received.
 After the signal is processed, the previous action is replaced for SIGUSR1.
 .sp
-The \fBTEST(\fIsyscall\fB)\fR macro executes (\fIsyscall\fR) and times its execution. 
+The \fBTEST(\fIsyscall\fB)\fR macro executes (\fIsyscall\fR) and times its execution.
 It saves the max time, min time, accumulated time, and
 execution count, if STD_TIMING_ON is set.
 .sp
-.\"The\fBTEST_CALLER(\fIsyscall\fB, \fIpid\fB)\fR macro executes (\fIsyscall\fR) and times its execution. 
+.\"The\fBTEST_CALLER(\fIsyscall\fB, \fIpid\fB)\fR macro executes (\fIsyscall\fR) and times its execution.
 .\"It saves the max time, min time, accumulated time, and
 .\"execution count, if STD_TIMING_ON is set and if \fIpid\fR is equal to the current pid.
 .\".sp
 The \fBTEST_VOID(\fIsyscall\fB)\fR macro works exactly the same as the \fBTEST()\fR
 macro except that it does NOT set the global \fBTEST_RETURN\fR.  It is intended
 to be used with system calls that do not have a return value.
-.sp 
+.sp
 The \fBTEST_CLEANUP\fR macro prints timing statistics,
 accumulated through the TEST macro, if STD_TIMING_ON is set.  Also, prints the \fBerrno\fR return
 counts as logged by the \fBTEST_ERROR_LOG\fR macro, if STD_ERR_LOG is set.  \fBTEST_CLEANUP\fR uses
@@ -148,7 +148,7 @@
 
 	for (lc=0; TEST_LOOPING(lc); lc++) {
 		TEST(open("file", O_RDWR))
-	
+
 		if (TEST_RETURN == -1) {
 			TEST_ERROR_LOG(TEST_ERRNO)
 			/* BREAK test case, or whatever... */
diff --git a/doc/man3/write_log.3 b/doc/man3/write_log.3
index c5ceffb..7783226 100644
--- a/doc/man3/write_log.3
+++ b/doc/man3/write_log.3
@@ -2,33 +2,33 @@
 .\" $Id: write_log.3,v 1.1 2000/07/27 16:59:03 alaffin Exp $
 .\"
 .\" Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
-.\" 
+.\"
 .\" This program is free software; you can redistribute it and/or modify it
 .\" under the terms of version 2 of the GNU General Public License as
 .\" published by the Free Software Foundation.
-.\" 
+.\"
 .\" This program is distributed in the hope that it would be useful, but
 .\" WITHOUT ANY WARRANTY; without even the implied warranty of
 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-.\" 
+.\"
 .\" Further, this software is distributed without any warranty that it is
 .\" free of the rightful claim of any third person regarding infringement
 .\" or the like.  Any license provided herein, whether implied or
 .\" otherwise, applies only to this software file.  Patent licenses, if
 .\" any, provided herein do not apply to combinations of this program with
 .\" other software, or any other product whatsoever.
-.\" 
+.\"
 .\" You should have received a copy of the GNU General Public License along
 .\" with this program; if not, write the Free Software Foundation, Inc., 59
 .\" Temple Place - Suite 330, Boston MA 02111-1307, USA.
-.\" 
+.\"
 .\" Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 .\" Mountain View, CA  94043, or:
-.\" 
-.\" http://www.sgi.com 
-.\" 
-.\" For further information regarding this notice, see: 
-.\" 
+.\"
+.\" http://www.sgi.com
+.\"
+.\" For further information regarding this notice, see:
+.\"
 .\" http://oss.sgi.com/projects/GenInfo/NoticeExplan/
 .\"
 .TH WRITE_LOG 3 07/25/2000 "Linux Test Project"
@@ -50,12 +50,12 @@
 The write_log package is a set of routines for creating a history file
 of write operations done to a set of files.
 
-It is assumed that the actual pattern written to the file will be 
+It is assumed that the actual pattern written to the file will be
 repeated occurrences of a string whose length is no greater than
 WLOG_MAX_PATTERN.  See the pattern(3) man
 page for routines to conveniently generate buffers of this kind.
 
-wlog_open() initializes the history file contained in wfile->w_file, and 
+wlog_open() initializes the history file contained in wfile->w_file, and
 fills in the wfile structure.  If trunc is non-zero, and existing history
 file by the same name will be truncated.  If no history file exists, it
 will be created with the specified mode.
@@ -71,7 +71,7 @@
 at the indicated offset.  This, along with the w_done field in the wlog_rec
 structure, provide a mechanism for 'pre-logging' a write, doing the write
 operation, and then overlaying the original record with the w_done flag
-set to 1.  This is useful for async writes which may not complete in a 
+set to 1.  This is useful for async writes which may not complete in a
 timely manner.  It is also useful for seeing which write operations were
 pending at the time of a system crash - the ones whose w_done flag is 0 have
 not yet been verified as complete.
@@ -100,7 +100,7 @@
 writes to the same area of a file.  Note that the entire file
 does not need to be locked, only the portion being written to.
 If the calling program can guarantee that there will never be more
-than 1 process writing to the same area of a file at the same time, 
+than 1 process writing to the same area of a file at the same time,
 locking is not necessary.  (Note:  UNICOS Shared File Systems do not support
 record locking.  The whole file is silently locked.)
 
diff --git a/doc/network_stress.txt b/doc/network_stress.txt
index 971e1ea..716a6a6 100644
--- a/doc/network_stress.txt
+++ b/doc/network_stress.txt
@@ -155,11 +155,11 @@
 broken_ip4-version01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in version field
-	
+
 broken_ip4-ihl01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the header length field
-	
+
 broken_ip4-totlen01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the total length field
@@ -171,11 +171,11 @@
 broken_ip4-protcol01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the protocol field
-	
+
 broken_ip4-checksum01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the checksum field
-	
+
 broken_ip4-dstaddr01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets whose destination address is wrong
@@ -277,7 +277,7 @@
 	Verify that the kernel, when the Duplicate SACK support is off, is not
 	crashed by a TCP connection on an unreliable network (Namely, some of
 	the packet is lost, some of them is duplicated).
-	
+
 uni-sackoff
 	Verify that the kernel, when both SACK and Duplicate SACK supports are
 	off, is not crashed by a TCP connection on an unreliable network
@@ -307,8 +307,8 @@
 	    test05 - IPsec [ ESP / tunnel ]
 	    test06 - IPComp [ transport ]
 	    test07 - IPComp [ tunnel ]
-	    test08 - delayed network - without IPsec / IPComp 
-	    test09 - delayed network - IPsec [ AH / transport ] 
+	    test08 - delayed network - without IPsec / IPComp
+	    test09 - delayed network - IPsec [ AH / transport ]
 	    test10 - delayed network - IPsec [ AH / tunnel ]
 	    test11 - delayed network - IPsec [ ESP / transport ]
 	    test12 - delayed network - IPsec [ ESP / tunnel ]
@@ -368,7 +368,7 @@
 	Verify that the kernel is not crashed when joining joining plural IPv4
 	multicast groups on separate socket, then receiving a large number of
 	Multicast Address Specific Query
-	
+
 mcast4-queryfld06
 	Verify that the kernel is not crashed when joining joining plural IPv4
 	multicast groups on separate socket, then receiving a large number of
@@ -424,7 +424,7 @@
 	Verify that the kernel is not crashed when joining joining plural IPv6
 	multicast groups on separate socket, then receiving a large number of
 	Multicast Address Specific Query
-	
+
 mcast6-queryfld06
 	Verify that the kernel is not crashed when joining joining plural IPv6
 	multicast groups on separate socket, then receiving a large number of
diff --git a/doc/style-guide.txt b/doc/style-guide.txt
index 414e70e..aada028 100644
--- a/doc/style-guide.txt
+++ b/doc/style-guide.txt
@@ -11,7 +11,7 @@
 in this document.
 
 Changelog:
- 
+
  * Initial version: Garrett Cooper <yanegomi@gmail.com>
  * Reformated for asciidoc: Cyril Hrubis <chrubis@suse.cz>
 **********************************************************************
@@ -30,13 +30,13 @@
 
 No, only use libltp in non-forked processes and functions +perror(3)+ /
 +exit(3)+ otherwise. Reason being:
- 
+
  * Calling +tst_res()+ from multiple processes is messy.
  * Calling cleanup can break test execution.
  * Establishing a complicated scheme of tracking the testcase state
    for teardown is undesirable.
 
-2. Use SAFE_* macros 
+2. Use SAFE_* macros
 ~~~~~~~~~~~~~~~~~~~~
 
 Use +SAFE_*+ macros (see +safe_macros.h+) instead of bare calls to libcalls and
@@ -129,12 +129,12 @@
 if (fork() == -1)
 	tst_brkm(TBROK, cleanup, "fork # 2 failed");
 ----------------------------------------------------
-    
+
 If you can't determine where the failure has occurred in a testcase based on
 the entire content of the failure messages, then determining the cause of
 failure may be impossible.
 
-10. Reporting errno and the TEST() macro 
+10. Reporting errno and the TEST() macro
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 Don't roll your own +errno+ / +strerror()+ printout when you use +tst_res()+
@@ -149,14 +149,14 @@
 exp_errno = ENOENT;
 
 if (fn() == -1) {
-	/* 
+	/*
 	 * Using TERRNO here is valid because the error case
 	 * isn't static.
 	 */
-	if (exp_errno == ENOENT) 
+	if (exp_errno == ENOENT)
 		tst_resm(TPASS|TERRNO,
 		    "fn failed as expected");
-	/* 
+	/*
 	 * Using strerror(TEST_ERRNO) here is valid because
 	 * the error case isn't static.
 	 */
@@ -261,10 +261,10 @@
  1. Always use libltp for Linux centric tests. No ifs, ands, or buts
     about it.
  2. Sort headers, like:
-    
+
 [source,c]
 ---------------------------------------------------------------------------
-/* 
+/*
  * sys/types.h is usually (but not always) required by POSIX
  * APIs.
  */
@@ -318,7 +318,7 @@
 Your testcase should be runnable as root and non-root. What does that mean? It
 should fail gracefull as non-root if it has insufficient privileges, or use
 +tst_require_root(NULL)+ if root access is absolutely required.
- 
+
 A lot of newer testcases don't honor this fact and it causes random
 unnecessary errors when run as non-privileged users.
 
diff --git a/doc/tpm-commands.txt b/doc/tpm-commands.txt
index e905fb0..4982a6b 100644
--- a/doc/tpm-commands.txt
+++ b/doc/tpm-commands.txt
@@ -36,7 +36,7 @@
 cpio
 ----
 cpio_test.sh
-	
+
 	Tests the basic functionality of `cpio` command
 
 
@@ -44,8 +44,8 @@
 cron
 ----
 cron_test.sh
-	
-	This testcase tests if crontab <filename> installs the cronjob 
+
+	This testcase tests if crontab <filename> installs the cronjob
 	and cron schedules the job correctly.
 
 
@@ -61,11 +61,11 @@
 fileutils
 ---------
 cp_tests.sh
-	
+
 	Test basic functionality of `cp` command
 
 ln_tests.sh
-	
+
 	Test basic functionality of `ln` command
 
 mkdir_tests.sh
@@ -97,7 +97,7 @@
 mail
 ----
 mail_tests.sh
-	
+
 	Test basic functionality of `mail` command.
 
 
@@ -105,7 +105,7 @@
 tar
 ---
 tar_tests.sh
-	
+
 	Test basic functionality of `tar` command.
 
 
diff --git a/include/config.h.default b/include/config.h.default
index 15ff210..96e25c4 100644
--- a/include/config.h.default
+++ b/include/config.h.default
@@ -1,4 +1,4 @@
-/* include/config.h.default. 
+/* include/config.h.default.
    A semi-sane set of defaults for more recent Linux platforms. Please tailor
    to meet your needs.
  */
diff --git a/include/mk/config.mk.default b/include/mk/config.mk.default
index 8248071..bd364a6 100644
--- a/include/mk/config.mk.default
+++ b/include/mk/config.mk.default
@@ -54,10 +54,10 @@
 
 RPMBUILD		?= rpmbuild
 
-CPPFLAGS		:= 
+CPPFLAGS		:=
 CFLAGS			:= -g -O2
-LDLIBS			:= 
-LDFLAGS			:= 
+LDLIBS			:=
+LDFLAGS			:=
 
 DEBUG_CFLAGS		?= -g
 DEBUG_CXXFLAGS		?= $(DEBUG_CFLAGS)
diff --git a/include/mk/features.mk.default b/include/mk/features.mk.default
index 86e4d4c..c9edc1c 100644
--- a/include/mk/features.mk.default
+++ b/include/mk/features.mk.default
@@ -38,7 +38,7 @@
 ifeq ($(UCLINUX),1)
 WITH_POWER_MANAGEMENT_TESTSUITE	:= no
 else
-WITH_POWER_MANAGEMENT_TESTSUITE	:= 
+WITH_POWER_MANAGEMENT_TESTSUITE	:=
 endif
 
 # Enable testcases/open_posix_testsuite's compile and install?
diff --git a/include/mk/functions.mk b/include/mk/functions.mk
index fc58737..9c9bca2 100644
--- a/include/mk/functions.mk
+++ b/include/mk/functions.mk
@@ -69,7 +69,7 @@
 
 #
 # Set SUBDIRS to the subdirectories where Makefiles were found.
-# 
+#
 define get_make_dirs
 SUBDIRS	?= $$(subst $$(abs_srcdir)/,,$$(patsubst %/Makefile,%,$$(wildcard $$(abs_srcdir)/*/Makefile)))
 SUBDIRS	:= $$(filter-out $$(FILTER_OUT_DIRS),$$(SUBDIRS))
diff --git a/include/mk/gitignore.mk b/include/mk/gitignore.mk
index b9932fb..984b6e8 100644
--- a/include/mk/gitignore.mk
+++ b/include/mk/gitignore.mk
@@ -32,7 +32,7 @@
 # evaluation in top-level Makefile.
 .PHONY: gitignore_clean
 gitignore_clean:
-	$(RM) -f $(BEFORE) $(AFTER) 
+	$(RM) -f $(BEFORE) $(AFTER)
 
 $(BEFORE):
 	$(MAKE) distclean
@@ -47,5 +47,5 @@
 	# Set everything in autoconf land back to a sane state.
 	$(MAKE) distclean
 
-.gitignore: | $(BEFORE) $(AFTER) 
+.gitignore: | $(BEFORE) $(AFTER)
 	diff -u $(BEFORE) $(AFTER) | grep '^+' | sed -e 's,^\+,,g' > $@
diff --git a/include/mk/lib.mk b/include/mk/lib.mk
index 880d9e0..96c08eb 100644
--- a/include/mk/lib.mk
+++ b/include/mk/lib.mk
@@ -51,7 +51,7 @@
 LIBSRCS		?= $(wildcard $(abs_srcdir)/*.c)
 
 ifdef MAKE_3_80_COMPAT
-LIBSRCS		:= $(call MAKE_3_80_abspath,$(LIBSRCS)) 
+LIBSRCS		:= $(call MAKE_3_80_abspath,$(LIBSRCS))
 else
 LIBSRCS		:= $(abspath $(LIBSRCS))
 endif
diff --git a/lib/tst_res.c b/lib/tst_res.c
index 1598f1e..1a032f4 100644
--- a/lib/tst_res.c
+++ b/lib/tst_res.c
@@ -490,28 +490,28 @@
 		                 ": errno=%s(%i): %s", strerrnodef(err),
 		                 err, strerror(err));
 	}
-	
+
 	if (size >= sizeof(message)) {
 		printf("%s: %i: line too long\n", __func__, __LINE__);
 		abort();
 	}
-	
+
 	if (ttype & TTERRNO) {
 		size += snprintf(message + size, sizeof(message) - size,
 		                 ": TEST_ERRNO=%s(%i): %s",
 		                 strerrnodef(TEST_ERRNO), (int)TEST_ERRNO,
 		                 strerror(TEST_ERRNO));
 	}
-	
+
 	if (size + 1 >= sizeof(message)) {
 		printf("%s: %i: line too long\n", __func__, __LINE__);
 		abort();
 	}
-	
+
 	message[size]   = '\n';
 	message[size+1] = '\0';
 
-	fputs(message, T_out); 
+	fputs(message, T_out);
 
 	/*
 	 * If tst_res() was called with a file, append file contents to the
diff --git a/ltpmenu b/ltpmenu
index ee64bcb..581305f 100755
--- a/ltpmenu
+++ b/ltpmenu
@@ -21,11 +21,11 @@
 #
 # File:        runltp
 #
-# Description: This program is a Graphical User Interface (GUI) 
-#              Control Centre for LTP. The Control Centre provides 
+# 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.
@@ -35,7 +35,7 @@
 #	       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 
+#	       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
 #
@@ -54,7 +54,7 @@
 #		 	      - Added time to results filename.
 # Function:    cleanup
 #
-# Description: Remove all temporary files created by this program. Cleanup 
+# Description: Remove all temporary files created by this program. Cleanup
 #              always called on program exit.
 #
 # Input:       NONE
@@ -66,14 +66,14 @@
 }
 
 
-# Function:    display_info_msg 
+# 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. 
+# Input:       $1 - Title the needs to be displayed on the window.
 #                   eg: ERROR: Compiling LTP
 #              $2 - Message text.
 #
@@ -82,15 +82,15 @@
 {
     dialog --backtitle "Linux Test Project Control Centre" \
            --title " $1 " \
-           --msgbox " $2 " 10 70 
+           --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 
+# 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()
@@ -127,17 +127,17 @@
 	    if [ $? -ne 0 ];then
               echo "ERROR in \'make clean\' - exiting."
 	      exit
-	    fi 
+	    fi
             make ;
 	    if [ $? -ne 0 ];then
               echo "ERROR in \'make all\' - exiting."
 	      exit
-	    fi 
+	    fi
             make install ;
 	    if [ $? -ne 0 ];then
               echo "ERROR in \'make install\' - exiting."
 	      exit
-	    fi 
+	    fi
             return ;;
 
         1)  return ;;
@@ -150,9 +150,9 @@
 # Function:    disp_ltpres
 #
 # Description: The results generated after the ltp execution located under
-#              ltp-mmddyy/results/ directory in a text (ASCII) file called 
+#              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 
+#              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.
 #
@@ -165,7 +165,7 @@
 
     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" ] 
+      while [ $RC -ne "1" ]
       do
         dialog --clear
         dialog --backtitle "Linux Test Project Control Centre" \
@@ -179,20 +179,20 @@
           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 
+          case $RESPONSE in
               0) \
                   mail ltp-results@lists.sourceforge.net < \
                           ./results/$results_item ;
                   ;;
-    
+
               1)  ;;
-     
+
               255)  ;;
           esac
         fi
@@ -201,7 +201,7 @@
       dialog --clear
       dialog --backtitle "Linux Test Project Control Centre" \
              --title "LTP Test Results" \
-             --msgbox "ERROR: No files to view in /results directory." 5 53 
+             --msgbox "ERROR: No files to view in /results directory." 5 53
     fi
     return
 }
@@ -209,12 +209,12 @@
 
 # Function:    flags_prompt
 #
-# Description: Prompt for and record user options for run duration and 
+# Description: Prompt for and record user options for run duration and
 #	       test output direction
 #
 # Input:       none
 #
-# Output:      none 
+# Output:      none
 flags_prompt()
 {
     dialog --backtitle "Linux Test Project Control Centre"\
@@ -229,11 +229,11 @@
                             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}') 
+        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? \
@@ -249,13 +249,13 @@
                        h    "Hours" \
                        d    "Days" \
                   2>/tmp/runltp.interval.$$ ;
-	flags_interval=$(cat /tmp/runltp.interval.$$ | awk '{print $1}') 
+	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 
+                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"
@@ -264,18 +264,18 @@
                --inputbox "$WINDOW_MSG" 7 80 \
 		          2>/tmp/runltp.length.$$ ;
 	flags_length=$(cat /tmp/runltp.length.$$ | awk '{print $1}')
-        flags_duration="$flags_length$flags_interval"	
+        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 
+#
+# Description: Execute tests by calling runltp, display test status
 #              in a window.
 #
 # Input:       none
-# 
+#
 # Output:      messages printed by testcases.
 exectest_screenout()
 {
@@ -285,8 +285,8 @@
 
     # execute runltp with user defined command file.
     ./runltp -q -p $RUNALL_FLAGS -l results.$RESULTS_FILE \
-	-f /tmp/runltp.test.list.$$  
-    
+	-f /tmp/runltp.test.list.$$
+
     sleep 2
 
     return
@@ -298,46 +298,46 @@
 # 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 
+#              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 
+#              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 
+#              choice of testcases and uses the runltp script to
 #              execute these tests.
-#              The messages printed by the testcases are displayed on this 
+#              The messages printed by the testcases are displayed on this
 #              terminal.
 #
 # Input:       Users selection of testcases; scenario file.
-#              
-# Output:      Test selection window, Message window, 
+#
+# Output:      Test selection window, Message window,
 #              information message window
 execute_ltp()
 {
     RC=0
     host_name=" "
     rhost_passwd=" "
-    run_net_test=" "    
+    run_net_test=" "
 
-    if ! [ -d ./testcases/bin ] 
-    then 
+    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." 
+       Please select the Compile option."
 	return
-    fi 
+    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) 
+    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}'` 
+    size=`wc -m /tmp/runltp.choice.$$|awk '{print $1}'`
     if [ $size -eq 0 ];then
       tst_choice=$(echo "NULL")
     else
@@ -346,7 +346,7 @@
     if [[ $tst_choice == NULL ]];then
       RC=1
     fi
-    case $RC in 
+    case $RC in
         0)    \
             for i in $tst_choice ;
             do \
@@ -362,7 +362,7 @@
                 then \
                     run_net_test="Y" ;
                 fi ;
-                                       
+
             done ;
             if ! [ -z $run_net_test ] ;
             then \
@@ -378,7 +378,7 @@
                 unset $RHOST ;
                 RHOST=$host_name ;
                 export RHOST;
-                
+
                 dialog --backtitle "Linux Test Project Control Centre"\
                        --title "Execute LTP test cases" \
                        --clear \
@@ -399,11 +399,11 @@
                      Please select the Compile option." ;
                 return ;
             fi ;
-        
+
             dialog --clear ;
 
 	    flags_prompt ;
-	
+
             exectest_screenout ;
 
             return ;;
@@ -421,8 +421,8 @@
 #
 # Description: This function displays a window containing a brief message
 #              describing this programs functionality, and credits the author.
-# 
-# Input:       NONE 
+#
+# Input:       NONE
 #
 # Output:      Message window, description of LTP Control Center.
 about_ltpcc()
@@ -438,7 +438,7 @@
 
 # Function:    ltp_scenarios
 #
-# Description: This function displays a list of scenario files located 
+# Description: This function displays a list of scenario files located
 #              in /runtest.  Users can list the contents of each file.
 #
 # Input:       Files from /runtest
@@ -451,7 +451,7 @@
 RC=0
 SCENARIOS=$(for i in `ls -1 -A -I "CVS" runtest`;do echo -n "$i [more...] "; done)
 
-while [ $RC -ne "1" ] 
+while [ $RC -ne "1" ]
 do
   dialog --clear
   dialog --backtitle "Linux Test Project Control Centre" \
@@ -466,18 +466,18 @@
            --title "LTP Scenario Files" \
            --textbox runtest/$scenario_item 17 70
   fi
-done	        
+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()      
+# Calls:       about_ltpcc()
 #              compile_ltp()
 #              execute_ltp()
 #              disp_ltpres()
@@ -519,7 +519,7 @@
                   Results      "Display a summary of test results" \
                   2>/tmp/runltp.mainmenu.$$ || RC=$?
 
-    case $RC in 
+    case $RC in
         0) mmenu_item=`cat /tmp/runltp.mainmenu.$$` ;
            # echo "return code = $RC" ;
            # echo "MENU ITEM = $mmenu_item" ;
diff --git a/m4/ltp-eventfd.m4 b/m4/ltp-eventfd.m4
index f4b8db5..3f54ddd 100644
--- a/m4/ltp-eventfd.m4
+++ b/m4/ltp-eventfd.m4
@@ -24,7 +24,7 @@
 dnl
 AC_DEFUN([LTP_CHECK_SYSCALL_EVENTFD],
 [dnl
-AH_TEMPLATE(HAVE_IO_SET_EVENTFD, 
+AH_TEMPLATE(HAVE_IO_SET_EVENTFD,
 [Define to 1 if you have the `io_set_eventfd' function.])
 AC_CHECK_HEADERS(libaio.h,[
 	AC_CHECK_LIB(aio,io_setup,[
diff --git a/m4/ltp-fs_ioc_flags.m4 b/m4/ltp-fs_ioc_flags.m4
index f3804a2..b4aabd3 100644
--- a/m4/ltp-fs_ioc_flags.m4
+++ b/m4/ltp-fs_ioc_flags.m4
@@ -19,7 +19,7 @@
 dnl
 
 dnl
-dnl LTP_CHECK_FS_IOC_FLAGS 
+dnl LTP_CHECK_FS_IOC_FLAGS
 dnl ----------------------------
 dnl
 AC_DEFUN([LTP_CHECK_FS_IOC_FLAGS],[
diff --git a/m4/ltp-keyctl.m4 b/m4/ltp-keyctl.m4
index 9019b54..990b143 100644
--- a/m4/ltp-keyctl.m4
+++ b/m4/ltp-keyctl.m4
@@ -1,5 +1,5 @@
 dnl
-dnl Copyright (c) Linux Test Project, 2010 
+dnl Copyright (c) Linux Test Project, 2010
 dnl
 dnl This program is free software;  you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
diff --git a/m4/ltp-mremap_fixed.m4 b/m4/ltp-mremap_fixed.m4
index fe5e9d8..6502756 100644
--- a/m4/ltp-mremap_fixed.m4
+++ b/m4/ltp-mremap_fixed.m4
@@ -19,7 +19,7 @@
 dnl
 
 dnl
-dnl LTP_CHECK_MREMAP_FIXED 
+dnl LTP_CHECK_MREMAP_FIXED
 dnl ----------------------------
 dnl
 AC_DEFUN([LTP_CHECK_MREMAP_FIXED],[
diff --git a/m4/ltp-quota.m4 b/m4/ltp-quota.m4
index 1074e89..6ca3970 100644
--- a/m4/ltp-quota.m4
+++ b/m4/ltp-quota.m4
@@ -22,7 +22,7 @@
 dnl
 AC_DEFUN([LTP_CHECK_SYSCALL_QUOTACTL],[dnl
 	AC_LINK_IFELSE([AC_LANG_SOURCE([
-#define _LINUX_QUOTA_VERSION 2 
+#define _LINUX_QUOTA_VERSION 2
 #include <sys/types.h>
 #include <sys/quota.h>
 #include <unistd.h>
diff --git a/m4/ltp-signal.m4 b/m4/ltp-signal.m4
index 67be035..35e4a80 100644
--- a/m4/ltp-signal.m4
+++ b/m4/ltp-signal.m4
@@ -15,7 +15,7 @@
 dnl along with this program;  if not, write to the Free Software
 dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 dnl
-dnl Author: Garrett Cooper <yanegomi@gmail.com> 
+dnl Author: Garrett Cooper <yanegomi@gmail.com>
 dnl
 
 dnl
diff --git a/pan/Makefile b/pan/Makefile
index a6e2bde..4cc6466 100644
--- a/pan/Makefile
+++ b/pan/Makefile
@@ -54,6 +54,6 @@
 # flex does some whacky junk when it generates files on the fly, so let's make
 # sure gcc doesn't get lost...
 vpath %.c $(abs_srcdir):$(abs_builddir)))
-vpath %.l $(abs_srcdir)	
+vpath %.l $(abs_srcdir)
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/pan/cgi/README b/pan/cgi/README
index 740e106..544c546 100644
--- a/pan/cgi/README
+++ b/pan/cgi/README
@@ -1,5 +1,5 @@
 Here are some CGI scripts I was using to view and compare RTS style output.
-It will probably need a little more tweaking to be useful to LTP.  
+It will probably need a little more tweaking to be useful to LTP.
 
 Expectations:
 
@@ -11,16 +11,16 @@
 	<ISO Date>	ISO standard format date. i.e. YYYYmmDDHHMM
 	<suite>		The name of the pan file that was used
 	<type>		One of driver, scanner, or summary
-			
+
 			driver - the raw output from pan with <<<test_end>>>
-			scanner - the output from scanner 
+			scanner - the output from scanner
             summary - a very brief table listing how many tests passed,
                       failed, didn't run, etc.  This wasn't released.
 
 Scripts:
 
     results.cgi
-        
+
         This lists out all of the results that are the results directory.  It
         provides links to the driver output, scanned results, and summary for
         each suite.  The sort order is host, date, suite.  On the results
@@ -31,11 +31,11 @@
 
         This is a more complex form that I started working on.  It allows you
         to compare as many results as you want, side by side.  Also, I started
-        working on sorting the results different ways, but didn't get too far. 
+        working on sorting the results different ways, but didn't get too far.
         The side by side comparison is done with in reconsile.cgi
 
     reconsile.cgi
-    
+
         This script compares multiple scanner files and shows the differences
         side by side in a table.  It expects to find .scanner files for the
         results it is comparing.
diff --git a/pan/cgi/browse.cgi b/pan/cgi/browse.cgi
index ac1d17b..49fda6f 100755
--- a/pan/cgi/browse.cgi
+++ b/pan/cgi/browse.cgi
@@ -74,7 +74,7 @@
 
 # Create the headers row, adding links for sorting options
 sub print_headers {
-	
+
 	print "\n<tr>";
 
 	for($i = 0; $i <= $#rso; $i++) {
@@ -104,7 +104,7 @@
 @extra_path = split(/\//, $ENV{PATH_INFO});
 
 # rso = Result Sort Order
-# rsd = Result Sort Direction 
+# rsd = Result Sort Direction
 #@rso = (HOST,SUITE, DATE, UNAME);
 @rso = (SUITE, HOST, DATE, UNAME);
 @rsd = (1, 1, -1, 1);
@@ -127,11 +127,11 @@
 }
 
 if ($#extra_path > 0) {
-		
+
 } else {
 
 	%results = ();
-	
+
 	# run through the files in the results directory
 	@driver_files = <*driver*>;
 	foreach $df (@driver_files) {
@@ -203,7 +203,7 @@
 			if ($i == $#rso) {
 				# last column
 				print " <input type=checkbox name=results value=\"$this->{HOST}.$this->{DATE}.$this->{SUITE}\">";
-				
+
 			}
 
 
diff --git a/pan/cgi/reconsile.cgi b/pan/cgi/reconsile.cgi
index 8c3aa9c..da131f4 100755
--- a/pan/cgi/reconsile.cgi
+++ b/pan/cgi/reconsile.cgi
@@ -60,7 +60,7 @@
 	$result_details->[$i]->{SUITE} = $suite;
 	while ($line = <F>) {
 		# check for the end of the header
-		if ($line =~ /^-+/) { 
+		if ($line =~ /^-+/) {
 			# we've reached the top of the scanner output
 			# grab the rest and stop the while loop;
 			@rest = <F>;
@@ -115,8 +115,8 @@
 }
 
 # here is the loop that prints the data into a multi-column table with the test
-# tags grouped together. 
-  
+# tags grouped together.
+
 print "</pre>";
 print "<table border=1>\n";
 
@@ -141,9 +141,9 @@
 	# if there wasn't anything left, leave
 	$somethingleft = 0;
 	foreach $rtcs (@result_testcases) {
-		if ($#$rtcs > -1) { 
-			$somethingleft = 1; 
-			last; 
+		if ($#$rtcs > -1) {
+			$somethingleft = 1;
+			last;
 		}
 	}
 	unless ($somethingleft) { last; }
@@ -151,7 +151,7 @@
 	# find the Lowest Common Record
 	@tops = ();
 	foreach $rtcs (@result_testcases) {
-		if (@$rtcs[0]) { 
+		if (@$rtcs[0]) {
 			push(@tops, copy_record(@$rtcs[0]));
 		}
 	}
@@ -160,7 +160,7 @@
 				|| $a->{TC} <=> $b->{TC}
 				|| $a->{TC} cmp $b->{TC}
 				|| $a->{STATUS} cmp $b->{STATUS}} @tops;
-	
+
 	$LCR = $tops[0];
 
 	# check to see if everyone matches
@@ -177,9 +177,9 @@
 	}
 	# if everyone does match (status included) shift them
 	# and move on.
-	if ($matches == ($#result_testcases+1)) { 
+	if ($matches == ($#result_testcases+1)) {
 		foreach $rtcs (@result_testcases) { shift(@$rtcs); }
-		next; 
+		next;
 	}
 
 	# if we've already output stuff related to this test tag,
@@ -194,10 +194,10 @@
 	# walk through the lists again outputting as we match
 	$column = 0;
 	foreach $rtcs (@result_testcases) {
-		if (! @$rtcs[0]) { 
+		if (! @$rtcs[0]) {
 			print "<td><td><td>";
 			$column++;
-			next; 
+			next;
 		} elsif (@$rtcs[0]->{TAG} eq $LCR->{TAG}
 			&& @$rtcs[0]->{TCID} eq $LCR->{TCID}
 			&& @$rtcs[0]->{TC} eq $LCR->{TC}) {
@@ -230,7 +230,7 @@
 		}
 		$column++;
 	}
-	print "<td>$LCR->{CONTACT}</tr>\n";	
+	print "<td>$LCR->{CONTACT}</tr>\n";
 }
 print "</table>";
 
@@ -246,5 +246,5 @@
 	$copy->{STATUS} = $rec->{STATUS};
 	$copy->{CONTACT} = $rec->{CONTACT};
 	return $copy;
-	
+
 }
diff --git a/pan/cgi/results.cgi b/pan/cgi/results.cgi
index b88445a..f84a92c 100755
--- a/pan/cgi/results.cgi
+++ b/pan/cgi/results.cgi
@@ -41,7 +41,7 @@
 						if ($line =~ /^tag=$zoom_tag /) {
 							print "<<<test_start>>>\n";
 							print $line;
-					
+
 							do {
 								$line = <DF>;
 								print $line;
@@ -76,7 +76,7 @@
 
 		foreach (@rest) {
 			s/(\S+)/<a href="results.cgi?get_df=$host.$datestr.$suite.driver&zoom_tag=\1">\1<\/a>/;
-			# colorize the status column 
+			# colorize the status column
 			s/\bPASS\b/\<font color\=green\>PASS\<\/font\>/i;
 			s/\bFAIL\b/\<font color\=\"red\"\>FAIL\<\/font\>/i;
 			s/\bCONF\b/\<font color\=\"yellow\"\>CONF\<\/font\>/i;
@@ -141,7 +141,7 @@
 		if ($indent <= 1) {
 			($year, $month, $day, $hour, $min) = ($thisdate =~ /(\d+)(\d{2})(\d{2})(\d{2})(\d{2})/);
 			print "<tr><td><td>$year-$month-$day $hour:$min\n";
-		} 
+		}
 		# suite level
 		if ($indent <= 2) {
 			print "<tr><td><td><td>";
@@ -149,7 +149,7 @@
 			print " [<a href=\"results.cgi?get_df=$rp->{DRIVER_FILE}\">driver output</a>]";
 			print " [<a href=\"results.cgi?get_df=$thishost.$thisdate.$thissuite.scanner\">results</a>]";
 			print " [<a href=\"results.cgi?get_df=$thishost.$thisdate.$thissuite.summary\">summary</a>]";
-			
+
 			print "\n";
 		}
 
diff --git a/pan/reporter.h b/pan/reporter.h
index ecc4ce1..196fed1 100644
--- a/pan/reporter.h
+++ b/pan/reporter.h
@@ -68,7 +68,7 @@
 /* Scan Modes (above and beyond what I use lex for) */
 #define		SCAN_OUTSIDE	10	/* not in anything */
 #define		SCAN_RTSKEY	20	/* keywords: rts_keyword */
-#define		SCAN_TSTKEY	21	/* keywords: either test_start or 
+#define		SCAN_TSTKEY	21	/* keywords: either test_start or
 					   execution_status */
 #define		SCAN_OUTPUT	30	/* test_output */
 
diff --git a/pan/scan.l b/pan/scan.l
index d8374f7..a740860 100644
--- a/pan/scan.l
+++ b/pan/scan.l
@@ -99,11 +99,11 @@
 
 %Start KEY OUT CUTS
 %%
-^<<<rts_keyword_start>>>$	{ 
+^<<<rts_keyword_start>>>$	{
     BEGIN KEY;
     check_mode(scan_mode, SCAN_OUTSIDE, 0);
     scan_mode = SCAN_RTSKEY;
-    
+
     /* remove any keys that exist right now */
     if(keys != NULL)
 	sym_rm(keys, RM_KEY | RM_DATA);
@@ -130,12 +130,12 @@
 
     sym_put(alltags, "_RTS", (void *)keys, PUT_REPLACE);
     keys = NULL;
-    
-    return(KW_END);			
+
+    return(KW_END);
     /* NOTREACHED */
 }
 
-^<<<test_start>>>$		{ 
+^<<<test_start>>>$		{
     BEGIN KEY;
     check_mode(scan_mode, SCAN_OUTSIDE, 0);
     scan_mode = SCAN_TSTKEY;
@@ -162,22 +162,22 @@
     /* NOTREACHED */
 }
 
-^<<<test_output>>>$		{ 
+^<<<test_output>>>$		{
     BEGIN OUT;
     check_mode(scan_mode, SCAN_TSTKEY, 0);
     scan_mode = SCAN_OUTPUT;
-    
+
     test_output(ctag, keys);
-    
-    return(TEST_OUTPUT);			
+
+    return(TEST_OUTPUT);
     /* NOTREACHED */
 }
 
-^<<<execution_status>>>$	{ 
+^<<<execution_status>>>$	{
     BEGIN KEY;
     check_mode(scan_mode, SCAN_TSTKEY, SCAN_OUTPUT, 0);
     scan_mode = SCAN_TSTKEY;
-    return(EXEC_STATUS);			
+    return(EXEC_STATUS);
     /* NOTREACHED */
 }
 
@@ -214,7 +214,7 @@
 	printf("A quoted keyword: %s = %s\n", key, cont);
 #endif
     sym_put(keys, key, strdup(cont), 0);
-    
+
     return(KEYWORD_QUOTED);
     /* NOTREACHED */
 }
@@ -228,8 +228,8 @@
 	printf("A keyword: %s = %s\n", key, cont);
 #endif
     sym_put(keys, key, strdup(cont), 0);
-    
-    return(KEYWORD);			
+
+    return(KEYWORD);
     /* NOTREACHED */
 }
 
@@ -238,24 +238,24 @@
     /* NOTREACHED */
 }
 
-<OUT>^.+$			{ 
+<OUT>^.+$			{
 #ifdef DEBUGGING
     DEBUG(D_SCAN_LEX, 5)
 	printf("TEXT_LINE: %s\n", yytext);
 #endif
 
-    return(TEXT_LINE);			
+    return(TEXT_LINE);
     /* NOTREACHED */
 }
 
-<CUTS>^{W}{S}{UI}{S}{A}{S}":"	   { 
+<CUTS>^{W}{S}{UI}{S}{A}{S}":"	   {
 #ifdef DEBUGGING
     DEBUG(D_SCAN_LEX, 5)
 	printf("CUTS Result: %s\n", yytext);
 #endif
     cuts_testcase(ctag, keys);
 
-    return(CUTS_RESULT);		
+    return(CUTS_RESULT);
     /* NOTREACHED */
 }
 
@@ -308,7 +308,7 @@
 
 /*
  * Test-Output record
- *  check if this is a CUTS test; if so, enter the lex "cuts" state; 
+ *  check if this is a CUTS test; if so, enter the lex "cuts" state;
  *  otherwise do nothing and lex will be in a "data" mode that will just
  *  toss all the output.
  */
@@ -317,7 +317,7 @@
     SYM tag, keys;
 {
     char *at;
-    
+
     if((at=(char *)sym_get(keys, "analysis")) != NULL) {
 	/* CUTS:number_of_testcases  || CUTS-1:number_of_testcases */
 	if(strncasecmp("cuts", at, 4) == 0) {
@@ -331,7 +331,7 @@
 /* Input Data State Check
  * RTS driver output goes thru specific
  * phases; this is used to verify that the new state is a legal state
- * to change to from the current state.  
+ * to change to from the current state.
  * This accepts a variable number of arguments (valid states to be
  * in).  The last argument MUST be zero
  */
@@ -393,7 +393,7 @@
 
 /*
  * This part of the file contains subroutines called by a lex scanner which
- * is parsing rts-driver-format input and putting it into a multi-level 
+ * is parsing rts-driver-format input and putting it into a multi-level
  * symbol table.
  */
 
diff --git a/pan/symbol.h b/pan/symbol.h
index 1a80ca2..b0d3bcb 100644
--- a/pan/symbol.h
+++ b/pan/symbol.h
@@ -48,7 +48,7 @@
 };
 
 /*
- * Symbol Table Header 
+ * Symbol Table Header
  */
 struct symh {
     int         magic;
@@ -63,7 +63,7 @@
 
 /*
  * Data for keys and contents (lifted from dbopen(3))
- * dbopen(3) uses this for all functions, but I'm hard-wired into chars 
+ * dbopen(3) uses this for all functions, but I'm hard-wired into chars
  * for keys and the like; I just need this for sym_get
  */
 typedef struct {
diff --git a/pan/zoolib.h b/pan/zoolib.h
index 8b4049e..678f0f2 100644
--- a/pan/zoolib.h
+++ b/pan/zoolib.h
@@ -56,14 +56,14 @@
  * 	returns NULL on error */
 char *zoo_getname(void);
 
-/* zoo_open(): open a zoo file for use 
+/* zoo_open(): open a zoo file for use
  * 	returns NULL on error */
 zoo_t zoo_open(char *zooname);
 
 /* zoo_close(): close an open zoo file */
 int zoo_close(zoo_t z);
 
-/* zoo_mark_cmdline(): make an entry to the zoo 
+/* zoo_mark_cmdline(): make an entry to the zoo
  *	returns 0 on success, -1 on error */
 int zoo_mark_cmdline(zoo_t z, pid_t p, char *tag, char *cmdline);
 
diff --git a/result b/result
index 78db428..47efe10 100644
--- a/result
+++ b/result
@@ -8,24 +8,24 @@
 
 Result Log file:
 ===============
-eventfd01                      FAIL       4    
-syslog07                       FAIL       1    
-syslog08                       FAIL       1    
-mtest06                        FAIL       255  
-su01                           FAIL       1    
-hugemmap04                     FAIL       2    
-hugeshmat01                    FAIL       6    
-hugeshmat02                    FAIL       6    
-hugeshmat03                    FAIL       2    
-hugeshmctl01                   FAIL       6    
-hugeshmctl02                   FAIL       6    
-hugeshmctl03                   FAIL       2    
-hugeshmdt01                    FAIL       6    
-hugeshmget01                   FAIL       2    
-hugeshmget02                   FAIL       6    
-hugeshmget03                   FAIL       6    
-hugeshmget05                   FAIL       2    
-mail                           FAIL       2    
+eventfd01                      FAIL       4
+syslog07                       FAIL       1
+syslog08                       FAIL       1
+mtest06                        FAIL       255
+su01                           FAIL       1
+hugemmap04                     FAIL       2
+hugeshmat01                    FAIL       6
+hugeshmat02                    FAIL       6
+hugeshmat03                    FAIL       2
+hugeshmctl01                   FAIL       6
+hugeshmctl02                   FAIL       6
+hugeshmctl03                   FAIL       2
+hugeshmdt01                    FAIL       6
+hugeshmget01                   FAIL       2
+hugeshmget02                   FAIL       6
+hugeshmget03                   FAIL       6
+hugeshmget05                   FAIL       2
+mail                           FAIL       2
 
 
 Result Output file:
@@ -41,15 +41,15 @@
 
 Result Log file:
 ===============
-cct01                         FAIL       1    
-eventfd01                      FAIL       4    
-fdatasync02                    FAIL       1    
-syslog07                       FAIL       1    
-syslog08                       FAIL       1    
-mtest06                        FAIL       255  
-mmapstress03                   FAIL       1    
-su01                           FAIL       1    
-cron_deny01                    FAIL       1    
+cct01                         FAIL       1
+eventfd01                      FAIL       4
+fdatasync02                    FAIL       1
+syslog07                       FAIL       1
+syslog08                       FAIL       1
+mtest06                        FAIL       255
+mmapstress03                   FAIL       1
+su01                           FAIL       1
+cron_deny01                    FAIL       1
 
 
 Result Output file:
@@ -67,13 +67,13 @@
 
 Result Log file:
 ===============
-eventfd01                      FAIL       4    
-keyctl01                       FAIL       1    
-rt_sigsuspend01                FAIL       11   
-timer_getoverrun01             FAIL       1    
-timer_gettime01                FAIL       1    
-su01                           FAIL       1    
-cron_allow01                   FAIL       1    
+eventfd01                      FAIL       4
+keyctl01                       FAIL       1
+rt_sigsuspend01                FAIL       11
+timer_getoverrun01             FAIL       1
+timer_gettime01                FAIL       1
+su01                           FAIL       1
+cron_allow01                   FAIL       1
 
 
 
@@ -91,6 +91,6 @@
 
 Result Log file:
 ===============
-eventfd2_03                    FAIL       1    
-utimensat01                    FAIL       1    
-ftest04                        FAIL       1    
+eventfd2_03                    FAIL       1
+utimensat01                    FAIL       1
+ftest04                        FAIL       1
diff --git a/runalltests.sh b/runalltests.sh
index b9db856..429e867 100755
--- a/runalltests.sh
+++ b/runalltests.sh
@@ -22,7 +22,7 @@
 ##                                                                            ##
 ## Description:  This script just calls runltp now, and is being phased out.  ##
 ##		If you rely on this script for automation reasons, please     ##
-##                                                                            ## 
+##                                                                            ##
 ## History	Subrata Modak <subrata@linuc.vnet.ibm.com> changed the code   ##
 ##		to include testing other testcases which are not run by       ##
 ##		default, 08/09/2008                                           ##
@@ -159,10 +159,10 @@
 export RUN_LTP_SCSI_DEBUG_TEST=0
 
 ## Set this to 1 if you wish to run the LTP SYSFS tests
-#Note: Must have root access to execute this script. 
+#Note: Must have root access to execute this script.
 #  USAGE       : sysfs.sh [ -k <kernel_module> ]
 #  DESCRIPTION : A script that will test sysfs on Linux system.
-#  REQUIREMENTS: CONFIG_DUMMY must have been used to build kernel, and the 
+#  REQUIREMENTS: CONFIG_DUMMY must have been used to build kernel, and the
 #                dummy network module must exist.
 export RUN_LTP_SYSFS_TEST=0
 export KERNEL_MODULE1=xxxxxxx
@@ -265,7 +265,7 @@
 
 
 ## The next one i plan to run is                      ##
-## ltp/testcases/kernel/io/aio                        ## 
+## ltp/testcases/kernel/io/aio                        ##
 ## START => Test Series 5                             ##
 if [ $RUN_AIOTESTS -eq 1 ]
 then
@@ -302,7 +302,7 @@
 ## END => Test Series 5                               ##
 
 ## The next one i plan to run is                      ##
-## ltp/testcases/kernel/security/filecaps             ## 
+## ltp/testcases/kernel/security/filecaps             ##
 ## START => Test Series 6                             ##
 if [ $RUN_FILECAPS -eq 1 ]
 then
diff --git a/runltp b/runltp
index f95c17b..9da5c28 100755
--- a/runltp
+++ b/runltp
@@ -24,12 +24,12 @@
 #
 # Authors:      Manoj Iyer - manjo@mail.utexas.edu
 #               Robbe Williamson - robbiew@us.ibm.com
-#               
+#
 # History:      Oct 07 2003 - Modified - Manoj Iyer
 #               - use functions
 #               - clean up on script exit
 #               - error checking etc.
-#                
+#
 #               Oct 08 2003 - Modified - Manoj Iyer
 #               - fixed bug in creating results directory
 #               - all checks should be enlclosed in " " to avoid bash error
@@ -101,17 +101,17 @@
     exit 0
 }
 
-usage() 
+usage()
 {
     cat <<-EOF >&2
 
     usage: ${0##*/} [ -a EMAIL_TO ] [ -c NUM_PROCS ] [ -C FAILCMDFILE ] [ -d TMPDIR ]
     [ -D NUM_PROCS,NUM_FILES,NUM_BYTES,CLEAN_FLAG ] -e [ -f CMDFILES(,...) ] [ -g HTMLFILE]
-    [ -i NUM_PROCS ] [ -l LOGFILE ] [ -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG ] 
+    [ -i NUM_PROCS ] [ -l LOGFILE ] [ -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG ]
     -N -n [ -o OUTPUTFILE ] -p -q [ -r LTPROOT ] [ -s PATTERN ] [ -t DURATION ]
     -v [ -w CMDFILEADDR ] [ -x INSTANCES ] [ -b DEVICE ] [-B DEVICE_FS_TYPE]
 	[ -F LOOPS,PERCENTAGE ]
-                
+
     -a EMAIL_TO     EMAIL all your Reports to this E-mail Address
     -c NUM_PROCS    Run LTP under additional background CPU load
                     [NUM_PROCS = no. of processes creating the CPU Load by spinning over sqrt()
@@ -132,7 +132,7 @@
     -i NUM_PROCS    Run LTP under additional background Load on IO Bus
                     [NUM_PROCS   = no. of processes creating IO Bus Load by spinning over sync()]
     -K DMESG_LOG_DIR
-			Log Kernel messages generated for each test cases inside this directory 
+			Log Kernel messages generated for each test cases inside this directory
     -l LOGFILE      Log results of test in a logfile.
     -m NUM_PROCS,CHUNKS,BYTES,HANGUP_FLAG
                     Run LTP under additional background Load on Main memory (Seperate by comma)
@@ -144,10 +144,10 @@
 		[CHECK_TYPE=1 => Full Memory Leak Check tracing children as well]
 		[CHECK_TYPE=2 => Thread Concurrency Check tracing children as well]
 		[CHECK_TYPE=3 => Full Memory Leak & Thread Concurrency Check tracing children as well]
-    -N              Run all the networking tests. 
+    -N              Run all the networking tests.
     -n              Run LTP with network traffic in background.
     -o OUTPUTFILE   Redirect test output to a file.
-    -p              Human readable format logfiles. 
+    -p              Human readable format logfiles.
     -q              Print less verbose output to screen.
     -r LTPROOT      Fully qualified path where testsuite is installed.
     -s PATTERN      Only run test cases which match PATTERN.
@@ -215,7 +215,7 @@
     do  case $arg in
         a)  EMAIL_TO=$OPTARG
             ALT_EMAIL_OUT=1;;
-        c)       
+        c)
             NUM_PROCS=$(($OPTARG))
             if   [ "$NUM_PROCS" -eq 0 ]; then
                 # User Did not Define the Value ,or, User Defined Zero,
@@ -225,15 +225,15 @@
             $LTPROOT/testcases/bin/genload --cpu $NUM_PROCS >/dev/null 2>&1 &
             GENLOAD=1 ;;
 
-        C)  
+        C)
             case $OPTARG in
             /*)
                 FAILCMDFILE="-C $OPTARG" ;;
-            *)    
+            *)
                 FAILCMDFILE="-C $LTPROOT/output/$OPTARG"
                 ALT_DIR_OUT=1 ;;
             esac ;;
-                   
+
         d)  # convert the user path to absolute path.
             export TMPBASE=$(readlink -f ${OPTARG}) ;;
 
@@ -300,10 +300,10 @@
             *)
                 HTMLFILE="$LTPROOT/output/$OPTARG";;
             esac
-            ALT_DIR_OUT=1 
+            ALT_DIR_OUT=1
             ALT_HTML_OUT=1;;
         h)  usage;;
-        
+
         i)
             NUM_PROCS=$(($OPTARG))
             if   [ "$NUM_PROCS" -eq 0 ]; then
@@ -313,8 +313,8 @@
             fi
             $LTPROOT/testcases/bin/genload --io $NUM_PROCS >/dev/null 2>&1 &
             GENLOAD=1 ;;
-    
-        K)  
+
+        K)
 	    case $OPTARG in
         	   /*)
                 	DMESG_DIR="$OPTARG-dmesg-output-`echo $$-``date +%X | tr -d ' '`";;
@@ -323,16 +323,16 @@
 	    esac
             mkdir -p $DMESG_DIR
             ALT_DMESG_OUT=1;;
-        l)      
+        l)
             LOGFILE_NAME="$OPTARG"
             case $OPTARG in
             /*)
                 LOGFILE="-l $OPTARG" ;;
-            *)    
+            *)
                 LOGFILE="-l $LTPROOT/results/$OPTARG"
                 ALT_DIR_RES=1 ;;
             esac ;;
-    
+
         m)  NUM_PROCS=1; CHUNKS=1; BYTES=$((256 * 1024 * 1024)); HANGUP_FLAG=0
             ARGUMENT_LIST=$OPTARG
             TOTAL_ARGUMENTS=1
@@ -374,11 +374,11 @@
 		VALGRIND_CHECK_TYPE="$OPTARG";;
 
         N)  RUN_NETEST=1;;
-    
-        n)  
+
+        n)
             $LTPROOT/testcases/bin/netpipe.sh
             NETPIPE=1;;
-    
+
         o)  OUTPUTFILE_NAME="$OPTARG"
             case $OPTARG in
             /*)
@@ -387,13 +387,13 @@
                 OUTPUTFILE="-o $LTPROOT/output/$OPTARG"
                 ALT_DIR_OUT=1 ;;
             esac ;;
-    
+
         p)  PRETTY_PRT=" -p ";;
-   
+
         q)  QUIET_MODE=" -q ";;
-    
+
         r)  LTPROOT=$OPTARG;;
-    
+
         s)  TAG_RESTRICT_STRING=$OPTARG;;
 
 	S)  case $OPTARG in
@@ -402,9 +402,9 @@
             *)
                 SKIPFILE="$LTPROOT/$OPTARG";;
             esac ;;
-    
-        t)  # In case you want to specify the time 
-            # to run from the command line 
+
+        t)  # In case you want to specify the time
+            # to run from the command line
             # (2m = two minutes, 2h = two hours, etc)
             DURATION="-t $OPTARG" ;;
 
@@ -412,7 +412,7 @@
             RUN_REPEATED=$OPTARG;;
 
         w)  CMDFILEADDR=$OPTARG;;
-   
+
         x)  # number of ltp's to run
             cat <<-EOF >&1
             WARNING: The use of -x can cause unpredictable failures, as a
@@ -420,7 +420,7 @@
                      to be ran exclusively.
                      Pausing for 10 seconds..."
 	EOF
-            sleep 10 
+            sleep 10
             INSTANCES="-x $OPTARG";;
         b) DEVICE=$OPTARG;;
         B) DEVICE_FS_TYPE=$OPTARG;;
@@ -435,8 +435,8 @@
        ALT_DIR_RES=1
        PRETTY_PRT=" -p "
     fi
-   
-    ## It would be nice if a Failed File is compulsorily created (gives User better Idea of Tests that failed)  
+
+    ## It would be nice if a Failed File is compulsorily created (gives User better Idea of Tests that failed)
 
     if [ ! "$FAILCMDFILE" ]; then                            ## User has not mentioned about Failed File name
          ALT_DIR_OUT=1
@@ -495,7 +495,7 @@
         }
     }
 
-    # Added -m 777 for tests that call tst_tmpdir() and try to 
+    # Added -m 777 for tests that call tst_tmpdir() and try to
     #  write to it as user nobody
     mkdir -m 777 -p $TMPBASE || \
     {
@@ -519,18 +519,18 @@
       echo "unable to chmod 777 $TMP ... aborting"
       exit 1
     }
-    
+
     cd $TMP || \
     {
       echo "could not cd ${TMP} ... exiting"
       exit 1
     }
-    
+
     [ -n "$INSTANCES" ] && \
     {
       INSTANCES="$INSTANCES -O ${TMP}"
     }
-    
+
     [ "$RUN_NETEST" -eq 1 ] && \
     {
         [ -z "$RHOST" ] || [ -z "$PASSWD" ] && \
@@ -556,7 +556,7 @@
             echo "WARNING: security of $RHOST may be compromised"
         }
     }
-    
+
     # If user does not provide a command file select a default set of testcases
     # to execute.
     if [ -z "$CMDFILES" ] && [ -z "$CMDFILEADDR" ]
@@ -567,7 +567,7 @@
           runtest scenario files:
 
 `cat $LTPROOT/scenario_groups/default | tr '\012' ' '`
-    
+
 	EOF
 
 	SCENARIO_LISTS="$LTPROOT/scenario_groups/default"
@@ -619,7 +619,7 @@
             }
         done
     }
- 
+
     [ -n "$CMDFILEADDR" ] && \
     {
         wget -q "${CMDFILEADDR}" -O ${TMP}/wgetcmdfile
@@ -635,7 +635,7 @@
     }
 
     # The fsx-linux tests use the SCRATCHDEV environment variable as a location
-    # that can be reformatted and run on.  Set SCRATCHDEV if you want to run 
+    # that can be reformatted and run on.  Set SCRATCHDEV if you want to run
     # these tests.  As a safeguard, this is disabled.
     unset SCRATCHDEV
     [ -n "$SCRATCHDEV" ] && \
@@ -661,17 +661,17 @@
             sed -i "/^$file[ \t]/d" ${TMP}/alltests
         done
     fi
-    
+
     # check for required users and groups
     ${LTPROOT}/IDcheck.sh &>/dev/null || \
     {
         echo "WARNING: required users and groups not present"
         echo "WARNING: some test cases may fail"
     }
-       
+
     # display versions of installed software
     [ -z "$QUIET_MODE" ] && \
-    { 
+    {
         ${LTPROOT}/ver_linux || \
         {
             echo "WARNING: unable to display versions of software installed"
@@ -747,7 +747,7 @@
       echo "INFO: Restricted to $TAG_RESTRICT_STRING"
     fi
     #$PAN_COMMAND #Duplicated code here, because otherwise if we fail, only "PAN_COMMAND" gets output
-    
+
     ## Display the Output/Log/Failed/HTML file names here
     echo -e "LOG File: \c"
     echo $LOGFILE | cut -b4-
@@ -834,7 +834,7 @@
     # Some tests need to run inside the "bin" directory.
     cd "${LTPROOT}/testcases/bin"
     "${LTPROOT}/bin/ltp-pan" $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE $FAILCMDFILE
-     
+
     if [ $? -eq 0 ]; then
       echo "INFO: ltp-pan reported all tests PASS"
       VALUE=0
@@ -871,14 +871,14 @@
        export TEST_OUTPUT_DIRECTORY="$LTPROOT/output"
        export TEST_LOGS_DIRECTORY=$LOGS_DIRECTORY
        echo "Generating HTML Output.....!!"
-       ( perl $LTPROOT/bin/genhtml.pl $LTPROOT/bin/html_report_header.txt test_start test_end test_output execution_status $OUTPUT_DIRECTORY  > $HTMLFILE; )   
+       ( perl $LTPROOT/bin/genhtml.pl $LTPROOT/bin/html_report_header.txt test_start test_end test_output execution_status $OUTPUT_DIRECTORY  > $HTMLFILE; )
        echo "Generated HTML Output.....!!"
        echo "Location: $HTMLFILE";
 
     fi
- 
+
     if [ "$ALT_EMAIL_OUT" -eq 1 ] ; then                      ## User wants reports to be e-mailed
-       if [ [ ! "$HTMLFILE_NAME" ] -o [ ! "$OUTPUTFILE_NAME" ] -o [ ! "$LOGFILE_NAME" ] ] ; then  
+       if [ [ ! "$HTMLFILE_NAME" ] -o [ ! "$OUTPUTFILE_NAME" ] -o [ ! "$LOGFILE_NAME" ] ] ; then
           ##User does not have output/logs/html-output, nothing to be mailed in this situation
           echo "Nothing to be mailed here...."
        else
@@ -947,25 +947,25 @@
               else
                  echo "Reports cannot be mailed to: $EMAIL_TO"
               fi
-           fi 
+           fi
        fi
     fi
-   
+
     [ ! -z "$QUIET_MODE" ] && { echo "INFO: Test end time: $(date)" ; }
-    
+
     [ "$GENLOAD" -eq 1 ] && { killall -9 genload  >/dev/null 2>&1; }
     [ "$NETPIPE" -eq 1 ] && { killall -9 NPtcp  >/dev/null 2>&1; }
-    
+
     [ "$ALT_DIR_OUT" -eq 1 ] || [ "$ALT_DIR_RES" -eq 1 ] && \
     {
     cat <<-EOF >&1
-        
+
        ###############################################################
-        
+
             Done executing testcases.
             LTP Version:  $version_date
        ###############################################################
-       
+
 	EOF
     }
     exit $VALUE
diff --git a/runltplite.sh b/runltplite.sh
index 911011a..de9c0cb 100755
--- a/runltplite.sh
+++ b/runltplite.sh
@@ -26,16 +26,16 @@
 # Authors:      Manoj Iyer - manoji@us.ibm.com
 #               Robbie Williamson - robbiew@us.ibm.com
 #               Marty Ridgeway - mridge@us.ibm.com
-#               
+#
 # History:      Created runltplite script to run a subset of the LTP testsuite
-#               
-#               
-#               
-#                
-#               
-#               
-#               
-#               
+#
+#
+#
+#
+#
+#
+#
+#
 
 
 setup()
@@ -66,23 +66,23 @@
 }
 
 
-usage() 
+usage()
 {
     cat <<-EOF >&2
 
-    usage: ${0##*/} -c [-d TMPDIR] [-i # (in Mb)] 
-    [ -l LOGFILE ] [ -o OUTPUTFILE ] [ -m # (in Mb)] -N -q 
-    [ -r LTPROOT ] -v 
-                
+    usage: ${0##*/} -c [-d TMPDIR] [-i # (in Mb)]
+    [ -l LOGFILE ] [ -o OUTPUTFILE ] [ -m # (in Mb)] -N -q
+    [ -r LTPROOT ] -v
+
     -c NUM_PROCS    Run LTP under additional background CPU load.
     -d TMPDIR       Directory where temporary files will be created.
     -h              Help. Prints all available options.
     -i # (in Mb)    Run LTP with a _min_ IO load of # Mb in background.
     -l LOGFILE      Log results of test in a logfile.
     -m # (in Mb)    Run LTP with a _min_ memory load of # Mb in background.
-    -N              Run all the networking tests. 
+    -N              Run all the networking tests.
     -o OUTPUTFILE   Redirect test output to a file.
-    -p              Human readable format logfiles. 
+    -p              Human readable format logfiles.
     -q              Print less verbose output to screen.
     -r LTPROOT      Fully qualified path where testsuite is installed.
 
@@ -116,27 +116,27 @@
 
     while getopts c:d:hi:l:m:No:pqr: arg
     do  case $arg in
-        c)       
+        c)
 	    NUM_PROCS=$(($OPTARG))
             $LTPROOT/testcases/bin/genload --cpu $NUM_PROCS >/dev/null 2>&1 &
             GENLOAD=1 ;;
-                   
-        d)  # append $$ to TMP, as it is recursively 
+
+        d)  # append $$ to TMP, as it is recursively
             # removed at end of script.
             TMPBASE=$OPTARG
             TMP="${TMPBASE}/ltp-$$"
             export TMPDIR="$TMP";;
-    
+
         h)  usage;;
-        
-        i)       
+
+        i)
             BYTESIZE=$(($OPTARG * 1024 * 1024))
             $LTPROOT/testcases/bin/genload --io 1 >/dev/null 2>&1 &
             $LTPROOT/testcases/bin/genload --hdd 0 --hdd-bytes $BYTESIZE \
-            >/dev/null 2>&1 & 
+            >/dev/null 2>&1 &
             GENLOAD=1 ;;
-    
-        l)      
+
+        l)
 
             [ ! -d $LTPROOT/results ] && \
             {
@@ -150,38 +150,38 @@
             case $OPTARG in
 	    /*)
                 LOGFILE="-l $OPTARG" ;;
-            *)    
+            *)
                 LOGFILE="-l $LTPROOT/results/$OPTARG"
                 ALT_DIR=1 ;;
             esac ;;
-    
-        m)      
-            MEMSIZE=$(($OPTARG * 1024 * 1024)) 
+
+        m)
+            MEMSIZE=$(($OPTARG * 1024 * 1024))
             $LTPROOT/testcases/bin/genload  --vm 0 --vm-bytes $MEMSIZE \
-                >/dev/null 2>&1 & 
+                >/dev/null 2>&1 &
             GENLOAD=1;;
-    
+
         N)  RUN_NETEST=1;;
-    
+
         o)  OUTPUTFILE="-o $OPTARG" ;;
-    
+
         p)  PRETTY_PRT=" -p ";;
-   
+
         q)  QUIET_MODE=" -q ";;
-    
+
         r)  LTPROOT=$OPTARG;;
-    
+
         \?) usage;;
         esac
     done
-    
-        
+
+
     mkdir -p $TMP || \
     {
         echo "FATAL: Unable to make temporary directory $TMP"
         exit 1
     }
-    
+
     cd $TMP || \
     {
       echo "could not cd ${TMP} ... exiting"
@@ -189,7 +189,7 @@
     }
 
 # Run Networking tests ?
-    
+
     [ "$RUN_NETEST" -eq 1 ] && \
     {
         [ -z "$RHOST" ] || [ -z "$PASSWD" ] && \
@@ -215,7 +215,7 @@
             echo "WARNING: security of $RHOST may be compromised"
         }
     }
-    
+
     # If user does not provide a command file select a default set of testcases
     # to execute.
     if   [ -f $CMDFILE ] || \
@@ -231,7 +231,7 @@
     if [ "$RUN_NETEST" -eq 1 ]; then
         SCENARIO_LISTS="$SCENARIO_LISTS $LTPROOT/scenario_groups/network"
     fi
- 
+
     # DO NOT INDENT/DEDENT!
         if [ -n "$SCENARIO_LISTS" ]; then
             # Insurance to make sure that the first element in the pipe
@@ -262,7 +262,7 @@
     # ^^DO NOT INDENT/DEDENT!^^
 
     # The fsx-linux tests use the SCRATCHDEV environment variable as a location
-    # that can be reformatted and run on.  Set SCRATCHDEV if you want to run 
+    # that can be reformatted and run on.  Set SCRATCHDEV if you want to run
     # these tests.  As a safeguard, this is disabled.
     unset SCRATCHDEV
     [ -n "$SCRATCHDEV" ] && \
@@ -273,14 +273,14 @@
              exit 1
          }
     }
-    
+
     # check for required users and groups
     ${LTPROOT}/IDcheck.sh &>/dev/null || \
     {
         echo "WARNING: required users and groups not present"
         echo "WARNING: some test cases may fail"
     }
-    
+
     [ -n "$CMDFILES" ] && \
     {
         for scenfile in `echo "$CMDFILES" | tr ',' ' '`
@@ -294,10 +294,10 @@
             }
         done
     }
- 
+
     # display versions of installed software
     [ -z "$QUIET_MODE" ] && \
-    { 
+    {
         ${LTPROOT}/ver_linux || \
         {
             echo "WARNING: unable to display versions of software installed"
@@ -319,7 +319,7 @@
     cd "${LTPROOT}/testcases/bin"
     ${LTPROOT}/bin/ltp-pan $QUIET_MODE -e -S $INSTANCES $DURATION -a $$ \
     -n $$ $PRETTY_PRT -f ${TMP}/alltests $LOGFILE $OUTPUTFILE
-    
+
     if [ $? -eq 0 ]; then
       echo "INFO: ltp-pan reported all tests PASS"
       VALUE=0
@@ -329,21 +329,21 @@
     fi
     cd ..
     [ ! -z "$QUIET_MODE" ] && { echo "INFO: Test end time: $(date)" ; }
-    
+
     [ "$GENLOAD" -eq 1 ] && { killall -9 genload ; }
     [ "$NETPIPE" -eq 1 ] && { killall -9 NPtcp ; }
-    
+
     [ "$ALT_DIR" -eq 1 ] && \
     {
     cat <<-EOF >&1
-        
+
        ###############################################################"
-        
+
             Done executing testcases."
             result log is in the $LTPROOT/results directory"
-        
+
        ###############################################################"
-       
+
 	EOF
     }
     exit $VALUE
diff --git a/runtest/commands b/runtest/commands
index 193c7e4..b711294 100644
--- a/runtest/commands
+++ b/runtest/commands
@@ -2,7 +2,7 @@
 ar export TCdat=$LTPROOT/testcases/bin; ar01
 ld export TCdat=$LTPROOT/testcases/bin; ld01
 ldd export TCdat=$LTPROOT/testcases/bin; ldd01
-nm export TCdat=$LTPROOT/testcases/bin; nm01 
+nm export TCdat=$LTPROOT/testcases/bin; nm01
 objdump export TCsrc=$LTPROOT/testcases/bin; objdump01
 file export TCdat=$LTPROOT/testcases/bin; file_test.sh
 tar export TCdat=$LTPROOT/testcases/bin; tar_tests.sh
diff --git a/runtest/dio b/runtest/dio
index e6ca64a..97820e9 100644
--- a/runtest/dio
+++ b/runtest/dio
@@ -18,15 +18,15 @@
 ### Run the tests with larger iterations
 dio13 diotest1 -b 65536 -n 2000
 dio14 diotest2 -b 65536 -i 1000
-dio15 diotest3 -b 65536 -i 1000 
+dio15 diotest3 -b 65536 -i 1000
 dio16 diotest5 -b 65536 -i 1000
 dio17 diotest6 -b 65536 -i 1000
 
 ## Run the tests with larger offset - 1MB
-dio18 diotest2 -b 65536 -i 1000 -o 1024000 
-dio19 diotest3 -b 65536 -i 1000 -o 1024000 
-dio20 diotest5 -b 65536 -i 1000 -o 1024000 
-dio21 diotest6 -b 65536 -i 1000 -o 1024000 
+dio18 diotest2 -b 65536 -i 1000 -o 1024000
+dio19 diotest3 -b 65536 -i 1000 -o 1024000
+dio20 diotest5 -b 65536 -i 1000 -o 1024000
+dio21 diotest6 -b 65536 -i 1000 -o 1024000
 
 ## Run the tests with larger offset - 100 MB
 dio22 diotest2 -b 65536 -i 1000 -o 104857600
@@ -44,19 +44,19 @@
 #dio30 diotest6 -b 65536 -n 100 -i 1000 -o 1024000
 #
 # RAW DEVICE TEST SECTION
-#   DEV1 and DEV2 should be exported prior to execution or 
-# replaced with the actual device ids, i.e. 
-#   dio33 diotest1 -i /dev/sda2 -o /dev/sda3 
-# 
+#   DEV1 and DEV2 should be exported prior to execution or
+# replaced with the actual device ids, i.e.
+#   dio33 diotest1 -i /dev/sda2 -o /dev/sda3
+#
 ### Run the tests with raw device
-#dio33 diotest1 -i $DEV1 -o $DEV2 
-#dio34 diotest2 -f $DEV1 
-#dio36 diotest3 -f $DEV1 
-#dio37 diotest5 -f $DEV1 
-#dio38 diotest6 -f $DEV1 
+#dio33 diotest1 -i $DEV1 -o $DEV2
+#dio34 diotest2 -f $DEV1
+#dio36 diotest3 -f $DEV1
+#dio37 diotest5 -f $DEV1
+#dio38 diotest6 -f $DEV1
 #
 ### Run the tests with raw device and larger iterations
-#dio39 diotest1 -b 65536 -n 2000 -i $DEV1 -o $DEV2 
+#dio39 diotest1 -b 65536 -n 2000 -i $DEV1 -o $DEV2
 #dio40 diotest2 -b 65536 -i 1000 -f $DEV1
 #dio41 diotest3 -b 65536 -i 1000 -f $DEV1
 #dio42 diotest5 -b 65536 -i 1000 -f $DEV1
diff --git a/runtest/fs_perms_simple b/runtest/fs_perms_simple
index cd5a534..b2dc720 100644
--- a/runtest/fs_perms_simple
+++ b/runtest/fs_perms_simple
@@ -4,7 +4,7 @@
 #
 # fs_perms file_mode file_uid file_gid test_uid test_gid mode (r|w|x) expected_result
 
-# We are executing shell script, thuss 
+# We are executing shell script, thuss
 # both exec and read right is needed.
 fs_perms01 fs_perms 005 99 99 12 100 x 0
 fs_perms02 fs_perms 050 99 99 200 99 x 0
diff --git a/runtest/ipc b/runtest/ipc
index 896c3b5..50f072a 100644
--- a/runtest/ipc
+++ b/runtest/ipc
@@ -2,30 +2,30 @@
 # These tests use tests/pipeio to put pipes (named or unnamed) through a workout
 #
 pipeio_1 pipeio -T pipeio_1 -c 5 -s 4090 -i 100 -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using blocking I/O
 #pipeio_2 pipeio -T pipeio_2 -c 5 -s 4090 -i 100 -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_3 pipeio -T pipeio_3 -c 5 -s 4090 -i 100 -u -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using blocking I/O
 pipeio_4 pipeio -T pipeio_4 -c 5 -s 4090 -i 100 -u -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using non-blocking I/O
 pipeio_5 pipeio -T pipeio_5 -c 5 -s 5000 -i 10 -b -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using blocking I/O
 pipeio_6 pipeio -T pipeio_6 -c 5 -s 5000 -i 10 -b -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using blocking I/O
 #pipeio_7 pipeio -T pipeio_7 -c 5 -s 5000 -i 10 -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_8 pipeio -T pipeio_8 -c 5 -s 5000 -i 10 -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using non-blocking I/O
 
 sem01 sem01
diff --git a/runtest/ltp-aio-stress.part1 b/runtest/ltp-aio-stress.part1
index 2cad799..e6ce367 100644
--- a/runtest/ltp-aio-stress.part1
+++ b/runtest/ltp-aio-stress.part1
@@ -1,5 +1,5 @@
 #DESCRIPTION:ltp A-sync IO Stress IO tests
-# 
+#
 # aio-stress [-s size] [-r size] [-a size] [-d num] [-b num]
 #                 [-i num] [-t num] [-c num] [-C size] [-nxhlvOS ]
 #                 file1 [/test/aiodio/file2 ...]
@@ -61,18 +61,18 @@
 ADS1032 aio-stress -I500  -o1 -S -r8    -t2    /test/aiodio/junkfile /test/aiodio/file2
 ADS1033 aio-stress -I500  -o1 -S -r16   -t2    /test/aiodio/junkfile /test/aiodio/file2
 ADS1034 aio-stress -I500  -o1 -S -r32   -t4    /test/aiodio/junkfile /test/aiodio/file2  /test/aiodio/file7  /test/aiodio/file8
-ADS1035 aio-stress -I500  -o1 -S -r64   -t4    /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8                                                                               
-ADS1036 aio-stress -I500  -o1 -S -r128  -t4    /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8                                                                               
+ADS1035 aio-stress -I500  -o1 -S -r64   -t4    /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8
+ADS1036 aio-stress -I500  -o1 -S -r128  -t4    /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8
 ADS1037 aio-stress -I500  -o1 -S -r256  -t8  /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8 /test/aiodio/file4  /test/aiodio/file3  /test/aiodio/file5  /test/aiodio/file6
 ADS1038 aio-stress -I500  -o1 -S -r512  -t8  -x /test/aiodio/junkfile /test/aiodio/file2  /test/aiodio/file7  /test/aiodio/file8 /test/aiodio/file3  /test/aiodio/file4  /test/aiodio/file5  /test/aiodio/file6
 ADS1039 aio-stress -I500  -o1 -O -r4    -t8  -x  /test/aiodio/junkfile /test/aiodio/file2        /test/aiodio/file7  /test/aiodio/file8 /test/aiodio/file3  /test/aiodio/file4  /test/aiodio/file5  /test/aiodio/file6
-ADS1040 aio-stress -I500  -o1 -O -r8    -t2  -x /test/aiodio/junkfile /test/aiodio/file2         
-ADS1041 aio-stress -I500  -o1 -O -r16   -t2  -x  /test/aiodio/junkfile /test/aiodio/file2         
-ADS1042 aio-stress -I500  -o1 -O -r32   -t2   /test/aiodio/junkfile /test/aiodio/file2      
-ADS1043 aio-stress -I500  -o1 -O -r64   -t2   /test/aiodio/junkfile /test/aiodio/file2      
-ADS1044 aio-stress -I500  -o1 -O -r4    -t4   /test/aiodio/junkfile /test/aiodio/file2        /test/aiodio/file7  /test/aiodio/file8                                                                               
-ADS1045 aio-stress -I500  -o1 -O -r8    -t4   /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8                                                                               
-ADS1046 aio-stress -I500  -o1 -O -r16   -t4   /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8                                                                               
+ADS1040 aio-stress -I500  -o1 -O -r8    -t2  -x /test/aiodio/junkfile /test/aiodio/file2
+ADS1041 aio-stress -I500  -o1 -O -r16   -t2  -x  /test/aiodio/junkfile /test/aiodio/file2
+ADS1042 aio-stress -I500  -o1 -O -r32   -t2   /test/aiodio/junkfile /test/aiodio/file2
+ADS1043 aio-stress -I500  -o1 -O -r64   -t2   /test/aiodio/junkfile /test/aiodio/file2
+ADS1044 aio-stress -I500  -o1 -O -r4    -t4   /test/aiodio/junkfile /test/aiodio/file2        /test/aiodio/file7  /test/aiodio/file8
+ADS1045 aio-stress -I500  -o1 -O -r8    -t4   /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8
+ADS1046 aio-stress -I500  -o1 -O -r16   -t4   /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8
 ADS1047 aio-stress -I500  -o1 -O -r32   -t8   /test/aiodio/junkfile /test/aiodio/file2     /test/aiodio/file7  /test/aiodio/file8 /test/aiodio/file4  /test/aiodio/file3  /test/aiodio/file5  /test/aiodio/file6
 ADS1048 aio-stress -I500  -o1 -O -r64   -t8   /test/aiodio/junkfile /test/aiodio/file2  /test/aiodio/file7  /test/aiodio/file8 /test/aiodio/file3  /test/aiodio/file4  /test/aiodio/file5  /test/aiodio/file6
 ADS1049 aio-stress -I500  -o1 -O -r128  -t8   /test/aiodio/junkfile /test/aiodio/file2        /test/aiodio/file7  /test/aiodio/file8 /test/aiodio/file3  /test/aiodio/file4  /test/aiodio/file5  /test/aiodio/file6
diff --git a/runtest/ltp-aio-stress.part2 b/runtest/ltp-aio-stress.part2
index 88b1610..92b501c 100644
--- a/runtest/ltp-aio-stress.part2
+++ b/runtest/ltp-aio-stress.part2
@@ -1,5 +1,5 @@
 #DESCRIPTION:ltp A-sync IO Stress IO tests
-# 
+#
 # aio-stress [-s size] [-r size] [-a size] [-d num] [-b num]
 #                 [-i num] [-t num] [-c num] [-C size] [-nxhlvOS ]
 #                 file1 [/test/aiodio/file2 ...]
diff --git a/runtest/ltp-aiodio.part1 b/runtest/ltp-aiodio.part1
index dcfbd48..0338e18 100644
--- a/runtest/ltp-aiodio.part1
+++ b/runtest/ltp-aiodio.part1
@@ -1,5 +1,5 @@
 #DESCRIPTION:ltp A-sync IO and Direct IO tests
-# 
+#
 AD001 time aiocp -b 1k -n 1 -f DIRECT $TMPDIR/aiodio.$$/junkfile $TMPDIR/aiodio.$$/ff2
 AD002 time aiocp -b 1k -n 1 -f SYNC $TMPDIR/aiodio.$$/junkfile $TMPDIR/aiodio.$$/ff2
 AD003 time aiocp -b 1k -n 1 -f DIRECT -f SYNC $TMPDIR/aiodio.$$/junkfile $TMPDIR/aiodio.$$/ff2
diff --git a/runtest/ltp-aiodio.part2 b/runtest/ltp-aiodio.part2
index 6ee9894..28a84ac 100644
--- a/runtest/ltp-aiodio.part2
+++ b/runtest/ltp-aiodio.part2
@@ -28,7 +28,7 @@
 ADSP027 aiodio_sparse -i 4 -a 8k -w 18192k -s 72768k -n 6
 ADSP028 aiodio_sparse -i 4 -a 8k -w 18192k -s 518192k -n 6
 ADSP029 aiodio_sparse -i 4 -a 8k -w 65536k -s 262144k -n 6
-ADSP030 aiodio_sparse -i 6 -a 8k -w 65536k -n 6 
+ADSP030 aiodio_sparse -i 6 -a 8k -w 65536k -n 6
 ADSP031 aiodio_sparse -i 8 -a 8k -w 128k -s 1024k -n 6
 ADSP032 aiodio_sparse -i 16 -a 8k -w 256k -s 4096k -n 6
 ADSP033 aiodio_sparse -i 32 -a 8k -w 512k -s 16384k -n 6
@@ -36,9 +36,9 @@
 ADSP035 aiodio_sparse -i 4 -a 8k -w 4096k -s 16384k -n 32
 ADSP036 aiodio_sparse -i 4 -a 8k -w 4096k -s 16384k -n 64
 ADSP037 aiodio_sparse -i 4 -a 8k -w 18192k -s 72768k -n 128
-ADSP038 aiodio_sparse -i 4 -a 8k -w 18192k -n 512 
+ADSP038 aiodio_sparse -i 4 -a 8k -w 18192k -n 512
 ADSP039 aiodio_sparse -i 4 -a 8k -w 18192k -n 1000
-ADSP040 dio_sparse 
+ADSP040 dio_sparse
 ADSP041 dio_sparse -s 180k
 ADSP042 dio_sparse -dd -s 1751k -w 11k
 ADSP043 dio_sparse  -d -s 180k -w 18k
diff --git a/runtest/ltp-aiodio.part3 b/runtest/ltp-aiodio.part3
index 9aabf0e..c9b2b81 100644
--- a/runtest/ltp-aiodio.part3
+++ b/runtest/ltp-aiodio.part3
@@ -1,51 +1,51 @@
 #           fname:  this filename is Required (no default)
 #
 #
-FSX032 fsx-linux -d  -l 500000 -r 4096 -t 4096 -w 4096 -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX033 fsx-linux -d  -l 500000 -r 4096 -t 2048 -w 2048 -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX034 fsx-linux -d  -l 500000 -r 4096 -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX035 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX036 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX037 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX038 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX039 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile 
-FSX040 fsx-linux -N 10000 -o 1024 $TMPDIR/aiodio.$$/junkfile 
-FSX041 fsx-linux -N 10000 -o 2048 $TMPDIR/aiodio.$$/junkfile 
-FSX042 fsx-linux -N 10000 -o 4096 $TMPDIR/aiodio.$$/junkfile 
-FSX043 fsx-linux -N 10000 -o 8192 $TMPDIR/aiodio.$$/junkfile 
-FSX044 fsx-linux -N 10000 -o 16384 $TMPDIR/aiodio.$$/junkfile 
-FSX045 fsx-linux -N 10000 -o 32768 $TMPDIR/aiodio.$$/junkfile 
-FSX046 fsx-linux -N 10000 -o 128000 $TMPDIR/aiodio.$$/junkfile 
-FSX047 fsx-linux -N 10000 -o 1024 $TMPDIR/aiodio.$$/junkfile 
-FSX048 fsx-linux -N 10000 -o 2048 $TMPDIR/aiodio.$$/junkfile 
-FSX049 fsx-linux -N 10000 -o 4096 $TMPDIR/aiodio.$$/junkfile 
-FSX050 fsx-linux -N 10000 -o 8192 $TMPDIR/aiodio.$$/junkfile 
-FSX051 fsx-linux -N 10000 -o 16384 $TMPDIR/aiodio.$$/junkfile 
-FSX052 fsx-linux -N 10000 -o 32768 $TMPDIR/aiodio.$$/junkfile 
-FSX053 fsx-linux -N 10000 -o 128000 $TMPDIR/aiodio.$$/junkfile 
-FSX054 fsx-linux -N 10000  -o 1024 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile 
-FSX055 fsx-linux -N 10000  -o 2048 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile 
-FSX056 fsx-linux -N 10000  -o 4096 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile 
-FSX057 fsx-linux -N 10000  -o 8192 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile 
-FSX058 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile 
-FSX059 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile 
-FSX060 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile 
-FSX061 fsx-linux -N 10000 -o 32768 $TMPDIR/aiodio.$$/junkfile                                          
-FSX062 fsx-linux -N 10000 -o 128000 $TMPDIR/aiodio.$$/junkfile                                         
-FSX063 fsx-linux -N 10000  -o 1024  -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile   
-FSX064 fsx-linux -N 10000  -o 2048 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile   
-FSX065 fsx-linux -N 10000  -o 4096 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile   
-FSX066 fsx-linux -N 10000  -o 8192  -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile    
-FSX067 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile   
-FSX068 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile   
-FSX069 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile  
-FSX070 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile   
-FSX071 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096   $TMPDIR/aiodio.$$/junkfile1 
-FSX072 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048   $TMPDIR/aiodio.$$/junkfile2 
-FSX073 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile3 
-FSX074 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096   $TMPDIR/aiodio.$$/junkfile4 
-FSX075 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048   $TMPDIR/aiodio.$$/junkfile5 
-FSX076 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile6 
-FSX077 fsx-linux -N 10000   $TMPDIR/aiodio.$$/junkfile7 
-FSX078 fsx-linux -N 100000  $TMPDIR/aiodio.$$/junkfile8 
-FSX079 fsx-linux -N 100000  $TMPDIR/aiodio.$$/junkfile9 
+FSX032 fsx-linux -d  -l 500000 -r 4096 -t 4096 -w 4096 -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX033 fsx-linux -d  -l 500000 -r 4096 -t 2048 -w 2048 -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX034 fsx-linux -d  -l 500000 -r 4096 -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX035 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX036 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX037 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX038 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX039 fsx-linux -d  -N 10000 $TMPDIR/aiodio.$$/junkfile
+FSX040 fsx-linux -N 10000 -o 1024 $TMPDIR/aiodio.$$/junkfile
+FSX041 fsx-linux -N 10000 -o 2048 $TMPDIR/aiodio.$$/junkfile
+FSX042 fsx-linux -N 10000 -o 4096 $TMPDIR/aiodio.$$/junkfile
+FSX043 fsx-linux -N 10000 -o 8192 $TMPDIR/aiodio.$$/junkfile
+FSX044 fsx-linux -N 10000 -o 16384 $TMPDIR/aiodio.$$/junkfile
+FSX045 fsx-linux -N 10000 -o 32768 $TMPDIR/aiodio.$$/junkfile
+FSX046 fsx-linux -N 10000 -o 128000 $TMPDIR/aiodio.$$/junkfile
+FSX047 fsx-linux -N 10000 -o 1024 $TMPDIR/aiodio.$$/junkfile
+FSX048 fsx-linux -N 10000 -o 2048 $TMPDIR/aiodio.$$/junkfile
+FSX049 fsx-linux -N 10000 -o 4096 $TMPDIR/aiodio.$$/junkfile
+FSX050 fsx-linux -N 10000 -o 8192 $TMPDIR/aiodio.$$/junkfile
+FSX051 fsx-linux -N 10000 -o 16384 $TMPDIR/aiodio.$$/junkfile
+FSX052 fsx-linux -N 10000 -o 32768 $TMPDIR/aiodio.$$/junkfile
+FSX053 fsx-linux -N 10000 -o 128000 $TMPDIR/aiodio.$$/junkfile
+FSX054 fsx-linux -N 10000  -o 1024 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX055 fsx-linux -N 10000  -o 2048 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile
+FSX056 fsx-linux -N 10000  -o 4096 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX057 fsx-linux -N 10000  -o 8192 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile
+FSX058 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX059 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile
+FSX060 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX061 fsx-linux -N 10000 -o 32768 $TMPDIR/aiodio.$$/junkfile
+FSX062 fsx-linux -N 10000 -o 128000 $TMPDIR/aiodio.$$/junkfile
+FSX063 fsx-linux -N 10000  -o 1024  -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX064 fsx-linux -N 10000  -o 2048 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile
+FSX065 fsx-linux -N 10000  -o 4096 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX066 fsx-linux -N 10000  -o 8192  -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile
+FSX067 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX068 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048 $TMPDIR/aiodio.$$/junkfile
+FSX069 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX070 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile
+FSX071 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096   $TMPDIR/aiodio.$$/junkfile1
+FSX072 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048   $TMPDIR/aiodio.$$/junkfile2
+FSX073 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile3
+FSX074 fsx-linux -N 10000  -o 16384 -l 500000 -r 4096 -t 4096 -w 4096   $TMPDIR/aiodio.$$/junkfile4
+FSX075 fsx-linux -N 10000  -o 32768 -l 500000 -r 4096 -t 2048 -w 2048   $TMPDIR/aiodio.$$/junkfile5
+FSX076 fsx-linux -N 10000  -o 128000 -l 500000 -r 4096 -t 4096 -w 4096 $TMPDIR/aiodio.$$/junkfile6
+FSX077 fsx-linux -N 10000   $TMPDIR/aiodio.$$/junkfile7
+FSX078 fsx-linux -N 100000  $TMPDIR/aiodio.$$/junkfile8
+FSX079 fsx-linux -N 100000  $TMPDIR/aiodio.$$/junkfile9
diff --git a/runtest/ltp-aiodio.part4 b/runtest/ltp-aiodio.part4
index 2bec991..bb8abfd 100644
--- a/runtest/ltp-aiodio.part4
+++ b/runtest/ltp-aiodio.part4
@@ -56,11 +56,11 @@
 ADI008 dio_append
 ADI009 dio_append
 #Running dio_truncate
-DIT000 dio_truncate 
-DIT001 dio_truncate 
+DIT000 dio_truncate
+DIT001 dio_truncate
 DIT002 dio_truncate
 #Running read_checkzero
-#gread_checkzero 
+#gread_checkzero
 #Running ltp-diorh
 DOR000 ltp-diorh $TMPDIR/aiodio.$$/file2
 DOR001 ltp-diorh $TMPDIR/aiodio.$$/file3
diff --git a/runtest/ltplite b/runtest/ltplite
index ee573a9..95774da 100644
--- a/runtest/ltplite
+++ b/runtest/ltplite
@@ -26,30 +26,30 @@
 # These tests use tests/pipeio to put pipes (named or unnamed) through a workout
 #
 pipeio_1 pipeio -T pipeio_1 -c 5 -s 4090 -i 100 -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using blocking I/O
 #pipeio_2 pipeio -T pipeio_2 -c 5 -s 4090 -i 100 -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_3 pipeio -T pipeio_3 -c 5 -s 4090 -i 100 -u -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using blocking I/O
 pipeio_4 pipeio -T pipeio_4 -c 5 -s 4090 -i 100 -u -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using non-blocking I/O
 pipeio_5 pipeio -T pipeio_5 -c 5 -s 5000 -i 10 -b -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using blocking I/O
 pipeio_6 pipeio -T pipeio_6 -c 5 -s 5000 -i 10 -b -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using blocking I/O
 #pipeio_7 pipeio -T pipeio_7 -c 5 -s 5000 -i 10 -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_8 pipeio -T pipeio_8 -c 5 -s 5000 -i 10 -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using non-blocking I/O
 
 sem01 sem01
@@ -104,7 +104,7 @@
 chmod02 chmod02
 chmod03 chmod03
 chmod04 chmod04
-chmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chmod05 
+chmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chmod05
 chmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chmod06
 chmod07 chmod07
 
@@ -182,7 +182,7 @@
 fchmod02 fchmod02
 fchmod03 fchmod03
 fchmod04 fchmod04
-fchmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod05 
+fchmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod05
 fchmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod06
 fchmod07 fchmod07
 
@@ -218,8 +218,8 @@
 fcntl23 fcntl23
 fcntl24 fcntl24
 fcntl25 fcntl25
-fcntl26 fcntl26 
-# The tests for these system calls  fcntl27 and fcntl28 are temporarily being disabled 
+fcntl26 fcntl26
+# The tests for these system calls  fcntl27 and fcntl28 are temporarily being disabled
 # fcntl27 fcntl27
 # fcntl28 fcntl28
 
@@ -551,8 +551,8 @@
 pause02 pause02
 pause03 pause03
 
-#  The personality() system call is poorly documented 
-#  and difficult to figure out how to use by looking 
+#  The personality() system call is poorly documented
+#  and difficult to figure out how to use by looking
 #  at the different architecture specific kernel files.
 #personality01 personality01
 #personality02 personality02
@@ -927,7 +927,7 @@
 # This syscall is obsolete.  The latest glibc does not even
 # include the ulimit.h file anymore.  The test will fail
 # because the error handling has been simplified.
-# 
+#
 # ulimit01 ulimit01
 
 umask01 umask01
diff --git a/runtest/network_stress.route b/runtest/network_stress.route
index e50cf13..00ce52f 100644
--- a/runtest/network_stress.route
+++ b/runtest/network_stress.route
@@ -7,7 +7,7 @@
 route4-change-if route4-change-if
 route4-redirect route4-redirect
 route4-ifdown route4-ifdown
-route4-rmmod route4-rmmod 
+route4-rmmod route4-rmmod
 
 route6-change-dst route6-change-dst
 route6-change-gw route6-change-gw
diff --git a/runtest/network_stress.selected b/runtest/network_stress.selected
index 769d460..1445ec1 100644
--- a/runtest/network_stress.selected
+++ b/runtest/network_stress.selected
@@ -1,4 +1,4 @@
-# 
+#
 # This command list is the selected network stress testcases
 # `network_stress.whole' has the whole list of network stress testcasses
 #
diff --git a/runtest/network_stress.whole b/runtest/network_stress.whole
index e350154..35c219f 100644
--- a/runtest/network_stress.whole
+++ b/runtest/network_stress.whole
@@ -27,7 +27,7 @@
 route4-change-if route4-change-if
 route4-redirect route4-redirect
 route4-ifdown route4-ifdown
-route4-rmmod route4-rmmod 
+route4-rmmod route4-rmmod
 
 route6-change-dst route6-change-dst
 route6-change-gw route6-change-gw
diff --git a/runtest/pipes b/runtest/pipes
index fffd32f..900c9a2 100644
--- a/runtest/pipes
+++ b/runtest/pipes
@@ -2,28 +2,28 @@
 # These tests use tests/pipeio to put pipes (named or unnamed) through a workout
 #
 pipeio_1 pipeio -T pipeio_1 -c 5 -s 4090 -i 100 -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using blocking I/O
 #pipeio_2 pipeio -T pipeio_2 -c 5 -s 4090 -i 100 -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_3 pipeio -T pipeio_3 -c 5 -s 4090 -i 100 -u -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using blocking I/O
 pipeio_4 pipeio -T pipeio_4 -c 5 -s 4090 -i 100 -u -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using non-blocking I/O
 pipeio_5 pipeio -T pipeio_5 -c 5 -s 5000 -i 10 -b -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using blocking I/O
 pipeio_6 pipeio -T pipeio_6 -c 5 -s 5000 -i 10 -b -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using blocking I/O
 #pipeio_7 pipeio -T pipeio_7 -c 5 -s 5000 -i 10 -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_8 pipeio -T pipeio_8 -c 5 -s 5000 -i 10 -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using non-blocking I/O
diff --git a/runtest/quickhit b/runtest/quickhit
index 0ed4da4..ea3c9c1 100644
--- a/runtest/quickhit
+++ b/runtest/quickhit
@@ -8,7 +8,7 @@
 alarm02 alarm02
 # Boundary Value Test for alarm(2)
 #    TEST CASES
-#      Test Case One - A call to alarm() shall not return an error if 
+#      Test Case One - A call to alarm() shall not return an error if
 #       seconds is a -1.
 #       Test FAILS if a non-zero value is returned.
 #      Test Case Two - A call to alarm() shall not return an error if
@@ -29,7 +29,7 @@
 # 	Repeated call to testrun() with decreasing write sizes
 # 		less than BUFSIZ
 # 	End
-# 
+#
 # 	Start testrun()
 # 	Attempt to open a temporary file.
 # 	Write the memory to the file.
@@ -127,16 +127,16 @@
 # Child inheritance of Environment Variables after fork()
 #    TEST CASES
 #       Test these environment variables correctly inherited by child:
-#       1. TERM 
+#       1. TERM
 #       2. NoTSetzWq
-#       3. TESTPROG 
+#       3. TESTPROG
 fork05 fork05
 # This is a test sent in my Ulrich Drepper to test for a bug in fork() where
 # %gs is not handled correctly.  See fork05.c for a copy of Ulrich's email
 fpathconf01 fpathconf01
 # Basic test for fpathconf(2)
 fstat01 fstat01
-# Basic test for fstat(2) 
+# Basic test for fstat(2)
 fstatfs01 fstatfs01
 # Basic test for fstatfs(2)
 fsync01 fsync01
@@ -146,7 +146,7 @@
 geteuid01 geteuid01
 # Basic test for geteuid(2)
 getgid01 getgid01
-# Basic test for getgid(2) 
+# Basic test for getgid(2)
 getgroups01 getgroups01
 # Getgroups system call critical test
 #    TEST CASES
@@ -164,13 +164,13 @@
 gethostname01 gethostname01
 # Basic test for gethostname(2)
 getpgrp01 getpgrp01
-# Basic test for getpgrp(2) 
+# Basic test for getpgrp(2)
 getpid01 getpid01
-# Basic test for getpid(2) 
+# Basic test for getpid(2)
 getppid01 getppid01
-# Basic test for getppid(2) 
+# Basic test for getppid(2)
 getuid01 getuid01
-# Basic test for getuid(2) 
+# Basic test for getuid(2)
 kill02 kill02
 # Sending a signal to processes with the same process group ID.
 kill09 kill09
@@ -248,7 +248,7 @@
 sighold02 sighold02
 # Holding all signals
 signal03 signal03
-# Boundary value and other invalid value checking of signal setup 
+# Boundary value and other invalid value checking of signal setup
 # and signal sending.
 sigrelse01 sigrelse01
 # Releasing held signals
@@ -261,7 +261,7 @@
 statvfs01 statvfs01
 # Basic test for statvfs(2) mounted filesys
 sync01 sync01
-# Basic test for sync(2) 
+# Basic test for sync(2)
 time01 time01
 # Basic test for time(2)
 times01 times01
diff --git a/runtest/rpctirpc b/runtest/rpctirpc
index bff8a3f..5748d63 100644
--- a/runtest/rpctirpc
+++ b/runtest/rpctirpc
@@ -2,4 +2,4 @@
 #
 # PLEASE READ THE README FILE IN /rpc BEFORE RUNNING THESE.
 #
-run_tirpc_tests.sh export TCbin=$LTPROOT/testcases/network/rpc/rpc-tirpc-full-test-suite; run_tirpc_tests.sh 
+run_tirpc_tests.sh export TCbin=$LTPROOT/testcases/network/rpc/rpc-tirpc-full-test-suite; run_tirpc_tests.sh
diff --git a/runtest/stress.part1 b/runtest/stress.part1
index f0e80a0..d879aaf 100644
--- a/runtest/stress.part1
+++ b/runtest/stress.part1
@@ -65,15 +65,15 @@
 ### Run the tests with larger iterations
 dio13 diotest1 -b 65536 -n 2000
 dio14 diotest2 -b 65536 -i 1000
-dio15 diotest3 -b 65536 -i 1000 
+dio15 diotest3 -b 65536 -i 1000
 dio16 diotest5 -b 65536 -i 1000
 dio17 diotest6 -b 65536 -i 1000
 
 ## Run the tests with larger offset - 1MB
-dio18 diotest2 -b 65536 -i 1000 -o 1024000 
-dio19 diotest3 -b 65536 -i 1000 -o 1024000 
-dio20 diotest5 -b 65536 -i 1000 -o 1024000 
-dio21 diotest6 -b 65536 -i 1000 -o 1024000 
+dio18 diotest2 -b 65536 -i 1000 -o 1024000
+dio19 diotest3 -b 65536 -i 1000 -o 1024000
+dio20 diotest5 -b 65536 -i 1000 -o 1024000
+dio21 diotest6 -b 65536 -i 1000 -o 1024000
 
 ## Run the tests with larger offset - 100 MB
 dio22 diotest2 -b 65536 -i 1000 -o 104857600
@@ -91,19 +91,19 @@
 #dio30 diotest6 -b 65536 -n 100 -i 1000 -o 1024000
 #
 # RAW DEVICE TEST SECTION
-#   DEV1 and DEV2 should be exported prior to execution or 
-# replaced with the actual device ids, i.e. 
-#   dio33 diotest1 -i /dev/sda2 -o /dev/sda3 
-# 
+#   DEV1 and DEV2 should be exported prior to execution or
+# replaced with the actual device ids, i.e.
+#   dio33 diotest1 -i /dev/sda2 -o /dev/sda3
+#
 ### Run the tests with raw device
-#dio33 diotest1 -i $DEV1 -o $DEV2 
-#dio34 diotest2 -f $DEV1 
-#dio36 diotest3 -f $DEV1 
-#dio37 diotest5 -f $DEV1 
-#dio38 diotest6 -f $DEV1 
+#dio33 diotest1 -i $DEV1 -o $DEV2
+#dio34 diotest2 -f $DEV1
+#dio36 diotest3 -f $DEV1
+#dio37 diotest5 -f $DEV1
+#dio38 diotest6 -f $DEV1
 #
 ### Run the tests with raw device and larger iterations
-#dio39 diotest1 -b 65536 -n 2000 -i $DEV1 -o $DEV2 
+#dio39 diotest1 -b 65536 -n 2000 -i $DEV1 -o $DEV2
 #dio40 diotest2 -b 65536 -i 1000 -f $DEV1
 #dio41 diotest3 -b 65536 -i 1000 -f $DEV1
 #dio42 diotest5 -b 65536 -i 1000 -f $DEV1
diff --git a/runtest/stress.part2 b/runtest/stress.part2
index 8e7491b..7435708 100644
--- a/runtest/stress.part2
+++ b/runtest/stress.part2
@@ -21,30 +21,30 @@
 # These tests use tests/pipeio to put pipes (named or unnamed) through a workout
 #
 pipeio_1 pipeio -T pipeio_1 -c 5 -s 4090 -i 100 -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using blocking I/O
 #pipeio_2 pipeio -T pipeio_2 -c 5 -s 4090 -i 100 -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_3 pipeio -T pipeio_3 -c 5 -s 4090 -i 100 -u -b -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using blocking I/O
 pipeio_4 pipeio -T pipeio_4 -c 5 -s 4090 -i 100 -u -f x80
-# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe 
+# spawns 5 children to write 100 chunks of 4090 bytes to an unnamed pipe
 # using non-blocking I/O
 pipeio_5 pipeio -T pipeio_5 -c 5 -s 5000 -i 10 -b -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using blocking I/O
 pipeio_6 pipeio -T pipeio_6 -c 5 -s 5000 -i 10 -b -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using blocking I/O
 #pipeio_7 pipeio -T pipeio_7 -c 5 -s 5000 -i 10 -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to a named pipe
 # using non-blocking I/O
 # This test hits EAGAIN, which pipeio doesn't handle at the moment
 pipeio_8 pipeio -T pipeio_8 -c 5 -s 5000 -i 10 -u -f x80
-# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe 
+# spawns 5 children to write 10 chunks of 5000 bytes to an unnamed pipe
 # using non-blocking I/O
 
 sem01 sem01
diff --git a/runtest/stress.part3 b/runtest/stress.part3
index 0f33a48..99eeddc 100644
--- a/runtest/stress.part3
+++ b/runtest/stress.part3
@@ -46,7 +46,7 @@
 chmod02 chmod02
 chmod03 chmod03
 chmod04 chmod04
-chmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chmod05 
+chmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chmod05
 chmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;chmod06
 chmod07 chmod07
 
@@ -123,7 +123,7 @@
 fchmod02 fchmod02
 fchmod03 fchmod03
 fchmod04 fchmod04
-fchmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod05 
+fchmod05 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod05
 fchmod06 cp -p $LTPROOT/testcases/bin/change_owner $TMPDIR;fchmod06
 fchmod07 fchmod07
 
@@ -817,7 +817,7 @@
 # This syscall is obsolete.  The latest glibc does not even
 # include the ulimit.h file anymore.  The test will fail
 # because the error handling has been simplified.
-# 
+#
 # ulimit01 ulimit01
 
 umask01 umask01
diff --git a/runtest/tcp_cmds b/runtest/tcp_cmds
index 8c1494e..4722ca8 100644
--- a/runtest/tcp_cmds
+++ b/runtest/tcp_cmds
@@ -3,7 +3,7 @@
 # PLEASE READ THE README FILE IN /tcp_cmds BEFORE RUNNING THESE.
 #
 arp arp01
-echo export TCbin=$LTPROOT/testcases/network/tcp_cmds/echo; echo01 
+echo export TCbin=$LTPROOT/testcases/network/tcp_cmds/echo; echo01
 finger finger01
 ftp export TCbin=$LTPROOT/testcases/network/tcp_cmds/ftp; ftp01
 host host01
diff --git a/scripts/detect_distro.sh b/scripts/detect_distro.sh
index a2c13d1..db2f6f6 100755
--- a/scripts/detect_distro.sh
+++ b/scripts/detect_distro.sh
@@ -31,7 +31,7 @@
 
 while getopts "d:m" opt; do
 
-	case "$opt" in 
+	case "$opt" in
 	d)
 		if [ ! -d "$OPTARG" ] ; then
 			error "$OPTARG doesn't exist"
diff --git a/scripts/lib/file_functions.sh b/scripts/lib/file_functions.sh
index fd56492..fe15bd1 100644
--- a/scripts/lib/file_functions.sh
+++ b/scripts/lib/file_functions.sh
@@ -35,13 +35,13 @@
 #    iv. Replace /./ with /
 #    v. Replace trailing /. with /
 #    vi. Replace heading ./ with /
-#    vii. Replace /. with "". 
+#    vii. Replace /. with "".
 
 # testcases/kernel/controllers/libcontrollers/../../../..
 _abspath() {
 	echo "$@" | awk -v PWD=$(pwd) '{
 	sub(/^[[:space:]]+/, ""); sub(/[[:space:]]+$/, ""); # 1.
-	if ($0 == "") { 
+	if ($0 == "") {
 		print PWD
 	} else {
 		if (!($0 ~ /^\//)) { # i.
@@ -50,7 +50,7 @@
 		while (gsub(/\/\//, "/")) { }; # ii.
 		while (sub(/\/[^\/]+\/\.\.\/?/, "/")) { }; # iii.
 		while (sub(/\/\.\//, "/")) { }; # iv.
-		sub(/(\/\.)?\/$/, ""); 
+		sub(/(\/\.)?\/$/, "");
 		sub(/^\.\//, "/");
 		sub(/\/\.$/, "");
 		if ($0 == "") {
@@ -63,7 +63,7 @@
 			}
 		}
 	}
-}' 
+}'
 }
 
 _realpath() {
diff --git a/testcases/commands/ade/ar/ar01 b/testcases/commands/ade/ar/ar01
index 178c72b..e2220df 100755
--- a/testcases/commands/ade/ar/ar01
+++ b/testcases/commands/ade/ar/ar01
@@ -28,7 +28,7 @@
 #          Group the options together
 #          Compare the behavior of the two cases
 #          If they behave differently, then fail
-#          If none of the cases fail, then pass 
+#          If none of the cases fail, then pass
 #
 #  HISTORY:
 #    06/01 Robbie Williamson (robbiew@us.ibm.com)
@@ -65,7 +65,7 @@
 	if [ $TCRESULT = 0 ]; then
 		echo "---------------ar command passed the system test-----------------"
 		exit 0
-	else 
+	else
 		echo "---------------ar command failed the system test-----------------"
 		exit 1
 	fi
@@ -116,7 +116,7 @@
 	#The 'a' flag causes files to be placed after 'posname'.
 
 	#  CODE
-	rm -rf $TCtmp/lib.a;cd $TCdat 
+	rm -rf $TCtmp/lib.a;cd $TCdat
 
 	printf "file1.in\nfile2.in\nfile3.in\n" >$TCtmp/lib.a.exp
 
@@ -140,7 +140,7 @@
 	rm -rf $TCtmp/lib.a
 	cd $TCdat
 
-	ar -cr $TCtmp/lib.a file1.in file2.in file3.in file4.in 
+	ar -cr $TCtmp/lib.a file1.in file2.in file3.in file4.in
 	crtest
 	printf "file1.in\nfile4.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp
 	ar -ma file1.in $TCtmp/lib.a file4.in
@@ -182,7 +182,7 @@
 
 	# CODE
 	rm -rf $TCtmp/lib.a
-	cd $TCdat 
+	cd $TCdat
 
 	ar -cr $TCtmp/lib.a file1.in file3.in file2.in
 	crtest
@@ -220,7 +220,7 @@
 		echo "FAIL - ar with -c option did not suppress messages."
 	fi
 
-	# The 'qc' option causes suppresion of the default message when 
+	# The 'qc' option causes suppresion of the default message when
 	# 'afile' is created.
 
 	# CODE
@@ -257,8 +257,8 @@
 		TCRESULT=7
 		echo "FAIL - ar with -d option does not delete files form the archive"
 	fi
- 
-	# The -d option does not delete files from archive when no names 
+
+	# The -d option does not delete files from archive when no names
 	# are specified.
 
 	# CODE
@@ -279,7 +279,7 @@
 		TCRESULT=8
 		echo "FAIL - ar with -d option deleted files even when none were specified"
 	fi
- 
+
 	# The -d does not affect behaviour of -s option.
 
 	# CODE
@@ -322,7 +322,7 @@
 		TCRESULT=10
 		echo "FAIL - ar with -i did not place the files before 'posname'."
 	fi
- 
+
 	# The 'i' flag with 'm' option causes files to be moved before 'posname'.
 
 	# CODE
@@ -344,7 +344,7 @@
 		TCRESULT=11
 		echo "FAIL - ar with -i failed to move files before 'posname'."
 	fi
- 
+
 	# m option moves the files to end of the archive
 
 	# CODE
@@ -367,7 +367,7 @@
 		TCRESULT=12
 		echo "FAIL - ar with -m fails to move the files to the end of archive"
 	fi
- 
+
 	# The -p option causes only printing of contents of file contained in
 	# archive.
 
@@ -385,7 +385,7 @@
 		TCRESULT=13
 		echo "FAIL - ar with -p option failed to print the contents."
 	fi
- 
+
 	# The -p does not affect behaviour of -s option.
 
 	# CODE
@@ -404,7 +404,7 @@
 		TCRESULT=14
 		echo "FAIL - ar with -p did the affect behaviour of -s option"
 	fi
- 
+
 	# The command 'ar -q afile name' appends name to the end of 'afile'.
 
 	# CODE
@@ -425,8 +425,8 @@
 		TCRESULT=15
 		echo "FAIL - ar with -q afilename failed to append to the end of file"
 	fi
- 
-	# q option does not affect the behaviour of option s 
+
+	# q option does not affect the behaviour of option s
 
 	# CODE
 
@@ -444,7 +444,7 @@
 		TCRESULT=16
 		echo "FAIL - ar with -q did affect the behaviour of -s option."
 	fi
- 
+
 	# The -s causes regeneration of symbol table even if a symbol table exists.
 
 	echo "-)17 SKIPPED due to binutils ar automatically adds a symbol."
@@ -465,19 +465,19 @@
 		TCRESULT=18
 		echo "FAIL - ar with -t did not print as desired"
 	fi
- 
+
 	# The -t does not affect behaviour of -s option.
 
 	echo "-)19 SKIPPED due to binutils ar automatically adds a symbol."
 
-	# The 'u' flag causes files only with later modification date than 
+	# The 'u' flag causes files only with later modification date than
 	# in archive are replaced.
 
 	# CODE
 	rm -rf $TCtmp/lib.a
 	cd $TCdat
 
-	ar -cr $TCtmp/lib.a file0.in file2.in 
+	ar -cr $TCtmp/lib.a file0.in file2.in
 	crtest
 	File1time=`ar -tv $TCtmp/lib.a | grep file0.in`
 	File2time=`ar -tv $TCtmp/lib.a | grep file2.in`
@@ -524,7 +524,7 @@
 	    	TCRESULT=21
 		echo "FAIL - ar with -v flag failed to print a line for each file"
 	fi
- 
+
 	# The -v option produces a verbose listing like ls -n
 
 	# CODE
@@ -554,8 +554,8 @@
 		TCRESULT=22
 		echo "FAIL - ar with -v failed to produce a verbose out put"
 	fi
- 
-	# The 'v' option causes the 'x' option to display a filename for each 
+
+	# The 'v' option causes the 'x' option to display a filename for each
 	# file extracted.
 
 	# CODE
@@ -572,7 +572,7 @@
 		TCRESULT=23
 		echo "FAIL - ar with -v along with x did not display extracted file names"
 	fi
- 
+
 	# The command 'ar -x afile ' causes all files from the archive to be extracted.
 
 	# CODE
@@ -581,7 +581,7 @@
 	ar -cr $TCtmp/lib.a file1.in file2.in file3.in
 	crtest
 
-	Count=`ar -xv $TCtmp/lib.a | wc -l` 
+	Count=`ar -xv $TCtmp/lib.a | wc -l`
 
 	if [ $Count -eq '3' ]
 	then
@@ -590,8 +590,8 @@
 		TCRESULT=24
 		echo "FAIL - ar with -x flag did not extract all file"
 	fi
- 
-	# The command 'ar -x afile name name' causes only named files from 
+
+	# The command 'ar -x afile name name' causes only named files from
 	# the archive to be extracted.
 
 	# CODE
@@ -615,7 +615,7 @@
 
 	# CODE
 
-	rm -rf $TCtmp/lib.* 
+	rm -rf $TCtmp/lib.*
 
 	ar -vr $TCtmp/lib.a $LIST >>$TCtmp/lib.a.stdout&
 	while [ ! -s $TCtmp/lib.a ]
@@ -632,12 +632,12 @@
 	else
 		echo "-)27"
 	fi
- 
+
 	# Signal SIGQUIT
 
 	# CODE
 
-	rm -rf $TCtmp/lib.* 
+	rm -rf $TCtmp/lib.*
 
 	ar -vr $TCtmp/lib.a $LIST >>$TCtmp/lib.a.stdout&
 	while [ ! -s $TCtmp/lib.a ]
@@ -654,7 +654,7 @@
 	else
 		echo "-)28"
 	fi
- 
+
 	# Signal SIGHUP; ar should not remove archive that existed before invocation.
 
 	# CODE
@@ -678,7 +678,7 @@
 	else
 		echo "-)29"
 	fi
- 
+
 	# Signal SIGINIT; ar should not remove archive that existed before invocation.
 
 	# CODE
@@ -704,7 +704,7 @@
 	else
 		echo "-)30"
 	fi
- 
+
 	# Signal SIGQUIT; ar should not remove archive that existed before invocation.
 
 	# CODE
@@ -729,7 +729,7 @@
 	else
 		echo "-)31"
 	fi
- 
+
 	rm -rf $TCtmp
 	COUNT=`expr $COUNT + 1`
 
diff --git a/testcases/commands/ade/file/file_test.sh b/testcases/commands/ade/file/file_test.sh
index f415057..a2389b1 100755
--- a/testcases/commands/ade/file/file_test.sh
+++ b/testcases/commands/ade/file/file_test.sh
@@ -18,12 +18,12 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ################################################################################
-#                                                                              
+#
 # File:           file_test.sh
 #
 # Description: This program tests the file command. The tests are aimed at
 #              testing if the file command can recognize some of the commonly
-#              used file formats like, tar, tar.gz, rpm, C, ASCII, ELF etc. 
+#              used file formats like, tar, tar.gz, rpm, C, ASCII, ELF etc.
 #
 # Author:      Manoj Iyer, manjo@mail.utexas.edu
 #
@@ -45,12 +45,12 @@
 #
 # Test01: Test if file command recognizes ASCII text files
 # -------
-# 1) Write text to a known file 
+# 1) Write text to a known file
 # 2) Use 'file' command to get the type of the known file
 #    Ex: file xyz.txt
-# 3) Grep for the keyword "ASCII text" in the output of the 
+# 3) Grep for the keyword "ASCII text" in the output of the
 #    'file' command
-# 4) Declare test as PASS if above step is successful else 
+# 4) Declare test as PASS if above step is successful else
 #    declare test as FAIL
 #
 # Test02: Test if file command can recognize bash shell script
@@ -58,9 +58,9 @@
 # 1) Write a small bash shell script to a known file
 # 2) Use 'file' command to get the type of the known file
 #    Ex: file xyz.sh
-# 3) Grep for the keyword "Bourne-Again shell script" in 
+# 3) Grep for the keyword "Bourne-Again shell script" in
 #    the output of the 'file' command
-# 4) Declare test as PASS if above step is successful else 
+# 4) Declare test as PASS if above step is successful else
 #    declare test as FAIL
 #
 # Test03: Test if file command can recognize bash shell script
@@ -76,17 +76,17 @@
 #   Similar test(as Test02) is performed with C program text
 #
 # Test06: Test if file command can recognize ELF binay executables
-# -------  
-# 1) Grep for 'm68k' or 'sparc' or 'mips' or 'mipseb' or 'sh.eb' 
-#    or 'powerpc' or 'ppc' or 's390' from the output of the command 
+# -------
+# 1) Grep for 'm68k' or 'sparc' or 'mips' or 'mipseb' or 'sh.eb'
+#    or 'powerpc' or 'ppc' or 's390' from the output of the command
 #    'uname -m'
-# 2) If the above step is successful, assign string 'MSB' to variable 
+# 2) If the above step is successful, assign string 'MSB' to variable
 #    TARGET_ARCH else assign string 'LSB'
 # 3) Write small C program to a known '.c' file
 # 4) Compile it using "cc"
 #    Ex: cc xyz xyz.c
 # 5) Use file command to get the type of the object file
-# 6) Grep for the string "ELF .*-bit $TEST_ARCH executable, .*" 
+# 6) Grep for the string "ELF .*-bit $TEST_ARCH executable, .*"
 #    in the output of the 'file' command
 # 7) If the above command is successful, declare test as PASS
 #    else declare test as FAIL
@@ -112,7 +112,7 @@
 #    Ex: gzip -f xyz.tar
 # 4) Use 'file' command to get the type of the archive file
 #    Ex: file xyz.tar.gz
-# 5) Grep for the string "gzip compressed data, .*" from the above 
+# 5) Grep for the string "gzip compressed data, .*" from the above
 #    file commnand
 # 6) Declare test as PASS, if the above step is successfull else
 #    declare test as FAIL
@@ -120,9 +120,9 @@
 
 
 export TST_TOTAL=10                # Number of tests in this testcase
- 
+
 if [ -z "$LTPTMP" -a -z "$TMPBASE" ]
-then 
+then
     LTPTMP=/tmp/
 else
     LTPTMP=$TMPBASE
@@ -137,7 +137,7 @@
 	LTPBIN=$LTPROOT/testcases/bin/
 fi
 
-# set return code RC variable to 0, it will be set with a non-zero return code 
+# set return code RC variable to 0, it will be set with a non-zero return code
 # in case of error. Set TFAILCNT to 0, increment if there occures a failure.
 
 TFAILCNT=0
@@ -152,7 +152,7 @@
 $LTPBIN/tst_resm TINFO "TEST #1: file command recogizes ASCII text files"
 
 cat > $LTPTMP/test_file.txt <<EOF
-This is a text file 
+This is a text file
 to test file command.
 EOF
 
@@ -439,14 +439,14 @@
     $LTPBIN/tst_brk TBROK $LTPTMP/file.out NULL \
         "file: tar failed unexpectedly. Reason:"
 fi
-    
+
 gzip -f $LTPTMP/files.tar
 if [ $? -ne 0 ]
 then
     $LTPBIN/tst_brk TBROK $LTPTMP/file.out NULL \
         "file: gzip failed unexpectedly. Reason:"
 fi
-    
+
 file $LTPTMP/files.tar.gz > $LTPTMP/file.out 2>&1
 if [ $? -eq 0 ]
 then
@@ -499,7 +499,7 @@
 Version: 0.0.7
 Release: 3
 $gpl
-Group: LillB test case 
+Group: LillB test case
 Source: ./cprog.c
 BuildRoot: /var/tmp/%{name}-buildroot
 
@@ -571,7 +571,7 @@
         $LTPBIN/tst_res TFAIL $LTPTMP/file.out \
              "file: Failed to Recognize RPM file. Reason:"
         TFAILCNT=$(( $TFAILCNT+1 ))
-        
+
     fi
 else
     $LTPBIN/tst_resm TFAIL "file: Failed to recognize RPM file"
diff --git a/testcases/commands/ade/ld/ld01 b/testcases/commands/ade/ld/ld01
index 490adfa..ca4318e 100755
--- a/testcases/commands/ade/ld/ld01
+++ b/testcases/commands/ade/ld/ld01
@@ -58,7 +58,7 @@
 	fi
 fi
 
-#ASSERTION 1 
+#ASSERTION 1
 #Test for graceful failure when ld can't find a fileTest calling ld directly
 #
 #CODE
@@ -81,7 +81,7 @@
 
 
 
-##ASSERTION 2 
+##ASSERTION 2
 #Test for graceful failure when ld can't find a fileTest calling ld through cc
 #
 #CODE
@@ -185,7 +185,7 @@
 
 
 ## ASSERTION 6
-## Making sure that the linker ignores the "-Bstatic" option 
+## Making sure that the linker ignores the "-Bstatic" option
 ## when using a dynamically linked shared object
 ##
 echo "Assertion 6 .................."
@@ -220,7 +220,7 @@
 	else
 		echo "-)"
 	fi
-fi # end of checking for ld version less than 2.16	
+fi # end of checking for ld version less than 2.16
 
 ##
 ## ASSERTION 7
@@ -231,7 +231,7 @@
 
 
 echo "Assertion 7 .................."
-$LD -Bdynamic -shared $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj -o $TCtmp/lola -L/usr/lib/ 
+$LD -Bdynamic -shared $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj -o $TCtmp/lola -L/usr/lib/
 $LD -Bstatic -r  $TCdat/ldmain.obj $TCdat/f1.obj $TCdat/rf1.obj $TCtmp/lola -L/usr/lib/ 2> $TCtmp/errmsg.out
 cat <<EOF > $TCtmp/errmsg.exp
 $TCtmp/lola: could not read symbols: Invalid operation
@@ -240,7 +240,7 @@
 grep -q  "could not read symbols: Invalid operation" $TCtmp/errmsg.out
 rc_grep=$?
 grep -q "ld: attempted static link of dynamic object" $TCtmp/errmsg.out
-if [ $rc_grep -eq 0  -o $? -eq 0 ]; then 
+if [ $rc_grep -eq 0  -o $? -eq 0 ]; then
 	echo "-)"
 else
 	echo "FAIL - ld failed to give expected error msg"
diff --git a/testcases/commands/ade/ldd/ldd01 b/testcases/commands/ade/ldd/ldd01
index fc26ecd..c7dc519 100755
--- a/testcases/commands/ade/ldd/ldd01
+++ b/testcases/commands/ade/ldd/ldd01
@@ -64,13 +64,13 @@
 	$CC $CFLAGS -shared -o $TCtmp/lddfile4.obj.so $TCdat/lddfile4.obj
 	$CC $CFLAGS -shared -o $TCtmp/lddfile5.obj.so $TCdat/lddfile5.obj
 	$CC $CFLAGS -O -o $TCtmp/a.out $TCtmp/lddfile*.obj.so $TCdat/main.obj
-} 
+}
 
 do_test()
 {
 	echo "  ASSERTION 1  "
 
-	$LDD $TCtmp/a.out | grep -E "lddfile1.obj.so|lddfile2.obj.so|lddfile3.obj.so|lddfile4.obj.so|lddfile5.obj.so" 
+	$LDD $TCtmp/a.out | grep -E "lddfile1.obj.so|lddfile2.obj.so|lddfile3.obj.so|lddfile4.obj.so|lddfile5.obj.so"
 	if [ $? -eq 0 ]; then
 		echo "ASSERTION #1 PASS"
 	else
@@ -81,7 +81,7 @@
 
 	echo " ASSERTION 2  "
 
-	$LDD -v $TCtmp/a.out | grep -E "GLIBC|lddfile1.obj.so|lddfile2.obj.so|lddfile3.obj.so|lddfile4.obj.so|lddfile5.obj.so" 
+	$LDD -v $TCtmp/a.out | grep -E "GLIBC|lddfile1.obj.so|lddfile2.obj.so|lddfile3.obj.so|lddfile4.obj.so|lddfile5.obj.so"
 	if [ $? -eq 0 ]; then
 		echo "ASSERTION #2 PASS"
 	else
diff --git a/testcases/commands/ade/nm/nm01 b/testcases/commands/ade/nm/nm01
index 2488634..4cb5835 100755
--- a/testcases/commands/ade/nm/nm01
+++ b/testcases/commands/ade/nm/nm01
@@ -63,26 +63,26 @@
 ar -cr $TCtmp/lib.a nmfile1.obj nmfile1.obj nmfile2.obj nmfile3.obj
 
 # -A  Displays either the full path name or library name of an object
-# on each line.                   
+# on each line.
 
 # CODE
 RC1=0
-RC2=0 
+RC2=0
 
 mkdir -p $TCtmp/a/b/c/d
 
 $NM -f posix -A $TCtmp/lib.a | grep "$TCtmp/lib.a\[nmfile2.obj\]\:" 2>&1 1>/dev/null
-RC1=$? 
+RC1=$?
 cp $TCtmp/lib.a $TCtmp/a/b/c/d/
 $NM -f posix -A $TCtmp/a/b/c/d/lib.a | grep "$TCtmp/a/b/c/d/lib.a\[nmfile2.obj\]\:"  2>&1 1>/dev/null
-RC2=$? 
+RC2=$?
 
 
-if [ $RC1 -eq  '0' ] && [ $RC2 -eq '0' ] 
+if [ $RC1 -eq  '0' ] && [ $RC2 -eq '0' ]
 then
 	echo "-)1"
 else
-	echo "nm -A: FAIL" 
+	echo "nm -A: FAIL"
 	do_cleanup
 	exit 1
 fi
@@ -93,7 +93,7 @@
 # CODE
 
 COUNT=`$NM -f posix -g $TCtmp/nmfile1 | awk '{print $2 }' | grep "[a,b,d,f,t]"  | wc -l` 2>&1 1>/dev/null
-if [ $COUNT -eq 0 ] 
+if [ $COUNT -eq 0 ]
 then
 	echo "-)2"
 else
@@ -102,22 +102,22 @@
 	exit 1
 fi
 #-------------------------------------------------------------------------------
-# -t o Displays a symbol's value as an octal rather than     
-# a decimal number.               
+# -t o Displays a symbol's value as an octal rather than
+# a decimal number.
 
 # CODE
 $NM -f posix -t o $TCtmp/nmfile1 | awk '{print $3}' | grep "[8-9]" >/dev/null 2>&1
-if [ $? -eq "1" ] 
+if [ $? -eq "1" ]
 then
 	echo "-)3"
 else
 	echo "nm -t o: FAIL"
 	do_cleanup
-	exit 1	
+	exit 1
 fi
 #-------------------------------------------------------------------------------
 
-# -f sysv Displays information in a SysV output format 
+# -f sysv Displays information in a SysV output format
 # CODE
 
 count=0
@@ -134,7 +134,7 @@
 
 #-------------------------------------------------------------------------------
 
-# -f bsd Displays information in a BSD output format 
+# -f bsd Displays information in a BSD output format
 # CODE
 $NM -f bsd $TCtmp/nmfile1 | grep printf | awk '{print $2}' > $TCtmp/nm.diff1
 $NM -f posix $TCtmp/nmfile1 | grep printf | awk '{print $1}' > $TCtmp/nm.diff2
diff --git a/testcases/commands/ade/objdump/Makefile b/testcases/commands/ade/objdump/Makefile
index 76838f4..2f16849 100644
--- a/testcases/commands/ade/objdump/Makefile
+++ b/testcases/commands/ade/objdump/Makefile
@@ -37,7 +37,7 @@
 	$(STRIP) $@
 
 INSTALL_TARGETS		:= objdump01
- 
+
 MAKE_TARGETS		:= test_arch_debug test_arch_stripped test_arch.obj
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/commands/ade/objdump/objdump01 b/testcases/commands/ade/objdump/objdump01
index 9b7e3df..c720b81 100755
--- a/testcases/commands/ade/objdump/objdump01
+++ b/testcases/commands/ade/objdump/objdump01
@@ -103,7 +103,7 @@
 	##ASSERTION POSIX NEXT_AVAILABLE C
 	#
 	#-R Dump dynamic linking information and static shared library information, if
-	#available. 
+	#available.
 	#
 	#CODE
 
@@ -166,7 +166,7 @@
 	#--show-raw-insn
 	#
 	#When disassembling instructions, print the instruction  in  hex  as
-	#well  as  in symbolic form.  This is the default except when 
+	#well  as  in symbolic form.  This is the default except when
 	#--prefix-addresses is used.
 	#
 	#CODE
@@ -186,7 +186,7 @@
 
 	##ASSERTION POSIX NEXT_AVAILABLE C
 	#
-	#-h --show-raw-insn 
+	#-h --show-raw-insn
 	#
 	#When disassembling instructions, print the instruction  in  hex  as
 	#well  as  in symbolic form.  This is the default except when
diff --git a/testcases/commands/at/at_allow01 b/testcases/commands/at/at_allow01
index 5ada6a6..43b3428 100755
--- a/testcases/commands/at/at_allow01
+++ b/testcases/commands/at/at_allow01
@@ -126,7 +126,7 @@
 			echo "Error while adding job using at for user ${test_user1}."
 			exit 1
 		fi
-		echo " Sleeping for 75 seconds...."	
+		echo " Sleeping for 75 seconds...."
 		sleep 75
 
 		exit_code=1
diff --git a/testcases/commands/at/at_deny01 b/testcases/commands/at/at_deny01
index b43ea34..fe3dce0 100755
--- a/testcases/commands/at/at_deny01
+++ b/testcases/commands/at/at_deny01
@@ -125,7 +125,7 @@
 #-----------------------------------------------------------------------
 run_test()
 {
-	if [ $(whoami) = "${test_user1}" ]; then 
+	if [ $(whoami) = "${test_user1}" ]; then
 		. "${test_user1_home}/cached_ltproot" || exit 1
 		export PATH="$PATH:$LTPROOT/testcases/bin"
 
@@ -136,7 +136,7 @@
 			echo "Error while adding job using at for user ${test_user1}."
 			exit 1
 		fi
-		echo " Sleeping for 75 seconds...."	
+		echo " Sleeping for 75 seconds...."
 		sleep 75
 
 		exit_code=1
diff --git a/testcases/commands/cpio/cpio_tests.sh b/testcases/commands/cpio/cpio_tests.sh
index 2fbf21e..90883c1 100755
--- a/testcases/commands/cpio/cpio_tests.sh
+++ b/testcases/commands/cpio/cpio_tests.sh
@@ -24,7 +24,7 @@
 #
 # Description:  Test basic functionality of cpio command
 #				- Test #1:  cpio -o can create an archive.
-#               
+#
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
 # History:      Jan 30 2003 - Created - Manoj Iyer.
@@ -58,7 +58,7 @@
 		LTPBIN=$LTPROOT/testcases/bin
 	fi
 
-	
+
 	$LTPBIN/tst_resm TINFO "INIT: Inititalizing tests."
 
 	which cpio > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
@@ -69,14 +69,14 @@
 		return $RC
 	fi
 
-	mkdir -p $LTPTMP/tst_cpio.tmp > $LTPTMP/tst_cpio.err 2>&1 || RC=$? 
+	mkdir -p $LTPTMP/tst_cpio.tmp > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
 		$LTPBIN/tst_brk TBROK $LTPTMP/tst_cpio.err NULL \
 			"Test #1: failed creating temp directory. Reason:"
 		return $RC
 	fi
-	
+
 	for i in a b c d e f g h i j k l m n o p q r s t u v w x y z
 	do
 		touch $LTPTMP/tst_cpio.tmp/$i > $LTPTMP/tst_cpio.err 2>&1 || RC=$?
@@ -101,14 +101,14 @@
 	export TST_COUNT=0	# init identifier,
 
 	$LTPBIN/tst_resm TINFO "CLEAN cleaning up before return"
-	rm -fr $LTPTMP/tst_cpio* > /dev/null 2>&1 
+	rm -fr $LTPTMP/tst_cpio* > /dev/null 2>&1
 	return
 }
 
 
 # Function:		test01
 #
-# Description	- Test #1: Test that cpio -o will create a cpio archive. 
+# Description	- Test #1: Test that cpio -o will create a cpio archive.
 #
 # Return		- zero on success
 #               - non zero on failure. return value from commands ($RC)
@@ -150,7 +150,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 
@@ -158,7 +158,7 @@
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
 RC=0				# Return code from tests.
 
-init || exit $RC	# Exit if initializing testcases fails.	
+init || exit $RC	# Exit if initializing testcases fails.
 
 test01 || RC=$?		# Test #1
 if [ $RC -eq 0 ]
diff --git a/testcases/commands/cron/cron02 b/testcases/commands/cron/cron02
index d348936..e1f399d 100755
--- a/testcases/commands/cron/cron02
+++ b/testcases/commands/cron/cron02
@@ -16,7 +16,7 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : cron02 
+#  FILE   : cron02
 #
 #  PURPOSE: Test a postive cron job
 #			- add new job
@@ -44,7 +44,7 @@
         userdel $TEST_USER
 	sleep 1
 
-        useradd -m -g $TEST_USER_GROUP $TEST_USER 
+        useradd -m -g $TEST_USER_GROUP $TEST_USER
         if [ $? != 0 ]
         then {
                 echo "Could not add test user $TEST_USER to system $RHOST."
@@ -84,7 +84,7 @@
 
 do_cleanup(){
         rm -rf /home/$TEST_USER
-        userdel $TEST_USER 
+        userdel $TEST_USER
 }
 
 #-----------------------------------------------------------------------
diff --git a/testcases/commands/cron/cron03 b/testcases/commands/cron/cron03
index e1a19ee..bbb8125 100755
--- a/testcases/commands/cron/cron03
+++ b/testcases/commands/cron/cron03
@@ -16,7 +16,7 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : cron 
+#  FILE   : cron
 #
 #  PURPOSE: Test a bad (negative) cron job
 #			- try to edit the crontab of root
@@ -45,10 +45,10 @@
 
     #erase user if he may exist , so we can have a clean env
         rm -rf /home/$TEST_USER
-        userdel $TEST_USER 
+        userdel $TEST_USER
 	sleep 1
 
-        useradd -m -g $TEST_USER_GROUP $TEST_USER 
+        useradd -m -g $TEST_USER_GROUP $TEST_USER
         if [ $? != 0 ]
         then {
                 echo "Could not add test user $TEST_USER to system $RHOST."
@@ -70,7 +70,7 @@
 
 do_cleanup(){
         rm -rf /home/$TEST_USER
-        userdel $TEST_USER 
+        userdel $TEST_USER
 }
 
 #-----------------------------------------------------------------------
diff --git a/testcases/commands/cron/cron_allow01 b/testcases/commands/cron/cron_allow01
index ffecf68..dbe59cd 100755
--- a/testcases/commands/cron/cron_allow01
+++ b/testcases/commands/cron/cron_allow01
@@ -29,7 +29,7 @@
 tvar=${MACHTYPE%-*}
 tvar=${tvar#*-}
 
-if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ] 
+if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ]
 then
 CRON_ALLOW="/etc/cron.allow"
 else
@@ -57,7 +57,7 @@
         rm -rf /home/$TEST_USER1
         rm -rf /home/$TEST_USER2
 	userdel $TEST_USER1
-	userdel $TEST_USER2 
+	userdel $TEST_USER2
 	sleep 1
 
 #create 1st user
@@ -69,7 +69,7 @@
     }
     fi
 
-#create 2nd user	
+#create 2nd user
 	useradd -m -g users $TEST_USER2
     if [ $? != 0 ]
     then {
@@ -100,15 +100,15 @@
 run_test() {
 
 if [ $iam = $TEST_USER1 ]
-then 
+then
 	echo "TEST: $CRON_ALLOW should only allow those in the file to
 run cron jobs."
-		
+
 	echo "(1) TEST THAT PERSON IN $CRON_ALLOW IS ABLE TO RUN JOB."
 
 	echo "backup crontab...."
     crontab -l | grep '^[^#]' > /tmp/crontab-cronallow-save-$iam
-	
+
 	crontab - << EOF
         `date '+%M' | awk '{ORS=""; print ($1+2)%60 " * * * * "}'` echo "TEST JOB RAN" >> /tmp/cron_allow_test 2>&1
 EOF
@@ -116,49 +116,49 @@
 	echo Error while adding crontab for user $TEST_USER1
 	exit 1
 	fi
-	
-	echo "sleeping for 130 seconds...."	
+
+	echo "sleeping for 130 seconds...."
 	sleep 130
-	
+
 	EXIT_CODE=1
 	test -e /tmp/cron_allow_test && EXIT_CODE=0
-	
+
 	if [ $EXIT_CODE = 1 ]; then
 		echo "Cron did not allow user to execute job , TEST FAILED"
 	else
 		echo "Cron allowed user to execute test job, TEST PASSED"
 	fi
-	
+
 	 echo "restore old crontab..."
      crontab /tmp/crontab-cronallow-save-$iam
      rm -f /tmp/crontab-cronallow-save-$iam
- 
+
 
 	rm -f /tmp/cron_allow_test
-	
-	exit $EXIT_CODE	
+
+	exit $EXIT_CODE
 fi
 
 if [ $iam = $TEST_USER2 ]
 then
         echo "(2) TEST THAT PERSON NOT IN $CRON_ALLOW IS NOT ABLE TO RUN JOB."
-        
+
 		echo "backup crontab...."
     	crontab -l | grep '^[^#]' > /tmp/crontab-cronallow-save-$iam
-                                                        
+
         crontab - << EOF
         `date '+%M' | awk '{ORS=""; print ($1+2)%60 " * * * * "}'` echo "TEST JOB RAN" >> /tmp/cron_allow_test1 2>&1
 EOF
         if [ $? != 0 ]; then
         echo Error while adding crontab for user $TEST_USER2
         fi
-                                                                                                             
+
         echo "sleeping for 130 seconds...."
         sleep 130
-                                                                                                             
+
         EXIT_CODE=0
         test -e /tmp/cron_allow_test1 && EXIT_CODE=1
-                                                                                                             
+
         if [ $EXIT_CODE = 0 ]; then
                 echo "Cron did not allow user to execute job , TEST PASSED"
         else
@@ -168,9 +168,9 @@
 		echo "restore old crontab..."
      	crontab /tmp/crontab-cronallow-save-$iam
      	rm -f /tmp/crontab-cronallow-save-$iam
-                                                                                                             
+
         rm -f /tmp/cron_allow_test1
-                                                                                                             
+
         exit $EXIT_CODE
 fi
 
@@ -179,20 +179,20 @@
 #-----------------------------------------------------------------------
 # FUNCTION: main
 #-----------------------------------------------------------------------
-if [ $iam = "root" ] 
+if [ $iam = "root" ]
 then
 	do_setup
 	echo $TEST_USER1 > $CRON_ALLOW
 	EXIT_CODE=0
 	su $TEST_USER1 -c "$0"
 	if [ $? != 0 ]
-	then 
+	then
 	   EXIT_CODE=1
 	fi
 	su $TEST_USER2 -c "$0"
 	if [ $? != 0 ]
 	then EXIT_CODE=1
-	fi 
+	fi
 	do_cleanup
 	exit $EXIT_CODE
 else
diff --git a/testcases/commands/cron/cron_deny01 b/testcases/commands/cron/cron_deny01
index a9388fd..aefea92 100755
--- a/testcases/commands/cron/cron_deny01
+++ b/testcases/commands/cron/cron_deny01
@@ -29,7 +29,7 @@
 tvar=${MACHTYPE%-*}
 tvar=${tvar#*-}
 
-if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ] 
+if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ]
 then
 CRON_DENY="/etc/cron.deny"
 CRON_ALLOW="/etc/cron.allow"
@@ -51,7 +51,7 @@
 	#move any files that may get in the way
 	rm /tmp/cron_deny_test > /dev/null 2>&1
         rm /tmp/cron_deny_test1 > /dev/null 2>&1
-	
+
 	mv $CRON_DENY $CRON_DENY.old > /dev/null 2>&1
 	mv $CRON_ALLOW $CRON_ALLOW.old > /dev/null 2>&1
 
@@ -60,9 +60,9 @@
     su $TEST_USER2 -c "crontab -r"
         rm -rf /home/$TEST_USER1
         rm -rf /home/$TEST_USER2
-	userdel $TEST_USER1 
+	userdel $TEST_USER1
 	userdel $TEST_USER2
-	sleep 1	
+	sleep 1
 
 #create 1st user
 	useradd -m -g users $TEST_USER1
@@ -73,7 +73,7 @@
     }
     fi
 
-#create 2nd user	
+#create 2nd user
 	useradd -m -g users $TEST_USER2
     if [ $? != 0 ]
     then {
@@ -105,12 +105,12 @@
 run_test() {
 
 if [ $iam = $TEST_USER1 ]
-then 
+then
 	echo "TEST: $CRON_DENY should allow only allow those who are not in the file to
 run cron jobs."
-		
+
 	echo "(1) TEST THAT PERSON NOT IN $CRON_DENY IS ABLE TO RUN JOB."
-	
+
 	crontab - << EOF
 	`date '+%M' | awk '{ORS=""; print ($1+2)%60" * * * * "}'` echo "TEST JOB RAN" >> /tmp/cron_deny_test 2>&1
 EOF
@@ -118,13 +118,13 @@
 	echo Error while adding crontab for user $TEST_USER1
 	exit 1
 	fi
-	
-	echo "sleeping for 130 seconds...."	
+
+	echo "sleeping for 130 seconds...."
 	sleep 130
-	
+
 	EXIT_CODE=1
 	test -e /tmp/cron_deny_test && EXIT_CODE=0
-	
+
 	if [ $EXIT_CODE = 1 ]; then
 		echo "Cron did not allow user to execute job , TEST FAILED"
 	else
@@ -132,35 +132,35 @@
 	fi
 
 	rm -f /tmp/cron_deny_test
-	
-	exit $EXIT_CODE	
+
+	exit $EXIT_CODE
 fi
 
 if [ $iam = $TEST_USER2 ]
 then
         echo "(2) TEST THAT PERSON IN $CRON_DENY IS NOT ABLE TO RUN JOB."
-                                                                                                             
+
         crontab - << EOF
         `date '+%M' | awk '{ORS=""; print ($1+2)%60 " * * * * "}'` echo "TEST JOB RAN" >> /tmp/cron_deny_test 2>&1
 EOF
         if [ $? != 0 ]; then
         echo Error while adding crontab for user $TEST_USER2
         fi
-                                                                                                             
+
         echo "sleeping for 130 seconds...."
         sleep 130
-                                                                                                             
+
         EXIT_CODE=0
         test -e /tmp/cron_deny_test1 && EXIT_CODE=1
-                                                                                                             
+
         if [ $EXIT_CODE = 0 ]; then
                 echo "Cron did not allow user to execute job , TEST PASSED"
         else
                 echo "Cron allowed user to execute test job, TEST FAILED"
         fi
-                                                                                                             
+
         rm -f /tmp/cron_deny_test1
-                                                                                                             
+
         exit $EXIT_CODE
 fi
 
@@ -169,20 +169,20 @@
 #-----------------------------------------------------------------------
 # FUNCTION: main
 #-----------------------------------------------------------------------
-if [ $iam = "root" ] 
+if [ $iam = "root" ]
 then
 	do_setup
 	echo $TEST_USER2 > $CRON_DENY
 	EXIT_CODE=0
 	su $TEST_USER1 -c "$0"
 	if [ $? != 0 ]
-	then 
+	then
 	   EXIT_CODE=1
 	fi
 	su $TEST_USER2 -c "$0"
 	if [ $? != 0 ]
 	then EXIT_CODE=1
-	fi 
+	fi
 	do_cleanup
 	exit $EXIT_CODE
 else
diff --git a/testcases/commands/cron/cron_dirs_checks01 b/testcases/commands/cron/cron_dirs_checks01
index 288e165..0ba03b5 100755
--- a/testcases/commands/cron/cron_dirs_checks01
+++ b/testcases/commands/cron/cron_dirs_checks01
@@ -23,8 +23,8 @@
 #			/etc/cron.daily
 #			/etc/cron.hourly
 #			/etc/cron.monthly
-#			/etc/cron.weekly				
-#			/var/spool/cron				
+#			/etc/cron.weekly
+#			/var/spool/cron
 #	HISTORY:
 #		Jerone Young (jyoung5@us.ibm.com)
 #
@@ -34,7 +34,7 @@
 EXIT_CODE=0
 for i in $DIRS
 do
-	cron_dirs_check $i	
+	cron_dirs_check $i
 	if [ $? != 0 ]
 	then
 		echo "$i FAILED TEST!!!!!"
diff --git a/testcases/commands/cron/cron_neg_tests.sh b/testcases/commands/cron/cron_neg_tests.sh
index 769ca34..27f2137 100755
--- a/testcases/commands/cron/cron_neg_tests.sh
+++ b/testcases/commands/cron/cron_neg_tests.sh
@@ -3,7 +3,7 @@
 #
 # CHANGE ACTIVITY
 #
-#    10/01/04  Kris Wilson    RHEL4 only allows super user 
+#    10/01/04  Kris Wilson    RHEL4 only allows super user
 #                               to use crontab.
 #                               to use crontab.
 #    12/03/04  Marty Ridgeway Pull RHEl4 tests out from script
@@ -118,7 +118,7 @@
 fi
 
 CODE=0
-test -e /tmp/$tmpscript.out && CODE=1 
+test -e /tmp/$tmpscript.out && CODE=1
 if [ $CODE = "1" ]; then
 	echo "setuid test part 2 successfully failed (PASS)"
 else
diff --git a/testcases/commands/cron/cron_pos_tests.sh b/testcases/commands/cron/cron_pos_tests.sh
index acc08cb..2dc4ecc 100755
--- a/testcases/commands/cron/cron_pos_tests.sh
+++ b/testcases/commands/cron/cron_pos_tests.sh
@@ -7,7 +7,7 @@
 tvar=${MACHTYPE%-*}
 tvar=${tvar#*-}
 
-if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ] 
+if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ]
 then
 	CRON_ALLOW="/etc/cron.allow"
 else
diff --git a/testcases/commands/cron/cron_tests.sh b/testcases/commands/cron/cron_tests.sh
index a627ddb..c6e364a 100644
--- a/testcases/commands/cron/cron_tests.sh
+++ b/testcases/commands/cron/cron_tests.sh
@@ -30,12 +30,12 @@
 # date and time. Five samples are taken inorder to verify if cron job is run
 # every minute. It is not practical to check if it works for the remaining
 # fields of the crontab file also.
-# 
+#
 # Author:		Manoj Iyer manjo@mail.utexas.edu
 #
 # History:
 # 	Dec - 19 - 2002 - Created.
-#	Dec - 20 - 2002 - Correted Test #3, grep for the filename of cronjob 
+#	Dec - 20 - 2002 - Correted Test #3, grep for the filename of cronjob
 #                         after executing crontab -l.
 #                       - Fixed bug in #3, test was not installing the cronjob.
 #                       - Added more informational messages TINFO.
@@ -65,7 +65,7 @@
 RC=0
 
 # Test #1
-# Test if crontab <filename> installs the crontab file and cron schedules the 
+# Test if crontab <filename> installs the crontab file and cron schedules the
 # job correctly.
 
 export TCID=cron01
@@ -75,9 +75,9 @@
 $LTPBIN/tst_resm TINFO "Test #1: cron schedules the job listed in crontab file."
 
 # create the cron job. The job is to run the program tst1_cronprg.sh
-# every minute, every hour, every day, every month, any weekday. 
+# every minute, every hour, every day, every month, any weekday.
 
-cat > $LTPTMP/tst1_cronjob.cron <<EOF 
+cat > $LTPTMP/tst1_cronjob.cron <<EOF
 * * * * * $LTPTMP/tst1_cronprg.sh
 EOF
 
@@ -98,7 +98,7 @@
 # check the /var/log/messages to see if there is a record of any crontab
 # activity.
 
-$LTPBIN/tst_resm TINFO "Test #1: Installing cron job ... " 
+$LTPBIN/tst_resm TINFO "Test #1: Installing cron job ... "
 crontab $LTPTMP/tst1_cronjob.cron >$LTPTMP/cron_tst2n1.out 2>&1
 RC=$?
 
@@ -151,7 +151,7 @@
 # and time in a file tst1_cron.out. Extract the minute recorded by the program
 # into TS_MIN1 sleep for 1m 10s so that the cron will update this file after
 # 1m, extract TS_MIN2 and check if the minute recorded has advanced by 1. Take
-# 5 such samples, if any one of the fail, flag a failure. 
+# 5 such samples, if any one of the fail, flag a failure.
 
 LOOP_CNTR=5
 TS_MIN1=0
@@ -165,7 +165,7 @@
 	# wait for the cronjob to update the tst1_cron.out file.
 	sleep 1m 2s
 
-	# check the time recorded in the tst1_cron.out file, 
+	# check the time recorded in the tst1_cron.out file,
         # this should be 1 minute ahead of what was recored earlier.
 
 	TS_MIN2=$(awk '{print $8}' $LTPTMP/tst1_cron.out |
@@ -242,12 +242,12 @@
 
 
 # Test #2
-# Test if crontab -r removes the installed  crontab file 
+# Test if crontab -r removes the installed  crontab file
 
 export TCID=cron02
 export TST_COUNT=2
 
-$LTPBIN/tst_resm TINFO "Test #2: crontab -r removes the crontab file." 
+$LTPBIN/tst_resm TINFO "Test #2: crontab -r removes the crontab file."
 
 cat > $LTPTMP/tst2_cronjob.cron <<EOF
 * * * * * $LTPTMP/tst2_cronprg.sh
@@ -362,7 +362,7 @@
 crontab -l | grep "$LTPTMP/tst2_cronprg.sh" >$LTPTMP/cron_tst2n1.out 2>&1
 RC=$?
 if [ $RC -ne 0 ]
-then	
+then
 	$LTPBIN/tst_brkm TBROK NULL \
 		"Test #3: crontab failed while listing cronjobs installed"
 		 TFAILCNT=$(( $TFAILCNT+1 ))
@@ -375,14 +375,14 @@
 crontab -r >/dev/null 2>&1
 
 if [ $? -ne 0 ]
-then	
+then
 	$LTPBIN/tst_brkm TBROK NULL "Test #3: crontab failed while removing cronjob"
 		 TFAILCNT=$(( $TFAILCNT+1 ))
 fi
 
 crontab -l >$LTPTMP/cron_tst2.out 2>&1
 if [ $? -ne 0 ]
-then	
+then
 	grep "no crontab for" $LTPTMP/cron_tst2.out >$LTPTMP/cron_tst2n1.out 2>&1
 	RC=$?
 	if [ $RC -ne 0 ]
diff --git a/testcases/commands/eject/eject-tests.sh b/testcases/commands/eject/eject-tests.sh
index f7fce60..a1226b1 100755
--- a/testcases/commands/eject/eject-tests.sh
+++ b/testcases/commands/eject/eject-tests.sh
@@ -21,7 +21,7 @@
 #
 # File :        eject_tests.sh
 #
-# Description:  Tests basic functionality of eject command. 
+# Description:  Tests basic functionality of eject command.
 #
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
@@ -30,7 +30,7 @@
 #               Jan 03 2003 - Added - Test #3.
 #               Jan 06 2003 - Modified - Test #3.
 #                           - Changed tst_brk to use correct parameters.
-#                           - Check if $LTPTMP/cdrom directory exists before 
+#                           - Check if $LTPTMP/cdrom directory exists before
 #                             creating it.
 #                           - Corrected code to check if return code is not 0
 #                             which indicated failure.
@@ -65,7 +65,7 @@
 RC2=0
 
 # Test #1
-# Test that eject -d lists the default device. 
+# Test that eject -d lists the default device.
 
 export TCID=eject01
 export TST_COUNT=1
@@ -80,7 +80,7 @@
     grep "cdrom" $LTPTMP/tst_eject.res \
         2>&1 1>>$LTPTMP/tst_eject.out  || RC2=$?
     if [ $RC1 -eq 0 ] && [ $RC2 -eq 0 ]
-    then 
+    then
         $LTPBIN/tst_resm TPASS  "Test #1: eject -d lists the default device"
     else
         $LTPBIN/tst_res TFAIL $LTPTMP/tst_eject.out \
@@ -95,7 +95,7 @@
 
 
 # Test #2
-# Test that eject -d lists the default device. 
+# Test that eject -d lists the default device.
 
 export TCID=eject02
 export TST_COUNT=2
@@ -144,7 +144,7 @@
 if [ -d $LTPTMP/cdrom ]
 then
     $LTPBIN/tst_resm TINFO \
-        "Test #3: test cdrom mount point $LTPTMP/cdrom exists. Skip creation" 
+        "Test #3: test cdrom mount point $LTPTMP/cdrom exists. Skip creation"
 else
     mkdir -p $LTPTMP/cdrom > $LTPTMP/tst_eject.out 2>&1 || RC=$?
     if [ $RC -ne 0 ]
@@ -173,7 +173,7 @@
 else
     eject > $LTPTMP/tst_eject.out 2>&1 || RC=$?
     if [ $RC -eq 0 ]
-    then 
+    then
         mount > $LTPTMP/tst_eject.res 2>&1
         grep "$LTPTMP/cdrom" $LTPTMP/tst_eject.res > $LTPTMP/tst_eject.out 2>&1 \
             || RC=$?
@@ -202,7 +202,7 @@
 
 
 # Test #4
-# Test if eject -a on|1|off|0 will enable/disable auto-eject mode 
+# Test if eject -a on|1|off|0 will enable/disable auto-eject mode
 # the drive automatically ejects when the device is closed.
 
 export TCID=eject04
@@ -218,7 +218,7 @@
 # if not create one.
 if [ -d $LTPTMP/cdrom ]
 then
-    $LTPBIN/tst_resm TINFO "$LTPTMP/cdrom exists, skip creating the directory" 
+    $LTPBIN/tst_resm TINFO "$LTPTMP/cdrom exists, skip creating the directory"
 else
     mkdir -p $LTPTMP/cdrom > $LTPTMP/tst_eject.out 2>&1 || RC=$?
     if [ $RC -ne 0 ]
@@ -229,13 +229,13 @@
     fi
 fi
 
-# Check if /etc/fstab has this temporary mount point for /dev/cdrom listed 
-# as one of the entries. If not create and entry and make a back up of the 
+# Check if /etc/fstab has this temporary mount point for /dev/cdrom listed
+# as one of the entries. If not create and entry and make a back up of the
 # origianl /etc/fstab
 grep "$LTPTMP/cdrom" /etc/fstab > $LTPTMP/tst_eject.out 2>&1 || RC=$?
 if [ -f $LTPTMP/fstab.bak && $RC -eq 0 ]
 then
-     $LTPBIN/tst_resm TINFO "$LTPTMP/cdrom entry exists in /etc/fstab" 
+     $LTPBIN/tst_resm TINFO "$LTPTMP/cdrom entry exists in /etc/fstab"
 else
     cp /etc/fstab $LTPTMP/fstab.bak > $LTPTMP/tst_eject.out 2>&1
     echo "/dev/cdrom $LTPTMP/cdrom iso9660 defaults,ro,user,noauto 0 0" >>/etc/fstab 2>$LTPTMP/tst_eject.out || RC=$?
@@ -247,7 +247,7 @@
     fi
 fi
 
-# mount the cdrom device /dev/cdrom on to $LTPTMP/cdrom 
+# mount the cdrom device /dev/cdrom on to $LTPTMP/cdrom
 # and enable auto-eject. unmounting $LTPTMP/cdrom should open the tray and
 # eject the cdrom.
 
@@ -293,7 +293,7 @@
     then
         $LTPBIN/tst_resm TPASS  "Test #4: /dev/cdrom is tray is open"
     else
-        $LTPBIN/tst_resm TFAIL "Test #4: /dev/cdrom is tray is still closed" 
+        $LTPBIN/tst_resm TFAIL "Test #4: /dev/cdrom is tray is still closed"
     fi
 fi
 
@@ -318,15 +318,15 @@
         "Test #4: eject command to close the tray. Reason:"
     TFAILCNT=$(( $TFAILCNT+1 ))
 else
-    grep "closing tray" $LTPTMP/tst_eject.res > $LTPTMP/tst_eject.out 2>&1 || RC=$?    
+    grep "closing tray" $LTPTMP/tst_eject.res > $LTPTMP/tst_eject.out 2>&1 || RC=$?
     if [ $RC -eq 0 ]
     then
         $LTPBIN/check_tray || RC=$?
         if [ $RC -eq 2 ]
-        then 
+        then
             $LTPBIN/tst_brkm TBROK NULL \
                 "Test #4: eject -t reported tray closed, but tray is open"
-            TFAILCNT=$(( $TFAILCNT+1 )) 
+            TFAILCNT=$(( $TFAILCNT+1 ))
         fi
     fi
 fi
diff --git a/testcases/commands/fileutils/cp/cp_tests.sh b/testcases/commands/fileutils/cp/cp_tests.sh
index 576fc6b..8050fa4 100755
--- a/testcases/commands/fileutils/cp/cp_tests.sh
+++ b/testcases/commands/fileutils/cp/cp_tests.sh
@@ -23,7 +23,7 @@
 #
 # Description:  Test basic functionality of cp command
 #				- Test #1:  cp -R can do a recursive copy
-#               
+#
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
 # History:      Jan 30 2003 - Created - Manoj Iyer.
@@ -58,7 +58,7 @@
 		LTPBIN=$LTPROOT/testcases/bin
 	fi
 
-	
+
 	$LTPBIN/tst_resm TINFO "INIT: Inititalizing tests."
 
 	which cp > $LTPTMP/tst_cp.err 2>&1 || RC=$?
@@ -69,7 +69,7 @@
 		return $RC
 	fi
 
-	mkdir -p $LTPTMP/tst_cp.tmp > $LTPTMP/tst_cp.err 2>&1 || RC=$? 
+	mkdir -p $LTPTMP/tst_cp.tmp > $LTPTMP/tst_cp.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
 		$LTPBIN/tst_brk TBROK $LTPTMP/tst_cp.err NULL \
@@ -127,7 +127,7 @@
 	done
 	return $RC
 }
- 
+
 
 # Function:		creat_expout
 #
@@ -146,8 +146,8 @@
 	dirname=$3  # name of the base directory
     dircnt=0    # index into dir created in loop
     fcnt=0      # index into files created in loop
-	RC=0        # return code from commands 
-	
+	RC=0        # return code from commands
+
 	echo "$dirname:"  1>>$LTPTMP/tst_cp.exp
 	echo "d.$dircnt"  1>>$LTPTMP/tst_cp.exp
 	while [ $dircnt -lt $numdirs ]
@@ -171,7 +171,7 @@
 
 # Function:		test01
 #
-# Description	- Test #1: Test that cp -R will copy will copy directories 
+# Description	- Test #1: Test that cp -R will copy will copy directories
 #                 recursively.
 #               - create N directories and fill each with M files.
 #               - cp -R dir1 to dir2
@@ -234,7 +234,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 
@@ -242,7 +242,7 @@
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
 RC=0				# Return code from tests.
 
-init || return $RC	# Exit if initializing testcases fails.	
+init || return $RC	# Exit if initializing testcases fails.
 
 test01 || RC=$?
 if [ $RC -ne 0 ]
diff --git a/testcases/commands/fileutils/ln/ln_tests.sh b/testcases/commands/fileutils/ln/ln_tests.sh
index b662811..8ad0841 100755
--- a/testcases/commands/fileutils/ln/ln_tests.sh
+++ b/testcases/commands/fileutils/ln/ln_tests.sh
@@ -23,7 +23,7 @@
 #
 # Description:  Test basic functionality of ln command
 #				- Test #1:  ln -s make symbolic links instead of hard links
-#               
+#
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
 # History:      Feb 03 2003 - Created, Manoj Iyer
@@ -57,7 +57,7 @@
 		LTPBIN=$LTPROOT/testcases/bin
 	fi
 
-	
+
 	$LTPBIN/tst_resm TINFO "INIT: Inititalizing tests."
 
 	which ln > $LTPTMP/tst_ln.err 2>&1 || RC=$?
@@ -68,7 +68,7 @@
 		return $RC
 	fi
 
-	mkdir -p $LTPTMP/tst_ln.tmp > $LTPTMP/tst_ln.err 2>&1 || RC=$? 
+	mkdir -p $LTPTMP/tst_ln.tmp > $LTPTMP/tst_ln.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
 		$LTPBIN/tst_brk TBROK $LTPTMP/tst_ln.err NULL \
@@ -126,7 +126,7 @@
 	done
 	return $RC
 }
- 
+
 
 # Function:		creat_expout
 #
@@ -145,8 +145,8 @@
 	dirname=$3  # name of the base directory
     dircnt=0    # index into dir created in loop
     fcnt=0      # index into files created in loop
-	RC=0        # return code from commands 
-	
+	RC=0        # return code from commands
+
 	echo "$dirname:"  1>>$LTPTMP/tst_ln.exp
 	echo "d.$dircnt"  1>>$LTPTMP/tst_ln.exp
 	while [ $dircnt -lt $numdirs ]
@@ -170,7 +170,7 @@
 
 # Function:		test01
 #
-# Description	- Test #1: Test that ln -s will copy will copy directories 
+# Description	- Test #1: Test that ln -s will copy will copy directories
 #                 recursively.
 #               - create N directories and fill each with M files.
 #               - ln -s dir1 to dir2
@@ -239,7 +239,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 
@@ -247,7 +247,7 @@
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
 RC=0				# Return code from tests.
 
-init || return $RC	# Exit if initializing testcases fails.	
+init || return $RC	# Exit if initializing testcases fails.
 
 test01 || RC=$?
 if [ $RC -ne 0 ]
diff --git a/testcases/commands/fileutils/mkdir/mkdir_tests.sh b/testcases/commands/fileutils/mkdir/mkdir_tests.sh
index 95d0dfc..d3e280b 100755
--- a/testcases/commands/fileutils/mkdir/mkdir_tests.sh
+++ b/testcases/commands/fileutils/mkdir/mkdir_tests.sh
@@ -23,7 +23,7 @@
 #
 # Description:  Test basic functionality of mkdir command
 #				- Test #1:  mkdir -p can make parent directories as needed
-#               
+#
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
 # History:      Feb 03 2003 - Created - Manoj Iyer.
@@ -57,7 +57,7 @@
 		LTPBIN=$LTPROOT/testcases/bin
 	fi
 
-	
+
 	$LTPBIN/tst_resm TINFO "INIT: Inititalizing tests."
 
 	which mkdir > $LTPTMP/tst_mkdir.err 2>&1 || RC=$?
@@ -68,7 +68,7 @@
 		return $RC
 	fi
 
-	mkdir -p $LTPTMP/tst_mkdir.tmp > $LTPTMP/tst_mkdir.err 2>&1 || RC=$? 
+	mkdir -p $LTPTMP/tst_mkdir.tmp > $LTPTMP/tst_mkdir.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
 		$LTPBIN/tst_brk TBROK $LTPTMP/tst_mkdir.err NULL \
@@ -96,8 +96,8 @@
 	dirname=$3  # name of the base directory
     dircnt=0    # index into dir created in loop
     fcnt=0      # index into files created in loop
-	RC=0        # return code from commands 
-	
+	RC=0        # return code from commands
+
 	echo "$dirname:"  1>>$LTPTMP/tst_mkdir.exp
 	echo "d.$dircnt"  1>>$LTPTMP/tst_mkdir.exp
 	while [ $dircnt -lt $numdirs ]
@@ -124,7 +124,7 @@
 # Description	- Test #1: Test that mkdir -p creates parent directories as
 #                 needed
 #               - create N directories and fill each with M files.
-#               - mkdir -p dir 
+#               - mkdir -p dir
 #               - list contents of dir and save it to file - actual output
 #               - create expected output
 #               - compare expected output with actual output.
@@ -198,7 +198,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 
@@ -206,7 +206,7 @@
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
 RC=0				# Return code from tests.
 
-init || return $RC	# Exit if initializing testcases fails.	
+init || return $RC	# Exit if initializing testcases fails.
 
 test01 || RC=$?
 if [ $RC -ne 0 ]
diff --git a/testcases/commands/fileutils/mv/mv_tests.sh b/testcases/commands/fileutils/mv/mv_tests.sh
index 2c124ab..5691570 100755
--- a/testcases/commands/fileutils/mv/mv_tests.sh
+++ b/testcases/commands/fileutils/mv/mv_tests.sh
@@ -24,7 +24,7 @@
 # Description:  Test basic functionality of mv command
 #				- Test #1:  mv <dir1> <dir2> will move dir1 to dir2 and all its
 #				            contents.
-#               
+#
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
 # History:      Feb 03 2003 - Created - Manoj Iyer.
@@ -58,7 +58,7 @@
 		LTPBIN=$LTPROOT/testcases/bin
 	fi
 
-	
+
 	$LTPBIN/tst_resm TINFO "INIT: Inititalizing tests."
 
 	which mv > $LTPTMP/tst_mv.err 2>&1 || RC=$?
@@ -69,7 +69,7 @@
 		return $RC
 	fi
 
-	mkdir -p $LTPTMP/tst_mv.tmp > $LTPTMP/tst_mv.err 2>&1 || RC=$? 
+	mkdir -p $LTPTMP/tst_mv.tmp > $LTPTMP/tst_mv.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
 		$LTPBIN/tst_brk TBROK $LTPTMP/tst_mv.err NULL \
@@ -127,7 +127,7 @@
 	done
 	return $RC
 }
- 
+
 
 # Function:		creat_expout
 #
@@ -146,8 +146,8 @@
 	dirname=$3  # name of the base directory
     dircnt=0    # index into dir created in loop
     fcnt=0      # index into files created in loop
-	RC=0        # return code from commands 
-	
+	RC=0        # return code from commands
+
 	echo "$dirname:"  1>>$LTPTMP/tst_mv.exp
 	echo "d.$dircnt"  1>>$LTPTMP/tst_mv.exp
 	while [ $dircnt -lt $numdirs ]
@@ -172,7 +172,7 @@
 
 # Function:		test01
 #
-# Description	- Test #1: Test that mv <dir1> <dir2> will move 
+# Description	- Test #1: Test that mv <dir1> <dir2> will move
 #                 dir1 to dir2 and all its contents.
 #               - create N directories and fill each with M files.
 #               - mv dir1 to dir2
@@ -242,7 +242,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 
@@ -250,7 +250,7 @@
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
 RC=0				# Return code from tests.
 
-init || return $RC	# Exit if initializing testcases fails.	
+init || return $RC	# Exit if initializing testcases fails.
 
 test01 || RC=$?
 if [ $RC -ne 0 ]
diff --git a/testcases/commands/gzip/00_Descriptions.txt b/testcases/commands/gzip/00_Descriptions.txt
index 84d7b9d..2a14182 100644
--- a/testcases/commands/gzip/00_Descriptions.txt
+++ b/testcases/commands/gzip/00_Descriptions.txt
@@ -1,6 +1,6 @@
-gzip01  
+gzip01
 	Test that gzip -r will travel directories and compress all the files available.
 
 gunzip01
 	Test that gunzip -r will travel directories and uncompress all the files available.
-  
+
diff --git a/testcases/commands/gzip/gzip_tests.sh b/testcases/commands/gzip/gzip_tests.sh
index 5dba859..f067899 100755
--- a/testcases/commands/gzip/gzip_tests.sh
+++ b/testcases/commands/gzip/gzip_tests.sh
@@ -22,12 +22,12 @@
 # File :        gzip_tests.sh
 #
 # Description:  Test basic functionality of gzip and gunzip command
-#				- Test #1:  Test that gzip -r will travel directories and 
+#				- Test #1:  Test that gzip -r will travel directories and
 #						    compress all the files available.
 #
 #				- Test #2:  Test that gunzip -r will travel directories and
 #						    uncompress all the files available.
-#               
+#
 # Author:       Manoj Iyer, manjo@mail.utexas.edu
 #
 # History:      Fed 06 2003 - Created - Manoj Iyer.
@@ -55,7 +55,7 @@
 		LTPTMP=$TMP
 	fi
 
-	
+
 	tst_resm TINFO "INIT: Inititalizing tests."
 	if ! which gunzip > $LTPTMP/tst_gzip.err 2>&1
 	then
@@ -64,7 +64,7 @@
 		return $RC
 	fi
 
-	mkdir -p $LTPTMP/tst_gzip.tmp > $LTPTMP/tst_gzip.err 2>&1 || RC=$? 
+	mkdir -p $LTPTMP/tst_gzip.tmp > $LTPTMP/tst_gzip.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
 		tst_brk TBROK $LTPTMP/tst_gzip.err NULL \
@@ -122,7 +122,7 @@
 	done
 	return $RC
 }
- 
+
 
 # Function:		creat_expout
 #
@@ -143,8 +143,8 @@
 	ext=$4		# file extension (.gz for compressed files)
     dircnt=0    # index into dir created in loop
     fcnt=0      # index into files created in loop
-	RC=0        # return code from commands 
-	
+	RC=0        # return code from commands
+
 	echo "$dirname:"  1>$LTPTMP/tst_gzip.exp
 	echo "d.$dircnt"  1>>$LTPTMP/tst_gzip.exp
 	while [ $dircnt -lt $numdirs ]
@@ -233,7 +233,7 @@
 #               - Test #2:  Test that gunzip -r will travel directories and
 #                 uncompress all the files available.
 #               - create N directories and fill each with M files.
-#               - gzip -r dir 
+#               - gzip -r dir
 #               - guzip -r dir
 #               - list contents of dir and save it to file - actual output
 #               - create expected output
@@ -300,7 +300,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 
@@ -308,7 +308,7 @@
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
 RC=0				# Return code from tests.
 
-init || return $RC	# Exit if initializing testcases fails.	
+init || return $RC	# Exit if initializing testcases fails.
 
 test01 || RC=$?
 if [ $RC -ne 0 ]
@@ -318,7 +318,7 @@
 
 rm -fr $LTPTMP/tst_gzip.*
 
-init || return $RC	# Exit if initializing testcases fails.	
+init || return $RC	# Exit if initializing testcases fails.
 
 test02 || RC=$?
 if [ $RC -ne 0 ]
diff --git a/testcases/commands/logrotate/logrotate_tests.sh b/testcases/commands/logrotate/logrotate_tests.sh
index 55ef0b3..65d55e3 100755
--- a/testcases/commands/logrotate/logrotate_tests.sh
+++ b/testcases/commands/logrotate/logrotate_tests.sh
@@ -28,11 +28,11 @@
 #                logfile is set for rotation every week. Execute the command
 #                logrotate -f <file.conf>, check to see if it forced rotation.
 #                Test #2: Check if logrotate running as a cronjob will rotate a
-#                logfile when it exceeds a specific size. Create two cronjobs 
+#                logfile when it exceeds a specific size. Create two cronjobs
 #                1. runs a command to log a string to a logfile. 2. runs
 #                logrotate <file.conf> every minute. The conf file specifies
 #                that the rotation happen only if the log file exceeds 2k file
-#                size. 
+#                size.
 #
 # Author:        Manoj Iyer, manjo@mail.utexas.edu
 #
@@ -47,7 +47,7 @@
 #
 # Input:        - $1 - calling test case.
 #               - $2 - command that needs to be checked.
-# 
+#
 # Return:		- zero on success.
 # 				- non-zero on failure.
 chk_ifexists()
@@ -66,9 +66,9 @@
 # Function: init
 #
 # Description:  - Check if command required for this test exits.
-#               - Create temporary directories required for this test. 
+#               - Create temporary directories required for this test.
 #               - Initialize global variables.
-# 
+#
 # Return:		- zero on success.
 # 				- non-zero on failure.
 init()
@@ -134,7 +134,7 @@
 #               - use force option to force logrotate to cause the log file to
 #                 be rotated.
 #               - compress the file after rotation.
-# 
+#
 # Return:		- zero on success.
 # 				- non-zero on failure.
 test01()
@@ -182,7 +182,7 @@
 	while [ $count -lt 10 ]
 	do
 		echo "This a dummy log file used to test logrotate command." >> \
-			/var/log/tst_logfile 
+			/var/log/tst_logfile
 		 		 count=$(( $count+1 ))
 	done
 
@@ -306,7 +306,7 @@
 # cron job to increase the log file size.
 cat >$LTPTMP/tst_addtolog.cron <<EOF
 
-* * * * * echo "To Err Is Human, To Really Screw Up You Need A Computer."  >>/var/log/tst_largelogfile 2>/dev/null 
+* * * * * echo "To Err Is Human, To Really Screw Up You Need A Computer."  >>/var/log/tst_largelogfile 2>/dev/null
 EOF
 
 tst_resm TINFO "Test #2: Installing cron job to increase logsize"
@@ -369,7 +369,7 @@
 #
 # Description:	- Execute all tests and report results.
 #
-# Exit:			- zero on success 
+# Exit:			- zero on success
 #               - non-zero on failure.
 
 RC=0
diff --git a/testcases/commands/mail/mail_tests.sh b/testcases/commands/mail/mail_tests.sh
index 9a69146..a65bf6c 100755
--- a/testcases/commands/mail/mail_tests.sh
+++ b/testcases/commands/mail/mail_tests.sh
@@ -24,7 +24,7 @@
 # Description:  Tests basic functions of mail system. The aim of the test is to
 #		make sure that certain basic functionality of mail is expected
 #		to work as per man page. There are 4 - 5 operations that are
-#		done on a regular basis wrt mail. ie. 
+#		done on a regular basis wrt mail. ie.
 #
 #		   mail sent to an user@domain - received by that user@domain
 #		   mail is sent to nosuchuser@domain - mail delivery failure
@@ -37,7 +37,7 @@
 # History:	  Jan 07 2003 - Created - Manoj Iyer.
 #		  Jan 09 2003 - Added Test #2 #3 #4 and #5.
 #		  Jan 10 2002 - Fixed various bugs I had introduced in the test.
-#			      - Added SETUP and CLEANUP sections 
+#			      - Added SETUP and CLEANUP sections
 #
 
 export TST_TOTAL=5
@@ -87,7 +87,7 @@
 	fi
 fi
 
-trap 
+trap
 
 tst_resm TINFO "INIT: Removing all mails for mail_test and root"
 echo "d*" | mail -u mail_test > /dev/null 2>&1
@@ -136,7 +136,7 @@
 
 # Test #2
 # Test that mail user@bad-domain will result in a warning from the mailer
-# daemon that the domain does not exist. 
+# daemon that the domain does not exist.
 
 export TCID=mail_tests::mail02
 export TST_COUNT=2
@@ -160,7 +160,7 @@
 	    "Test #2: mail command failed. Reason:"
 	: $(( TFAILCNT += 1 ))
 else
-	# check if Mailer-Deamon reported any delivery failure.	
+	# check if Mailer-Deamon reported any delivery failure.
 	# but wait for the mail to arrive first, sleep 5.
 	sleep 5
 	echo "d" | mail -u root > $LTPTMP/tst_mail.res 2>&1
@@ -241,7 +241,7 @@
 	    "Test #3: mail command failed. Reason: "
 	: $(( TFAILCNT += 1 ))
 else
-	# check if Mailer-Deamon reported any delivery failure.	
+	# check if Mailer-Deamon reported any delivery failure.
 	# but wait for the mail to arrive first, sleep 5.
 	sleep 5
 	echo "d" | mail -u root > $LTPTMP/tst_mail.res 2>&1
@@ -291,7 +291,7 @@
 	fi
 fi
 
-# Test #4 
+# Test #4
 # Test that mail -c user@domain option will carbon copy that user.
 
 export TCID=mail_tests::mail04
@@ -300,7 +300,7 @@
 
 tst_resm TINFO "Test #4: Test that mail -c user@domain will"
 tst_resm TINFO "Test #4: carbon copy user@domain"
-# send mail to root and carbon copy mail_test 
+# send mail to root and carbon copy mail_test
 mail -s "Test" root@localhost -c mail_test@localhost < \
     $LTPTMP/tst_mail.in > $LTPTMP/tst_mail.out 2>&1
 if [ $? -ne 0 ]; then
@@ -308,7 +308,7 @@
 	    "Test #4: mail command failed. Reason:"
 	: $(( TFAILCNT += 1 ))
 else
-	# Check if mail_test received the mail and 
+	# Check if mail_test received the mail and
 	# also if root received the main copy of the email.
 	sleep 5
 	echo "d" | mail -u root > $LTPTMP/tst_mail.res 2>&1
@@ -327,7 +327,7 @@
 
 fi
 
-# Test #5 
+# Test #5
 # Test that mail -b user@domain option will blind carbon copy that user.
 
 export TCID=mail_tests::mail05
@@ -337,7 +337,7 @@
 tst_resm TINFO "Test #5: Test that mail -b user@domain will"
 tst_resm TINFO "Test #5: blind carbon copy user@domain"
 
-# send mail to root and blind carbon copy mail_test 
+# send mail to root and blind carbon copy mail_test
 mail -s "Test" root@localhost -c mail_test@localhost < \
 	$LTPTMP/tst_mail.in > $LTPTMP/tst_mail.out 2>&1
 if [ $? -ne 0 ]; then
@@ -345,7 +345,7 @@
 	    "Test #5: mail command failed. Reason:"
 	: $(( TFAILCNT += 1 ))
 else
-	# Check if mail_test received the mail and 
+	# Check if mail_test received the mail and
 	# also if root received the main copy of the email.
 	sleep 5
 	echo "d" | mail -u root > $LTPTMP/tst_mail.res 2>&1
@@ -370,7 +370,7 @@
 export TST_COUNT=1
 
 tst_resm TINFO "Test CLEAN: Removing temporary files from $LTPTMP"
-rm -fr $LTPTMP/tst_mail* 
+rm -fr $LTPTMP/tst_mail*
 
 tst_resm TINFO "Test CLEAN: Removing temporary user mail_test"
 userdel -r mail_test > /dev/null 2>&1
diff --git a/testcases/commands/su/su01 b/testcases/commands/su/su01
index 0a99514..5110fec 100755
--- a/testcases/commands/su/su01
+++ b/testcases/commands/su/su01
@@ -1,4 +1,4 @@
-#!/bin/sh 
+#!/bin/sh
 #*********************************************************************
 #   Copyright (c) International Business Machines  Corp., 2003, 2004
 #
@@ -43,7 +43,7 @@
 export tvar
 printf "Machine type is: $tvar\n\n"
 
-if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ] 
+if [ "$tvar" = "redhat" -o "$tvar" = "redhat-linux" ]
 # Need to also set group for TEST_USER2
 then
 export TEST_USER1_GROUP="wheel"
@@ -94,7 +94,7 @@
                 exit 1
         }
         fi
-		
+
 		usermod -G users,$TEST_USER1_GROUP $TEST_USER1
 
 	#create users home directory (SLES 8 does not do this, even when specified in adduser)
@@ -119,11 +119,11 @@
 #Create 2nd test user
 	#erase user if he may exist , so we can have a clean en
         rm -rf /home/$TEST_USER2
-        userdel $TEST_USER2 
+        userdel $TEST_USER2
 	sleep 1
 
-        useradd -m -g users $TEST_USER2 
-		
+        useradd -m -g users $TEST_USER2
+
         if [ $? != 0 ]
         then {
                 echo "Could not add test user $TEST_USER2."
@@ -132,7 +132,7 @@
         fi
 
 		usermod -G users,$TEST_USER2_GROUP $TEST_USER2
-	
+
 	#create users home diretory (SLES 8 does not do this, even when specified in adduser)
 # Only do this if not RH; RH creates the directory.
         if [ "$tvar" != "redhat" -a "$tvar" != "redhat-linux" ]
@@ -161,7 +161,7 @@
 do_cleanup() {
         rm -rf /home/$TEST_USER1
         rm -rf /home/$TEST_USER2
-	userdel $TEST_USER1 
+	userdel $TEST_USER1
 	userdel $TEST_USER2
 	#REMOVE ANY TEMPOARY FILES THAT MAY STILL BE AROUND
 	rm -f $TEST_ENV_FILE_USER > /dev/null 2>&1
diff --git a/testcases/commands/su/su01_s1 b/testcases/commands/su/su01_s1
index e5ee442..93ca4f3 100755
--- a/testcases/commands/su/su01_s1
+++ b/testcases/commands/su/su01_s1
@@ -133,7 +133,7 @@
 	 }
     }
   }
-}  
+}
 
 catch close
 # capture result code
@@ -142,10 +142,10 @@
 set exit_code [lindex $codes 3]
 
 #Check that su user has same enviroment as current user
-set i_have_env 0 
+set i_have_env 0
 set test_env_var " "
 if { $i_am_root==1 } {
-	spawn su -c "/bin/su root -c \"echo \"\\\$TEST_LINE > $TEST_ENV_FILE\"\"" 
+	spawn su -c "/bin/su root -c \"echo \"\\\$TEST_LINE > $TEST_ENV_FILE\"\""
 	expect {
 		 "Password:" {
 			send "$PASSWD\r"
@@ -161,7 +161,7 @@
 		set i_have_env 1
 	} else {
 		send_user "/bin/su with correct password (FAILED), the enviroment was not kept after su.\n"
-	}	
+	}
 }
 
 
@@ -206,9 +206,9 @@
 
 #Added for arm architecture
 
-send_user "\ndisplayed_error=$displayed_error"           
-send_user "\nexit_code=$exit_code"                      
-send_user "\npid=$pid\n"                                
+send_user "\ndisplayed_error=$displayed_error"
+send_user "\nexit_code=$exit_code"
+send_user "\npid=$pid\n"
 
 if { ($displayed_error==1) && ($exit_code!=0) && ($pid>0) } {
   send_user "/bin/su with incorrect password ( PASSED )\n"
@@ -248,7 +248,7 @@
 set i_have_env 0
 set test_env " "
 if { $i_am_root==1 } {
-     	spawn /bin/sh -c "/bin/su -l root -c \"echo \"\\\$TEST_LINE > $TEST_ENV_FILE2\"\""   
+     	spawn /bin/sh -c "/bin/su -l root -c \"echo \"\\\$TEST_LINE > $TEST_ENV_FILE2\"\""
         expect {
                  "Password:" {
 			send "$PASSWD\r"
@@ -301,7 +301,7 @@
   send_user "/bin/su -l root with incorrect password ( PASSED )\n"
 } else {
   send_user "/bin/su -l root with incorrect password ( FAILED )\n"
-  set script_exit_code 1 
+  set script_exit_code 1
 }
 
 
@@ -361,7 +361,7 @@
   send_user "/bin/su -l $USER1 with correct password & enviroment check ( PASSED )\n"
 } else {
   send_user "/bin/su -l $USER1 with correct password ( FAILED )\n"
-  set script_exit_code 1 
+  set script_exit_code 1
 }
 
 
diff --git a/testcases/commands/su/su_set_passwd b/testcases/commands/su/su_set_passwd
index 40ec305..e8f0d2f 100755
--- a/testcases/commands/su/su_set_passwd
+++ b/testcases/commands/su/su_set_passwd
@@ -1,4 +1,4 @@
-#!/bin/sh 
+#!/bin/sh
 #
 # Set Password for a specific new user
 # This script should be run as 'root'
diff --git a/testcases/commands/tar/tar_tests.sh b/testcases/commands/tar/tar_tests.sh
index 7fed0a3..dfa693e 100755
--- a/testcases/commands/tar/tar_tests.sh
+++ b/testcases/commands/tar/tar_tests.sh
@@ -20,9 +20,9 @@
 ################################################################################
 #
 # File:        tar_test.sh
-# 
+#
 # Description: Tests tar command. These tests test the basic functioanlity of
-#              tape archive command. 
+#              tape archive command.
 #
 # Author:      Manoj Iyer, manjo@mail.utexas.edu
 #
@@ -49,8 +49,8 @@
 # in case of error. Set TFAILCNT to 0, increment if there occures a failure.
 #
 
-TFAILCNT=0     
-RC=0                         
+TFAILCNT=0
+RC=0
 RC1=0
 RC2=0
 RC3=0
@@ -100,7 +100,7 @@
     touch $LTPTMP/tar_tstf1 $LTPTMP/tar_tstf2 $LTPTMP/tar_tstf3
     tar cvf $LTPTMP/tar_tstf.tar $LTPTMP/tar_tstf1 \
 	$LTPTMP/tar_tstf2 $LTPTMP/tar_tstf3 > $LTPTMP/tar_tst.out 2>&1 || RC=$?
-    
+
     if [ $RC -eq 0 ]; then
 	if [ -f $LTPTMP/tar_tstf.tar ]; then
 	    echo "tar file created" > /dev/null 2>&1
@@ -122,7 +122,7 @@
     grep  "tar_tstf1" $LTPTMP/tar_tst.out > $LTPTMP/tar_tst2.out 2>&1 || RC1=$?
     grep  "tar_tstf2" $LTPTMP/tar_tst.out 2>&1 1>>$LTPTMP/tar_tst2.out || RC2=$?
     grep  "tar_tstf3" $LTPTMP/tar_tst.out 2>&1 1>>$LTPTMP/tar_tst2.out || RC3=$?
-    
+
     if [ $RC1 -eq 0 -a $RC2 -eq 0 -a $RC3 -eq 0 ]; then
 	$LTPBIN/tst_resm TPASS 	"tar: tvf option listed all its contents"
     else
@@ -134,7 +134,7 @@
 
 
 # Test #3
-# Test if tar command can create a compressed tar file 'tar cvf <tar filename> 
+# Test if tar command can create a compressed tar file 'tar cvf <tar filename>
 # <list of files>'
 
 export TCID=tar03
@@ -185,10 +185,10 @@
     echo "tar file exists" > /dev/null 2>&1
 else
     touch $LTPTMP/tar_tstf1 $LTPTMP/tar_tstf2 $LTPTMP/tar_tstf3
-    
+
     tar cvf $LTPTMP/tar_tstf.tar $LTPTMP/tar_tstf1 \
 	$LTPTMP/tar_tstf2 $LTPTMP/tar_tstf3 > $LTPTMP/tar_tst.out 2>&1 || RC=$?
-    
+
     if [ $RC -eq 0 ]; then
 	if [ -f $LTPTMP/tar_tstf.tar ];	then
 	    $LTPBIN/tst_resm TINFO "tar: cvf option created a tar file."
@@ -223,7 +223,7 @@
 rm -f $LTPTMP/tar_tst*
 
 # Test #5
-# Test if tar command can extract a compressed tar file 'tar zxvf 
+# Test if tar command can extract a compressed tar file 'tar zxvf
 # <tar filename> <list of files>'
 
 export TCID=tar05
@@ -239,7 +239,7 @@
     touch $LTPTMP/tar_tstf1 $LTPTMP/tar_tstf2 $LTPTMP/tar_tstf3
     tar zcvf $LTPTMP/tar_tstf.tgz $LTPTMP/tar_tstf1 \
 	$LTPTMP/tar_tstf2 $LTPTMP/tar_tstf3 > $LTPTMP/tar_tst.out 2>&1 || RC=$?
-    
+
 	if [ $RC -eq 0 ]; then
 	    if [ -f $LTPTMP/tar_tstf.tgz ]; then
 		file $LTPTMP/tar_tstf.tgz | grep "gzip compressed data" \
diff --git a/testcases/commands/unzip/unzip_genfile.sh b/testcases/commands/unzip/unzip_genfile.sh
index 45d7e89..16fc040 100755
--- a/testcases/commands/unzip/unzip_genfile.sh
+++ b/testcases/commands/unzip/unzip_genfile.sh
@@ -22,8 +22,8 @@
 # File:			unzip_genfile.sh
 #
 # Description:	This program will generate the zip file that will be used to
-#               test the unzip program. 
-# 
+#               test the unzip program.
+#
 # Author:		Manoj Iyer manjo@mail.utexas.edu
 #
 # History:
diff --git a/testcases/commands/unzip/unzip_tests.sh b/testcases/commands/unzip/unzip_tests.sh
index 049d543..56e45a8 100755
--- a/testcases/commands/unzip/unzip_tests.sh
+++ b/testcases/commands/unzip/unzip_tests.sh
@@ -37,7 +37,7 @@
 #
 # Input:        - $1 - calling test case.
 #               - $2 - command that needs to be checked.
-# 
+#
 # Return:		- zero on success.
 # 				- non-zero on failure.
 
@@ -55,13 +55,13 @@
 
 # Function: 	cleanup
 #
-# Description:  - remove temporaty files and directories. 
+# Description:  - remove temporaty files and directories.
 #
 # Return:		- zero on success.
 # 				- non-zero on failure.
 cleanup()
 {
-	cd /	
+	cd /
 	# remove all the temporary files created by this test.
 	tst_resm TINFO "CLEAN: removing \"$LTPTMP\""
 	rm -fr "$LTPTMP"
@@ -71,9 +71,9 @@
 # Function: init
 #
 # Description:  - Check if command required for this test exits.
-#               - Create temporary directories required for this test. 
+#               - Create temporary directories required for this test.
 #               - Initialize global variables.
-# 
+#
 # Return:		- zero on success.
 # 				- non-zero on failure.
 init()
@@ -125,7 +125,7 @@
 #               - Execute unzip command on a .zip file, save output to file.
 #               - If unzip exits with a non-zero value or, the expected output
 #                 is different from actual output, test fails.
-# 
+#
 # Return:		- zero on success.
 # 				- non-zero on failure.
 test01()
@@ -152,7 +152,7 @@
 
 		diff -iwB "$PWD/tst_unzip.out" "$PWD/tst_unzip.out.exp" >\
     		          "$PWD/tst_unzip.out.err" || RC=$?
-		
+
 		if [ $RC -ne 0 ]
 		then
 			tst_res TFAIL "$PWD/tst_unzip.out.err" \
@@ -172,7 +172,7 @@
 			fi
 		fi
 	fi
-	
+
 	return $RC
 }
 
@@ -180,7 +180,7 @@
 #
 # Description:	- Execute all tests and report results.
 #
-# Exit:			- zero on success 
+# Exit:			- zero on success
 #               - non-zero on failure.
 
 RC=0
diff --git a/testcases/kdump/README b/testcases/kdump/README
index ac92770..ba24a63 100644
--- a/testcases/kdump/README
+++ b/testcases/kdump/README
@@ -11,7 +11,7 @@
 4.  System reboots to 1st kernel.
 5.  vmcore is validated and results are saved.
 6.  After a 1 to 2 minute delay, the next crash scenario is setup and
-    run. 
+    run.
 
 The scripts make use of the crasher module for basic testing of kdump
 and the new Linux Kernel Dump Test Module (LKDTM) for more involved
@@ -34,7 +34,7 @@
 1. Install these additional packages:
 
 For SLES10 or OpenSUSE Distro :
-   
+
    * kernel-kdump
    * kernel-source
    * kexec-tools
@@ -58,7 +58,7 @@
 4.  Run "make". Carefully check for any errors.
 
 Few Important points to remember:
-      
+
 * If you need to stop the tests before all tests have run, run "crontab
 -r" and "killall runkdump.sh" within 1 minute after the 1st kernel
 reboots. Then, if you'd like to carry on tests from the point on, run
diff --git a/testcases/kdump/doc/README b/testcases/kdump/doc/README
index 0422e45..bd7cceb 100644
--- a/testcases/kdump/doc/README
+++ b/testcases/kdump/doc/README
@@ -11,7 +11,7 @@
 4.  System reboots to 1st kernel.
 5.  vmcore is validated and results are saved.
 6.  After a 1 to 2 minute delay, the next crash scenario is setup and
-    run. 
+    run.
 
 The scripts make use of the crasher module for basic testing of kdump
 and the new Linux Kernel Dump Test Module (LKDTM) for more involved
@@ -34,7 +34,7 @@
 1. Install these additional packages:
 
 For SLES10 or OpenSUSE Distro :
-   
+
    * kernel-kdump
    * kernel-source
    * kexec-tools
@@ -58,7 +58,7 @@
 4.  Run "runkdump.sh". Carefully check for any errors.
 
 Few Important points to remember:
-      
+
 * If you need to stop the tests before all tests have run, run "crontab
 -r" and "killall runkdump.sh" within 1 minute after the 1st kernel
 reboots. Then, if you'd like to carry on tests from the point on, run
diff --git a/testcases/kdump/doc/TEST_PLAN.txt b/testcases/kdump/doc/TEST_PLAN.txt
index 850885a..3fe2439 100644
--- a/testcases/kdump/doc/TEST_PLAN.txt
+++ b/testcases/kdump/doc/TEST_PLAN.txt
@@ -18,7 +18,7 @@
 
 == filtered vmcore utilities ==
 - in different compressed levels, verify the vmcore with the correct
-  layout. 
+  layout.
 - verify it in flat file or ELF formats from a network host.
 
 == analyse vmcore utilities ==
diff --git a/testcases/kdump/lib/test.sh b/testcases/kdump/lib/test.sh
index c7361a0..eaec0b5 100755
--- a/testcases/kdump/lib/test.sh
+++ b/testcases/kdump/lib/test.sh
@@ -67,36 +67,36 @@
 
 	"KPIDB")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=BUG cpoint_count=05
-		;;	
+		;;
 	"KPIDE")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=EXCEPTION cpoint_count=05
-		;;	
+		;;
 	"KPIDL")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=LOOP cpoint_count=05
-		;;	
+		;;
 	"KPIDP")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=PANIC cpoint_count=05
-		;;	
+		;;
 	"KPIDO")
 		echo 1 >/proc/sys/kernel/panic_on_oops
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HARDWARE_ENTRY cpoint_type=OVERFLOW cpoint_count=10
-		;;	
+		;;
 	"KPIEB")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=BUG cpoint_count=10
-		;;	
+		;;
 	"KPIEE")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=EXCEPTION cpoint_count=10
-		;;	
+		;;
 	"KPIEL")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=LOOP cpoint_count=10
-		;;	
+		;;
 	"KPIEP")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=PANIC cpoint_count=10
-		;;	
+		;;
 	"KPIEO")
 		echo 1 >/proc/sys/kernel/panic_on_oops
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_HW_IRQ_EN cpoint_type=OVERFLOW cpoint_count=10
-		;;	
+		;;
 	"KPTEB")
 		insmod "${lkdtm}"/lkdtm.ko cpoint_name=INT_TASKLET_ENTRY cpoint_type=BUG cpoint_count=10
 		;;
diff --git a/testcases/kdump/lib/verify.sh b/testcases/kdump/lib/verify.sh
index 6e67be0..9635d37 100755
--- a/testcases/kdump/lib/verify.sh
+++ b/testcases/kdump/lib/verify.sh
@@ -28,7 +28,7 @@
     echo "                        CRASH                             "
     echo "----------------------------------------------------------"
     echo ""
-    
+
     cat <<EOF >crash_cmd
 mod
 mod -S
@@ -36,7 +36,7 @@
 foreach bt
 foreach files
 mount
-mount -f 
+mount -f
 mount -i
 vm
 ascii
diff --git a/testcases/kdump/runkdump.conf b/testcases/kdump/runkdump.conf
index e2fcc21..d094df1 100644
--- a/testcases/kdump/runkdump.conf
+++ b/testcases/kdump/runkdump.conf
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kdump/runkdump.sh b/testcases/kdump/runkdump.sh
index d246ac1..e2e681c 100755
--- a/testcases/kdump/runkdump.sh
+++ b/testcases/kdump/runkdump.sh
@@ -7,7 +7,7 @@
     set +e
     crontab -r
     set -e
-   
+
     # crontab in some distros will not read from STDIN.
 
     cat <<EOF >kdump.cron
@@ -20,7 +20,7 @@
     crontab kdump.cron
 
     echo "Enable cron daemon by default."
-    
+
     if [ -f /etc/init.d/crond ]; then
         cron=crond
     else
@@ -31,7 +31,7 @@
     # Red Hat and SUSE.
     if [ -x "/sbin/chkconfig" ]; then
         /sbin/chkconfig "${cron}" on
- 
+
     # Debian and Ubuntu.
     elif [ -x "/sbin/update-rc.d" ]; then
         /sbin/update-rc.d "${cron}" defaults
@@ -42,16 +42,16 @@
 {
     echo "Start kdump daemon."
     /etc/init.d/kdump restart
-    
+
     echo "Enable kdump daemon by default."
     # Red Hat and SUSE.
     if [ -x "/sbin/chkconfig" ]; then
         /sbin/chkconfig kdump on
-        
+
     # Debian and Ubuntu.
     elif [ -x "/sbin/update-rc.d" ]; then
         /sbin/update-rc.d kdump defaults
-    fi    
+    fi
 }
 
 
@@ -130,11 +130,11 @@
 
     echo "Verifying the result of previous test ${last}."
     ldir=$(ls -td "../${log}/$(hostname)."* | head -1)
-    
+
     if [ -f "${vmcore}" ]; then
         echo "$(date +%F-%T): verification of test ${last} passed." \
         >>"${ldir}/status"
-        
+
         ./verify.sh "../${conf}" "${vmcore}" "${CRASH}" \
         >>"${ldir}/${ITERATION}.${last}.$(date +%F-%T)"
 
@@ -156,7 +156,7 @@
      "../${conf}"
 
     echo "Running current test ${i}."
-            
+
     echo "$(date +%F-%T): running current test ${i}." \
     >> "${ldir}/status"
 
@@ -185,7 +185,7 @@
 
 while [ "${ITERATION}" -ge 1 ]; do
 
-# Reboot the machine first to take advantage of boot parameter 
+# Reboot the machine first to take advantage of boot parameter
 # changes.
 if [ -z "${REBOOT}" ] || [ "${REBOOT}" -eq 0 ]; then
     echo "Setup test environment."
@@ -245,7 +245,7 @@
 
             # Some tests could not reboot target. They can hung up
             # machine or leave it working. But we need to do all
-            # tests. So we are going to reboot if we are in wrong 
+            # tests. So we are going to reboot if we are in wrong
             # place.
 
             sleep 3600
@@ -267,7 +267,7 @@
 else
     # Run the next iteration.
     sed -i "s/\(^ITERATION\)=.*/\1=$((ITERATION - 1))/" \
-     "../${conf}"    
+     "../${conf}"
 fi
 
 done
diff --git a/testcases/kdump/sample/runkdump.BASIC_LKDTM.RHEL b/testcases/kdump/sample/runkdump.BASIC_LKDTM.RHEL
index bf9aabe..15a6e54 100644
--- a/testcases/kdump/sample/runkdump.BASIC_LKDTM.RHEL
+++ b/testcases/kdump/sample/runkdump.BASIC_LKDTM.RHEL
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kdump/sample/runkdump.BASIC_LKDTM.SLES b/testcases/kdump/sample/runkdump.BASIC_LKDTM.SLES
index 49b504d..b1f8fc0 100644
--- a/testcases/kdump/sample/runkdump.BASIC_LKDTM.SLES
+++ b/testcases/kdump/sample/runkdump.BASIC_LKDTM.SLES
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kdump/sample/runkdump.CRASHER.RHEL b/testcases/kdump/sample/runkdump.CRASHER.RHEL
index e2fcc21..d094df1 100644
--- a/testcases/kdump/sample/runkdump.CRASHER.RHEL
+++ b/testcases/kdump/sample/runkdump.CRASHER.RHEL
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kdump/sample/runkdump.CRASHER.SLES b/testcases/kdump/sample/runkdump.CRASHER.SLES
index fc73025..d708e0c 100644
--- a/testcases/kdump/sample/runkdump.CRASHER.SLES
+++ b/testcases/kdump/sample/runkdump.CRASHER.SLES
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kdump/sample/runkdump.EXTRA_LKDTM.RHEL b/testcases/kdump/sample/runkdump.EXTRA_LKDTM.RHEL
index e14d6eb..aac72f8 100644
--- a/testcases/kdump/sample/runkdump.EXTRA_LKDTM.RHEL
+++ b/testcases/kdump/sample/runkdump.EXTRA_LKDTM.RHEL
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kdump/sample/runkdump.EXTRA_LKDTM.SLES b/testcases/kdump/sample/runkdump.EXTRA_LKDTM.SLES
index ebaf149..2f78d0c 100644
--- a/testcases/kdump/sample/runkdump.EXTRA_LKDTM.SLES
+++ b/testcases/kdump/sample/runkdump.EXTRA_LKDTM.SLES
@@ -24,7 +24,7 @@
 # Delay in seconds when dumping to a network destination.
 LINK_DELAY=
 
-# The list of testcases. Please see doc for the overview of 
+# The list of testcases. Please see doc for the overview of
 # those tests.
 
 # ACS ACP ACB ACE ACL
diff --git a/testcases/kernel/connectors/pec/Makefile b/testcases/kernel/connectors/pec/Makefile
index e9f6448..79866a4 100644
--- a/testcases/kernel/connectors/pec/Makefile
+++ b/testcases/kernel/connectors/pec/Makefile
@@ -26,4 +26,4 @@
 
 INSTALL_TARGETS		:= run_pec_test
 
-include $(top_srcdir)/include/mk/generic_leaf_target.mk 
+include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/containers/Makefile b/testcases/kernel/containers/Makefile
index adf1767..a27c695 100644
--- a/testcases/kernel/containers/Makefile
+++ b/testcases/kernel/containers/Makefile
@@ -28,7 +28,7 @@
 
 LDLIBS			:= -ldl -lltp
 
-INSTALL_TARGETS		:= *.sh 
+INSTALL_TARGETS		:= *.sh
 
 $(LIBDIR):
 	mkdir -p "$@"
diff --git a/testcases/kernel/containers/README b/testcases/kernel/containers/README
index fd0898f..6803494 100644
--- a/testcases/kernel/containers/README
+++ b/testcases/kernel/containers/README
@@ -49,7 +49,7 @@
         Contains the testcases related to the network NS tests. This tests uses
 the routes method to define the network namespaces.
 	The tests uses the library libclone/libnetns.a, netns/parentns.sh and
-netns/childns.sh scripts to define network namespace. 
+netns/childns.sh scripts to define network namespace.
 
 To run your tests you can execute the runnetnstest.sh .
 
@@ -57,18 +57,18 @@
 
 For Ex: To access a container created
 
-1) You can comment the line in the childns.sh 
-  'cleanup $sshpid $vnet1 ' 
-2)  run the script to create your first namespace. 
-   ./crtchild 
+1) You can comment the line in the childns.sh
+  'cleanup $sshpid $vnet1 '
+2)  run the script to create your first namespace.
+   ./crtchild
 3) Now you can login into the containers using
    ssh -p 7890 root@192.168.0.182
 
-Also the same scripts parentns.sh and childns.sh can be used to 
+Also the same scripts parentns.sh and childns.sh can be used to
 create a container and write your testcases to test the namespace.
 
 Note:
-	This tests would use the following IPaddresses 
+	This tests would use the following IPaddresses
 running sshd on PORT @ 7890 and @ 9876
 	192.168.0.181
 	192.168.0.182
diff --git a/testcases/kernel/containers/netns/ch_ftp.sh b/testcases/kernel/containers/netns/ch_ftp.sh
index 845fc7a..86bda7c 100755
--- a/testcases/kernel/containers/netns/ch_ftp.sh
+++ b/testcases/kernel/containers/netns/ch_ftp.sh
@@ -19,7 +19,7 @@
 ##                                                                            ##
 
 ## This script checks that the parent namespace is reachable from the child
-## Author:      Veerendra <veeren@linux.vnet.ibm.com> 
+## Author:      Veerendra <veeren@linux.vnet.ibm.com>
 
 TCID=${TCID:-ch_ftp.sh}
 TST_TOTAL=1
diff --git a/testcases/kernel/containers/netns/child.sh b/testcases/kernel/containers/netns/child.sh
index 6e8ed62..9883fda 100755
--- a/testcases/kernel/containers/netns/child.sh
+++ b/testcases/kernel/containers/netns/child.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This script checks that the parent namespace is reachable from the child
 
@@ -31,9 +31,9 @@
 export TCID
 export TST_COUNT
 export TST_TOTAL
-    
-    ping -qc 2 $IP1 >  /dev/null 
-    
+
+    ping -qc 2 $IP1 >  /dev/null
+
     if [ $? = 0 ] ; then
         tst_resm TINFO "PASS: Pinging ParentNS from ChildNS"
         status=0
diff --git a/testcases/kernel/containers/netns/child_1.sh b/testcases/kernel/containers/netns/child_1.sh
index a63e834..c252ed3 100755
--- a/testcases/kernel/containers/netns/child_1.sh
+++ b/testcases/kernel/containers/netns/child_1.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>
 
-# This script is trying to ping the Child2 from Child1 
+# This script is trying to ping the Child2 from Child1
 # The test case ID, the test case count and the total number of test case
 
 TCID=${TCID:-child_1.sh}
@@ -48,7 +48,7 @@
     if [ $? ]; then
         debug "INFO: Started the sshd in CHILD1"
         sshpid1=`ps -ef | grep "sshd -p $PORT" | awk '{ print $2 ; exit 0} ' `
-        
+
         ping -qc 2 $IP1 > /dev/null
         if [ $? -ne 0 ] ; then
             tst_resm TFAIL "FAIL: Unable to ping the Parent1 from Child1"
@@ -68,8 +68,8 @@
         ping -qc 2 $IP4 > /dev/null
         if [ $? = 0 ];
         then
-            tst_resm TINFO "PASS: Child2 is pinging from CHILD1 !" 
-        else 
+            tst_resm TINFO "PASS: Child2 is pinging from CHILD1 !"
+        else
             tst_resm TFAIL "FAIL: Unable to Ping Child2 from CHILD1 !"
             status=-1
         fi
diff --git a/testcases/kernel/containers/netns/child_2.sh b/testcases/kernel/containers/netns/child_2.sh
index d73b785..a795562 100755
--- a/testcases/kernel/containers/netns/child_2.sh
+++ b/testcases/kernel/containers/netns/child_2.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -40,7 +40,7 @@
 
     # By now networking is working
     ifconfig $vnet2 $IP4$mask up 2> /dev/null
-    ifconfig lo up 
+    ifconfig lo up
 
     # Creating ssh session
     /usr/sbin/sshd -p $PORT2
diff --git a/testcases/kernel/containers/netns/child_propagate.sh b/testcases/kernel/containers/netns/child_propagate.sh
index 5b59ee3..4096e57 100755
--- a/testcases/kernel/containers/netns/child_propagate.sh
+++ b/testcases/kernel/containers/netns/child_propagate.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This script propagates the child sysfs contents to be visible for parent
 # Also it will check the parent sysfs contents are visible.
@@ -40,7 +40,7 @@
     mount -t sysfs none /sys || ret=1
     mkdir -p /tmp/mnt/sys || ret=1
     mount --bind /sys /tmp/mnt/sys > /dev/null || ret=1
-    
+
     if [ $ret -ne 0 ]; then
         status=1
         tst_resm TFAIL "error while doing bind mount"
@@ -63,6 +63,6 @@
     fi
 
     #cleanup
-    rm -f /tmp/parent_sysfs_in_child /tmp/parent_sysfs 
+    rm -f /tmp/parent_sysfs_in_child /tmp/parent_sysfs
     umount /tmp/mnt/sys
     rm -rf /tmp/mnt  > /dev/null 2>&1 || true
diff --git a/testcases/kernel/containers/netns/childipv6.sh b/testcases/kernel/containers/netns/childipv6.sh
index 54bd6e6..b2f34a3 100755
--- a/testcases/kernel/containers/netns/childipv6.sh
+++ b/testcases/kernel/containers/netns/childipv6.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -24,7 +24,7 @@
 # This test scripts passes the PID of the child NS to the parent NS.
 # Also it assigns the device address and starts the sshd daemon
 # It checks for basic network connection between parent and child.
-# It renames the network device of the child 
+# It renames the network device of the child
 #
 # Arguments:    Accepts an argument 'script' and executes on top of this
 ################################################################################
@@ -39,19 +39,19 @@
 export TST_TOTAL
 .  initialize.sh
 status=0
-    
-    # Passing the PID of child 
+
+    # Passing the PID of child
     echo $$ > /tmp/FIFO1
-    
+
     # waiting for the virt-eth devname and IPv6 addr from parent
     vnet1=`cat /tmp/FIFO2`
     # Assigning the dev addresses
     ifconfig $vnet1 $IP2/24 up > /dev/null 2>&1
     ifconfig lo up
     sleep 2
-    
+
     #starting the sshd inside the child NS
-    /usr/sbin/sshd -p $PORT 
+    /usr/sbin/sshd -p $PORT
     if [ $? = 0 ]; then
         debug "INFO: started the sshd @ port no $PORT"
         sshpid=`ps -ef | grep "sshd -p $PORT" | awk '{ print $2 ; exit 0} ' `
@@ -59,15 +59,15 @@
         tst_resm TFAIL "Failed in starting ssh @ port $PORT"
         status=1
     fi
-    
+
     childIPv6=`ip -6 addr show dev $vnet1 | awk ' /inet6/ { print $2 } ' | awk -F"/" ' { print $1 } '`
     echo $childIPv6 >> /tmp/FIFO3
-    
+
     parIPv6=`cat /tmp/FIFO4`
     debug "INFO: Received the Ipv6 addr $parIPv6"
 
     # checking if parent ns responding
-    ping6 -I $vnet1 -qc 2 $parIPv6 >/dev/null 2>&1 
+    ping6 -I $vnet1 -qc 2 $parIPv6 >/dev/null 2>&1
            if [ $? = 0 ] ; then
                tst_resm TINFO "IPv6: Pinging Parent from Child: PASS"
             else
diff --git a/testcases/kernel/containers/netns/childns.sh b/testcases/kernel/containers/netns/childns.sh
index 16fc7e8..484162d 100755
--- a/testcases/kernel/containers/netns/childns.sh
+++ b/testcases/kernel/containers/netns/childns.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 
 ################################################################################
@@ -37,7 +37,7 @@
 exists awk grep ip ping sshd
 . initialize.sh
 status=0
-    
+
 SSHD=`which sshd`
 
 if [ $# -eq 1 ] ; then
@@ -45,7 +45,7 @@
     debug "INFO: The script to be executed in child NS is $childscrpt"
 fi
 
-# Passing the PID of child 
+# Passing the PID of child
 echo "child ready" > /tmp/FIFO1;
 
 # waiting for the device name from parent
@@ -88,4 +88,4 @@
 
 fi
 
-exit $status 
+exit $status
diff --git a/testcases/kernel/containers/netns/container_ftp.pl b/testcases/kernel/containers/netns/container_ftp.pl
index 15cf55e..4503b08 100644
--- a/testcases/kernel/containers/netns/container_ftp.pl
+++ b/testcases/kernel/containers/netns/container_ftp.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/env perl
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 use File::Temp 'tempdir';
 use Net::FTP;
@@ -59,14 +59,14 @@
         $ftp->login("anonymous","passwd") or $newerr=1;
         push @ERRORS, "Can't login to $host: $!\n" if $newerr;
         $ftp->quit if $newerr;
-        printerr() if $newerr; 
+        printerr() if $newerr;
 
         $basedir = `basename "$dir"`;
         chomp $basedir;
         $ftp->cwd($basedir) or $newerr=1;
         push @ERRORS, "Can't cd  $!\n" if $newerr;
         $ftp->quit if $newerr;
-        printerr() if $newerr; 
+        printerr() if $newerr;
 
         $newname = $file . "_" . $i ;
         $ftp->get($file,$newname) or $newerr=1;
diff --git a/testcases/kernel/containers/netns/delchild.sh b/testcases/kernel/containers/netns/delchild.sh
index 3944645..0c4654a 100755
--- a/testcases/kernel/containers/netns/delchild.sh
+++ b/testcases/kernel/containers/netns/delchild.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,9 +19,9 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
-# This script deletes the child ns, and checks the device 
+# This script deletes the child ns, and checks the device
 # returned to the parent ns.
 
 # Reading contents of the sys fs to file in Parent
@@ -35,7 +35,7 @@
 export TCID
 export TST_COUNT
 export TST_TOTAL
-    
+
     sshpid=`cat /tmp/FIFO3`
     debug "INFO: ssh pid is  $sshpid"
     newnet=`cat /tmp/FIFO4`
@@ -44,21 +44,21 @@
     if [ $newnet = -1 ] ; then
         status=-1
     fi
-    
+
     ls /sys/class/net > /tmp/sys_b4_child_killed
     sleep 2
-    
+
     debug "INFO: Deleting the child NS created.. "
     debug "INFO: Killing processes $sshpid $pid"
     kill -9 $sshpid $pid > /dev/null 2>&1
     sleep 1
-    
+
     ls /sys/class/net > /tmp/sys_aftr_child_killed
-    diff -q /tmp/sys_b4_child_killed /tmp/sys_aftr_child_killed 
-    
+    diff -q /tmp/sys_b4_child_killed /tmp/sys_aftr_child_killed
+
     if [ $? = 0 ] ; then
         debug "INFO: No difference in the contents of sysfs after deleting the child"
-    else 
+    else
         grep -qw $newnet /tmp/sys_aftr_child_killed
         if [ $? = 0 ]; then
             debug "INFO: Device $newnet is moved to ParentNS"
diff --git a/testcases/kernel/containers/netns/initialize.sh b/testcases/kernel/containers/netns/initialize.sh
index dd01280..ea2e7fc 100755
--- a/testcases/kernel/containers/netns/initialize.sh
+++ b/testcases/kernel/containers/netns/initialize.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This scripts contains the IP addr, PortNum of sshd
 # to be used and cleanup functions.
diff --git a/testcases/kernel/containers/netns/par_ftp.sh b/testcases/kernel/containers/netns/par_ftp.sh
index bb65db4..300a654 100755
--- a/testcases/kernel/containers/netns/par_ftp.sh
+++ b/testcases/kernel/containers/netns/par_ftp.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This script checks whether child NS is reachable from parent NS.
 #set -x
@@ -34,7 +34,7 @@
 export TST_TOTAL
 
     ping -q -c 2 $IP2 > /dev/null
-    
+
     if [ $? = 0 ] ; then
         tst_resm TINFO "Pinging ChildNS from ParentNS"
 	status=0
diff --git a/testcases/kernel/containers/netns/parent.sh b/testcases/kernel/containers/netns/parent.sh
index 61bb500..38e5864 100755
--- a/testcases/kernel/containers/netns/parent.sh
+++ b/testcases/kernel/containers/netns/parent.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This script checks whether child NS is reachable from parent NS.
 
diff --git a/testcases/kernel/containers/netns/parent_1.sh b/testcases/kernel/containers/netns/parent_1.sh
index 32f1a47..237c8eb 100755
--- a/testcases/kernel/containers/netns/parent_1.sh
+++ b/testcases/kernel/containers/netns/parent_1.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This testcase creates the net devices
 
@@ -49,7 +49,7 @@
     route add -host $IP2 dev $vnet0
     echo 1 > /proc/sys/net/ipv4/conf/$vnet0/proxy_arp
 
-    pid=`cat /tmp/FIFO2` 
+    pid=`cat /tmp/FIFO2`
     debug "INFO: The pid of CHILD1 is $pid"
     ip link set $vnet1 netns $pid
     echo $vnet1 > /tmp/FIFO1
diff --git a/testcases/kernel/containers/netns/parent_2.sh b/testcases/kernel/containers/netns/parent_2.sh
index f72c16d..9df0fa7 100755
--- a/testcases/kernel/containers/netns/parent_2.sh
+++ b/testcases/kernel/containers/netns/parent_2.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # The test case ID, the test case count and the total number of test case
 
@@ -45,7 +45,7 @@
     route add -host $IP4 dev $vnet2
     echo 1 > /proc/sys/net/ipv4/conf/$vnet2/proxy_arp
 
-    pid=`cat /tmp/FIFO4` 
+    pid=`cat /tmp/FIFO4`
     debug "INFO: The pid of CHILD2 is $pid"
     ip link set $vnet3 netns $pid
     echo $vnet3 > /tmp/FIFO3
diff --git a/testcases/kernel/containers/netns/parent_share.sh b/testcases/kernel/containers/netns/parent_share.sh
index efa796a..0ce1f11 100755
--- a/testcases/kernel/containers/netns/parent_share.sh
+++ b/testcases/kernel/containers/netns/parent_share.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,9 +19,9 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
-# This script is executed in the parent NS. 
+# This script is executed in the parent NS.
 # It binds and does sharable mount of sysfs .
 #
 #For child to refer parent sys
@@ -35,12 +35,12 @@
 export TCID
 export TST_COUNT
 export TST_TOTAL
-ret=0 
+ret=0
 . initialize.sh
 
     mkdir -p /tmp/par_sysfs /tmp/mnt || ret=1
     mount --bind /sys /tmp/par_sysfs || ret=1
-    
+
     #share parent namespace
     mount --bind /tmp/mnt /tmp/mnt || ret=1
     #mount --make-shared /mnt
diff --git a/testcases/kernel/containers/netns/parent_view.sh b/testcases/kernel/containers/netns/parent_view.sh
index 2e96a4b..fa76dd9 100755
--- a/testcases/kernel/containers/netns/parent_view.sh
+++ b/testcases/kernel/containers/netns/parent_view.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This script verifies the contents of child sysfs is visible in parent NS.
 
@@ -31,13 +31,13 @@
 export TCID
 export TST_COUNT
 export TST_TOTAL
-    
-    #capture parent /sys contents 
-    
-    debug "INFO: Parent SYSFS view" 
+
+    #capture parent /sys contents
+
+    debug "INFO: Parent SYSFS view"
     ls /sys/class/net > /tmp/parent_sysfs
     echo PROPAGATE > /tmp/FIFO4
-    
+
     PROPAGATED=`cat /tmp/FIFO5`
     ls /tmp/mnt/sys/class/net > /tmp/child_sysfs_in_parent
     diff /tmp/child_sysfs_in_parent /tmp/child_sysfs
@@ -52,8 +52,8 @@
 
     #cleanup temp files
 
-    rm -f /tmp/child_sysfs_in_parent /tmp/child_sysfs 
-    umount /tmp/par_sysfs 
+    rm -f /tmp/child_sysfs_in_parent /tmp/child_sysfs
+    umount /tmp/par_sysfs
     umount /tmp/mnt
     sleep 1
     rm -rf /tmp/par_sysfs /tmp/mnt > /dev/null 2>&1 || true
diff --git a/testcases/kernel/containers/netns/parentns.sh b/testcases/kernel/containers/netns/parentns.sh
index 40dbd78..9901f0d 100755
--- a/testcases/kernel/containers/netns/parentns.sh
+++ b/testcases/kernel/containers/netns/parentns.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 ################################################################################
 # This script creates 2 veth devices.
diff --git a/testcases/kernel/containers/netns/paripv6.sh b/testcases/kernel/containers/netns/paripv6.sh
index c0ed96d..0db8319 100755
--- a/testcases/kernel/containers/netns/paripv6.sh
+++ b/testcases/kernel/containers/netns/paripv6.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 ################################################################################
 # This script creates 2 veth devices $vnet0 and $vnet1.
@@ -55,8 +55,8 @@
     else
         debug "INFO: vnet0 = $vnet0 , vnet1 = $vnet1"
     fi
-       
-    
+
+
     ifconfig $vnet0 $IP1/24 up > /dev/null 2>&1
     route add -host $IP2 dev $vnet0
     echo 1 > /proc/sys/net/ipv4/conf/$vnet0/proxy_arp
@@ -74,7 +74,7 @@
     parIPv6=`ip -6 addr show dev $vnet0 | awk ' /inet6/ { print $2 } ' | awk -F"/" ' { print $1 } '`
 
     echo $parIPv6 > /tmp/FIFO4
-    ping6 -I $vnet0 -qc 2 $childIPv6 >/dev/null 2>&1 
+    ping6 -I $vnet0 -qc 2 $childIPv6 >/dev/null 2>&1
 
     if [ $? = 0 ] ; then
        tst_resm TINFO "IPv6: Pinging child from parent: PASS"
diff --git a/testcases/kernel/containers/netns/rename_net.sh b/testcases/kernel/containers/netns/rename_net.sh
index ffbe07f..1cb8f9f 100755
--- a/testcases/kernel/containers/netns/rename_net.sh
+++ b/testcases/kernel/containers/netns/rename_net.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 # This script Renames the net device of the child ns to $NewNetDev.
 
@@ -31,13 +31,13 @@
 export TST_COUNT
 export TST_TOTAL
 
-    # Find the free dev name 
+    # Find the free dev name
     for i in `seq 1 100`
     do
         newdev=veth$i
         ip link show | grep -qw $newdev
         # On finding free device break.
-        if [ $? != 0 ] ; then 
+        if [ $? != 0 ] ; then
                 break
         fi
     done
diff --git a/testcases/kernel/containers/netns/runnetnstest.sh b/testcases/kernel/containers/netns/runnetnstest.sh
index e5ae694..c381851 100755
--- a/testcases/kernel/containers/netns/runnetnstest.sh
+++ b/testcases/kernel/containers/netns/runnetnstest.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-################################################################################ 
+################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
 ##                                                                            ##
@@ -19,7 +19,7 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA    ##
 ##                                                                            ##
 ## Author:      Veerendra <veeren@linux.vnet.ibm.com>                         ##
-################################################################################ 
+################################################################################
 
 
 rc=0
diff --git a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
index 19c30fe..11274c3 100755
--- a/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
+++ b/testcases/kernel/controllers/cgroup/cgroup_regression_test.sh
@@ -31,7 +31,7 @@
 tst_kvercmp 2 6 29
 if [ $? -eq 0 ]; then
 	tst_brkm TCONF ignored "test must be run with kernel 2.6.29 or newer"
-	exit 0 
+	exit 0
 elif [ ! -f /proc/cgroups ]; then
 	tst_brkm TCONF ignored "Kernel does not support for control groups; skipping testcases";
 	exit 0
@@ -207,7 +207,7 @@
 # Bug:    cgroup hierarchy lock's lockdep subclass may overflow
 # Kernel: 2.6.29-rcX
 # Link:   http://lkml.org/lkml/2009/2/4/67
-# Fix:    
+# Fix:
 #---------------------------------------------------------------------------
 test_4()
 {
diff --git a/testcases/kernel/controllers/cgroup_fj/README b/testcases/kernel/controllers/cgroup_fj/README
index 2c40df7..4d4dd68 100644
--- a/testcases/kernel/controllers/cgroup_fj/README
+++ b/testcases/kernel/controllers/cgroup_fj/README
@@ -3,7 +3,7 @@
 
 The directory cgroup_fj contains the tests related to the cgroups.
 
-There are total 194 testcases that have been added. These testcases 
+There are total 194 testcases that have been added. These testcases
 contain the basis operation test and stress test of cgroups.
 
 NOTE: the test can be run by root only.
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
index 8c0de3d..2e6d46e 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function.sh
@@ -24,7 +24,7 @@
 
 subsystem=$1
 remount_use=$2
-noprefix_use=$3	
+noprefix_use=$3
 release_agent_para=$4
 subgroup_exist=$5
 attach_operation=$6
@@ -155,7 +155,7 @@
 
 mkdir_subgroup;
 
-# cpuset.cpus and cpuset.mems should be specified with suitable value 
+# cpuset.cpus and cpuset.mems should be specified with suitable value
 # before attaching operation if subsystem is cpuset
 if [ $subsystem -eq 2 ] || [ $subsystem -eq 7 ] || [ $subsystem -eq 8 ] ; then
 	exist=`grep -w cpuset /proc/cgroups | cut -f1`;
@@ -219,7 +219,7 @@
 
 sleep 1
 
-# pid could not be echoed from subgroup if subsystem is ( or include ) ns, 
+# pid could not be echoed from subgroup if subsystem is ( or include ) ns,
 # so we kill them here
 if [ $subsystem -eq 3 ] || [ $subsystem -eq 7 ] || [ $subsystem -eq 8 ] ; then
 	do_kill 1 1 9 $pid
@@ -265,5 +265,5 @@
 cleanup;
 do_kill 1 1 9 $pid
 do_kill 1 1 9 $pid2
-sleep 1	
+sleep 1
 exit 0;
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh
index 647d2ab..d077ead 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_function2.sh
@@ -60,7 +60,7 @@
 case1()
 {
 	do_mkdir 1 1 /dev/cgroup/subgroup_2
-	
+
 	do_echo 1 0 $pid /dev/cgroup/subgroup_1/tasks
 	sleep 1
 	do_echo 1 0 $pid /dev/cgroup/subgroup_2/tasks
@@ -71,11 +71,11 @@
 case2()
 {
 	do_mkdir 1 1 /dev/cgroup/subgroup_2
-	
+
 	$TESTROOT/cgroup_fj_proc &
 	pid2=$!
 	sleep 1
-	
+
 	cat /dev/cgroup/tasks > $TMPFILE
 	nlines=`cat $TMPFILE | wc -l`
 	for i in `seq 1 $nlines`
@@ -85,9 +85,9 @@
 			do_echo 1 0 "$cur_pid" /dev/cgroup/subgroup_1/tasks
 		fi
 	done
-	
+
 	sleep 1
-	
+
 	cat /dev/cgroup/subgroup_1/tasks > $TMPFILE
 	nlines=`cat $TMPFILE | wc -l`
 	for i in `seq 1 $nlines`
@@ -97,9 +97,9 @@
 			do_echo 1 0 "$cur_pid" /dev/cgroup/subgroup_2/tasks
 		fi
 	done
-	
+
 	sleep 1
-	
+
 	cat /dev/cgroup/subgroup_2/tasks > $TMPFILE
 	nlines=`cat $TMPFILE | wc -l`
 	for i in `seq 1 $nlines`
@@ -116,25 +116,25 @@
 	exist_subsystem "cpuset"
 	exist_subsystem "ns"
 	do_mount 1 1 "-odebug,cpuset,ns" /dev/cgroup cgroup1
-	
+
 	mount_str="`mount -l | grep /dev/cgroup2`"
 	if [ "$mount_str" != "" ]; then
 		do_umount 0 1 /dev/cgroup2
 	fi
-	
+
 	if [ -e /dev/cgroup2 ]; then
 		do_rmdir 1 1 /dev/cgroup2
 	fi
-	
+
 	do_mkdir 1 1 /dev/cgroup2
 
 	exist_subsystem "cpu"
 	exist_subsystem "cpuacct"
 	exist_subsystem "memory"
 	do_mount 1 1 "-ocpu,cpuacct,memory" /dev/cgroup2 cgroup2
-	
+
 	sleep 1
-	
+
 	do_umount 0 1 /dev/cgroup
 	do_rmdir 0 1 /dev/cgroup
 	do_umount 0 1 /dev/cgroup2
@@ -146,22 +146,22 @@
 	exist_subsystem "cpuset"
 	exist_subsystem "ns"
 	do_mount 1 1 "-odebug,cpuset,ns" /dev/cgroup cgroup1
-	
+
 	mount_str="`mount -l | grep /dev/cgroup2`"
 	if [ "$mount_str" != "" ]; then
 		do_umount 1 1 /dev/cgroup2
 	fi
-	
+
 	if [ -e /dev/cgroup2 ]; then
 		do_rmdir 0 1 /dev/cgroup2
 	fi
-	
+
 	do_mkdir 0 1 /dev/cgroup2
-	
+
 	do_mount 1 1 "-odebug,cpuset,ns" /dev/cgroup2 cgroup2
-	
+
 	sleep 1
-	
+
 	do_umount 0 1 /dev/cgroup
 	do_rmdir 0 1 /dev/cgroup
 	do_umount 0 1 /dev/cgroup2
@@ -174,22 +174,22 @@
 	exist_subsystem "ns"
 	exist_subsystem "memory"
 	do_mount 1 1 "-odebug,cpuset,ns" /dev/cgroup cgroup1
-	
+
 	mount_str="`mount -l | grep /dev/cgroup2`"
 	if [ "$mount_str" != "" ]; then
 		do_umount 1 1 /dev/cgroup2
 	fi
-	
+
 	if [ -e /dev/cgroup2 ]; then
 		do_rmdir 0 1 /dev/cgroup2
 	fi
-	
+
 	do_mkdir 0 1 /dev/cgroup2
-	
+
 	do_mount 0 1 "-odebug,cpuset,memory" /dev/cgroup2 cgroup2
-	
+
 	sleep 1
-	
+
 	do_umount 0 1 /dev/cgroup
 	do_rmdir 0 1 /dev/cgroup
 	do_umount 0 1 /dev/cgroup2
@@ -202,22 +202,22 @@
 	exist_subsystem "cpuset"
 	exist_subsystem "ns"
 	do_mount 1 1 "-odebug,cpuset,ns" /dev/cgroup cgroup1
-	
+
 	mount_str="`mount -l | grep /dev/cgroup2`"
 	if [ "$mount_str" != "" ]; then
 		do_umount 1 1 /dev/cgroup2
 	fi
-	
+
 	if [ -e /dev/cgroup2 ]; then
 		do_rmdir 0 1 /dev/cgroup2
 	fi
-	
+
 	do_mkdir 0 1 /dev/cgroup2
-	
+
 	do_mount 0 1 "-oall" /dev/cgroup2 cgroup2
-	
+
 	sleep 1
-	
+
 	do_umount 0 1 /dev/cgroup
 	do_rmdir 0 1 /dev/cgroup
 	do_umount 0 1 /dev/cgroup2
@@ -227,14 +227,14 @@
 case7()
 {
 	do_mkdir 0 1 /dev/cgroup/subgroup_2
-	
+
 	do_mv 0 1 /dev/cgroup/subgroup_1 /dev/cgroup/subgroup_3
 }
 
 case8()
 {
 	do_mkdir 0 1 /dev/cgroup/subgroup_2
-	
+
 	do_mv 0 0 /dev/cgroup/subgroup_1 /dev/cgroup/subgroup_2
 }
 
@@ -244,15 +244,15 @@
 	if [ "$mount_str" != "" ]; then
 		do_umount 1 1 /dev/cgroup2
 	fi
-	
+
 	if [ -e /dev/cgroup2 ]; then
 		do_rmdir 0 1 /dev/cgroup2
 	fi
-	
+
 	do_mkdir 0 1 /dev/cgroup2
-	
+
 	do_mkdir 0 1 /dev/cgroup2/subgroup_2
-	
+
 	do_mv 0 1 /dev/cgroup/subgroup_1 /dev/cgroup/subgroup_2
 
 	sleep 1
@@ -264,31 +264,31 @@
 case10()
 {
 	do_mkdir 0 1 /dev/cgroup/subgroup_2
-	
+
 	do_mv 0 0 /dev/cgroup/subgroup_1 /dev/cgroup/tasks
 }
 
 case11()
 {
 	do_echo 0 1 $pid /dev/cgroup/subgroup_1/tasks
-	
+
 	sleep 1
-	
+
 	do_rmdir 0 0 /dev/cgroup/subgroup_1
-	
+
 	sleep 1
-	
+
 	do_echo 1 1 $pid /dev/cgroup/tasks
 }
 
 case12()
 {
 	do_mkdir 0 1 /dev/cgroup/subgroup_1/subgroup_1_1
-	
+
 	sleep 1
-	
+
 	do_rmdir 0 0 /dev/cgroup/subgroup_1
-	
+
 	do_rmdir 1 1 /dev/cgroup/subgroup_1/subgroup_1_1
 }
 
@@ -307,7 +307,7 @@
 echo "case no : $CASENO1" >> $LOGFILE
 echo `date` >> $LOGFILE
 
-exist_subsystem "debug"	
+exist_subsystem "debug"
 setup;
 
 echo "INFO: now we begin to test no $CASENO1 ..." >> $LOGFILE
@@ -325,5 +325,5 @@
 if [ $caseno -lt 3 ] || [ $caseno -gt 6 ]; then
 	do_kill 1 1 9 $pid
 fi
-sleep 1	
+sleep 1
 exit 0;
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh
index ca66dcc..02d4f79 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_stress.sh
@@ -111,7 +111,7 @@
 	if [ "$#" -ne 1 ] || [ "$1" -lt 1 ] || [ "$1" -gt $ulimit_u ]; then
 		return;
 	fi
-	
+
 	cur_subgroup_path1="/dev/cgroup/subgroup_$1/"
 }
 
@@ -122,7 +122,7 @@
 	if [ "$#" -ne 1 ] || [ "$1" -lt 2 ] || [ "$1" -gt $ulimit_u ]; then
 		return;
 	fi
-	
+
 	for i in `seq 2 $1`
 	do
 		cur_subgroup_path2="$cur_subgroup_path2""s/"
@@ -195,7 +195,7 @@
 
 mkdir_subgroup;
 
-# cpuset.cpus and cpuset.mems should be specified with suitable value 
+# cpuset.cpus and cpuset.mems should be specified with suitable value
 # before attachint operation if subsystem is cpuset
 if [ $subsystem -eq 2 ] || [ $subsystem -eq 7 ] ; then
 	if [ "$exist_cpuset" != "" ]; then
@@ -262,9 +262,9 @@
 		done
 	done
 	echo "...mkdired $count times" >> $LOGFILE
-	
+
 	sleep 1
-	
+
 	case $attach_operation in
 	"1" )
 		for i in `seq 1 $count`
diff --git a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh
index ed161fa..ff5d49d 100755
--- a/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh
+++ b/testcases/kernel/controllers/cgroup_fj/cgroup_fj_utility.sh
@@ -44,10 +44,10 @@
 	if [ "$checksubsystem" = "" ]; then
 		exit -1
 	fi
-	
+
 	exist=`grep -w $checksubsystem /proc/cgroups | cut -f1`;
 	if [ "$exist" = "" ]; then
-		exit 9 
+		exit 9
 	fi
 }
 
@@ -243,11 +243,11 @@
 		echo "ERROR: exit failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	exit_status=$3
-	
+
 	if [ $exit_status -eq 0 ] ;then
 		if [ $expectted -lt 1 ]; then
 			echo "								against with expectted" >> $LOGFILE
@@ -278,7 +278,7 @@
 		echo "ERROR: echo failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	value=$3
@@ -302,7 +302,7 @@
 		echo "ERROR: mkdir failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	target=$3
@@ -318,11 +318,11 @@
 			echo "\"mkdir $target\" (expectted: fail)" >> $LOGFILE
 		fi
 	fi
-	
+
 	if [ $parents -ne "1" ] && [ -e $target ]; then
 		do_rmdir $exit_here 1 $target
 	fi
-	
+
 	if [ $parents -ne "1" ]; then
 		mkdir $target >> $LOGFILE 2>&1
 	else
@@ -337,7 +337,7 @@
 		echo "ERROR: rmdir failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	target=$3
@@ -346,7 +346,7 @@
 		echo "INFO: $target is not exist" >> $LOGFILE
 		return
 	fi
-	
+
 	if [ $no_debug -ne 1 ]; then
 		if [ $expectted -ge 1 ]; then
 			echo "\"rmdir $target\" (expectted: success)" >> $LOGFILE
@@ -354,7 +354,7 @@
 			echo "\"rmdir $target\" (expectted: fail)" >> $LOGFILE
 		fi
 	fi
-	
+
 	rmdir $3 $4 $5 >> $LOGFILE 2>&1
 	do_exit $exit_here $expectted $?;
 }
@@ -365,7 +365,7 @@
 		echo "ERROR: mount failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	para_o=$3
@@ -374,7 +374,7 @@
 	if [ "$#" -eq "5" ]; then
 		something=$5
 	fi
-	
+
 	if [ $no_debug -ne 1 ]; then
 		if [ $expectted -ge 1 ]; then
 			echo "\"mount -t cgroup $para_o $something $target\" (expectted: success)" >> $LOGFILE
@@ -382,7 +382,7 @@
 			echo "\"mount -t cgroup $para_o $something $target\" (expectted: fail)" >> $LOGFILE
 		fi
 	fi
-	
+
 	mount -t cgroup $para_o $something $target >> $LOGFILE 2>&1
 	do_exit $exit_here $expectted $?;
 }
@@ -393,11 +393,11 @@
 		echo "ERROR: umount failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	target=$3
-	
+
 	if [ $no_debug -ne 1 ]; then
 		if [ $expectted -ge 1 ]; then
 			echo "\"umount $target\" (expectted: success)" >> $LOGFILE
@@ -405,7 +405,7 @@
 			echo "\"umount $target\" (expectted: fail)" >> $LOGFILE
 		fi
 	fi
-	
+
 	umount $target >> $LOGFILE 2>&1
 	do_exit $exit_here $expectted $?;
 }
@@ -416,12 +416,12 @@
 		echo "ERROR: mv failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	source=$3
 	target=$4
-	
+
 	if [ $no_debug -ne 1 ]; then
 		if [ $expectted -ge 1 ]; then
 			echo "\"mv $source $target\" (expectted: success)" >> $LOGFILE
@@ -429,7 +429,7 @@
 			echo "\"mv $source $target\" (expectted: fail)" >> $LOGFILE
 		fi
 	fi
-	
+
 	mv $source $target >> $LOGFILE 2>&1
 	do_exit $exit_here $expectted $?;
 }
@@ -440,7 +440,7 @@
 		echo "ERROR: kill failed,your parameter is wrong..Exiting test" >> $LOGFILE
 		exit -1
 	fi
-	
+
 	exit_here=$1
 	expectted=$2
 	signo=$3
@@ -448,7 +448,7 @@
 
 	if ! [ -e /proc/$pid/ ];then
 		return
-	fi	
+	fi
 
 	if [ $no_debug -ne 1 ]; then
 		if [ $expectted -ge 1 ]; then
@@ -468,7 +468,7 @@
 		cleanup;
 	fi
 	do_mkdir 1 1 /dev/cgroup
-	
+
 	if [ -e $TESTROOT/cgroup_fj_release_agent ]
 	then
 		cp -f $TESTROOT/cgroup_fj_release_agent /sbin
@@ -483,7 +483,7 @@
 	if [ $release_agent_para -eq 8 ] || [ $release_agent_echo -eq 7 ]; then
 		chmod a-x /sbin/cgroup_fj_release_agent
 	fi
-	
+
 	if [ -e $TESTROOT/cgroup_fj_proc ]
 	then
 		chmod a+x $TESTROOT/cgroup_fj_proc
@@ -518,7 +518,7 @@
 		done
 		do_rmdir 0 1 /dev/cgroup/subgroup_*
 	fi
-	
+
 	if [ -e $TMPFILE ]; then
 		rm -f $TMPFILE 2>/dev/null
 	fi
@@ -527,7 +527,7 @@
 	if [ "$mount_str" != "" ]; then
 		do_umount 0 1 /dev/cgroup
 	fi
-	
+
 	if [ -e /dev/cgroup ]; then
 		do_rmdir 0 1 /dev/cgroup
 	fi
@@ -553,7 +553,7 @@
 
 	if [ $foundlings -ne 0 ]; then
 		echo "ERROR: some processes lost in subgroups's tasks, now they are reclaimed."
-	fi 
+	fi
 }
 
 mkdir_subgroup()
@@ -604,7 +604,7 @@
 	if [ "$PARAMETER_O" != "" ]; then
 		PARAMETER_O="-o""$PARAMETER_O"
 	fi
-	
+
 	do_mount 1 $expectted "$PARAMETER_O" /dev/cgroup
 }
 
@@ -623,7 +623,7 @@
 	get_release_agent;
 	ret6=$?
 
-	if [ $ret1 -ne 0 ] || [ $ret2 -ne 0 ] || [ $ret3 -ne 0 ] || [ $ret4 -ne 0 ] || [ $ret5 -ne 0 ] || [ $ret6 -ne 0 ] 
+	if [ $ret1 -ne 0 ] || [ $ret2 -ne 0 ] || [ $ret3 -ne 0 ] || [ $ret4 -ne 0 ] || [ $ret5 -ne 0 ] || [ $ret6 -ne 0 ]
 	then
 		echo "ERROR: Wrong inputed parameter..Exiting test" >> $LOGFILE
 		return -1
diff --git a/testcases/kernel/controllers/cpuacct/README b/testcases/kernel/controllers/cpuacct/README
index 26dc2fa..383f252 100644
--- a/testcases/kernel/controllers/cpuacct/README
+++ b/testcases/kernel/controllers/cpuacct/README
@@ -19,7 +19,7 @@
 This file contains the functions which are common for all the tests. For ex.
 the setup and cleanup functions which do the setup for running the test and do
 the cleanup once the test finishes. The setup() function creates /dev/cpuacct
-directory and mounts cgroup filesystem on it with accounting  controller. It 
+directory and mounts cgroup filesystem on it with accounting  controller. It
 then creates a number(n) of groups in /dev/cpuacct. The cleanup function does a
 complete cleanup of the system.
 
diff --git a/testcases/kernel/controllers/cpuacct/cpuacct_testplan.txt b/testcases/kernel/controllers/cpuacct/cpuacct_testplan.txt
index 9c38f1b..ed84867 100644
--- a/testcases/kernel/controllers/cpuacct/cpuacct_testplan.txt
+++ b/testcases/kernel/controllers/cpuacct/cpuacct_testplan.txt
@@ -1,32 +1,32 @@
-The CPU Accounting controller testplan includes a complete set of 
+The CPU Accounting controller testplan includes a complete set of
 testcases that test the CPU Accounting controller in different scenarios.
 
 
 TESTCASE DESCRIPTION:
 ====================
 
-These tests will check if the cpu usage of the child cgroup is 
-getting reflected in the parent cgroup.Reports PASS if the cpu 
+These tests will check if the cpu usage of the child cgroup is
+getting reflected in the parent cgroup.Reports PASS if the cpu
 usage is same for both the cgroups and FAIL if they differ.
 
-In these tests cpu usage of the tasks running in a group is read in 
+In these tests cpu usage of the tasks running in a group is read in
 terms of 3 different stat values.
 
-'cpuacct.usage'  gives the current cpu usage of the task running 
+'cpuacct.usage'  gives the current cpu usage of the task running
 in the group.
 'cpuacct.usage_percpu' gives the cpu usage of each cpu.
-'cpuacct.stat' gives the user and system cpu usage of the task running 
+'cpuacct.stat' gives the user and system cpu usage of the task running
 in the group.
 
 Test01: STAT CHECK TEST
 -------------------------------
-This test is run by running a task in the child group and reading it's stat 
+This test is run by running a task in the child group and reading it's stat
 values and comparing them with the parent group's stat values.
 
 Test02: STAT CHECK TEST
 -------------------------------
-This test is run by running num_online_cpus number of tasks in 2 child groups, 
-adding the stat values from the child groups and comparing them with the 
+This test is run by running num_online_cpus number of tasks in 2 child groups,
+adding the stat values from the child groups and comparing them with the
 parent's stat values.
 
 The values reported for user and system time in cpuacct.stat is not very
@@ -39,6 +39,6 @@
 is greater than 2T, we mark the test as failed.
 
 
-For any other information please refer to 
+For any other information please refer to
 Documentation/controllers/cpuacct.txt in kernel documentation.
 
diff --git a/testcases/kernel/controllers/cpuctl_fj/README b/testcases/kernel/controllers/cpuctl_fj/README
index 8062d62..2af7b58 100644
--- a/testcases/kernel/controllers/cpuctl_fj/README
+++ b/testcases/kernel/controllers/cpuctl_fj/README
@@ -3,11 +3,11 @@
 
 The directory cpuctl_fj contains the tests related to the cpu controller.
 
-Cpu controller is a mechanism for assigning cpu resource (in percent) to 
+Cpu controller is a mechanism for assigning cpu resource (in percent) to
 a set of tasks.
 
-There are total 22 testcases that have been added. These testcases 
-contain the basis operation test and part functionality test of cpu 
+There are total 22 testcases that have been added. These testcases
+contain the basis operation test and part functionality test of cpu
 controller.
 
 NOTE: the test can be run by root only.
@@ -29,7 +29,7 @@
 cpuctl_fj_simple_echo.c
 --------------------
 The command "echo" can't return the errno. So we write this program to
-instead of "echo". 
+instead of "echo".
 
 Makefile
 --------------------
diff --git a/testcases/kernel/controllers/cpuset/cpuset_base_ops_test/cpuset_base_ops_testset.sh b/testcases/kernel/controllers/cpuset/cpuset_base_ops_test/cpuset_base_ops_testset.sh
index 1b84996..837244b 100755
--- a/testcases/kernel/controllers/cpuset/cpuset_base_ops_test/cpuset_base_ops_testset.sh
+++ b/testcases/kernel/controllers/cpuset/cpuset_base_ops_test/cpuset_base_ops_testset.sh
@@ -54,11 +54,11 @@
 		return 1
 	}
 	[ "$write_string" = NULL ] && write_string=" "
-	
+
 	/bin/echo "$write_string" > "$write_file" 2> $CPUSET_TMP/stderr
 	ret=$?
 	write_result="$(cat "$write_file")"
-	
+
 	case "$expect_string" in
 	EMPTY)
 		test -z "$write_result" -a $ret = 0
diff --git a/testcases/kernel/controllers/cpuset/cpuset_exclusive_test/cpuset_exclusive_test.sh b/testcases/kernel/controllers/cpuset/cpuset_exclusive_test/cpuset_exclusive_test.sh
index a80462b..56498f6 100755
--- a/testcases/kernel/controllers/cpuset/cpuset_exclusive_test/cpuset_exclusive_test.sh
+++ b/testcases/kernel/controllers/cpuset/cpuset_exclusive_test/cpuset_exclusive_test.sh
@@ -37,7 +37,7 @@
 {
 	echo 0 > "$CPUSET/father/cpu_exclusive" || return 1
 	echo 0 > "$CPUSET/father/child/cpu_exclusive" || return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
 }
 
@@ -45,7 +45,7 @@
 {
 	echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
 	echo 0 > "$CPUSET/father/child/cpu_exclusive" || return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
 }
 
@@ -53,7 +53,7 @@
 {
 	echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
 	echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
-	
+
 	test 1 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
 }
 
@@ -61,7 +61,7 @@
 {
 	echo 0 > "$CPUSET/father/cpu_exclusive" || return 1
 	echo 1 > "$CPUSET/father/child/cpu_exclusive" 2> /dev/null && return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/cpu_exclusive") || return 1
 }
 
@@ -70,7 +70,7 @@
 	echo 1 > "$CPUSET/father/cpu_exclusive" || return 1
 	echo 1 > "$CPUSET/father/child/cpu_exclusive" || return 1
 	echo 0 > "$CPUSET/father/cpu_exclusive" 2> /dev/null && return 1
-	
+
 	test 1 = $(cat "$CPUSET/father/cpu_exclusive") || return 1
 }
 
@@ -82,7 +82,7 @@
 	echo 0 > "$CPUSET/father/child/cpus" || return 1
 	mkdir "$CPUSET/father/other" || return 1
 	echo 1 > "$CPUSET/father/other/cpus" || return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/cpus") || return 1
 	test 1 = $(cat "$CPUSET/father/other/cpus") || return 1
 }
@@ -95,7 +95,7 @@
 	echo 0 > "$CPUSET/father/child/cpus" || return 1
 	mkdir "$CPUSET/father/other" || return 1
 	echo "0-1" > "$CPUSET/father/other/cpus" 2> /dev/null && return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/cpus") || return 1
 	test -z $(cat "$CPUSET/father/other/cpus") || return 1
 }
@@ -130,7 +130,7 @@
 {
 	echo 0 > "$CPUSET/father/mem_exclusive" || return 1
 	echo 0 > "$CPUSET/father/child/mem_exclusive" || return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
 }
 
@@ -138,7 +138,7 @@
 {
 	echo 1 > "$CPUSET/father/mem_exclusive" || return 1
 	echo 0 > "$CPUSET/father/child/mem_exclusive" || return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
 }
 
@@ -146,7 +146,7 @@
 {
 	echo 1 > "$CPUSET/father/mem_exclusive" || return 1
 	echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
-	
+
 	test 1 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
 }
 
@@ -154,7 +154,7 @@
 {
 	echo 0 > "$CPUSET/father/mem_exclusive" || return 1
 	echo 1 > "$CPUSET/father/child/mem_exclusive" 2> /dev/null && return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/mem_exclusive") || return 1
 }
 
@@ -163,7 +163,7 @@
 	echo 1 > "$CPUSET/father/mem_exclusive" || return 1
 	echo 1 > "$CPUSET/father/child/mem_exclusive" || return 1
 	echo 0 > "$CPUSET/father/mem_exclusive" 2> /dev/null && return 1
-	
+
 	test 1 = $(cat "$CPUSET/father/mem_exclusive") || return 1
 }
 
@@ -175,7 +175,7 @@
 	echo 0 > "$CPUSET/father/child/mems" || return 1
 	mkdir "$CPUSET/father/other" || return 1
 	echo 1 > "$CPUSET/father/other/mems" || return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/mems") || return 1
 	test 1 = $(cat "$CPUSET/father/other/mems") || return 1
 }
@@ -188,7 +188,7 @@
 	echo 0 > "$CPUSET/father/child/mems" || return 1
 	mkdir "$CPUSET/father/other" || return 1
 	echo "0-1" > "$CPUSET/father/other/mems" 2> /dev/null && return 1
-	
+
 	test 0 = $(cat "$CPUSET/father/child/mems") || return 1
 	test -z $(cat "$CPUSET/father/other/mems") || return 1
 }
diff --git a/testcases/kernel/controllers/cpuset/cpuset_hierarchy_test/cpuset_hierarchy_test.sh b/testcases/kernel/controllers/cpuset/cpuset_hierarchy_test/cpuset_hierarchy_test.sh
index f0f50b2..75b1a2b 100755
--- a/testcases/kernel/controllers/cpuset/cpuset_hierarchy_test/cpuset_hierarchy_test.sh
+++ b/testcases/kernel/controllers/cpuset/cpuset_hierarchy_test/cpuset_hierarchy_test.sh
@@ -135,7 +135,7 @@
 	test "0-1" = "$(cat "$CPUSET/father/cpus")" || return 1
 	test 0 = "$(cat "$CPUSET/father/child/cpus")" || return 1
 }
-	
+
 test9()
 {
 	echo "$cpus_all" > "$CPUSET/father/cpus" || return 1
@@ -337,7 +337,7 @@
 	test "0-1" = "$(cat "$CPUSET/father/mems")" || return 1
 	test 0 = "$(cat "$CPUSET/father/child/mems")" || return 1
 }
-	
+
 test25()
 {
 	echo "$mems_all" > "$CPUSET/father/mems" || return 1
diff --git a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh
index 0ea5af9..1274485 100755
--- a/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh
+++ b/testcases/kernel/controllers/cpuset/cpuset_hotplug_test/cpuset_hotplug_test.sh
@@ -87,7 +87,7 @@
 	fi
 
 	root_cpus="`cat $CPUSET/cpus`"
-	
+
 	task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`"
 	task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`"
 
@@ -156,7 +156,7 @@
 	fi
 
 	cpus="`cat $path/cpus`"
-	
+
 	task_cpus="`cat /proc/$tst_pid/status | grep Cpus_allowed_list`"
 	task_cpus="`echo $task_cpus | sed -e 's/Cpus_allowed_list: //'`"
 
diff --git a/testcases/kernel/controllers/cpuset/cpuset_inherit_test/cpuset_inherit_testset.sh b/testcases/kernel/controllers/cpuset/cpuset_inherit_test/cpuset_inherit_testset.sh
index ed5dcb4..5a7f943 100755
--- a/testcases/kernel/controllers/cpuset/cpuset_inherit_test/cpuset_inherit_testset.sh
+++ b/testcases/kernel/controllers/cpuset/cpuset_inherit_test/cpuset_inherit_testset.sh
@@ -58,7 +58,7 @@
 	mkdir $(dirname $write_file)/2 2> $CPUSET_TMP/stderr
 	return_result=$?
 	write_result="$(cat "$(dirname $write_file)/2/$(basename $write_file)")"
-	
+
 	case "$expect_string" in
 	EMPTY)
 		test -z "$write_result" -a $return_result = 0
diff --git a/testcases/kernel/controllers/cpuset/cpuset_lib/cpuset.h b/testcases/kernel/controllers/cpuset/cpuset_lib/cpuset.h
index a6ea477..e00301f 100644
--- a/testcases/kernel/controllers/cpuset/cpuset_lib/cpuset.h
+++ b/testcases/kernel/controllers/cpuset/cpuset_lib/cpuset.h
@@ -29,7 +29,7 @@
  *
  * cpuset_pin(int relcpu) - Pin current task to one CPU in its cpuset.
  * cpuset_size() - How many CPUs are in current tasks cpuset?
- * cpuset_where() - Most recent CPU in current tasks cpuset that task ran on. 
+ * cpuset_where() - Most recent CPU in current tasks cpuset that task ran on.
  * cpuset_unpin() - Undo cpuset_pin(), let task run anywhere in its cpuset.
  */
 
diff --git a/testcases/kernel/controllers/cpuset/cpuset_memory_test/cpuset_memory_testset.sh b/testcases/kernel/controllers/cpuset/cpuset_memory_test/cpuset_memory_testset.sh
index 70433da..a93112c 100755
--- a/testcases/kernel/controllers/cpuset/cpuset_memory_test/cpuset_memory_testset.sh
+++ b/testcases/kernel/controllers/cpuset/cpuset_memory_test/cpuset_memory_testset.sh
@@ -179,7 +179,7 @@
 
 	save_nr_hugepages=$(cat /proc/sys/vm/nr_hugepages)
 	echo 2 > /proc/sys/vm/nr_hugepages
-	
+
 	./cpuset_memory_test --mmap-file --hugepage -s $HUGEPAGESIZE >"$MEMORY_RESULT" &
 	simple_getresult $! "$CPUSET/0"
 
@@ -218,7 +218,7 @@
 
 	save_nr_hugepages=$(cat /proc/sys/vm/nr_hugepages)
 	echo 2 > /proc/sys/vm/nr_hugepages
-	
+
 	./cpuset_memory_test --shm --hugepage -s $HUGEPAGESIZE --key=7 >"$MEMORY_RESULT" &
 	simple_getresult $! "$CPUSET/0"
 
@@ -382,7 +382,7 @@
 	sleep 1
 	echo $1 > "$2/tasks"
 	/bin/kill -s SIGUSR1 $1
-	
+
 	echo 0 > "$2/mems" || return 1
 	sleep 1
 	/bin/kill -s SIGUSR1 $1
@@ -410,7 +410,7 @@
 		read node0
 		read node1
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "1" ]; then
 		tst_resm TFAIL "allocate memory on the Node#$node0(Expect: Node#1)."
 		return 1
@@ -447,7 +447,7 @@
 		read node1
 		read node2
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "1" ]; then
 		tst_resm TFAIL "allocate memory on the Node#$node0(Expect: Node#1)."
 		return 1
@@ -502,7 +502,7 @@
 
 		echo $testpid > "$CPUSET/1/tasks"
 		/bin/kill -s SIGUSR1 $testpid
-		
+
 		echo $testtid > "$CPUSET/2/tasks"
 		sleep 1
 		/bin/kill -s SIGUSR2 $testpid
@@ -515,7 +515,7 @@
 		read node0
 		read node1
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "0" ]; then
 		tst_resm TFAIL "Thread1 allocated memory on the Node#$node0(Expect: Node#0)."
 		return 1
@@ -558,7 +558,7 @@
 
 		echo $testpid > "$CPUSET/1/tasks"
 		/bin/kill -s SIGUSR1 $testpid
-		
+
 		echo $testtid > "$CPUSET/2/tasks"
 		sleep 1
 		/bin/kill -s SIGUSR2 $testpid
@@ -571,7 +571,7 @@
 		read node0
 		read node1
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "0" ]; then
 		tst_resm TFAIL "Thread1 allocated memory on the Node#$node0(Expect: Node#0)."
 		return 1
@@ -614,7 +614,7 @@
 
 		echo $testpid > "$CPUSET/1/tasks"
 		/bin/kill -s SIGUSR1 $testpid
-		
+
 		echo $testtid > "$CPUSET/2/tasks"
 		sleep 1
 		echo 1 > "$CPUSET/1/memory_migrate"
@@ -634,7 +634,7 @@
 		read node1
 		read node2
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "0" ]; then
 		tst_resm TFAIL "Thread1 allocated memory on the Node#$node0(Expect: Node#0) first."
 		return 1
@@ -680,7 +680,7 @@
 
 		echo $testpid > "$CPUSET/1/tasks"
 		/bin/kill -s SIGUSR1 $testpid
-		
+
 		echo $testtid > "$CPUSET/2/tasks"
 		sleep 1
 		echo 0 > "$CPUSET/1/mems"
@@ -705,7 +705,7 @@
 		read node2
 		read node3
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "1" ]; then
 		tst_resm TFAIL "Thread1 allocated memory on the Node#$node0(Expect: Node#1) first."
 		return 1
@@ -762,7 +762,7 @@
 
 		echo $testpid > "$CPUSET/1/tasks"
 		/bin/kill -s SIGUSR1 $testpid
-		
+
 		echo $testtid > "$CPUSET/2/tasks"
 		sleep 1
 		echo 0 > "$CPUSET/1/mems"
@@ -787,7 +787,7 @@
 		read node2
 		read node3
 	} < "$MEMORY_RESULT"
-	
+
 	if [ "$node0" != "1" ]; then
 		tst_resm TFAIL "Thread1 allocated memory on the Node#$node0(Expect: Node#1) first."
 		return 1
diff --git a/testcases/kernel/controllers/memcg/README b/testcases/kernel/controllers/memcg/README
index ea4df68..efd1db8 100644
--- a/testcases/kernel/controllers/memcg/README
+++ b/testcases/kernel/controllers/memcg/README
@@ -21,8 +21,8 @@
 
 control/mem_process.c
 --------------------
-The program allocates memory specified using the '-m' option when 'm' is received 
-through the named pipe /tmp/status_pipe and frees it on receiving 'm' again. 
+The program allocates memory specified using the '-m' option when 'm' is received
+through the named pipe /tmp/status_pipe and frees it on receiving 'm' again.
 It exits on receiving 'x'. It gets the page size on specifying the '-p' option.
 
 functional/memcgroup_function_test.sh
@@ -44,7 +44,7 @@
 
 stress/memcgroup_process_stress.c
 --------------------
-The program allocates some memory in a specified time period when received SIGUSR. 
+The program allocates some memory in a specified time period when received SIGUSR.
 
 regression/memcg_regression_test.sh
 --------------------
diff --git a/testcases/kernel/controllers/memcg/control/memcg_control_test.sh b/testcases/kernel/controllers/memcg/control/memcg_control_test.sh
index d926041..c7b72c3 100644
--- a/testcases/kernel/controllers/memcg/control/memcg_control_test.sh
+++ b/testcases/kernel/controllers/memcg/control/memcg_control_test.sh
@@ -57,7 +57,7 @@
 	( cd $TMP && mem_process -m $PROC_MEM & )
 	sleep 1
 	echo $! > tasks
- 
+
 	#Instruct the test process to start acquiring memory
 	echo m > $STATUS_PIPE
 	sleep 5
@@ -71,7 +71,7 @@
 		: $((KILLED_CNT += 1))
 	fi
 }
-    
+
 # Validate the memory usage limit imposed by the hierarchically topmost group
 testcase_1()
 {
diff --git a/testcases/kernel/device-drivers/README b/testcases/kernel/device-drivers/README
index 057f6cd..d2e52dc 100644
--- a/testcases/kernel/device-drivers/README
+++ b/testcases/kernel/device-drivers/README
@@ -1,9 +1,9 @@
 Device Driver Testcases:
 
 These tests should always be run individually and never concurrently.  Since
-these test will manipulate devices and may leave them in an unstable state, 
-these tests should not be run when other important system tasks are being 
-performed.  These tests shouldn't be included in any system wide test scripts 
+these test will manipulate devices and may leave them in an unstable state,
+these tests should not be run when other important system tasks are being
+performed.  These tests shouldn't be included in any system wide test scripts
 as they may corrupt the test data from those tests.
 
 To build and execute these tests:
diff --git a/testcases/kernel/device-drivers/acpi/LtpAcpi.h b/testcases/kernel/device-drivers/acpi/LtpAcpi.h
index ef4c950..0588e52 100644
--- a/testcases/kernel/device-drivers/acpi/LtpAcpi.h
+++ b/testcases/kernel/device-drivers/acpi/LtpAcpi.h
@@ -73,15 +73,15 @@
 #define DEV_PATH                            "/dev"
 #define LTP_ACPI_DIR_NAME                   ""
 #define LTP_ACPI_DEV_NAME                   "LTP"
-#define LTP_ACPI_DEV_NODE_PATH              DEV_PATH "/" 
+#define LTP_ACPI_DEV_NODE_PATH              DEV_PATH "/"
 #define LTP_ACPI_DEVICE_NAME                DEV_PATH "/"  LTP_ACPI_DEV_NAME
-#define MINOR_SHIFT_BITS 3 
+#define MINOR_SHIFT_BITS 3
 #define MAX_PARTITIONS 8                    /* partition 0 + 7 more possible due to 3 bit partition number field */
 #define	MAX_NUM_DISKS 3                   /* number of real devices */
 
 #define MPDEV_FLAG_CLEAR 0
 #define MPDEV_FLAG_SET   1
-                       
+
 typedef struct _ltpdev_cmd {
     u_int32_t     cmd;           // input - 0==recover, 1==fail
     u_int32_t     status;        // ouput - 0==success
@@ -89,7 +89,7 @@
 
 typedef enum ltpdev_ioctl_cmds_s {
 	/* version commands */
-	LTP_IOCTL_NUMBER = 0x5500	
+	LTP_IOCTL_NUMBER = 0x5500
 } ltpdev_ioctl_cmds_t;
 
 // define the ioctl cmds
diff --git a/testcases/kernel/device-drivers/acpi/README b/testcases/kernel/device-drivers/acpi/README
index 9137e64..eaf5aeb 100644
--- a/testcases/kernel/device-drivers/acpi/README
+++ b/testcases/kernel/device-drivers/acpi/README
@@ -1,8 +1,8 @@
 - ACPI testcase -
         ACPI must be enabled in the kernel. Since ACPI will control devices and possibly put them to sleep,
         it's not recommended that any other tests be run concurrently with these tests since you may
-        get unexpected results. 
-        These tests are currently ONLY supported on the 2.5 kernels. 2.4 kernels probably won't even build much 
+        get unexpected results.
+        These tests are currently ONLY supported on the 2.5 kernels. 2.4 kernels probably won't even build much
         less run.
         run ltpacpi.sh -r run  to execute the tests
 
diff --git a/testcases/kernel/device-drivers/acpi/ltpacpi.sh b/testcases/kernel/device-drivers/acpi/ltpacpi.sh
index 97ce03c..73e26e5 100755
--- a/testcases/kernel/device-drivers/acpi/ltpacpi.sh
+++ b/testcases/kernel/device-drivers/acpi/ltpacpi.sh
@@ -13,18 +13,18 @@
 tmpdir=$TMPBASE
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
-	usage: ${0##*/} [ -r run ] 
-                
+	usage: ${0##*/} [ -r run ]
+
 
 	example: ${0##*/} -r run
 
         ACPI must be enabled in the kernel. Since ACPI will control devices and possibly put them to sleep,
         it's not recommended that any other tests be run concurrently with these tests since you may
-        get unexpected results. 
-        These tests are currently ONLY supported on the 2.5 kernels. 2.4 kernels probably won't even build much 
+        get unexpected results.
+        These tests are currently ONLY supported on the 2.5 kernels. 2.4 kernels probably won't even build much
         less run.
 
 	END
@@ -34,7 +34,7 @@
 while getopts :r: arg
 do      case $arg in
 		          r)	   run=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
@@ -51,4 +51,4 @@
 lsmod
 ${LTPROOT}/LtpAcpiMain
 rmmod LtpAcpiCmds
-  
+
diff --git a/testcases/kernel/device-drivers/agp/kernel_space/str_agp.h b/testcases/kernel/device-drivers/agp/kernel_space/str_agp.h
index 36c0174..fa5df86 100644
--- a/testcases/kernel/device-drivers/agp/kernel_space/str_agp.h
+++ b/testcases/kernel/device-drivers/agp/kernel_space/str_agp.h
@@ -17,15 +17,15 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
-/* 
- * Remember that you want to seperate your header 
- * files between what is needed in kernel space 
- * only, and what will also be needed by a user 
- * space program that is using this module. For 
+/*
+ * Remember that you want to seperate your header
+ * files between what is needed in kernel space
+ * only, and what will also be needed by a user
+ * space program that is using this module. For
  * that reason keep all structures that will need
  * kernel space pointers in a seperate header file
  * from where ioctl flags aer kept
- * 
+ *
  * author: Kai Zhao
  * date:   08/25/2003
  *
@@ -44,7 +44,7 @@
 
 
 
-#include <asm/agp.h>	// for flush_agp_cache() 
+#include <asm/agp.h>	// for flush_agp_cache()
 
 #define PFX "agpgart: "
 
@@ -61,9 +61,9 @@
 struct gatt_mask {
 	unsigned long mask;
 	u32 type;
-	// totally device specific, for integrated chipsets that 
+	// totally device specific, for integrated chipsets that
 	// might have different types of memory masks.  For other
-	// devices this will probably be ignored 
+	// devices this will probably be ignored
 };
 
 struct aper_size_info_8 {
@@ -143,7 +143,7 @@
 	unsigned long *key_list;
 	atomic_t current_memory_agp;
 	atomic_t agp_in_use;
-	int max_memory_agp;	// in number of pages 
+	int max_memory_agp;	// in number of pages
 	int aperture_size_idx;
 	int capndx;
 	char major_version;
@@ -176,7 +176,7 @@
 
 #define PGE_EMPTY(b, p)	(!(p) || (p) == (unsigned long) (b)->scratch_page)
 
-// intel register 
+// intel register
 #define INTEL_APBASE	0x10
 #define INTEL_APSIZE	0xb4
 #define INTEL_ATTBASE	0xb8
@@ -184,7 +184,7 @@
 #define INTEL_NBXCFG	0x50
 #define INTEL_ERRSTS	0x91
 
-// Intel 460GX Registers 
+// Intel 460GX Registers
 #define INTEL_I460_APBASE		0x10
 #define INTEL_I460_BAPBASE		0x98
 #define INTEL_I460_GXBCTL		0xa0
@@ -193,7 +193,7 @@
 #define INTEL_I460_GATT_VALID		(1UL << 24)
 #define INTEL_I460_GATT_COHERENT	(1UL << 25)
 
-// intel i830 registers 
+// intel i830 registers
 #define I830_GMCH_CTRL			0x52
 #define I830_GMCH_ENABLED		0x4
 #define I830_GMCH_MEM_MASK		0x1
@@ -209,10 +209,10 @@
 #define I830_RDRAM_ND(x)		(((x) & 0x20) >> 5)
 #define I830_RDRAM_DDT(x)		(((x) & 0x18) >> 3)
 
-// This one is for I830MP w. an external graphic card 
+// This one is for I830MP w. an external graphic card
 #define INTEL_I830_ERRSTS	0x92
 
-// Intel 855GM/852GM registers 
+// Intel 855GM/852GM registers
 #define I855_GMCH_GMS_STOLEN_0M		0x0
 #define I855_GMCH_GMS_STOLEN_1M		(0x1 << 4)
 #define I855_GMCH_GMS_STOLEN_4M		(0x2 << 4)
@@ -227,31 +227,31 @@
 #define I852_GME			0x2
 #define I852_GM				0x5
 
-// intel 815 register 
+// intel 815 register
 #define INTEL_815_APCONT	0x51
 #define INTEL_815_ATTBASE_MASK	~0x1FFFFFFF
 
-// intel i820 registers 
+// intel i820 registers
 #define INTEL_I820_RDCR		0x51
 #define INTEL_I820_ERRSTS	0xc8
 
-// intel i840 registers 
+// intel i840 registers
 #define INTEL_I840_MCHCFG	0x50
 #define INTEL_I840_ERRSTS	0xc8
- 
-// intel i845 registers 
+
+// intel i845 registers
 #define INTEL_I845_AGPM		0x51
 #define INTEL_I845_ERRSTS	0xc8
 
-// intel i850 registers 
+// intel i850 registers
 #define INTEL_I850_MCHCFG	0x50
 #define INTEL_I850_ERRSTS	0xc8
 
-// intel i860 registers 
+// intel i860 registers
 #define INTEL_I860_MCHCFG	0x50
 #define INTEL_I860_ERRSTS	0xc8
 
-// intel i810 registers 
+// intel i810 registers
 #define I810_GMADDR		0x10
 #define I810_MMADDR		0x14
 #define I810_PTE_BASE		0x10000
@@ -269,7 +269,7 @@
 #define I810_DRAM_ROW_0		0x00000001
 #define I810_DRAM_ROW_0_SDRAM	0x00000001
 
-// Intel 7505 registers 
+// Intel 7505 registers
 #define INTEL_I7505_NAPBASELO	0x10
 #define INTEL_I7505_APSIZE	0x74
 #define INTEL_I7505_NCAPID	0x60
@@ -279,35 +279,35 @@
 #define INTEL_I7505_AGPCTRL	0x70
 #define INTEL_I7505_MCHCFG	0x50
 
-// VIA register 
+// VIA register
 #define VIA_APBASE	0x10
 #define VIA_GARTCTRL	0x80
 #define VIA_APSIZE	0x84
 #define VIA_ATTBASE	0x88
 
-// VIA KT400 
+// VIA KT400
 #define VIA_AGP3_GARTCTRL	0x90
 #define VIA_AGP3_APSIZE	0x94
 #define VIA_AGP3_ATTBASE	0x98
 #define VIA_AGPSEL	0xfd
 
-// SiS registers 
+// SiS registers
 #define SIS_APBASE	0x10
 #define SIS_ATTBASE	0x90
 #define SIS_APSIZE	0x94
 #define SIS_TLBCNTRL	0x97
 #define SIS_TLBFLUSH	0x98
 
-// AMD registers 
+// AMD registers
 #define AMD_APBASE	0x10
 #define AMD_MMBASE	0x14
 #define AMD_APSIZE	0xac
 #define AMD_MODECNTL	0xb0
 #define AMD_MODECNTL2	0xb2
-#define AMD_GARTENABLE	0x02	// In mmio region (16-bit register) 
-#define AMD_ATTBASE	0x04	// In mmio region (32-bit register) 
-#define AMD_TLBFLUSH	0x0c	// In mmio region (32-bit register) 
-#define AMD_CACHEENTRY	0x10	// In mmio region (32-bit register) 
+#define AMD_GARTENABLE	0x02	// In mmio region (16-bit register)
+#define AMD_ATTBASE	0x04	// In mmio region (32-bit register)
+#define AMD_TLBFLUSH	0x0c	// In mmio region (32-bit register)
+#define AMD_CACHEENTRY	0x10	// In mmio region (32-bit register)
 
 #define AMD_8151_APSIZE	0xb4
 #define AMD_8151_GARTBLOCK	0xb8
@@ -325,7 +325,7 @@
 #define AMD_8151_GTLBEN	1<<7
 #define AMD_8151_APEREN	1<<8
 
-// ALi registers 
+// ALi registers
 #define ALI_APBASE			0x10
 #define ALI_AGPCTRL			0xb8
 #define ALI_ATTBASE			0xbc
@@ -335,7 +335,7 @@
 #define ALI_CACHE_FLUSH_ADDR_MASK	0xFFFFF000
 #define ALI_CACHE_FLUSH_EN		0x100
 
-// Serverworks Registers 
+// Serverworks Registers
 #define SVWRKS_APSIZE		0x10
 #define SVWRKS_SIZE_MASK	0xfe000000
 
@@ -343,18 +343,18 @@
 #define SVWRKS_CACHING		0x4b
 #define SVWRKS_FEATURE		0x68
 
-// func 1 registers 
+// func 1 registers
 #define SVWRKS_AGP_ENABLE	0x60
 #define SVWRKS_COMMAND		0x04
 
-// Memory mapped registers 
+// Memory mapped registers
 #define SVWRKS_GART_CACHE	0x02
 #define SVWRKS_GATTBASE		0x04
 #define SVWRKS_TLBFLUSH		0x10
 #define SVWRKS_POSTFLUSH	0x14
 #define SVWRKS_DIRFLUSH		0x0c
 
-// HP ZX1 SBA registers 
+// HP ZX1 SBA registers
 #define HP_ZX1_CTRL		0x200
 #define HP_ZX1_IBASE		0x300
 #define HP_ZX1_IMASK		0x308
@@ -364,23 +364,23 @@
 #define HP_ZX1_CACHE_FLUSH	0x428
 
 struct agp_device_ids {
-	unsigned short device_id; // first, to make table easier to read 
+	unsigned short device_id; // first, to make table easier to read
 	enum chipset_type chipset;
 	const char *chipset_name;
-	int (*chipset_setup) (struct pci_dev *pdev);	// used to override generic 
+	int (*chipset_setup) (struct pci_dev *pdev);	// used to override generic
 };
 
-// Driver registration 
+// Driver registration
 struct agp_bridge_data *agp_alloc_bridge(void);
 void agp_put_bridge(struct agp_bridge_data *bridge);
 int agp_add_bridge(struct agp_bridge_data *bridge);
 void agp_remove_bridge(struct agp_bridge_data *bridge);
 
-// Frontend routines. 
+// Frontend routines.
 int agp_frontend_initialize(void);
 void agp_frontend_cleanup(void);
 
-// Generic routines. 
+// Generic routines.
 void agp_generic_enable(u32 mode);
 int agp_generic_create_gatt_table(void);
 int agp_generic_free_gatt_table(void);
@@ -400,7 +400,7 @@
 void get_agp_version(struct agp_bridge_data *bridge);
 unsigned long agp_generic_mask_memory(unsigned long addr, int type);
 
-// Standard agp registers 
+// Standard agp registers
 #define AGPSTAT			0x4
 #define AGPCMD			0x8
 #define AGPNISTAT		0xc
diff --git a/testcases/kernel/device-drivers/agp/kernel_space/tagp.h b/testcases/kernel/device-drivers/agp/kernel_space/tagp.h
index 9a3cbf3..c3f3d7f 100644
--- a/testcases/kernel/device-drivers/agp/kernel_space/tagp.h
+++ b/testcases/kernel/device-drivers/agp/kernel_space/tagp.h
@@ -18,15 +18,15 @@
  */
 
 /*
- * In this header file keep all flags and other 
+ * In this header file keep all flags and other
  * structures that will be needed in both kernel
  * and user space. Specifically the ioctl flags
- * will go in here so that in user space a program 
+ * will go in here so that in user space a program
  * can specify flags for the ioctl call.
- * 
+ *
  * author: Kai Zhao
  * date:   08/25/2003
- * 
+ *
  */
 
 #define tagp_DRIVER_NAME	"ltp agp module"
@@ -37,8 +37,8 @@
 #define SET_MODULE_OWNER(dev) ((dev)->owner = THIS_MODULE)
 #endif
 
-/* put ioctl flags here, use the _IO macro which is 
- found in linux/ioctl.h, takes a letter, and an 
+/* put ioctl flags here, use the _IO macro which is
+ found in linux/ioctl.h, takes a letter, and an
  integer */
 
 #define TEST_PCI_FIND_DEV   			_IO(MAG_NUM, 1)
@@ -63,14 +63,14 @@
 #define TEST_GENERIC_MASK_MEMORY		_IO(MAG_NUM, 21)
 
 /* memory between the kernel and user space is
- seperated, so that if a structure is needed 
- to be passed between kernel and user space 
+ seperated, so that if a structure is needed
+ to be passed between kernel and user space
  a call must be made to copy_to_user or copy
- from user. Use this structure to streamline 
- that process. For example: A function that 
- writes to a disc takes in a ki_write_t 
- pointer from userspace. In the user space 
- program specify the length of the pointer as 
+ from user. Use this structure to streamline
+ that process. For example: A function that
+ writes to a disc takes in a ki_write_t
+ pointer from userspace. In the user space
+ program specify the length of the pointer as
  in_len, and in_data as the actual structure. */
 
 struct tagp_interface {
@@ -82,8 +82,8 @@
 };
 
 typedef struct tagp_interface tagp_interface_t;
- 
 
- 
+
+
 
 
diff --git a/testcases/kernel/device-drivers/agp/user_space/user_tagp.h b/testcases/kernel/device-drivers/agp/user_space/user_tagp.h
index 631092e..a4497af 100644
--- a/testcases/kernel/device-drivers/agp/user_space/user_tagp.h
+++ b/testcases/kernel/device-drivers/agp/user_space/user_tagp.h
@@ -21,7 +21,7 @@
 #ifndef USER_TAGP_H
 #define USER_TAGP_H
 
-#ifndef BUFFER_LEN 
+#ifndef BUFFER_LEN
 #define BUFFER_LEN 32
 #endif
 
diff --git a/testcases/kernel/device-drivers/base/tbase/tbase.h b/testcases/kernel/device-drivers/base/tbase/tbase.h
index 60a92f8..14df5c6 100644
--- a/testcases/kernel/device-drivers/base/tbase/tbase.h
+++ b/testcases/kernel/device-drivers/base/tbase/tbase.h
@@ -23,8 +23,8 @@
 #define DEVICE_NAME		"/dev/tbase"
 #define MAG_NUM			'k'
 
-/* put ioctl flags here, use the _IO macro which is 
- found in linux/ioctl.h, takes a letter, and an 
+/* put ioctl flags here, use the _IO macro which is
+ found in linux/ioctl.h, takes a letter, and an
  integer */
 
 #define TBASEMAJOR      253
@@ -56,7 +56,7 @@
 #define SYSDEV_CLS_REG		_IO(MAG_NUM, 25)
 #define SYSDEV_CLS_UNREG	_IO(MAG_NUM, 26)
 
-/* interface for passing structures between user 
+/* interface for passing structures between user
  space and kernel space easily */
 
 struct tmod_interface {
@@ -67,8 +67,8 @@
         caddr_t out_data;       // output data
 };
 typedef struct tmod_interface tmod_interface_t;
- 
 
- 
+
+
 
 
diff --git a/testcases/kernel/device-drivers/base/user_base/Makefile b/testcases/kernel/device-drivers/base/user_base/Makefile
index 5ea4e48..3c7dfb9 100644
--- a/testcases/kernel/device-drivers/base/user_base/Makefile
+++ b/testcases/kernel/device-drivers/base/user_base/Makefile
@@ -5,5 +5,5 @@
 test_base: $(OBJS)
 	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@
 
-clean: 
+clean:
 	rm -f $(OBJS) test_base
diff --git a/testcases/kernel/device-drivers/dev_sim_framework/README b/testcases/kernel/device-drivers/dev_sim_framework/README
index a8c2211..b5223aa 100644
--- a/testcases/kernel/device-drivers/dev_sim_framework/README
+++ b/testcases/kernel/device-drivers/dev_sim_framework/README
@@ -5,16 +5,16 @@
 to compile the program, and run ./test_mod in this case, or whatver
 you have named your program. However, the test kernel module must be
 loaded before the test case can work. If the module is not loaded you
-will recieve an error when attempting to open the module. 
+will recieve an error when attempting to open the module.
 
-Enter the kernel_space directory, and again type make to compile the 
-module. After successful compilation use the load script to load the 
-module into the system (./load_tmod.sh). The reason for the script 
-instead of just using insmod to load the module is to ensure that 
-there is a correct node in /dev, by parsing /proc/devices to get the 
-right major number. 
+Enter the kernel_space directory, and again type make to compile the
+module. After successful compilation use the load script to load the
+module into the system (./load_tmod.sh). The reason for the script
+instead of just using insmod to load the module is to ensure that
+there is a correct node in /dev, by parsing /proc/devices to get the
+right major number.
 
-Check that the module has been loaded by using the lsmod command. 
+Check that the module has been loaded by using the lsmod command.
 You should see ouput similar to this:
 
 ausag:~ # lsmod
@@ -31,57 +31,57 @@
 
 
 USER SPACE:
-Ive tried to abstract user space as much as possible so that if 
-a new test does not need any additional setup of parameters 
-before the ioctl call, ki_generic can be used by passing in 
-the file_descriptor and the ioctl flag corresponding to the 
-current test. 
+Ive tried to abstract user space as much as possible so that if
+a new test does not need any additional setup of parameters
+before the ioctl call, ki_generic can be used by passing in
+the file_descriptor and the ioctl flag corresponding to the
+current test.
 
-Examples have been provided for correct usage of passing in 
+Examples have been provided for correct usage of passing in
 structures to the ioctl call if they are needed for a given
 test. These are fuond at the bottom of tmod_ki.c file.
 
-If a test does call for a structure to be passed in to 
+If a test does call for a structure to be passed in to
 kernel space or a structure to be returned you will need to
-setup the tif pointer. Use the examples I just mentioned 
-and it should be easy. The ioctl call is setup so that it 
+setup the tif pointer. Use the examples I just mentioned
+and it should be easy. The ioctl call is setup so that it
 will check if the values passed in need a copy_from_user
-or a copy_to_user before moving on. The tif pointer 
+or a copy_to_user before moving on. The tif pointer
 allows the kernel space ioctl function to handle all
 calls in a similar function without depending on the test
-that is to be run, in regards to copy_from_user and 
+that is to be run, in regards to copy_from_user and
 copy_to_user.
 
 
 
 
 KERNEL SPACE:
-I strongly suggest that when creating a Makefile for your 
-test modules you use the one provided here, and just change 
-the name of the .o file. Little differences can throw a 
+I strongly suggest that when creating a Makefile for your
+test modules you use the one provided here, and just change
+the name of the .o file. Little differences can throw a
 compiler off even if you dont see a problem.
 
-The test functions and the ioctl call, as well as init and 
-exit functions are located in the tmod.c file. Most of it 
-should be streamlined so that all you need to do to add a 
+The test functions and the ioctl call, as well as init and
+exit functions are located in the tmod.c file. Most of it
+should be streamlined so that all you need to do to add a
 new test function is add an ioctl flag in tmod.h, a function
-prototype, a new case in the ioctl switch, and the actual 
+prototype, a new case in the ioctl switch, and the actual
 function itself.
 
 Two header files are needed in kernel space so that we may
 seperate what can be used in user space programs from
-what can only be used in kernel space. I put my #defines 
-and ioctl flags in tmod.h, along with the tif structure. 
-This is because all of these will need to be used by both 
-the user space program as well as the kernel module. 
+what can only be used in kernel space. I put my #defines
+and ioctl flags in tmod.h, along with the tif structure.
+This is because all of these will need to be used by both
+the user space program as well as the kernel module.
 
-Any extern definitions from the kernel or structures that 
-will have pointers in them that will differ in user space, 
-should go in another header file. I used str_mod.h for this, 
+Any extern definitions from the kernel or structures that
+will have pointers in them that will differ in user space,
+should go in another header file. I used str_mod.h for this,
 and for example in my pci testcase, I need a struct pci_dev *
-for most of my tests, along with several other pointers. 
-This structure will allow you to hold the pointers from one 
-test to another without having to use copy_to_user to 
+for most of my tests, along with several other pointers.
+This structure will allow you to hold the pointers from one
+test to another without having to use copy_to_user to
 return the pointers to user space program.
 
 
@@ -89,11 +89,11 @@
 
 
 
-On naming: 
-For this example I just called everything tmod (short for test_mod), 
+On naming:
+For this example I just called everything tmod (short for test_mod),
 so if you are using these files as a base for your testcases, make
-sure that you change tmod and other such inferences, so that it 
-will be easier to tell in the kernel which module is performing 
+sure that you change tmod and other such inferences, so that it
+will be easier to tell in the kernel which module is performing
 which action.
 
 
@@ -103,15 +103,15 @@
 
 Hope this helps. Send me an email if you have any problems
 Thanks and gigem,
-Sean Ruyle 
+Sean Ruyle
 
 srruyle@us.ibm.com
- 
 
 
 
 
- 
 
 
-  
+
+
+
diff --git a/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/str_mod.h b/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/str_mod.h
index a2e3dcb..955a381 100644
--- a/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/str_mod.h
+++ b/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/str_mod.h
@@ -17,14 +17,14 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
 
- * Remember that you want to seperate your header 
- * files between what is needed in kernel space 
- * only, and what will also be needed by a user 
- * space program that is using this module. For 
+ * Remember that you want to seperate your header
+ * files between what is needed in kernel space
+ * only, and what will also be needed by a user
+ * space program that is using this module. For
  * that reason keep all structures that will need
  * kernel space pointers in a seperate header file
  * from where ioctl flags aer kept
- * 
+ *
  * author: Sean Ruyle
  * date:   06/11/2003
  *
diff --git a/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/tmod.h b/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/tmod.h
index aad61ba..1870398 100644
--- a/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/tmod.h
+++ b/testcases/kernel/device-drivers/dev_sim_framework/kernel_space/tmod.h
@@ -17,15 +17,15 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
 
- * In this header file keep all flags and other 
+ * In this header file keep all flags and other
  * structures that will be needed in both kernel
  * and user space. Specifically the ioctl flags
- * will go in here so that in user space a program 
+ * will go in here so that in user space a program
  * can specify flags for the ioctl call.
- * 
+ *
  * author: Sean Ruyle
  * date:   06/11/2003
- * 
+ *
  */
 
 #define TMOD_DRIVER_NAME	"ltp example module"
@@ -36,22 +36,22 @@
 #define SET_MODULE_OWNER(dev) ((dev)->owner = THIS_MODULE)
 #endif
 
-/* put ioctl flags here, use the _IO macro which is 
- found in linux/ioctl.h, takes a letter, and an 
+/* put ioctl flags here, use the _IO macro which is
+ found in linux/ioctl.h, takes a letter, and an
  integer */
 
 #define LTP_OPTION1		_IO(MAG_NUM, 1)
 #define LTP_OTHER		_IO(MAG_NUM, 2)
 
 /* memory between the kernel and user space is
- seperated, so that if a structure is needed 
- to be passed between kernel and user space 
+ seperated, so that if a structure is needed
+ to be passed between kernel and user space
  a call must be made to copy_to_user or copy
- from user. Use this structure to streamline 
- that process. For example: A function that 
- writes to a disc takes in a ki_write_t 
- pointer from userspace. In the user space 
- program specify the length of the pointer as 
+ from user. Use this structure to streamline
+ that process. For example: A function that
+ writes to a disc takes in a ki_write_t
+ pointer from userspace. In the user space
+ program specify the length of the pointer as
  in_len, and in_data as the actual structure. */
 
 struct tmod_interface {
@@ -62,8 +62,8 @@
         caddr_t out_data;       // output data
 };
 typedef struct tmod_interface tmod_interface_t;
- 
 
- 
+
+
 
 
diff --git a/testcases/kernel/device-drivers/drm/kernel_space/Makefile b/testcases/kernel/device-drivers/drm/kernel_space/Makefile
index a6144da..11e54d9 100644
--- a/testcases/kernel/device-drivers/drm/kernel_space/Makefile
+++ b/testcases/kernel/device-drivers/drm/kernel_space/Makefile
@@ -4,14 +4,14 @@
 CFLAGS := $(CFLAGS) -Wall
 ifneq ($(KERNELRELEASE),)
 CFLAGS += -Idrivers/char/drm
-obj-m	:= tdrm.o 
+obj-m	:= tdrm.o
 
 else
 KDIR	:= /lib/modules/$(shell uname -r)/build
 PWD	:= $(shell pwd)
 
 default:
-	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD)  modules 
+	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD)  modules
 endif
 
 clean:
diff --git a/testcases/kernel/device-drivers/drm/kernel_space/str_drm.h b/testcases/kernel/device-drivers/drm/kernel_space/str_drm.h
index 263957e..9d930d9 100644
--- a/testcases/kernel/device-drivers/drm/kernel_space/str_drm.h
+++ b/testcases/kernel/device-drivers/drm/kernel_space/str_drm.h
@@ -17,19 +17,19 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
 
- * Remember that you want to seperate your header 
- * files between what is needed in kernel space 
- * only, and what will also be needed by a user 
- * space program that is using this module. For 
+ * Remember that you want to seperate your header
+ * files between what is needed in kernel space
+ * only, and what will also be needed by a user
+ * space program that is using this module. For
  * that reason keep all structures that will need
  * kernel space pointers in a seperate header file
  * from where ioctl flags aer kept
- * 
+ *
  * author: Kai Zhao
  * date:   09/03/2003
  *
  */
- 
+
 /* test function export to user space*/
 extern int tdrm_test_interface(struct inode *inode, struct file *filp,
 			unsigned int cmd, unsigned long arg);
diff --git a/testcases/kernel/device-drivers/drm/kernel_space/tdrm.h b/testcases/kernel/device-drivers/drm/kernel_space/tdrm.h
index ce98ef6..a7a831b 100644
--- a/testcases/kernel/device-drivers/drm/kernel_space/tdrm.h
+++ b/testcases/kernel/device-drivers/drm/kernel_space/tdrm.h
@@ -17,15 +17,15 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
 
- * In this header file keep all flags and other 
+ * In this header file keep all flags and other
  * structures that will be needed in both kernel
  * and user space. Specifically the ioctl flags
- * will go in here so that in user space a program 
+ * will go in here so that in user space a program
  * can specify flags for the ioctl call.
- * 
+ *
  * author: Kai Zhao
  * date:   09/03/2003
- * 
+ *
  */
 #ifndef __TDRM_H
 #define __TDRM_H
@@ -35,12 +35,12 @@
 #define DRIVER_NAME     DEVICE_NAME
 
 #define MAG_NUM			'k'
-#define TDRM_MAJOR      2 
+#define TDRM_MAJOR      2
 #define DRIVER_MAJOR    TDRM_MAJOR
 #define DRIVER_MINOR     0
 #define DRIVER_PATCHLEVEL 0
 
-/*--------------------------------------------------------------------------*/ 
+/*--------------------------------------------------------------------------*/
 /* This remains constant for all DRM template files.
  */
 #define DRM(x) tdrm_##x
diff --git a/testcases/kernel/device-drivers/misc_modules/per_cpu_atomic_operations_vs_interrupt_disabling_module/Makefile b/testcases/kernel/device-drivers/misc_modules/per_cpu_atomic_operations_vs_interrupt_disabling_module/Makefile
index 2ca2056..e88cff7 100644
--- a/testcases/kernel/device-drivers/misc_modules/per_cpu_atomic_operations_vs_interrupt_disabling_module/Makefile
+++ b/testcases/kernel/device-drivers/misc_modules/per_cpu_atomic_operations_vs_interrupt_disabling_module/Makefile
@@ -7,14 +7,14 @@
 ifneq ($(INSTALL_MOD_PATH),)
          DEPMOD_OPT := -b $(INSTALL_MOD_PATH)
 endif
-        
+
 default:
 	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
-        
+
 modules_install:
 	$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
 	if [ -f $(KERNELDIR)/$(KBUILD_OUTPUT)/System.map ] ; then /sbin/depmod -ae -F $(KERNELDIR)/$(KBUILD_OUTPUT)/System.map $(DEPMOD_OPT) $(KERNELRELEASE) ; fi
-        
+
 clean:
 	$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
 endif
diff --git a/testcases/kernel/device-drivers/pci/tpci/pci-exp-tests-HOWTO b/testcases/kernel/device-drivers/pci/tpci/pci-exp-tests-HOWTO
index 2d4278a..fb84dfc 100644
--- a/testcases/kernel/device-drivers/pci/tpci/pci-exp-tests-HOWTO
+++ b/testcases/kernel/device-drivers/pci/tpci/pci-exp-tests-HOWTO
@@ -13,7 +13,7 @@
 
 a. A function "test_find_pci_exp_cap" has been added to the tpci.c file of LTP project.
 	(\ltp\testcases\kernel\device-drivers\pci\tpci\tpci.c)
-	 This function makes a call to pci_find_capability, which will determine if a device 
+	 This function makes a call to pci_find_capability, which will determine if a device
 	 has PCI-Express capability. A PCI Express device function indicates PCI-Express support
 	 by implementing the PCI-Express capability structure in its capability list.
 
@@ -34,10 +34,10 @@
 
 4. Including PCI-Express support into the kernel
 
-By default, the kernel may not enable PCI-Express feature. A kernel 
+By default, the kernel may not enable PCI-Express feature. A kernel
 configuration option must be selected to enable PCI-Express support.
 
-To include PCI-Express support into the kernel requires users to enable PCI-Access mode with 
+To include PCI-Express support into the kernel requires users to enable PCI-Access mode with
 "Any" or "MMCFG" in the "General Setup" menu in the kernel configuration menu.
 
 5. FAQ
@@ -53,6 +53,6 @@
 A2. AER_CAP_ID_VALUE represents the value of Advanced Error Reporting Capability ID in the PCI Express config space.
 The default value of this is always same for all PCI-Express devices. i.e. 0x14011.
 In the function "test_read_pci_exp_config" in tpci.c file, it is compared with the value retrieved from a PCI-Express
-capable device. If both the values match that means that the PCI-Express driver is accessing the PCI-Express config space 
+capable device. If both the values match that means that the PCI-Express driver is accessing the PCI-Express config space
 SUCCESSFULLY.
 ***FINISH***
diff --git a/testcases/kernel/device-drivers/pci/tpci/tpci.h b/testcases/kernel/device-drivers/pci/tpci/tpci.h
index a2b0b8e..a7f9fac 100644
--- a/testcases/kernel/device-drivers/pci/tpci/tpci.h
+++ b/testcases/kernel/device-drivers/pci/tpci/tpci.h
@@ -58,9 +58,9 @@
 struct tpci_interface {
 	int 	in_len;		// input data length
 	caddr_t	in_data;	// input data
-	int 	out_rc;		// return code from the test 
-	int 	out_len;	// output data length 
-	caddr_t	out_data;	// output data 
+	int 	out_rc;		// return code from the test
+	int 	out_len;	// output data length
+	caddr_t	out_data;	// output data
 };
 typedef struct tpci_interface tpci_interface_t;
 
diff --git a/testcases/kernel/device-drivers/pci/user_tpci/user_tpci.h b/testcases/kernel/device-drivers/pci/user_tpci/user_tpci.h
index 5f43b93..a14f079 100644
--- a/testcases/kernel/device-drivers/pci/user_tpci/user_tpci.h
+++ b/testcases/kernel/device-drivers/pci/user_tpci/user_tpci.h
@@ -22,7 +22,7 @@
 
 #if 0
 int ki_probe_pci_dev(int);
-int ki_enable_pci(int); 
+int ki_enable_pci(int);
 int ki_disable_pci(int);
 int ki_find_bus(int);
 int ki_find_class(int);
diff --git a/testcases/kernel/device-drivers/tbio/kernel_space/str_tbio.h b/testcases/kernel/device-drivers/tbio/kernel_space/str_tbio.h
index a2e3dcb..955a381 100644
--- a/testcases/kernel/device-drivers/tbio/kernel_space/str_tbio.h
+++ b/testcases/kernel/device-drivers/tbio/kernel_space/str_tbio.h
@@ -17,14 +17,14 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
 
- * Remember that you want to seperate your header 
- * files between what is needed in kernel space 
- * only, and what will also be needed by a user 
- * space program that is using this module. For 
+ * Remember that you want to seperate your header
+ * files between what is needed in kernel space
+ * only, and what will also be needed by a user
+ * space program that is using this module. For
  * that reason keep all structures that will need
  * kernel space pointers in a seperate header file
  * from where ioctl flags aer kept
- * 
+ *
  * author: Sean Ruyle
  * date:   06/11/2003
  *
diff --git a/testcases/kernel/device-drivers/tbio/kernel_space/tbio.h b/testcases/kernel/device-drivers/tbio/kernel_space/tbio.h
index c35db58..b7905c1 100644
--- a/testcases/kernel/device-drivers/tbio/kernel_space/tbio.h
+++ b/testcases/kernel/device-drivers/tbio/kernel_space/tbio.h
@@ -17,12 +17,12 @@
  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  *
 
- * In this header file keep all flags and other 
+ * In this header file keep all flags and other
  * structures that will be needed in both kernel
  * and user space. Specifically the ioctl flags
- * will go in here so that in user space a program 
+ * will go in here so that in user space a program
  * can specify flags for the ioctl call.
- * 
+ *
  * module: tbio
  *  Copyright (c) International Business Machines  Corp., 2003
  *
@@ -37,7 +37,7 @@
  *  the GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
- *  along with this program;  
+ *  along with this program;
  *
  *  FILE        : tbio.h
  *  USAGE       : kernel_space:./load_tbio.sh
@@ -57,13 +57,13 @@
 #define TMOD_DRIVER_NAME	"ltp test block I/O layer module"
 #define DEVICE_NAME		"/dev/tbio"
 #define MAG_NUM			'k'
-#define TBIO_MAJOR      258 
+#define TBIO_MAJOR      258
 
 #define TBIO_TO_DEV              1
 #define TBIO_FROM_DEV            2
 
-/* put ioctl flags here, use the _IO macro which is 
- found in linux/ioctl.h, takes a letter, and an 
+/* put ioctl flags here, use the _IO macro which is
+ found in linux/ioctl.h, takes a letter, and an
  integer */
 
 #define LTP_TBIO_CLONE		_IO(MAG_NUM,1)
@@ -75,19 +75,19 @@
 #define LTP_TBIO_ADD_PAGE	_IO(MAG_NUM,7)
 
 /* memory between the kernel and user space is
- seperated, so that if a structure is needed 
- to be passed between kernel and user space 
+ seperated, so that if a structure is needed
+ to be passed between kernel and user space
  a call must be made to copy_to_user or copy
- from user. Use this structure to streamline 
- that process. For example: A function that 
- writes to a disc takes in a ki_write_t 
- pointer from userspace. In the user space 
- program specify the length of the pointer as 
+ from user. Use this structure to streamline
+ that process. For example: A function that
+ writes to a disc takes in a ki_write_t
+ pointer from userspace. In the user space
+ program specify the length of the pointer as
  in_len, and in_data as the actual structure. */
 
 struct tbio_interface {
 	void  *data;         // input data
-	int     data_len;         // input data length        
+	int     data_len;         // input data length
 	int     direction;      // read or write form DEV
 	unsigned char *cmd;     // read or write
 	int   cmd_len;          // length of cmd
diff --git a/testcases/kernel/device-drivers/usb/tusb/st_tusb.h b/testcases/kernel/device-drivers/usb/tusb/st_tusb.h
index 15e0062..e2bc533 100644
--- a/testcases/kernel/device-drivers/usb/tusb/st_tusb.h
+++ b/testcases/kernel/device-drivers/usb/tusb/st_tusb.h
@@ -35,7 +35,7 @@
 	        int (*get_frame_number) (struct usb_device *dev);
 	        int (*submit_urb) (struct urb *urb);
 	        int (*unlink_urb) (struct urb *urb);
-		
+
 		/* allocate dma-consistent buffer for URB_DMA_NOMAPPING */
 	        void *(*buffer_alloc)(struct usb_bus *bus, size_t size,
         	                int mem_flags,
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/a16706.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/a16706.htm
index c8ff028..b65471d 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/a16706.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/a16706.htm
@@ -284,7 +284,7 @@
 
                         if (read_frame ())
                                 break;
-        
+
                         /* EAGAIN - continue select loop. */
                 }
         }
@@ -344,7 +344,7 @@
                         if (-1 == xioctl (fd, VIDIOC_QBUF, &amp;buf))
                                 errno_exit ("VIDIOC_QBUF");
                 }
-                
+
                 type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 
                 if (-1 == xioctl (fd, VIDIOC_STREAMON, &amp;type))
@@ -616,7 +616,7 @@
                                 break;
                         }
                 }
-        } else {        
+        } else {
                 /* Errors ignored. */
         }
 
@@ -624,7 +624,7 @@
         CLEAR (fmt);
 
         fmt.type                = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        fmt.fmt.pix.width       = 640; 
+        fmt.fmt.pix.width       = 640;
         fmt.fmt.pix.height      = 480;
         fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
         fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;
@@ -669,7 +669,7 @@
 static void
 open_device                     (void)
 {
-        struct stat st; 
+        struct stat st;
 
         if (-1 == stat (dev_name, &amp;st)) {
                 fprintf (stderr, "Cannot identify '%s': %d, %s\n",
@@ -729,7 +729,7 @@
         for (;;) {
                 int index;
                 int c;
-                
+
                 c = getopt_long (argc, argv,
                                  short_options, long_options,
                                  &amp;index);
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/c14595.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/c14595.htm
index 00079fe..290c2cf 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/c14595.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/c14595.htm
@@ -529,7 +529,7 @@
 ><CODE
 CLASS="CONSTANT"
 >V4L2_FBUF_CAP_LIST_CLIPPING</CODE
-> 
+>
 and <CODE
 CLASS="CONSTANT"
 >V4L2_FBUF_CAP_BITMAP_CLIPPING</CODE
@@ -558,7 +558,7 @@
 ><CODE
 CLASS="CONSTANT"
 >V4L2_FBUF_CAP_EXTERNOVERLAY</CODE
-> 
+>
 <SPAN
 CLASS="emphasis"
 ><I
@@ -2617,7 +2617,7 @@
 >VIDIOC_STREAMOFF</CODE
 ></A
 > stops capturing and dequeues all buffers from both
-queues. Applications can query the signal status, if known, with the 
+queues. Applications can query the signal status, if known, with the
 <A
 HREF="r8936.htm"
 ><CODE
@@ -2779,7 +2779,7 @@
 <CODE
 CLASS="CONSTANT"
 >VIDEO_PALETTE_RAW</CODE
->, equivalent to 
+>, equivalent to
 <CODE
 CLASS="CONSTANT"
 >V4L2_PIX_FMT_GREY</CODE
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/capture-example.html b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/capture-example.html
index c8ff028..b65471d 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/capture-example.html
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/capture-example.html
@@ -284,7 +284,7 @@
 
                         if (read_frame ())
                                 break;
-        
+
                         /* EAGAIN - continue select loop. */
                 }
         }
@@ -344,7 +344,7 @@
                         if (-1 == xioctl (fd, VIDIOC_QBUF, &amp;buf))
                                 errno_exit ("VIDIOC_QBUF");
                 }
-                
+
                 type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 
                 if (-1 == xioctl (fd, VIDIOC_STREAMON, &amp;type))
@@ -616,7 +616,7 @@
                                 break;
                         }
                 }
-        } else {        
+        } else {
                 /* Errors ignored. */
         }
 
@@ -624,7 +624,7 @@
         CLEAR (fmt);
 
         fmt.type                = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-        fmt.fmt.pix.width       = 640; 
+        fmt.fmt.pix.width       = 640;
         fmt.fmt.pix.height      = 480;
         fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
         fmt.fmt.pix.field       = V4L2_FIELD_INTERLACED;
@@ -669,7 +669,7 @@
 static void
 open_device                     (void)
 {
-        struct stat st; 
+        struct stat st;
 
         if (-1 == stat (dev_name, &amp;st)) {
                 fprintf (stderr, "Cannot identify '%s': %d, %s\n",
@@ -729,7 +729,7 @@
         for (;;) {
                 int index;
                 int c;
-                
+
                 c = getopt_long (argc, argv,
                                  short_options, long_options,
                                  &amp;index);
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r10595.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r10595.htm
index caeb001..f552f75 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r10595.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r10595.htm
@@ -496,7 +496,7 @@
 CLASS="CONSTANT"
 >V4L2_PIX_FMT_RGB565</CODE
 ></A
->) 
+>)
 but YUV formats (only packed YUV formats when chroma keying is used,
 not including <CODE
 CLASS="CONSTANT"
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r12342.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r12342.htm
index c9dad16..97c1921 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r12342.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r12342.htm
@@ -1238,7 +1238,7 @@
 >Notes:<BR><A
 NAME="FTN.AEN12723"
 >a. </A
->This 
+>This
 mode has been added in Linux 2.6.17 and may not be supported by older
 drivers.<BR><A
 NAME="FTN.AEN12763"
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r13889.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r13889.htm
index 265d7ea..e1350d9 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r13889.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r13889.htm
@@ -129,7 +129,7 @@
 ></DT
 ><DD
 ><P
->Map the buffer to this address in the 
+>Map the buffer to this address in the
 application's address space. When the <CODE
 CLASS="CONSTANT"
 >MAP_FIXED</CODE
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r4629.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r4629.htm
index 3ff2481..8de71d5 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r4629.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/r4629.htm
@@ -105,7 +105,7 @@
 CLASS="CONSTANT"
 >V4L2_PIX_FMT_YUV411P</CODE
 ></A
->. 
+>.
 Y41P is derived from "YUV 4:1:1 <SPAN
 CLASS="emphasis"
 ><I
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x15446.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x15446.htm
index f6d6502..3c1f3a6 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x15446.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x15446.htm
@@ -1715,7 +1715,7 @@
 ><CODE
 CLASS="CONSTANT"
 >V4L2_FMT_FLAG_INTERLACED</CODE
-> 
+>
 = <CODE
 CLASS="CONSTANT"
 >V4L2_FMT_FLAG_COMBINED</CODE
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x1904.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x1904.htm
index 1a923ed..f7146ad 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x1904.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x1904.htm
@@ -397,7 +397,7 @@
 
 memset (&amp;crop, 0, sizeof (crop));
 crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-crop.c = cropcap.defrect; 
+crop.c = cropcap.defrect;
 
 /* Ignore if cropping is not supported (EINVAL). */
 
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x2123.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x2123.htm
index 0451a94..d2fb197 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x2123.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x2123.htm
@@ -593,7 +593,7 @@
 ><TD
 >0.2125&nbsp;E'<SUB
 >R</SUB
-> 
+>
 +&nbsp;0.7154&nbsp;E'<SUB
 >G</SUB
 >
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x394.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x394.htm
index 58050ad..0a02f49 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x394.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x394.htm
@@ -274,7 +274,7 @@
 >1.6.4. Satellite Receivers</A
 ></H2
 ><P
->To be discussed. See also 
+>To be discussed. See also
 proposals by Peter Schlaf, video4linux-list@redhat.com on 23 Oct 2002,
 subject: "Re: [V4L] Re: v4l2 api".</P
 ></DIV
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x6570.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x6570.htm
index fed2185..84270bc 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x6570.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x6570.htm
@@ -545,7 +545,7 @@
 CLASS="CONSTANT"
 >V4L2_PIX_FMT_BGR24</CODE
 ></A
-> 
+>
 the value should be 0xRRGGBB on a little endian, 0xBBGGRR on a big
 endian host.</TD
 ></TR
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7561.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7561.htm
index 276e9b2..c265e14 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7561.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7561.htm
@@ -144,7 +144,7 @@
 HREF="https://listman.redhat.com/mailman/listinfo/video4linux-list"
 TARGET="_top"
 >https://listman.redhat.com/mailman/listinfo/video4linux-list</A
-> 
+>
 when the need arises.</P
 ></DIV
 ><DIV
diff --git a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7607.htm b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7607.htm
index 1e5167c..510b8cd 100644
--- a/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7607.htm
+++ b/testcases/kernel/device-drivers/v4l/user_space/doc/spec/x7607.htm
@@ -123,7 +123,7 @@
 HREF="https://listman.redhat.com/mailman/listinfo/video4linux-list"
 TARGET="_top"
 >https://listman.redhat.com/mailman/listinfo/video4linux-list</A
->. 
+>.
 Meanwhile no V4L2 driver should set the
 <CODE
 CLASS="CONSTANT"
diff --git a/testcases/kernel/fs/acl/tacl_xattr.sh b/testcases/kernel/fs/acl/tacl_xattr.sh
index 2ca4f8a..99f6a95 100755
--- a/testcases/kernel/fs/acl/tacl_xattr.sh
+++ b/testcases/kernel/fs/acl/tacl_xattr.sh
@@ -15,7 +15,7 @@
 #
 #  You should have received a copy of the GNU General Public License
 #  along with this program;  if not, write to the Free Software
-#  Foundation, 
+#  Foundation,
 #
 #  FILE        : tacl_xattr.sh
 #  USAGE       : ./tacl_xattr.sh
@@ -30,8 +30,8 @@
 #      10/23/2003 Kai Zhao (ltcd3@cn.ibm.com)
 #      07/06/2004 Jacky Malcles enable ext3 & clean users home dir.
 #
-#  CODE COVERAGE: 
-#                 76.3% - fs/posix_acl.c 
+#  CODE COVERAGE:
+#                 76.3% - fs/posix_acl.c
 #                 80.9% - xattr_acl.c
 #                 73.0% - xattr.c
 #
@@ -48,9 +48,9 @@
 
 ################################################################
 #
-# Make sure that uid=root is running this script. 
-# Make sure that loop device is built into the kernel 
-# Make sure that ACL(Access Control List) and Extended Attribute are 
+# Make sure that uid=root is running this script.
+# Make sure that loop device is built into the kernel
+# Make sure that ACL(Access Control List) and Extended Attribute are
 #     built into the kernel
 #
 ################################################################
@@ -72,7 +72,7 @@
 if [ ! -e tacl ]
 then
 	mkdir -m 777 tacl
-else 
+else
 	echo "FAILED: Directory tacl are exist"
 	exit 1
 fi
@@ -86,7 +86,7 @@
 	echo ""
 	echo "FAILED:  [ losetup ] Must have loop device support by kernel"
 	echo -e "\t to execute this script"
-	exit 1 
+	exit 1
 fi
 
 mount | grep ext2
@@ -94,11 +94,11 @@
 then
 	mkfs -t ext3 /dev/loop0
 	mkdir  -m 777 tacl/mount-ext2
-	mount -t ext3 -o defaults,acl,user_xattr /dev/loop0 tacl/mount-ext2 
+	mount -t ext3 -o defaults,acl,user_xattr /dev/loop0 tacl/mount-ext2
 	if [ $? != 0 ]
 	then
 		echo ""
-		echo "FAILED:  [ mount ] Make sure that ACL (Access Control List)" 
+		echo "FAILED:  [ mount ] Make sure that ACL (Access Control List)"
 		echo -e "\t and Extended Attribute are built into the kernel"
 		echo -e "\t Can not mount ext2 file system with acl and user_xattr options"
 		exit 1
@@ -107,11 +107,11 @@
 else
 	mkfs -t ext2 /dev/loop0
 	mkdir  -m 777 tacl/mount-ext2
-	mount -t ext2 -o defaults,acl,user_xattr /dev/loop0 tacl/mount-ext2 
+	mount -t ext2 -o defaults,acl,user_xattr /dev/loop0 tacl/mount-ext2
 	if [ $? != 0 ]
 	then
 		echo ""
-		echo "FAILED:  [ mount ] Make sure that ACL (Access Control List)" 
+		echo "FAILED:  [ mount ] Make sure that ACL (Access Control List)"
 		echo -e "\t and Extended Attribute are built into the kernel"
 		echo -e "\t Can not mount ext2 file system with acl and user_xattr options"
 		exit 1
@@ -127,7 +127,7 @@
 
 if [ ! -e tacl/mount-ext2/shared ]
 then
-	mkdir -p -m 777 tacl/mount-ext2/shared    
+	mkdir -p -m 777 tacl/mount-ext2/shared
 fi
 
 CUR_PATH=`pwd`
@@ -136,7 +136,7 @@
 
 	mkdir $CUR_PATH/tacl/mount-ext2/shared/team1
 	touch $CUR_PATH/tacl/mount-ext2/shared/team1/file1
-	
+
 	cd $CUR_PATH/tacl/mount-ext2/shared/team1
 	ln -sf file1 symlinkfile1
 	cd $CUR_PATH
@@ -151,7 +151,7 @@
 
 	mkdir $CUR_PATH/tacl/mount-ext2/shared/team2
 	touch $CUR_PATH/tacl/mount-ext2/shared/team2/file1
-	
+
 	cd $CUR_PATH/tacl/mount-ext2/shared/team2
 	ln -sf file1 symlinkfile1
 	cd $CUR_PATH
@@ -159,7 +159,7 @@
 	cd $CUR_PATH/tacl/mount-ext2/shared
 	ln -sf team2 symlinkdir2
 	cd $CUR_PATH
-	
+
 TACL_USER2
 
 #############################################################################################
@@ -168,7 +168,7 @@
 #  lrwxrwxrwx    1 tacluser1 tacluser1        5 Jun 23 13:39 symlinkdir1 -> team1
 #  lrwxrwxrwx    1 tacluser2 tacluser2        5 Jun 23 13:39 symlinkdir2 -> team2
 #  dr-x------    2 tacluser1 tacluser1     1024 Jun 23 13:39 team1
-#  drwxrwxr-x    2 tacluser2 tacluser2     1024 Jun 23 13:39 team2	
+#  drwxrwxr-x    2 tacluser2 tacluser2     1024 Jun 23 13:39 team2
 #
 #############################################################################################
 
@@ -186,7 +186,7 @@
 		echo ""
 		echo "SUCCESS: Create file denied by file permission bits [ Physical directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfil2 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/team1/newfile2 ]
 	then
@@ -197,17 +197,17 @@
 		echo ""
 		echo "SUCCESS: Create file denied by file permission bits [ Symlink directory ]"
 	fi
-	
+
 TACL_USER1
 
 #################################################################
 #
-# ACL_USER_OBJ are a superset of the permissions specified 
-#   by the file permission bits. 
-# The effective user ID of the process matches the user ID of 
+# ACL_USER_OBJ are a superset of the permissions specified
+#   by the file permission bits.
+# The effective user ID of the process matches the user ID of
 #   the file object owner.
 # Owner's act are based ACL_USER_OBJ
-# 
+#
 #################################################################
 
 setfacl -m u::rx tacl/mount-ext2/shared/team1
@@ -271,10 +271,10 @@
 
 #################################################################
 #
-# The effective user ID of the process matches the qualifier of 
+# The effective user ID of the process matches the qualifier of
 #   any entry of type ACL_USER
-# IF  the  matching  ACL_USER entry and the ACL_MASK 
-#   entry contain the requested permissions,#  access is granted, 
+# IF  the  matching  ACL_USER entry and the ACL_MASK
+#   entry contain the requested permissions,#  access is granted,
 #  ELSE access is denied.
 #
 #################################################################
@@ -291,10 +291,10 @@
 		echo -e "\t operation success [ Physical Directory ]"
 	else
 		echo ""
-		echo "FAILED:  ACL_USER entry contains the user permissions," 
+		echo "FAILED:  ACL_USER entry contains the user permissions,"
 		echo -e "\t but operation denied [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile4 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile4 ]
 	then
@@ -326,7 +326,7 @@
 		echo -e "\t but ACL_MASK are set ___ ,"
 		echo -e "\t operation success [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile6 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile6 ]
 	then
@@ -345,21 +345,21 @@
 
 ###########################################################################################
 #
-# The effective group ID or any of the supplementary group IDs of the process match the 
-#  qualifier of the entry of type ACL_GROUP_OBJ, or the qualifier of any entry of type 
+# The effective group ID or any of the supplementary group IDs of the process match the
+#  qualifier of the entry of type ACL_GROUP_OBJ, or the qualifier of any entry of type
 #  ACL_GROUP
 #
-# IF the ACL contains an ACL_MASK entry, THEN                                                                                                              
+# IF the ACL contains an ACL_MASK entry, THEN
 #                 if  the ACL_MASK entry and any of the matching ACL_GROUP_OBJ
 #                 or ACL_GROUP  entries  contain  the  requested  permissions,
 #                 access is granted,
-#                                                                                                               
+#
 #                 else access is denied.
-#                                                                                                               
-# ELSE  (note  that  there  can be no ACL_GROUP entries without an ACL_MASK entry)                                                                                                               
+#
+# ELSE  (note  that  there  can be no ACL_GROUP entries without an ACL_MASK entry)
 #                 if the ACL_GROUP_OBJ entry contains  the  requested  permis-
 #                 sions, access is granted,
-#                                                                                                              
+#
 #                 else access is denied.
 #
 ###########################################################################################
@@ -378,7 +378,7 @@
 		echo "FAILED:  [ touch ] ACL_GROUP entry already contains the group permissions,"
 		echo -e "\t but option success [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile8 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile8 ]
 	then
@@ -409,7 +409,7 @@
 		echo -e "\t and ACL_MASK entry are set ---,"
 		echo -e "\t option success [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile10 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile10 ]
 	then
@@ -442,7 +442,7 @@
 		echo "FAILED:  [ touch ] ACL_GROUP_OBJ entry already contains the group owner,"
 		echo -e "\t but option denied [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile12 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile12 ]
 	then
@@ -473,7 +473,7 @@
 		echo -e "\t and ACL_MASK entry are set ---,"
 		echo -e "\t option success [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile14 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile14 ]
 	then
@@ -513,7 +513,7 @@
 		echo "FAILED:  ACL_OTHER entry contains the user permissions,"
 		echo -e "\t but operation denied [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile16 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile16 ]
 	then
@@ -541,7 +541,7 @@
 		echo ""
 		echo "FAILED:  ACL_OTHER do not strick by ACL_MASK [ Physical Directory ]"
 	fi
-	
+
 	touch $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile18 2> /dev/null
 	if [ -e $CUR_PATH/tacl/mount-ext2/shared/symlinkdir1/newfile18 ]
 	then
@@ -569,12 +569,12 @@
 setfacl -m d:u::r -m d:g::r -m d:o::r tacl/mount-ext2/shared/team1
 
 su - tacluser1 << TACL_USER1
-	
+
 	MASK=`umask`
 	umask 0
 	touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile1
 	umask $MASK > /dev/null
-	
+
 TACL_USER1
 
 CONTENT=""
@@ -585,7 +585,7 @@
 then
 	echo ""
 	echo "SUCCESS: With default ACLs set , new file permission set correct."
-else	
+else
 	echo ""
 	echo "FAILED:  With default ACLs set , new file permission set not correct"
 fi
@@ -597,12 +597,12 @@
 #
 setfacl -m d:u:tacluser3:rw -m d:g:tacluser3:rw tacl/mount-ext2/shared/team1
 su - tacluser3 << TACL_USER3
-	
+
 	MASK=`umask`
 	umask 0
 	touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile2
 	umask $MASK > /dev/null
-	
+
 TACL_USER3
 
 CONTENT=""
@@ -624,12 +624,12 @@
 
 setfacl -m d:u::rwx -m d:g::rwx -m d:o::rwx tacl/mount-ext2/shared/team1
 su - tacluser3 << TACL_USER3
-	
+
 	MASK=`umask`
 	umask 0
 	touch $CUR_PATH/tacl/mount-ext2/shared/team1/newfile3
 	umask $MASK > /dev/null
-	
+
 TACL_USER3
 
 CONTENT=""
@@ -654,7 +654,7 @@
 su - tacluser3 << TACL_USER3
 	MASK=`umask`
 	umask 0
-	
+
 	chmod 777 $CUR_PATH/tacl/mount-ext2/shared/team1/newfile3
 	umask $MASK > /dev/null
 TACL_USER3
@@ -672,7 +672,7 @@
 	if [ $GROUP_PERMISSION == "group::rwx" ]
 	then
 		if [ $OTHER_PERMISSION == "other::rwx" ]
-		then 
+		then
 			echo ""
 			echo "SUCCESS: Chmod with ACL_USER_OBJ ACL_GROUP_OBJ and ACL_OTHER are correct"
 		else
@@ -703,7 +703,7 @@
 ITEM_GROUP=`echo $CONTENT | awk '{print \$9}'`
 
 if [ $ITEM_OWNER == "tacluser2" ]
-then 
+then
 	if [ $ITEM_GROUP == "tacluser2" ]
 	then
 		echo ""
@@ -728,7 +728,7 @@
 getfacl -RL tacl/mount-ext2/ > tacl/tmp2
 
 if [ `diff tacl/tmp1 tacl/tmp2` ]
-then 
+then
 	echo ""
 	echo "FAILED:  ACLs backup and restore are not correct"
 else
@@ -749,7 +749,7 @@
 echo "Now begin Extend Attribute Test"
 
 # dir
-echo 
+echo
 echo "Attach name:value pair to object dir "
 echo ""
 attr -s attrname1 -V attrvalue1 tacl/mount-ext2/shared/team2
@@ -759,7 +759,7 @@
 fi
 
 #file
-echo 
+echo
 echo "Attach name:value pair to object file "
 echo ""
 attr -s attrname2 -V attrvalue2 tacl/mount-ext2/shared/team2/file1
@@ -769,7 +769,7 @@
 fi
 
 #symlink file
-echo 
+echo
 echo "Attach name:value pair to object symlink file"
 echo ""
 attr -s attrname3 -V attrvalue3 tacl/mount-ext2/shared/team2/symlinkfile1
@@ -781,7 +781,7 @@
 echo ""
 ls -lRt tacl/mount-ext2/shared/team2
 
-echo 
+echo
 echo "get extended attributes of filesystem objects"
 echo ""
 
@@ -789,52 +789,52 @@
 getfattr -d tacl/mount-ext2/shared/team2
 if [ $? != 0 ]
 then
-	echo "FAILED: getfattr: Dump the values" 
+	echo "FAILED: getfattr: Dump the values"
 fi
 
 echo "Recursively dump the values"
 getfattr -dR tacl/mount-ext2/*
 if [ $? != 0 ]
 then
-	echo "FAILED: getfattr: Recursively Dump the values" 
+	echo "FAILED: getfattr: Recursively Dump the values"
 fi
 
-echo "Do not follow symlinks."     
+echo "Do not follow symlinks."
 echo "but extended user attributes are disallowed for symbolic links"
 getfattr -h --no-dereference tacl/mount-ext2/shared/team2/symlinkfile1
 if [ $? != 0 ]
 then
         echo "FAILED: getfattr: Do not follow symlinks."
 fi
-echo 
+echo
 
 echo "Logical walk, follow symbolic links"
 getfattr -L tacl/mount-ext2/shared/team2/*
 if [ $? != 0 ]
 then
-	echo "FAILED: getfattr: Logical walk"                  
+	echo "FAILED: getfattr: Logical walk"
 fi
 
 echo "Physical walk, skip all symbolic links"
 getfattr -P tacl/mount-ext2/shared/team2/*
 if [ $? != 0 ]
 then
-	echo "FAILED: getfattr: Physical walk"                  
+	echo "FAILED: getfattr: Physical walk"
 fi
 
-echo "attr -g to search the named object"                 
+echo "attr -g to search the named object"
 attr -g attrname1 tacl/mount-ext2/shared/team2
 if [ $? != 0 ]
 then
-	echo "FAILED: attr: to search the named object"     
+	echo "FAILED: attr: to search the named object"
 fi
-echo 
+echo
 
-echo "attr -r to remove the named object"                 
+echo "attr -r to remove the named object"
 attr -r attrname2 tacl/mount-ext2/shared/team2/file1
 if [ $? != 0 ]
 then
-	echo "FAILED: attr: to remove the named object"     
+	echo "FAILED: attr: to remove the named object"
 fi
 
 
@@ -863,7 +863,7 @@
 
 #####################################################
 #
-# Clean up 
+# Clean up
 #
 #####################################################
 
diff --git a/testcases/kernel/fs/acls/acl_test01 b/testcases/kernel/fs/acls/acl_test01
index 59e38ac..fba135c 100755
--- a/testcases/kernel/fs/acls/acl_test01
+++ b/testcases/kernel/fs/acls/acl_test01
@@ -18,9 +18,9 @@
 #
 #
 #
-#  FILE   : acls 
+#  FILE   : acls
 #
-#  PURPOSE: Tests extended acls 
+#  PURPOSE: Tests extended acls
 #
 #  HISTORY:
 #    03/03 Jerone Young  (jyoung5@us.ibm.com)
@@ -67,7 +67,7 @@
 	fi
 
 	# XXX (garrcoop): why is cleanup junk being done in setup??? Bad test!!!
-	rm -rf $TEST_USER1_HOMEDIR 
+	rm -rf $TEST_USER1_HOMEDIR
 	userdel $TEST_USER1 > /dev/null 2>&1
 	sleep 1
 	useradd -d $TEST_USER1_HOMEDIR -m -g $TEST_USER1_GROUP $TEST_USER1 -s /bin/sh
@@ -179,7 +179,7 @@
 	echo "Trying extended acls for files"
 	${TCbin}/acl_file_test $FILE_ACL
 	if [ $? -ne 0 ]
-	then 
+	then
 		EXIT_CODE=1
 		echo "Extended acls for files (FAILED)"
 	else
@@ -192,8 +192,8 @@
 	then
 		EXIT_CODE=1
 		echo "Extended acls for links (FAILED)"
-	else 
-		echo "Extended acls for links (PASSED)"	
+	else
+		echo "Extended acls for links (PASSED)"
 	fi
 else
 	do_setup
@@ -206,7 +206,7 @@
 	#setup files for extended attributes
 	setfacl -mu:root:r $FILE_ACL_LINK
 	setfacl -mu:root:r $FILE_ACL
-	
+
 	echo "Trying extended acls for files"
 	${TCbin}/acl_file_test $FILE_ACL
 	if [ $? -ne 0 ]
@@ -217,7 +217,7 @@
 		echo "Extended acls for files (PASSED)"
 	fi
 
-	echo "Trying extended acls for file links"	
+	echo "Trying extended acls for file links"
 	${TCbin}/acl_link_test $FILE_ACL_LINK
 	if [ $? -ne 0 ]
 	then
@@ -233,6 +233,6 @@
 	su $TEST_USER1 -c "$0"
 	echo ""
 	do_cleanup
-fi	
+fi
 
 exit $EXIT_CODE
diff --git a/testcases/kernel/fs/dmapi/Makefile b/testcases/kernel/fs/dmapi/Makefile
index fdf9693..6ac785f 100644
--- a/testcases/kernel/fs/dmapi/Makefile
+++ b/testcases/kernel/fs/dmapi/Makefile
@@ -30,11 +30,11 @@
 
 #	Define USER_SPACE_FAULTS if DMAPI implementation handles user space
 #	  faults (JFS has plenty of handle code in user space, which causes
-#	  faults when invalid pointers are passed in)	
+#	  faults when invalid pointers are passed in)
 #	Define DIRECTORY_LINKS if DMAPI FS supports links on directories (JFS
 #	  does not)
 #	Define INTERIOR_HOLES if DMAPI implementation supports probing/punching
-#	  interior holes (JFS does); if not defined, only probing/punching 
+#	  interior holes (JFS does); if not defined, only probing/punching
 #	  holes to end-of-file is supported
 #	Define MULTIPLE_REGIONS if DMAPI implementation supports multiple
 #	  interior regions (JFS does); if not defined, only one region
diff --git a/testcases/kernel/fs/dmapi/README b/testcases/kernel/fs/dmapi/README
index be8e8eb..6461a6f 100644
--- a/testcases/kernel/fs/dmapi/README
+++ b/testcases/kernel/fs/dmapi/README
@@ -3,11 +3,11 @@
 
 I. Test Bucket Introduction
 
-This test bucket tests the interfaces and events defined in the CAE 
-Specification entitled "Systems Management: Data Storage Management (XDSM) 
+This test bucket tests the interfaces and events defined in the CAE
+Specification entitled "Systems Management: Data Storage Management (XDSM)
 API," which was copyrighted in February, 1997 by The Open Group.  The test
-bucket consists of 20 executables containing 1097 variations which test 59 of 
-67 published DMAPIs and all JFS-supported events except DM_EVENT_NOSPACE on a 
+bucket consists of 20 executables containing 1097 variations which test 59 of
+67 published DMAPIs and all JFS-supported events except DM_EVENT_NOSPACE on a
 functional level.
 
 II. Test Bucket Contents
@@ -21,7 +21,7 @@
 		  theoretically these could all be zero, but the author
 		  believes that giving every variation a unique number makes
 		  it much easier when discussing successes/failures
-dm_impl.h	: Define implementation-dependent functions and variables 
+dm_impl.h	: Define implementation-dependent functions and variables
 		  common to all DMAPI test cases; these must be modified prior
 		  to running the test bucket on a new platform (note: although
 		  this is a .h file, it is really a .c file that is included by
@@ -42,15 +42,15 @@
 		  dm_pending
 event_am.c	: Tests DM_EVENT_ATTRIBUTE, DM_EVENT_CLOSE, DM_EVENT_DESTROY
 		  and dm_set_return_on_destroy
-event_an.c	: Tests DM_EVENT_POSTCREATE, DM_EVENT_POSTREMOVE, 
-		  DM_EVENT_POSTRENAME, DM_EVENT_POSTSYMLINK and 
+event_an.c	: Tests DM_EVENT_POSTCREATE, DM_EVENT_POSTREMOVE,
+		  DM_EVENT_POSTRENAME, DM_EVENT_POSTSYMLINK and
 		  DM_EVENT_POSTLINK
 event_sd.c	: Tests DM_EVENT_READ, DM_EVENT_WRITE and DM_EVENT_TRUNCATE
 event_sn.c	: Tests DM_EVENT_CREATE, DM_EVENT_REMOVE, DM_EVENT_RENAME,
 		  DM_EVENT_SYMLINK and DM_EVENT_LINK
 event_us.c	: Tests DM_EVENT_USER, dm_create_userevent, dm_send_msg and
 		  dm_find_eventmsg
-handle.c	: Tests dm_path_to_handle, dm_fd_to_handle, 
+handle.c	: Tests dm_path_to_handle, dm_fd_to_handle,
 		  dm_path_to_fshandle, dm_handle_to_fshandle, dm_handle_cmp,
 		  dm_handle_free, dm_handle_is_valid, dm_handle_hash,
 		  dm_handle_to_fsid, dm_handle_to_igen, dm_handle_to_ino,
@@ -66,7 +66,7 @@
 pmr_post.c	: Tests dm_get_region
 right.c		: Tests dm_request_right, dm_release_right, dm_query_right,
 		  dm_upgrade_right and dm_downgrade_right
-session.c	: Tests dm_create_session, dm_destroy_session, 
+session.c	: Tests dm_create_session, dm_destroy_session,
 		  dm_getall_sessions and dm_query_session
 token.c		: Tests dm_getall_tokens
 
@@ -82,7 +82,7 @@
 README		: You're looking at it
 Makefile	: Builds the test harness and scenario; the platform must be
 		  defined (i.e. JFS) to build the proper stuff in dm_impl.c,
-		  and other constants as necessary to build the proper support 
+		  and other constants as necessary to build the proper support
 		  (i.e. MULTIPLE_REGIONS)
 
 III. Test Bucket Omissions
@@ -127,7 +127,7 @@
 	   NOTE: Modify dmapi_lib in Makefile to point to the user space
 	   library for the DMAPI implementation to be tested
 
-	3) If the file system is compiled as a module, make sure it is 
+	3) If the file system is compiled as a module, make sure it is
 	    installed first:
 
 		modprobe blah
@@ -191,11 +191,11 @@
 
 -runfrom n	: Defines the starting variation to begin executing from; sets
 		  a variation range to execute when used along with -runto, or
-		  runs all variations greater than or equal to n if -runto is 
+		  runs all variations greater than or equal to n if -runto is
 		  not specified
 -runto n	: Defines the stopping variation to end executing at; sets
 		  a variation range to execute when used along with -runfrom,
-		  or runs all variations less than or equal to n if -runfrom is 
+		  or runs all variations less than or equal to n if -runfrom is
 		  not specified
 -runonly n	: Executes only variation n
 -loglevel n	: Write all messages less than or equal to n to the log file
@@ -203,9 +203,9 @@
 -logname s	: Write all messages defined by -loglevel to the log file named
 		  s; if not defined, the default log file name is dm_logfile
 
-Options and corresponding option values MUST be separated by whitespace.  Any 
-unrecognized option (that is, one starting with a dash such as -devname) and 
-its option value can be obtained by using the DMOPT_GET macro (such as 
+Options and corresponding option values MUST be separated by whitespace.  Any
+unrecognized option (that is, one starting with a dash such as -devname) and
+its option value can be obtained by using the DMOPT_GET macro (such as
 DMOPT_GET("devname")).
 
 VII. Test Case Output
diff --git a/testcases/kernel/fs/dmapi/dm_impl.h b/testcases/kernel/fs/dmapi/dm_impl.h
index db5bd3e..5a3de2e 100644
--- a/testcases/kernel/fs/dmapi/dm_impl.h
+++ b/testcases/kernel/fs/dmapi/dm_impl.h
@@ -19,12 +19,12 @@
 /*
  * TEST CASE	: dm_impl.h
  *
- * PURPOSE	: Define implementation-dependent functions and variables 
+ * PURPOSE	: Define implementation-dependent functions and variables
  * 		  common to all DMAPI test cases
  *
- * NOTES	: The validEvents[] table is derived from the XDSM 
- * 		  specification, and then the row(s) for unsupported event(s) 
- * 		  are set to DM_FALSE.  The definition from the specification 
+ * NOTES	: The validEvents[] table is derived from the XDSM
+ * 		  specification, and then the row(s) for unsupported event(s)
+ * 		  are set to DM_FALSE.  The definition from the specification
  * 		  is:
  *
  * eventValidity_t validEvents[DM_EVENT_MAX] = {
@@ -52,7 +52,7 @@
  *	{ DM_FALSE, DM_TRUE , DM_FALSE, DM_FALSE , "DM_EVENT_NOSPACE" },
  *	{ DM_FALSE, DM_FALSE, DM_FALSE, DM_FALSE , "DM_EVENT_USER" }
  * };
- *	
+ *
  */
 
 #include <sys/mount.h>
@@ -79,7 +79,7 @@
 	{ "DM_CONFIG_PUNCH_HOLE", DM_TRUE },
 	{ "DM_CONFIG_TOTAL_ATTRIBUTE_SPACE", 0x7FFFFFFF /* from dmapi_jfs.c */},
 	{ "DM_CONFIG_WILL_RETRY", DM_TRUE }
-};		
+};
 
 /* JFS does not support DM_EVENT_CANCEL or DM_EVENT_DEBUT */
 eventValidity_t dmimpl_validEvents[DM_EVENT_MAX] = {
@@ -107,7 +107,7 @@
 	{ DM_FALSE, DM_TRUE , DM_FALSE, DM_FALSE , "DM_EVENT_NOSPACE" },
 	{ DM_FALSE, DM_FALSE, DM_FALSE, DM_FALSE , "DM_EVENT_USER" }
 };
-	
+
 dm_eventset_t dmimpl_eventset =
 /*	(1 << DM_EVENT_CANCEL)		| */
 	(1 << DM_EVENT_MOUNT)		|
@@ -133,7 +133,7 @@
 	(1 << DM_EVENT_NOSPACE)		|
 	(1 << DM_EVENT_USER);
 
-int dmimpl_mount(char **mountPt, char **deviceNm) {	
+int dmimpl_mount(char **mountPt, char **deviceNm) {
 	char options[FILENAME_MAX];
 
 	if ((*mountPt = DMOPT_GET("mtpt")) == NULL) {
@@ -142,17 +142,17 @@
 	} else {
 		DMLOG_PRINT(DMLVL_DEBUG, "Mount point is %s\n", *mountPt);
 	}
-	
+
 	if ((*deviceNm = DMOPT_GET("device")) == NULL) {
 		DMLOG_PRINT(DMLVL_ERR, "Missing device name, use -device (for example, -device /dev/hda5)\n");
 		DM_EXIT();
 	} else {
 		DMLOG_PRINT(DMLVL_DEBUG, "Device name is %s\n", *deviceNm);
 	}
-	
+
 	sprintf(options, "dmapi,mtpt=%s", *mountPt);
 	EVENT_DELIVERY_DELAY;
 	DMLOG_PRINT(DMLVL_DEBUG, "Mounting %s on %s now...\n", *deviceNm, *mountPt);
 	return mount(*deviceNm, *mountPt, "jfs", 0, options);
-}		
+}
 #endif
diff --git a/testcases/kernel/fs/dmapi/dm_test.h b/testcases/kernel/fs/dmapi/dm_test.h
index bcb3d27..492d7a3 100644
--- a/testcases/kernel/fs/dmapi/dm_test.h
+++ b/testcases/kernel/fs/dmapi/dm_test.h
@@ -60,7 +60,7 @@
 #define TIMESTAMP_DELAY { \
 	DMLOG_PRINT(DMLVL_DEBUG, "Sleeping to guarantee timestamp change...\n"); \
 	sleep(3); \
-}		
+}
 #define PAGE_SIZE 4096
 #define PAGEALIGN(n) (((n)+(PAGE_SIZE-1)) & ~(PAGE_SIZE-1))
 #define O_DIRECTORY 0200000
@@ -150,7 +150,7 @@
 typedef struct configResult {
 	char		*name;
 	dm_size_t	result;
-} configResult_t;	
+} configResult_t;
 
 typedef struct eventValidity {
 	dm_boolean_t bGlobalHandle;
diff --git a/testcases/kernel/fs/dmapi/dm_vars.h b/testcases/kernel/fs/dmapi/dm_vars.h
index 73b852b..d32eb5b 100644
--- a/testcases/kernel/fs/dmapi/dm_vars.h
+++ b/testcases/kernel/fs/dmapi/dm_vars.h
@@ -129,7 +129,7 @@
 #define MMAP_WRITE_BASE			4450
 
 /* event.c */
-#define GET_EVENTS_BASE			4500	
-#define RESPOND_EVENT_BASE		4550	
-#define MOVE_EVENT_BASE			4600	
-#define PENDING_BASE			4650	
+#define GET_EVENTS_BASE			4500
+#define RESPOND_EVENT_BASE		4550
+#define MOVE_EVENT_BASE			4600
+#define PENDING_BASE			4650
diff --git a/testcases/kernel/fs/dmapi/runtest_off.sh b/testcases/kernel/fs/dmapi/runtest_off.sh
index d919330..7b8757e 100755
--- a/testcases/kernel/fs/dmapi/runtest_off.sh
+++ b/testcases/kernel/fs/dmapi/runtest_off.sh
@@ -18,8 +18,8 @@
 #
 
 #
-# This script, and hence the invoked test cases, need to be run from a 
-# directory that is NOT on the DMAPI-enabled partition (/dmtest below) being 
+# This script, and hence the invoked test cases, need to be run from a
+# directory that is NOT on the DMAPI-enabled partition (/dmtest below) being
 # tested; also, the DMAPI-enabled partition must be a disk (/dev/hda7 below)
 # preformatted for JFS via mkfs.fs
 #
diff --git a/testcases/kernel/fs/dmapi/runtest_on.sh b/testcases/kernel/fs/dmapi/runtest_on.sh
index a36b1a2..3ba5304 100755
--- a/testcases/kernel/fs/dmapi/runtest_on.sh
+++ b/testcases/kernel/fs/dmapi/runtest_on.sh
@@ -18,8 +18,8 @@
 #
 
 #
-# This script, and hence the invoked test cases, need to be run from the 
-# root directory of the DMAPI-enabled partition (/dmtest below) being tested 
+# This script, and hence the invoked test cases, need to be run from the
+# root directory of the DMAPI-enabled partition (/dmtest below) being tested
 #
 ./session -loglevel 4 -termlevel 4 -logname session.log
 ./handle -loglevel 4 -termlevel 4 -logname handle.log -mtpt /dmtest
diff --git a/testcases/kernel/fs/doio/README b/testcases/kernel/fs/doio/README
index 504637d..f62bf30 100644
--- a/testcases/kernel/fs/doio/README
+++ b/testcases/kernel/fs/doio/README
@@ -6,18 +6,18 @@
    growfiles
 
 All tools use the -h flag for printing some form of help (sometimes voluminous).
-They are extremely configurable; the examples below are some common uses. 
+They are extremely configurable; the examples below are some common uses.
 Read the help and experiment!   This testing tools were originally written
-to test UNICOS's NC1 and IRIX XFS filesystems. 
+to test UNICOS's NC1 and IRIX XFS filesystems.
 
 
 IOGEN & DOIO
 =============
 
 This is a pair of programs that does basic I/O operations on a set of files.
-The file offset, I/O length, I/O operation, and what open(2) flags are 
+The file offset, I/O length, I/O operation, and what open(2) flags are
 selected randomly from a pre-defined or commandline given set. All data
-written can be verified (this is the usual method). 
+written can be verified (this is the usual method).
 
 rwtest is a shell script that is a wrapper of iogen and doio.
 
@@ -37,7 +37,7 @@
 GROWFILES
 =============
 
-Growfiles will create and truncate files in gradual steps using write, and 
+Growfiles will create and truncate files in gradual steps using write, and
 lseek. All system calls are checked for proper returns. The writes or the
 whole file content can be verified.  It can cause disk fragmentation.
 
diff --git a/testcases/kernel/fs/doio/doio.h b/testcases/kernel/fs/doio/doio.h
index 96d4838..759a4c5 100644
--- a/testcases/kernel/fs/doio/doio.h
+++ b/testcases/kernel/fs/doio/doio.h
@@ -1,32 +1,32 @@
 /*
  * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- * 
+ *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  * published by the Free Software Foundation.
- * 
+ *
  * This program is distributed in the hope that it would be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * 
+ *
  * Further, this software is distributed without any warranty that it is
  * free of the rightful claim of any third person regarding infringement
  * or the like.  Any license provided herein, whether implied or
  * otherwise, applies only to this software file.  Patent licenses, if
  * any, provided herein do not apply to combinations of this program with
  * other software, or any other product whatsoever.
- * 
+ *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
- * 
+ *
  * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
  * Mountain View, CA  94043, or:
- * 
- * http://www.sgi.com 
- * 
- * For further information regarding this notice, see: 
- * 
+ *
+ * http://www.sgi.com
+ *
+ * For further information regarding this notice, see:
+ *
  * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
  */
 /*
diff --git a/testcases/kernel/fs/fs-bench/Makefile b/testcases/kernel/fs/fs-bench/Makefile
index 728cb70..c986184 100644
--- a/testcases/kernel/fs/fs-bench/Makefile
+++ b/testcases/kernel/fs/fs-bench/Makefile
@@ -36,6 +36,6 @@
 				   random-access-del-create
 
 dist: clean
-	(cd $(abs_srcdir); tar zcvf fs-bench.tar.gz $(abs_srcdir)) 
+	(cd $(abs_srcdir); tar zcvf fs-bench.tar.gz $(abs_srcdir))
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/fs/fs-bench/README b/testcases/kernel/fs/fs-bench/README
index 75cb053..20d49a9 100644
--- a/testcases/kernel/fs/fs-bench/README
+++ b/testcases/kernel/fs/fs-bench/README
@@ -1,6 +1,6 @@
 Programs for File system stress test.
 
-All of programs are distributed under GPL 2 license 
+All of programs are distributed under GPL 2 license
 by Hironobu SUZUKI <hironobu@h2np.net>
 
 HOW TO TEST
@@ -8,7 +8,7 @@
 
 1: Type "make"
 
-	# cd 
+	# cd
 	# tar zxvf fs-bench.tar.gz
 	# cd fs-bench
 	# make
@@ -28,9 +28,9 @@
 file size are determined by probabilistic algorithm, box-muler
 algorithm.
 
-number 
+number
 of files
-  ^          
+  ^
   |       ****
   |      *    *
   |     *      *
diff --git a/testcases/kernel/fs/fs-bench/modaltr.sh b/testcases/kernel/fs/fs-bench/modaltr.sh
index bdf6618..93b3050 100755
--- a/testcases/kernel/fs/fs-bench/modaltr.sh
+++ b/testcases/kernel/fs/fs-bench/modaltr.sh
@@ -1,16 +1,16 @@
 #!/bin/sh
-#To run this script the following is necessary 
+#To run this script the following is necessary
 # 1.kernel should mtd support as module.
 # 2.kernel should hsve jffs2 support as module.
 # 3.kernel should have loopback device support .
 # 4.you should have fs-bench utility (http://h2np.net/tools/fs-bench-0.2.tar.gz)
-# 5.results will be copied to /tmp/log and /tmp/log1 files 
+# 5.results will be copied to /tmp/log and /tmp/log1 files
 
 #DESCRIPTION: This testscript creates a jffs2 file system type and tests the filesytem test
 #and places the log in the log directory.The file system test actually creates a tree of large
-#directories and performs the delete and random delete operations as per the filesystem stress 
+#directories and performs the delete and random delete operations as per the filesystem stress
 #algorithim and gives a report of real time ,user time,system time taken to perform the file
-#operations. 
+#operations.
 
 #script created  G.BANU PRAKASH (mailto:prakash.banu@wipro.com).
 #
@@ -43,8 +43,8 @@
 HOME_DIR=/home
 BLOCK_DIR=/dev/mtdblock
 export PATH=$PATH:/sbin
-	if [ $(id -ru) -ne 0 ]; 
-then 
+	if [ $(id -ru) -ne 0 ];
+then
 	echo "must be root to run this"
 	exit
 fi
@@ -53,29 +53,29 @@
 
 lsmod |grep $MTD_RAM
 
-	if [ $? -ne 0 ]; 
+	if [ $? -ne 0 ];
 then
 	echo "inserting mtd ram and its dependencies"
-fi 
-modprobe $MTD_RAM  total_size=32768 erase_size=256  
-	if [ $? -ne 0 ]; 
+fi
+modprobe $MTD_RAM  total_size=32768 erase_size=256
+	if [ $? -ne 0 ];
 then
-	echo "check wheather MTD -mtdram is been compiled in the kernel" 
+	echo "check wheather MTD -mtdram is been compiled in the kernel"
 fi
 lsmod |grep $MTD_BLOCK
 	if [ $? -ne 0 ]; then
-	echo "inserting mtdblock  and its dependencies" 
+	echo "inserting mtdblock  and its dependencies"
 fi
 modprobe $MTD_BLOCK
 	if [ $? -ne 0 ]; then
 	echo "check wheather mtdblock is been compiled in the kernel"
 fi
- 
-lsmod |grep $JFFS2 
+
+lsmod |grep $JFFS2
 	if [ $? -ne 0 ]; then
 	echo "inserting jffs2  and its dependencies"
 fi
-modprobe $JFFS2 
+modprobe $JFFS2
 	if [ $? -ne 0 ]; then
 	echo "check wheather jffs2 is been compiled in the kernel"
 fi
@@ -90,14 +90,14 @@
 fi
 mkdir -p $BLOCK_DIR
 mknod $BLOCK_DIR/0 b 31 0 2>&1 > /dev/null
-mount -t jffs2 $BLOCK_DIR/0 $MOUNT_DIR 
-mount|grep $JFFS2 
-	if [ $? -eq 0 ]; then 
+mount -t jffs2 $BLOCK_DIR/0 $MOUNT_DIR
+mount|grep $JFFS2
+	if [ $? -eq 0 ]; then
  echo "jffs2 mounted sucessfully"
-	else 
+	else
  echo "mount unsucessfull"
 fi
-cd $MOUNT_DIR 
+cd $MOUNT_DIR
 echo "This is will take long time "
 ./test.sh    >log 2>&1
 ./test2.sh    >log1 2>&1
@@ -107,7 +107,7 @@
 cd $HOME_DIR
 
 
-#cleanup 
+#cleanup
 echo "unmounting $MOUNT_DIR "
 umount $MOUNT_DIR
 echo "removing the modules inserted"
diff --git a/testcases/kernel/fs/fs-bench/test.sh b/testcases/kernel/fs/fs-bench/test.sh
index b232c79..c2ca767 100755
--- a/testcases/kernel/fs/fs-bench/test.sh
+++ b/testcases/kernel/fs/fs-bench/test.sh
@@ -1,7 +1,7 @@
-#! /bin/bash 
+#! /bin/bash
 
 echo "## Start Test"
-date 
+date
 if [ -d ./00 ] ; then
     echo -n "Clear old files..."
     /bin/rm -fr ./00 >& /dev/null
@@ -11,7 +11,7 @@
 echo $STARTT
 echo ""
 echo "## Create files "
-time ~/fs-bench/cr 
+time ~/fs-bench/cr
 
 echo ""
 echo "## tar all "
@@ -46,5 +46,5 @@
 echo $ENDT
 date
 
-echo -n 'TOTAL(seconds): ' 
+echo -n 'TOTAL(seconds): '
 expr $ENDT - $STARTT
diff --git a/testcases/kernel/fs/fs-bench/test2.sh b/testcases/kernel/fs/fs-bench/test2.sh
index 67e3646..25c67af 100755
--- a/testcases/kernel/fs/fs-bench/test2.sh
+++ b/testcases/kernel/fs/fs-bench/test2.sh
@@ -1,7 +1,7 @@
-#! /bin/bash 
+#! /bin/bash
 
 echo "## Start Test"
-date 
+date
 date +%s
 if [ -d ./00 ] ; then
 /bin/rm -fr ./00 >& /dev/null
@@ -11,7 +11,7 @@
 
 echo ""
 echo "## Create files "
-time ~/fs-bench/cr 
+time ~/fs-bench/cr
 
 echo ""
 echo "## tar all "
@@ -57,7 +57,7 @@
 date
 ENDT=`date +%s`
 echo $ENDT
-echo -n 'TOTAL(seconds): ' 
+echo -n 'TOTAL(seconds): '
 expr $ENDT - $STARTT
 
 
diff --git a/testcases/kernel/fs/fs_bind/BUGS b/testcases/kernel/fs/fs_bind/BUGS
index 5ac16af..51c1e30 100644
--- a/testcases/kernel/fs/fs_bind/BUGS
+++ b/testcases/kernel/fs/fs_bind/BUGS
@@ -1,4 +1,4 @@
-Clone Namespace Tests: 
+Clone Namespace Tests:
 	Currently the cloneNS test do not accurately report a final success or
 	failure value. To check if a test has passed, view the test output and
 	look at each individual check_prop test, and see if there are any
diff --git a/testcases/kernel/fs/fs_bind/CHANGELOG b/testcases/kernel/fs/fs_bind/CHANGELOG
index e039a99..d415988 100644
--- a/testcases/kernel/fs/fs_bind/CHANGELOG
+++ b/testcases/kernel/fs/fs_bind/CHANGELOG
@@ -24,7 +24,7 @@
 
 Logged the sandbox contents before and after, took a diff, and removed the
 	logged contents if they look the same. Otherwise it keeps the
-	lists of files and dirs, reports the problem, and cleans up the 
+	lists of files and dirs, reports the problem, and cleans up the
 	sandbox. This happens after the mount cleanups otherwise it could fail.
 
 Factored out the "check" function from most tests (still need to work on "childXX" and "parentXX" scripts) and put it into the setup script.
diff --git a/testcases/kernel/fs/fs_bind/README b/testcases/kernel/fs/fs_bind/README
index 0205a1a..74b2ee1 100644
--- a/testcases/kernel/fs/fs_bind/README
+++ b/testcases/kernel/fs/fs_bind/README
@@ -49,7 +49,7 @@
 
 For further details on these types of subtrees please see your kernel source's
 Documentation/filesystems/sharedsubtree.txt file.
- 
+
 Building:
 ---------
 Uses GNU Make. In the root directory type:
@@ -95,7 +95,7 @@
 mount namespaces respectively.
 
 The bin directory contains scripts used by each of the testcases for
-common setup, creating, and comparing mounts. 
+common setup, creating, and comparing mounts.
 
 Running the Test Suite:
 -----------------------
@@ -127,7 +127,7 @@
 	|	|	  |
 	|	...	  ...
 	|-rbind--\
-	|        |--> 
+	|        |-->
 	...       ...
 
 An testXX/err file will only be left for those tests that had errors and
@@ -156,7 +156,7 @@
 		tst_exit
 	LTP contents:
 		LTPROOT/testcases/bin
- 
+
 It's important to note that the individual test scripts use the current working
 directory extensively but never exit it. This may allow the tests to be run
 individually once the above LTP environment dependencies are resolved.
diff --git a/testcases/kernel/fs/fs_bind/TODO b/testcases/kernel/fs/fs_bind/TODO
index d7ca3cb..567a33a 100644
--- a/testcases/kernel/fs/fs_bind/TODO
+++ b/testcases/kernel/fs/fs_bind/TODO
@@ -1,6 +1,6 @@
 Reuse http://ltp.cvs.sourceforge.net/*checkout*/ltp/ltp/testcases/kernel/containers/check_for_unshare.c to test for unshare (used in nsclone.c) ??
 
-Consider replacing long invocations 
+Consider replacing long invocations
 	(replace "$FS_BIND_ROOT/bin/makedir") with something shorter).
 
 Factor out common bits of setup, setupnslock, and lockfile
diff --git a/testcases/kernel/fs/fs_bind/bin/check_prop b/testcases/kernel/fs/fs_bind/bin/check_prop
index 092bfbb..07da8ea 100755
--- a/testcases/kernel/fs/fs_bind/bin/check_prop
+++ b/testcases/kernel/fs/fs_bind/bin/check_prop
@@ -44,7 +44,7 @@
 
 	echo "Checking \"$dir1\" \"$dir2\""
 	diff -r "$dir1" "$dir2" 2> /dev/null
-	
+
 	if [ $? -ne 0 ]
 	then
 		if [ $reverse -eq 1 ]
@@ -56,12 +56,12 @@
 			echo "FAILED"
 			echo "---------"
                 	exit 1
-		fi 
+		fi
         fi
         dir1="$dir2"
 done
 
-if [ $reverse -eq 1 ] 
+if [ $reverse -eq 1 ]
 then
 	echo FAILED
 	echo "---------"
diff --git a/testcases/kernel/fs/fs_bind/bin/makedir b/testcases/kernel/fs/fs_bind/bin/makedir
index 6237c38..7c0766a 100755
--- a/testcases/kernel/fs/fs_bind/bin/makedir
+++ b/testcases/kernel/fs/fs_bind/bin/makedir
@@ -69,7 +69,7 @@
 	mount $mflags --make-rslave "$dir" 2> /dev/null || \
 	smount "$dir" rslave || exit $?
       	;;
-   unclone) 
+   unclone)
    	echo "mount $mflags --make-runbindable \"$dir\""
 	mount $mflags --make-runbindable "$dir" 2> /dev/null || \
 	smount "$dir" runclone || exit $?
@@ -89,7 +89,7 @@
 	mount $mflags --make-slave "$dir" 2> /dev/null || \
 	smount "$dir" slave || exit $?
       	;;
-   nunclone) 
+   nunclone)
    	echo "mount $mflags --make-unbindable \"$dir\""
 	mount $mflags --make-unbindable "$dir" 2> /dev/null || \
 	smount "$dir" unclone || exit $?
diff --git a/testcases/kernel/fs/fs_bind/bin/setupnslock b/testcases/kernel/fs/fs_bind/bin/setupnslock
index 7ef663f..e35927b 100755
--- a/testcases/kernel/fs/fs_bind/bin/setupnslock
+++ b/testcases/kernel/fs/fs_bind/bin/setupnslock
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 lockfile="/.nslock"
 SUCCESS=0
diff --git a/testcases/kernel/fs/fs_bind/bind/test01 b/testcases/kernel/fs/fs_bind/bind/test01
index 2418cfb..52005dc 100755
--- a/testcases/kernel/fs/fs_bind/bind/test01
+++ b/testcases/kernel/fs/fs_bind/bind/test01
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind "$disk1" parent1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent2 share2
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent2 share2
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check parent1/child1/a parent2/child2/a share2/child2/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check parent1/child1/b parent2/child2/b share2/child2/b
 	check parent2 share2
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test01: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,7 +84,7 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -94,6 +94,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test01: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test02 b/testcases/kernel/fs/fs_bind/bind/test02
index 94aeb47..a4d743c 100755
--- a/testcases/kernel/fs/fs_bind/bind/test02
+++ b/testcases/kernel/fs/fs_bind/bind/test02
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -38,32 +38,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind "$disk1" parent1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 share1
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 share1
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check parent1/child1/a parent2/child2/a share1/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check parent1/child1/b parent2/child2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test02: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,7 +84,7 @@
 	umount parent2/child2
 	umount parent2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test03 b/testcases/kernel/fs/fs_bind/bind/test03
index 5989a3a..ac1f426 100755
--- a/testcases/kernel/fs/fs_bind/bind/test03
+++ b/testcases/kernel/fs/fs_bind/bind/test03
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,42 +40,42 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
 	mkdir parent2
-	
+
 	mount --bind parent1/child1 share1
 	mount --bind "$disk1" parent1/child1
 	mount --bind "$disk2" share2
 	mount --bind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" share2 parent2
-	
-	
+
+
 	mkdir parent2/child2
 	ls share2
-	
+
 	mount --bind parent1/child1 share1
 	mount --bind parent1/child1 parent2/child2
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" parent1/child1 share1 parent2/child2
-	
+
 	mount --bind "$disk3" parent1/child1/a
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" parent1/child1/a parent2/child2/a share1/a
 	"${FS_BIND_ROOT}/bin/check_prop" -n parent2/child2/a share2/child2/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" -n parent2/child2/b share2/child2/b
 	"${FS_BIND_ROOT}/bin/check_prop" parent1/child1/b parent2/child2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test03: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -99,7 +99,7 @@
 	umount share2
 	umount parent1
 	umount parent2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test04 b/testcases/kernel/fs/fs_bind/bind/test04
index d543d2f..ac17f8b 100755
--- a/testcases/kernel/fs/fs_bind/bind/test04
+++ b/testcases/kernel/fs/fs_bind/bind/test04
@@ -1,5 +1,5 @@
-#!/bin/bash 
- 
+#!/bin/bash
+
 #
 # Copyright (c) International Business Machines  Corp., 2005
 # Author: Avantika Mathur (mathurav@us.ibm.com)
@@ -39,34 +39,34 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind "$disk1" parent1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 share1
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 share1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check parent1/child1/a parent2/child2/a share1/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check parent1/child1/b parent2/child2/b share1/b
-	
+
 	mount --bind "$disk4" share1/c
-	
+
 	check parent1/child1/c parent2/child2/c share1/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test04: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -87,8 +87,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test05 b/testcases/kernel/fs/fs_bind/bind/test05
index e444d90..9112864 100755
--- a/testcases/kernel/fs/fs_bind/bind/test05
+++ b/testcases/kernel/fs/fs_bind/bind/test05
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,39 +40,39 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1
 	mount --bind parent2 share2
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2 share2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check parent2/child2/b share2/child2/b
-	
+
 	mount --bind "$disk4" share2/child2/c
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check parent2/child2/c share2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test05: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -95,8 +95,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test06 b/testcases/kernel/fs/fs_bind/bind/test06
index cfbc56a..1da8fd5 100755
--- a/testcases/kernel/fs/fs_bind/bind/test06
+++ b/testcases/kernel/fs/fs_bind/bind/test06
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n  parent1/child1 share1/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test06: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,8 +84,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test07 b/testcases/kernel/fs/fs_bind/bind/test07
index 7b392f6..301ab30 100755
--- a/testcases/kernel/fs/fs_bind/bind/test07
+++ b/testcases/kernel/fs/fs_bind/bind/test07
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,40 +39,40 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mount --bind "$disk2" share2
 	mount --bind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	#mount --bind "$disk2" share2
-	
+
 	mkdir parent2/child2
 	check parent2 share2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
 	check -n parent2/child2 share2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n  parent1/child1 share1/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test07: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -95,8 +95,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test07-2 b/testcases/kernel/fs/fs_bind/bind/test07-2
index 1b8a879..faf1e2f 100755
--- a/testcases/kernel/fs/fs_bind/bind/test07-2
+++ b/testcases/kernel/fs/fs_bind/bind/test07-2
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 SETS_DEFAULTS="${TCID=test07-2} ${TST_COUNT=1} ${TST_TOTAL=1}"
 declare -r TCID
@@ -20,20 +20,20 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --bind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	mount --bind "$disk1" share2
-	
+
 	check parent2 share2
-	
+
 	mount --bind "$disk2" parent2/a
-	
+
 	check -n parent2/a share2/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test07-2: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -48,11 +48,11 @@
 	umount parent2
 	umount parent2
 	umount parent2
-	
+
 	umount share2
 	umount share2
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test08 b/testcases/kernel/fs/fs_bind/bind/test08
index 671131c..2d8e808 100755
--- a/testcases/kernel/fs/fs_bind/bind/test08
+++ b/testcases/kernel/fs/fs_bind/bind/test08
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n  parent1/child1 share1/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test08: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,8 +84,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test09 b/testcases/kernel/fs/fs_bind/bind/test09
index a8520cb..46ff0dc 100755
--- a/testcases/kernel/fs/fs_bind/bind/test09
+++ b/testcases/kernel/fs/fs_bind/bind/test09
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,40 +39,40 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind parent2 share2
 	mount --bind share1 parent1/child1
 	mount --bind "$disk1" share1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	check parent1/child1 share1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check parent2/child2 share2/child2
-	
+
 	mount --bind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test09: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -95,8 +95,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test10 b/testcases/kernel/fs/fs_bind/bind/test10
index 11a7d63..ebfcf5a 100755
--- a/testcases/kernel/fs/fs_bind/bind/test10
+++ b/testcases/kernel/fs/fs_bind/bind/test10
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,37 +39,37 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind share1 parent1/child1
 	mount --bind "$disk1" share1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	check parent1/child1 share1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
-	
+
 	mount --bind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test10: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -90,8 +90,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test11 b/testcases/kernel/fs/fs_bind/bind/test11
index 2e31218..e1b70e1 100755
--- a/testcases/kernel/fs/fs_bind/bind/test11
+++ b/testcases/kernel/fs/fs_bind/bind/test11
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,36 +39,36 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind parent2 share2
 	mount --bind share1 parent1/child1
 	mount --bind "$disk1" share1
 	mount --bind "$disk2" share2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	mkdir parent2/child2
-	
+
 	check parent1/child1 share1
 	check parent2 share2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk3" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --bind "$disk4" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n parent2/child2 share2/child2
 	break
@@ -82,11 +82,11 @@
 trap '' ERR
 {
 	umount parent2/child2/b
-	
+
 	mount --bind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	umount parent1/child1/a
 	umount share1/c
 	umount parent2/child2
@@ -99,7 +99,7 @@
 	umount parent2
 	umount parent2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test12 b/testcases/kernel/fs/fs_bind/bind/test12
index c87ab96..307e6da 100755
--- a/testcases/kernel/fs/fs_bind/bind/test12
+++ b/testcases/kernel/fs/fs_bind/bind/test12
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,37 +39,37 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind share1 parent1/child1
 	mount --bind "$disk1" share1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	check parent1/child1 share1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --bind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --bind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --bind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
-	
+
 	mount --bind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test12: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -90,8 +90,8 @@
 	umount parent2
 	umount share1
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test13 b/testcases/kernel/fs/fs_bind/bind/test13
index 79aff67..ed559ec 100755
--- a/testcases/kernel/fs/fs_bind/bind/test13
+++ b/testcases/kernel/fs/fs_bind/bind/test13
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,20 +40,20 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
-	
+
 	mount --bind parent1 share1
 	mount --bind parent2 share2
 	mkdir parent1/child1/x
 	mount --bind "$disk1" parent1/child1/x
 	mkdir parent2/child2
 	mount --bind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test13: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -72,8 +72,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test14 b/testcases/kernel/fs/fs_bind/bind/test14
index 09d1205..6015b9a 100755
--- a/testcases/kernel/fs/fs_bind/bind/test14
+++ b/testcases/kernel/fs/fs_bind/bind/test14
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,18 +40,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1/x
 	mkdir parent2/child2
 	mount --bind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test14: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -68,8 +68,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test15 b/testcases/kernel/fs/fs_bind/bind/test15
index 0cb3c43..8e36c55 100755
--- a/testcases/kernel/fs/fs_bind/bind/test15
+++ b/testcases/kernel/fs/fs_bind/bind/test15
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,25 +40,25 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1/x
 	mount --bind "$disk2" share2
 	mount --bind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	check parent2 share2
-	
+
 	mkdir parent2/child2
 	mount --bind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test15: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -78,8 +78,8 @@
 	umount parent2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test16 b/testcases/kernel/fs/fs_bind/bind/test16
index 4e284d4..ec2ef68 100755
--- a/testcases/kernel/fs/fs_bind/bind/test16
+++ b/testcases/kernel/fs/fs_bind/bind/test16
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,19 +40,19 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --bind parent1 share1
 	mount --bind "$disk1" parent1/child1/x
-	
+
 	mkdir parent2/child2
 	mount --bind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test16: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -69,8 +69,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/bind/test17 b/testcases/kernel/fs/fs_bind/bind/test17
index 2fdb128..828625a 100755
--- a/testcases/kernel/fs/fs_bind/bind/test17
+++ b/testcases/kernel/fs/fs_bind/bind/test17
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -41,30 +41,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind "$disk1" share1
 	mount --bind share1 parent1
-	
-	mount --bind parent1 parent2 
+
+	mount --bind parent1 parent2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	check parent1 share1 parent2
 	mount --bind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --bind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --bind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test17: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -85,7 +85,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -95,6 +95,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test17: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test18 b/testcases/kernel/fs/fs_bind/bind/test18
index 3323c33..1cb06c4 100755
--- a/testcases/kernel/fs/fs_bind/bind/test18
+++ b/testcases/kernel/fs/fs_bind/bind/test18
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind "$disk1" share1
 	mount --bind share1 parent1
-	
-	mount --bind parent1 parent2 
+
+	mount --bind parent1 parent2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	check parent1 share1 parent2
 	mount --bind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --bind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --bind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test18: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test18: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test19 b/testcases/kernel/fs/fs_bind/bind/test19
index c35d4e6..fdec5c3 100755
--- a/testcases/kernel/fs/fs_bind/bind/test19
+++ b/testcases/kernel/fs/fs_bind/bind/test19
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,39 +39,39 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	####### SETUP ###### 
-	
-	
-	
+
+	####### SETUP ######
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --bind "$disk1" share1
 	mount --bind share1 parent1
 	mount --bind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
-	###### BODY ###### 
-	mount --bind parent1 parent2 
+
+	###### BODY ######
+	mount --bind parent1 parent2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
-	##### VERIFICATION ###### 
+
+	##### VERIFICATION ######
 	check parent1 share1 parent2
 	mount --bind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --bind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --bind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
-	##### CLEANUP ###### 
+
+	##### CLEANUP ######
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test19: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -94,7 +94,7 @@
 	umount parent1
 	umount share1
 	umount share2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -104,6 +104,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test19: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test20 b/testcases/kernel/fs/fs_bind/bind/test20
index 8c09a30..57f091b 100755
--- a/testcases/kernel/fs/fs_bind/bind/test20
+++ b/testcases/kernel/fs/fs_bind/bind/test20
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind "$disk1" share1
 	mount --bind share1 parent1
-	
-	mount --bind parent1 parent2 
+
+	mount --bind parent1 parent2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	check parent1 share1 parent2
 	mount --bind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --bind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --bind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test20: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test20: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test21 b/testcases/kernel/fs/fs_bind/bind/test21
index ab0bf88..dfba4e7 100755
--- a/testcases/kernel/fs/fs_bind/bind/test21
+++ b/testcases/kernel/fs/fs_bind/bind/test21
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,41 +40,41 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	"${FS_BIND_ROOT}/bin/makedir" share dir1  
-	
+
+
+	"${FS_BIND_ROOT}/bin/makedir" share dir1
+
 	mkdir dir1/x dir2 dir3 dir4
-	
+
 	mount --bind dir1 dir2
 	"${FS_BIND_ROOT}/bin/makedir" slave dir2
-	"${FS_BIND_ROOT}/bin/makedir" -n share dir2 
-	
+	"${FS_BIND_ROOT}/bin/makedir" -n share dir2
+
 	mount --bind dir2 dir3
 	"${FS_BIND_ROOT}/bin/makedir" slave dir3
-	"${FS_BIND_ROOT}/bin/makedir" -n share dir3 
-	
+	"${FS_BIND_ROOT}/bin/makedir" -n share dir3
+
 	mount --bind dir3 dir4
 	"${FS_BIND_ROOT}/bin/makedir" slave dir4
-	
+
 	mount --bind "$disk1" dir1/x
-	
+
 	check dir1/x dir2/x dir3/x dir4/x
-	
+
 	mount --bind "$disk2" dir2/x/a
 	check -n dir1/x/a dir2/x/a
 	check dir2/x/a dir3/x/a dir4/x/a
-	
+
 	mount --bind "$disk3" dir3/x/b
 	check -n dir1/x/b dir3/x/b
 	check -n dir2/x/b dir3/x/b
 	check dir3/x/b dir4/x/b
-	
+
 	mount --bind "$disk4" dir4/x/c
 	check -n dir1/x/c dir4/x/c
 	check -n dir2/x/c dir4/x/c
 	check -n dir3/x/c dir4/x/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test21: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -94,9 +94,9 @@
 	umount dir2
 	umount dir3
 	umount dir4
-	
+
 	rm -rf dir*
-	
+
 	cleanup
 } >& /dev/null
 
diff --git a/testcases/kernel/fs/fs_bind/bind/test22 b/testcases/kernel/fs/fs_bind/bind/test22
index cb6a477..027dceb 100755
--- a/testcases/kernel/fs/fs_bind/bind/test22
+++ b/testcases/kernel/fs/fs_bind/bind/test22
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child2
-	
-	mount --bind parent parent/child2/ 
-	
+
+	mount --bind parent parent/child2/
+
 	check parent parent/child2/
-	
+
 	mount --bind "$disk3" parent/child2/child1
-	
+
 	check parent/child1 parent/child2/child1
-	
+
 	 umount parent/child2/child1
-	
+
 	check parent/child1 parent/child2/child1
-	
+
 	mount --bind "$disk4" parent/child2/child1
-	
+
 	check parent/child1 parent/child2/child1
-	
+
 	 umount parent/child1
-	
+
 	check parent/child1 parent/child2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test22: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -79,9 +79,9 @@
 	umount parent/child2
 	umount parent/child2
 	umount parent
-	
+
 	rm -rf parent
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -90,6 +90,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test22: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test23 b/testcases/kernel/fs/fs_bind/bind/test23
index de605fe..b6a8679 100755
--- a/testcases/kernel/fs/fs_bind/bind/test23
+++ b/testcases/kernel/fs/fs_bind/bind/test23
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,22 +39,22 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	mkdir mnt mnt/1 mnt/2 mnt/1/abc tmp1 tmp1/3 tmp2 
-	
+
+	mkdir mnt mnt/1 mnt/2 mnt/1/abc tmp1 tmp1/3 tmp2
+
 	mount --bind mnt mnt
 	"${FS_BIND_ROOT}/bin/makedir" share mnt/1 mnt/1
 	mount --bind mnt/1 mnt/2
 	mount --bind "$disk1" mnt/1/abc
-	
+
 	check mnt/1/abc mnt/2/abc "$disk1"
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share tmp1
 	mount --bind tmp1 tmp2
-	
+
 	mount --move mnt tmp1/3
 	check tmp1/3/1/abc tmp2/3/1/abc tmp2/3/2/abc "$disk1"
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test23: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -72,10 +72,10 @@
 	umount tmp1
 	umount tmp1
 	umount tmp2
-	
+
 	rm -rf mnt tmp1 tmp2
-	
-	
+
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -84,6 +84,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test23: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/bind/test24 b/testcases/kernel/fs/fs_bind/bind/test24
index 291f7ab..59f70c6 100755
--- a/testcases/kernel/fs/fs_bind/bind/test24
+++ b/testcases/kernel/fs/fs_bind/bind/test24
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,22 +39,22 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir1
-	mkdir dir1/1 dir1/1/2 dir1/1/2/3 dir1/1/2/check dir2 dir3 dir4 
+	mkdir dir1/1 dir1/1/2 dir1/1/2/3 dir1/1/2/check dir2 dir3 dir4
 	touch dir4/ls
-	
+
 	mount --bind dir1/1/2 dir2
 	"${FS_BIND_ROOT}/bin/makedir" slave dir1
 	"${FS_BIND_ROOT}/bin/makedir" -n share dir1
-	
+
 	mount --bind dir1/1/2/3 dir3
 	"${FS_BIND_ROOT}/bin/makedir" slave dir1
-	
+
 	mount --bind dir4 dir2/check
-	
+
 	check dir1/1/2/check/ dir4
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "bind/test24: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -69,11 +69,11 @@
 	umount dir3
 	umount dir2
 	umount dir1
-	
-	
+
+
 	rm -rf dir*
-	
-	
+
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -82,6 +82,6 @@
 	exit 1
 else
 	tst_resm TPASS "bind/test24: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/child05 b/testcases/kernel/fs/fs_bind/cloneNS/child05
index 870d584..a82cbb2 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/child05
+++ b/testcases/kernel/fs/fs_bind/cloneNS/child05
@@ -34,7 +34,7 @@
 mount --bind "$disk4" parent/child2/child1/c
 check parent/child2/child1/c parent/child1/c
 
-umount parent/child1/b 
+umount parent/child1/b
 check parent/child2/child1/b parent/child1/b
 
 
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/parent01 b/testcases/kernel/fs/fs_bind/cloneNS/parent01
index 880a3ff..afeb5bf 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/parent01
+++ b/testcases/kernel/fs/fs_bind/cloneNS/parent01
@@ -27,7 +27,7 @@
 
 result=0
 
-ls 
+ls
 ls dir*
 mount --bind "$disk2" dir2/a
 check dir1/a dir2/a
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/parent02 b/testcases/kernel/fs/fs_bind/cloneNS/parent02
index 49e94ab..56b3c90 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/parent02
+++ b/testcases/kernel/fs/fs_bind/cloneNS/parent02
@@ -27,7 +27,7 @@
 
 result=0
 
-ls 
+ls
 ls dir*
 mount --bind "$disk2" dir1/a
 check dir1/a dir2/a
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test01 b/testcases/kernel/fs/fs_bind/cloneNS/test01
index 1136698..a4fda7d 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test01
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test01
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,19 +40,19 @@
 
 	cp "${FS_BIND_ROOT}/cloneNS/parent01" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child01" .
-	
+
 	chmod 755 parent01 child01
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir1
 	"${FS_BIND_ROOT}/bin/makedir" share dir2
-	
-	
+
+
 	mount --bind "$disk1" dir1
-	
+
 	mount --bind dir1 dir2
-	
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent01 ./child01 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test01: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -69,9 +69,9 @@
 	umount dir1
 	umount dir1
 	umount dir2
-	
+
 	rm -rf dir* parent* child*
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -80,6 +80,6 @@
 	exit 1
 else
 	tst_resm TPASS "cloneNS/test01: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test02 b/testcases/kernel/fs/fs_bind/cloneNS/test02
index 6733b1a..6204513 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test02
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test02
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -41,18 +41,18 @@
 
 	cp "${FS_BIND_ROOT}/cloneNS/parent02" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child02" .
-	
+
 	chmod 755 parent02 child02
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir1
 	mount --bind "$disk1" dir1
-	
+
 	mkdir dir2
 	mount --bind dir1 dir2
 	"${FS_BIND_ROOT}/bin/makedir" slave dir2
-	
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent02 ./child02 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test02: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -69,9 +69,9 @@
 	umount dir2
 	umount dir1
 	umount dir1
-	
+
 	rm -rf dir* parent* child*
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -80,6 +80,6 @@
 	exit 1
 else
 	tst_resm TPASS "cloneNS/test02: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test03 b/testcases/kernel/fs/fs_bind/cloneNS/test03
index d1efbc1..8db2c78 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test03
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test03
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,15 +40,15 @@
 
 	cp "${FS_BIND_ROOT}/cloneNS/parent03" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child03" .
-	
+
 	chmod 755 parent03 child03
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone dir1
 	mount --bind "$disk1" dir1
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent03 ./child03 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test03: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -61,9 +61,9 @@
 {
 	umount dir1
 	umount dir1
-	
+
 	rm -rf dir* parent* child*
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -72,6 +72,6 @@
 	exit 1
 else
 	tst_resm TPASS "cloneNS/test03: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test04 b/testcases/kernel/fs/fs_bind/cloneNS/test04
index 0a274c2..2605fbe 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test04
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test04
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,15 +40,15 @@
 
 	cp "${FS_BIND_ROOT}/cloneNS/parent04" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child04" .
-	
+
 	chmod 755 parent04 child04
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv dir1
 	mount --bind "$disk1" dir1
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent04 ./child04 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test04: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -62,9 +62,9 @@
 	umount dir1/a
 	umount dir1
 	umount dir1
-	
+
 	rm -rf dir* parent* child*
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -73,6 +73,6 @@
 	exit 1
 else
 	tst_resm TPASS "cloneNS/test04: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test05 b/testcases/kernel/fs/fs_bind/cloneNS/test05
index d111dda..d03ac29 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test05
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test05
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -41,20 +41,20 @@
 
 	cp "${FS_BIND_ROOT}/cloneNS/parent05" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child05" .
-	
+
 	chmod 755 parent05 child05
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child2
-	
+
 	mount --rbind "$disk1" parent/child1
-	
+
 	mount --rbind parent parent/child2/
-	
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent05 ./child05 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test05: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -73,18 +73,18 @@
 	umount parent/child2
 	umount parent/child2
 	umount parent
-	
+
 	rm -rf parent* child*
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
 then
-	tst_resm TFAIL "cloneNS/test05: FAILED: cloneNS: namespace with multi-level 
+	tst_resm TFAIL "cloneNS/test05: FAILED: cloneNS: namespace with multi-level
 chain of slaves"
 	exit 1
 else
 	tst_resm TPASS "cloneNS/test05: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test06 b/testcases/kernel/fs/fs_bind/cloneNS/test06
index 0b70459..b7af489 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test06
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test06
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -41,27 +41,27 @@
 
 	cp "${FS_BIND_ROOT}/cloneNS/parent06" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child06" .
-	
+
 	chmod 755 parent06 child06
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir1
-	
+
 	mkdir dir1/x dir2 dir3 dir4
-	
+
 	mount --rbind dir1 dir2
 	"${FS_BIND_ROOT}/bin/makedir" slave dir2
 	"${FS_BIND_ROOT}/bin/makedir" -n share dir2
-	
+
 	mount --rbind dir2 dir3
 	"${FS_BIND_ROOT}/bin/makedir" slave dir3
 	"${FS_BIND_ROOT}/bin/makedir" -n share dir3
-	
+
 	mount --rbind dir3 dir4
 	"${FS_BIND_ROOT}/bin/makedir" slave dir4
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent06 ./child06 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test06: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -79,18 +79,18 @@
 	umount dir3
 	umount dir2
 	umount dir1
-	
+
 	rm -rf parent* child* dir*
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
 then
-	tst_resm TFAIL "cloneNS/test06: FAILED: cloneNS: namespace with shared point bind mounted 
+	tst_resm TFAIL "cloneNS/test06: FAILED: cloneNS: namespace with shared point bind mounted
 within the same directory"
 	exit 1
 else
 	tst_resm TPASS "cloneNS/test06: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/cloneNS/test07 b/testcases/kernel/fs/fs_bind/cloneNS/test07
index d012e55..bf94912 100755
--- a/testcases/kernel/fs/fs_bind/cloneNS/test07
+++ b/testcases/kernel/fs/fs_bind/cloneNS/test07
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -43,20 +43,20 @@
 	cp "${FS_BIND_ROOT}/cloneNS/parent07" ./
 	cp "${FS_BIND_ROOT}/cloneNS/child07" .
 	chmod 755 parent07 child07
-	
+
 	mkdir parent1 parent2
 	mount --bind "$disk1" parent1
 	mount --make-rshared parent1 > /dev/null 2>&1 || "${FS_BIND_ROOT}/bin/smount" parent1 rshared
 	mount --bind parent1 parent2
-	
+
 	check parent1 parent2
-	
+
 	mount --move parent1 parent2/a
-	
+
 	check parent2 parent2/a parent2/a/a
-	
+
 	"${FS_BIND_ROOT}/bin/nsclone" ./parent07 ./child07 || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "cloneNS/test07: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -72,9 +72,9 @@
 	umount parent2/a
 	umount parent2
 	umount parent1
-	
-	
-	
+
+
+
 	rm -rf parent* child*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/move/test01 b/testcases/kernel/fs/fs_bind/move/test01
index 83e865a..8b799e6 100755
--- a/testcases/kernel/fs/fs_bind/move/test01
+++ b/testcases/kernel/fs/fs_bind/move/test01
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,26 +39,26 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind dir share1
 	mount --bind parent2 share2
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check parent2/child2/grandchild share1/grandchild share2/child2/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" share1/grandchild/a
-	
+
 	check parent2/child2/grandchild/a share1/grandchild/a share2/child2/grandchild/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test01: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -78,7 +78,7 @@
 	umount share2
 	umount share2
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -88,6 +88,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test01: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test02 b/testcases/kernel/fs/fs_bind/move/test02
index 906e294..18de6d4 100755
--- a/testcases/kernel/fs/fs_bind/move/test02
+++ b/testcases/kernel/fs/fs_bind/move/test02
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 #
 # Copyright (c) International Business Machines  Corp., 2005
 # Author: Avantika Mathur (mathurav@us.ibm.com)
@@ -39,28 +39,28 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
-	
+
+
 	mount --bind dir share1
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	mount --move dir parent2/child2
 	mount --bind parent2 share2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check parent2/child2/grandchild share1/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share2/child2/grandchild parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" share1/grandchild/a
-	
+
 	check parent2/child2/grandchild/a share1/grandchild/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test02: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -79,7 +79,7 @@
 	umount share2
 	umount share2
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -89,6 +89,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test02: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test03 b/testcases/kernel/fs/fs_bind/move/test03
index 1de172c..e2960e3 100755
--- a/testcases/kernel/fs/fs_bind/move/test03
+++ b/testcases/kernel/fs/fs_bind/move/test03
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,29 +39,29 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --bind dir share1
 	mount --bind share2 parent2
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check parent2/child2/grandchild share1/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share2/child2/grandchild parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" share1/grandchild/a
-	
+
 	check parent2/child2/grandchild/a share1/grandchild/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test03: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -82,7 +82,7 @@
 	umount share1
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -92,6 +92,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test03: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test04 b/testcases/kernel/fs/fs_bind/move/test04
index 8694823..0715d68 100755
--- a/testcases/kernel/fs/fs_bind/move/test04
+++ b/testcases/kernel/fs/fs_bind/move/test04
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,25 +39,25 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
-	
+
+
 	mount --bind dir share1
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check parent2/child2/grandchild share1/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" share1/grandchild/a
-	
+
 	check parent2/child2/grandchild/a share1/grandchild/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test04: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -74,7 +74,7 @@
 	umount share1
 	umount share1
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -84,6 +84,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test04: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test05 b/testcases/kernel/fs/fs_bind/move/test05
index 9888b05..21901d0 100755
--- a/testcases/kernel/fs/fs_bind/move/test05
+++ b/testcases/kernel/fs/fs_bind/move/test05
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,27 +39,27 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind parent2 share2
 	mkdir dir/grandchild
 	mount --bind dir share1
 	mkdir parent2/child2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check parent2/child2/grandchild share2/child2/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share1/grandchild parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" share2/child2/grandchild/a
-	
+
 	check parent2/child2/grandchild/a share2/child2/grandchild/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test05: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -79,7 +79,7 @@
 	umount share1
 	umount share2
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -89,6 +89,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test05: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test06 b/testcases/kernel/fs/fs_bind/move/test06
index 2b75760..a7aed3c 100755
--- a/testcases/kernel/fs/fs_bind/move/test06
+++ b/testcases/kernel/fs/fs_bind/move/test06
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,23 +39,23 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv dir
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mount --bind dir share1
 	mkdir parent2/child2
 	mount --bind parent2 share2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check -n parent2/child2/grandchild share2/child2/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share1/grandchild parent2/child2/grandchild
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test06: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -73,7 +73,7 @@
 	umount share2
 	umount share2
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -83,6 +83,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test06: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test07 b/testcases/kernel/fs/fs_bind/move/test07
index 73387cd..afe81b6 100755
--- a/testcases/kernel/fs/fs_bind/move/test07
+++ b/testcases/kernel/fs/fs_bind/move/test07
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,24 +39,24 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mount --bind dir share1
 	mkdir parent2/child2
 	mount --bind parent2 share2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check -n parent2/child2/grandchild share2/child2/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share1/grandchild parent2/child2/grandchild
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test07: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -76,7 +76,7 @@
 	umount share2
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -86,6 +86,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test07: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test08 b/testcases/kernel/fs/fs_bind/move/test08
index 7098f0c..21f419b 100755
--- a/testcases/kernel/fs/fs_bind/move/test08
+++ b/testcases/kernel/fs/fs_bind/move/test08
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,20 +39,20 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv dir
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mount --bind dir share1
 	mkdir parent2/child2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share1/grandchild parent2/child2/grandchild
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test08: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -70,7 +70,7 @@
 	umount share1
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -80,6 +80,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test08: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test09 b/testcases/kernel/fs/fs_bind/move/test09
index d03d269..8f7c254 100755
--- a/testcases/kernel/fs/fs_bind/move/test09
+++ b/testcases/kernel/fs/fs_bind/move/test09
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind parent2 share2
 	mkdir dir/grandchild
 	mount --bind dir share1
 	"${FS_BIND_ROOT}/bin/makedir" slave dir
 	mkdir parent2/child2
 	mount --move dir parent2/child2
-	
+
 	mount --bind "$disk1" parent2/child2/grandchild
 	check parent2/child2/grandchild share2/child2/grandchild
 	check -n dir/grandchild parent2/child2/grandchild
 	check -n share1/grandchild parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" share2/child2/grandchild/a
-	
+
 	check parent2/child2/grandchild/a share2/child2/grandchild/a
-	
+
 	mkdir share1/test
-	
+
 	check parent2/child2 share1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test09: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,7 +84,7 @@
 	umount share2
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -94,6 +94,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test09: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test10 b/testcases/kernel/fs/fs_bind/move/test10
index 7f2d832..93e2036 100755
--- a/testcases/kernel/fs/fs_bind/move/test10
+++ b/testcases/kernel/fs/fs_bind/move/test10
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,31 +39,31 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mount --bind dir share1
 	"${FS_BIND_ROOT}/bin/makedir" slave dir
 	mkdir parent2/child2
 	mount --bind parent2 share2
-	
+
 	mount --move dir parent2/child2
 	check -n parent2/child2 share2/child2
-	
+
 	mount --bind "$disk1" share1/grandchild
 	check parent2/child2/grandchild share1/grandchild
 	check -n dir/grandchild/ parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" parent2/child2/grandchild/a
 	check -n share1/grandchild/a parent2/child2/grandchild/a
-	
-	
-	
-	
+
+
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test10: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -75,7 +75,7 @@
 trap '' ERR
 {
 	umount parent2/child2/grandchild/a
-	umount share1/grandchild # also does umount parent2/child2/grandchild 
+	umount share1/grandchild # also does umount parent2/child2/grandchild
 	umount parent2/child2
 	umount dir # if move fails
 	umount share2
@@ -84,8 +84,8 @@
 	umount share2
 	umount parent2
 	umount dir
-	
-	
+
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -95,6 +95,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test10: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test11 b/testcases/kernel/fs/fs_bind/move/test11
index 66e0eba..9392f9b 100755
--- a/testcases/kernel/fs/fs_bind/move/test11
+++ b/testcases/kernel/fs/fs_bind/move/test11
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mount --bind dir share1
 	"${FS_BIND_ROOT}/bin/makedir" slave dir
 	mkdir parent2/child2
 	mount --bind parent2 share2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	mount --move dir parent2/child2
 	check -n parent2/child2 share2/child2
-	
+
 	mount --bind "$disk1" share1/grandchild
 	check parent2/child2/grandchild share1/grandchild
 	check -n dir/grandchild/ parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" parent2/child2/grandchild/a
 	check -n share1/grandchild/a parent2/child2/grandchild/a
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test11: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount share2
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test11: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test12 b/testcases/kernel/fs/fs_bind/move/test12
index 3735b03..0803fb8 100755
--- a/testcases/kernel/fs/fs_bind/move/test12
+++ b/testcases/kernel/fs/fs_bind/move/test12
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,31 +39,31 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share dir
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mount --bind dir share1
 	"${FS_BIND_ROOT}/bin/makedir" slave dir
 	mkdir parent2/child2
 	mount --bind parent2 share2 2> /dev/null && /bin/false || /bin/true #mount should fail
-	
-	mount --move dir parent2/child2 
+
+	mount --move dir parent2/child2
 	check -n parent2/child2 share2/child2
-	
+
 	mount --bind "$disk1" share1/grandchild
 	check parent2/child2/grandchild share1/grandchild
 	check -n dir/grandchild/ parent2/child2/grandchild
-	
+
 	mount --bind "$disk2" parent2/child2/grandchild/a
 	check -n share1/grandchild/a parent2/child2/grandchild/a
-	
-	
-	
-	
+
+
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test12: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount share2
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test12: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test13 b/testcases/kernel/fs/fs_bind/move/test13
index d958ca6..7d92c06 100755
--- a/testcases/kernel/fs/fs_bind/move/test13
+++ b/testcases/kernel/fs/fs_bind/move/test13
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,16 +39,16 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --bind parent2 share2
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	mount --move dir parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test13: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -65,7 +65,7 @@
 	umount share2
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -75,6 +75,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test13: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test14 b/testcases/kernel/fs/fs_bind/move/test14
index 98e40a9..cc6d114 100755
--- a/testcases/kernel/fs/fs_bind/move/test14
+++ b/testcases/kernel/fs/fs_bind/move/test14
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,18 +39,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone dir
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	mount --move dir parent2/child2
-	
+
 	mount --bind parent2 share2
 	check  -n parent2/child2/ share2/child2/
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test14: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -67,7 +67,7 @@
 	umount share2
 	umount parent2
 	umount dir
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -77,6 +77,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test14: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test15 b/testcases/kernel/fs/fs_bind/move/test15
index a2933ea..cf98720 100755
--- a/testcases/kernel/fs/fs_bind/move/test15
+++ b/testcases/kernel/fs/fs_bind/move/test15
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,19 +39,19 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone dir
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --bind parent2 share2
 	mkdir dir/grandchild
 	mkdir parent2/child2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	mount --move dir parent2/child2
 	check  -n parent2/child2/ share2/child2/
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test15: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -67,7 +67,7 @@
 	umount share2
 	umount share2
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -77,6 +77,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test15: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test16 b/testcases/kernel/fs/fs_bind/move/test16
index a4fd049..4457cb9 100755
--- a/testcases/kernel/fs/fs_bind/move/test16
+++ b/testcases/kernel/fs/fs_bind/move/test16
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,18 +39,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone dir
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mkdir dir/grandchild
 	mkdir parent2/child2
-	
+
 	mount --move dir parent2/child2
 	result=$?
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test16: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -65,7 +65,7 @@
 	umount dir # if the move fails
 	umount share1
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -75,6 +75,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test16: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test17 b/testcases/kernel/fs/fs_bind/move/test17
index f44dba9..093d0a8 100755
--- a/testcases/kernel/fs/fs_bind/move/test17
+++ b/testcases/kernel/fs/fs_bind/move/test17
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,15 +39,15 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
-	
+
 	mkdir parent2/child2
-	
+
 	mount --move parent1/child1 parent2/child2 2> /dev/null || result=$?
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test17: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -62,7 +62,7 @@
 	umount parent2/child2 # if the move succeeded
 	umount parent2
 	umount parent1
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -72,6 +72,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test17: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test18 b/testcases/kernel/fs/fs_bind/move/test18
index 2aad29e..91eab3e 100755
--- a/testcases/kernel/fs/fs_bind/move/test18
+++ b/testcases/kernel/fs/fs_bind/move/test18
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,33 +39,33 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --bind parent1/child1 share1
 	mount --bind "$disk1" parent1/child1
-	
+
 	mount --move parent1 parent2
-	
+
 	check parent2/child1 share1
-	
+
 	#
 	mount --bind "$disk2" parent2/child1/a
 	check parent2/child1/a share1/a
-	
+
 	mount --bind "$disk3" share1/b
 	check parent2/child1/b share1/b
-	
+
 	 umount parent2/child1/a #share1/a
 	check parent2/child1/a share1/a
-	
+
 	 umount parent2/child1/b #share1/b
 	check parent2/child1/b share1/b
 	#
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test18: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -78,15 +78,15 @@
 {
 	umount parent2/child1
 	umount parent2/child1
-	
+
 	umount parent1/child1
 	umount share1
-	
+
 	umount share1
 	umount parent1/child1
 	umount parent2
 	umount parent1
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -96,6 +96,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test18: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test19 b/testcases/kernel/fs/fs_bind/move/test19
index 8a8d3aa..44da819 100755
--- a/testcases/kernel/fs/fs_bind/move/test19
+++ b/testcases/kernel/fs/fs_bind/move/test19
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,27 +39,27 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	mkdir parent1/child1
-	
+
 	mount --bind "$disk1" share1
 	mount --bind share1 parent1/child1
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	mount --move parent1 parent2
-	
+
 	check parent2/child1 share1
-	
+
 	mount --bind "$disk2" parent2/child1/a
 	check -n parent2/child1/a share1/a
-	
+
 	mount --bind "$disk3" share1/b
 	check parent2/child1/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test19: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -70,9 +70,9 @@
 fi
 trap '' ERR
 {
-	umount parent2/child1/b 
+	umount parent2/child1/b
 	check -n parent2/child1/b share1/b
-	
+
 	umount parent2/child1/a
 	umount parent2/child1
 	umount share1/b
@@ -80,7 +80,7 @@
 	umount share1
 	umount parent1
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -90,6 +90,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test19: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test20 b/testcases/kernel/fs/fs_bind/move/test20
index c7887ec..7af2ab0 100755
--- a/testcases/kernel/fs/fs_bind/move/test20
+++ b/testcases/kernel/fs/fs_bind/move/test20
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,17 +39,17 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
-	
+
 	mount --bind "$disk1" parent1/child1
-	
+
 	mount --move parent1 parent2
-	
+
 	check "$disk1" parent2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test20: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -64,7 +64,7 @@
 	umount parent2/child1
 	umount parent1
 	umount parent2
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -74,6 +74,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test20: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test21 b/testcases/kernel/fs/fs_bind/move/test21
index f9a18b7..954e0fb 100755
--- a/testcases/kernel/fs/fs_bind/move/test21
+++ b/testcases/kernel/fs/fs_bind/move/test21
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,26 +39,26 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	mkdir parent1 parent2
 	mount --bind "$disk1" parent1
 	mount --make-rshared parent1 > /dev/null 2>&1 || "${FS_BIND_ROOT}/bin/smount" parent1 rshared
 	mount --bind parent1 parent2
-	
+
 	check parent1 parent2
-	
+
 	mount --move parent1 parent2/a
-	
+
 	check parent2 parent2/a parent2/a/a
-	
+
 	mount --bind "$disk2" parent2/b
-	
+
 	check parent2/b parent2/a/b parent2/a/a/b
-	
-	mount --bind "$disk3" parent2/a/c 
-	
+
+	mount --bind "$disk3" parent2/a/c
+
 	check parent2/c parent2/a/c parent2/a/a/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test21: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -70,15 +70,15 @@
 trap '' ERR
 {
 	umount parent2/a/a/c
-	
+
 	check parent2/c parent2/a/c parent2/a/a/c
-	
+
 	umount parent2/b
 	umount parent2/a/a
 	umount parent2/a
 	umount parent2
 	umount parent1
-	
+
 	rm -rf dir parent* share*
 	cleanup
 } >& /dev/null
@@ -88,6 +88,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test21: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/move/test22 b/testcases/kernel/fs/fs_bind/move/test22
index 4cde825..ebdd50a 100755
--- a/testcases/kernel/fs/fs_bind/move/test22
+++ b/testcases/kernel/fs/fs_bind/move/test22
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,23 +39,23 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	mkdir parent1/a parent2
 	mount --bind parent1 parent2
-	
+
 	check parent1 parent2
-	
+
 	mount --move parent1 parent2/a
-	
+
 	check parent2 parent2/a parent2/a/a
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share tmp1
 	mkdir tmp2 tmp1/1
-	
+
 	mount --bind tmp1 tmp2
 	mount --move parent2  tmp1/1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "move/test22: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -72,7 +72,7 @@
 	umount tmp1
 	umount tmp1
 	umount tmp2
-	
+
 	rm -rf dir parent* tmp1 tmp2
 	cleanup
 } >& /dev/null
@@ -82,6 +82,6 @@
 	exit 1
 else
 	tst_resm TPASS "move/test22: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test01 b/testcases/kernel/fs/fs_bind/rbind/test01
index 9b7a71e..cb574ad 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test01
+++ b/testcases/kernel/fs/fs_bind/rbind/test01
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,31 +39,31 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent2 share2
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent2 share2
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check parent1/child1/a parent2/child2/a share2/child2/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check parent1/child1/b parent2/child2/b share2/child2/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test01: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test01: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test02 b/testcases/kernel/fs/fs_bind/rbind/test02
index 64c7600..3ab7b6c 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test02
+++ b/testcases/kernel/fs/fs_bind/rbind/test02
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -38,32 +38,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 share1
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 share1
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check parent1/child1/a parent2/child2/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check parent1/child1/b parent2/child2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test02: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test03 b/testcases/kernel/fs/fs_bind/rbind/test03
index 48bfa70..6838ffc 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test03
+++ b/testcases/kernel/fs/fs_bind/rbind/test03
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,42 +40,42 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
 	mkdir parent2
-	
+
 	mount --rbind parent1/child1 share1
 	mount --rbind "$disk1" parent1/child1
 	mount --rbind "$disk2" share2
 	mount --rbind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" share2 parent2
-	
-	
+
+
 	mkdir parent2/child2
 	ls share2
-	
+
 	mount --rbind parent1/child1 share1
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" parent1/child1 share1 parent2/child2
-	
+
 	mount --rbind "$disk3" parent1/child1/a
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" parent1/child1/a parent2/child2/a share1/a
 	"${FS_BIND_ROOT}/bin/check_prop" -n parent2/child2 share2/child2
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	"${FS_BIND_ROOT}/bin/check_prop" -n parent2/child2 share2/child2
 	"${FS_BIND_ROOT}/bin/check_prop" parent1/child1/b parent2/child2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test03: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -99,7 +99,7 @@
 	umount share2
 	umount parent1
 	umount parent2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test04 b/testcases/kernel/fs/fs_bind/rbind/test04
index cd54e04..5cdd920 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test04
+++ b/testcases/kernel/fs/fs_bind/rbind/test04
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,34 +39,34 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	
-	
+
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 share1
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 share1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check parent1/child1/a parent2/child2/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check parent1/child1/b parent2/child2/b share1/b
-	
+
 	mount --rbind "$disk4" share1/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test04: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -87,8 +87,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test05 b/testcases/kernel/fs/fs_bind/rbind/test05
index 5688d1d..a23cbc1 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test05
+++ b/testcases/kernel/fs/fs_bind/rbind/test05
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,39 +40,39 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1
 	mount --rbind parent2 share2
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2 share2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check parent2/child2/c share2/child2/c
-	
+
 	mount --rbind "$disk4" share2/child2/c
-	
+
 	check -n parent1/child1/c parent2/child2/c
 	check parent2/child2/c share2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test05: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -95,8 +95,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test06 b/testcases/kernel/fs/fs_bind/rbind/test06
index 7001ad4..71efc54 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test06
+++ b/testcases/kernel/fs/fs_bind/rbind/test06
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n  parent1/child1 share1/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test06: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,8 +84,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test07 b/testcases/kernel/fs/fs_bind/rbind/test07
index c315955..c35b1e0 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test07
+++ b/testcases/kernel/fs/fs_bind/rbind/test07
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,40 +39,40 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mount --rbind "$disk2" share2
 	mount --rbind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	#mount --rbind "$disk2" share2
-	
+
 	mkdir parent2/child2
 	check parent2 share2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
 	check -n parent2/child2 share2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n  parent1/child1 share1/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test07: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -95,8 +95,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test07-2 b/testcases/kernel/fs/fs_bind/rbind/test07-2
index 2d7c63e..580bb0e 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test07-2
+++ b/testcases/kernel/fs/fs_bind/rbind/test07-2
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 SETS_DEFAULTS="${TCID=test07-2} ${TST_COUNT=1} ${TST_TOTAL=1}"
 declare -r TCID
@@ -20,20 +20,20 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --rbind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	mount --rbind "$disk1" share2
-	
+
 	check parent2 share2
-	
+
 	mount --rbind "$disk2" parent2/a
-	
+
 	check -n parent2/a share2/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test07-2: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -48,11 +48,11 @@
 	umount parent2
 	umount parent2
 	umount parent2
-	
+
 	umount share2
 	umount share2
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test08 b/testcases/kernel/fs/fs_bind/rbind/test08
index efdd5b4..3aa1851 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test08
+++ b/testcases/kernel/fs/fs_bind/rbind/test08
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,32 +40,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1
-	
+
 	check -n  parent1/child1 share1/child1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n  parent1/child1 share1/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test08: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -85,8 +85,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test09 b/testcases/kernel/fs/fs_bind/rbind/test09
index 79910b4..9b9555a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test09
+++ b/testcases/kernel/fs/fs_bind/rbind/test09
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,40 +39,40 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind parent2 share2
 	mount --rbind share1 parent1/child1
 	mount --rbind "$disk1" share1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	check parent1/child1 share1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check parent2/child2/b share2/child2/b
-	
+
 	mount --rbind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test09: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -95,8 +95,8 @@
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test10 b/testcases/kernel/fs/fs_bind/rbind/test10
index ffa2e44..5e24509 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test10
+++ b/testcases/kernel/fs/fs_bind/rbind/test10
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,37 +39,37 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind share1 parent1/child1
 	mount --rbind "$disk1" share1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	check parent1/child1 share1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
-	
+
 	mount --rbind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test10: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -90,8 +90,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test11 b/testcases/kernel/fs/fs_bind/rbind/test11
index 6576f3c..d79c097 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test11
+++ b/testcases/kernel/fs/fs_bind/rbind/test11
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,36 +39,36 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind parent2 share2
 	mount --rbind share1 parent1/child1
 	mount --rbind "$disk1" share1
 	mount --rbind "$disk2" share2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	mkdir parent2/child2
-	
+
 	check parent1/child1 share1
 	check parent2 share2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk3" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk4" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
 	check -n parent2/child2 share2/child2
 	break
@@ -82,11 +82,11 @@
 trap '' ERR
 {
 	umount parent2/child2/b
-	
+
 	mount --rbind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	umount parent1/child1/a
 	umount share1/c
 	umount parent2/child2
@@ -99,8 +99,8 @@
 	umount parent2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test12 b/testcases/kernel/fs/fs_bind/rbind/test12
index 79d5e93..dfe5a2a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test12
+++ b/testcases/kernel/fs/fs_bind/rbind/test12
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,37 +39,37 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --rbind share1 parent1/child1
 	mount --rbind "$disk1" share1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
+
 	check parent1/child1 share1
-	
+
 	mkdir parent2/child2
-	
+
 	mount --rbind parent1/child1 parent2/child2
-	
+
 	check parent1/child1 parent2/child2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n  parent1/child1/a parent2/child2/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child2/b
-	
+
 	check -n parent1/child1/b parent2/child2/b
-	
+
 	mount --rbind "$disk4" share1/c
 	check share1/c parent1/child1/c
 	check parent1/child1/c parent2/child2/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test12: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -90,8 +90,8 @@
 	umount parent2
 	umount share1
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test13 b/testcases/kernel/fs/fs_bind/rbind/test13
index 0c8e16b..4069741 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test13
+++ b/testcases/kernel/fs/fs_bind/rbind/test13
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,20 +40,20 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --rbind parent1 share1
 	mount --rbind parent2 share2
 	mount --rbind "$disk1" parent1/child1/x
 	mkdir parent2/child2
 	mount --rbind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test13: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -66,18 +66,18 @@
 {
 	umount parent1/child1/x
 	umount parent1/child1
-	
+
 	rm -rf parent1/child1
 	rm -rf parent2/child2
-	
+
 	umount share1
 	umount share1
 	umount share2
 	umount share2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test14 b/testcases/kernel/fs/fs_bind/rbind/test14
index 3e0ea06..0b60334 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test14
+++ b/testcases/kernel/fs/fs_bind/rbind/test14
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,18 +40,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1/x
 	mkdir parent2/child2
 	mount --rbind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test14: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -68,8 +68,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test15 b/testcases/kernel/fs/fs_bind/rbind/test15
index 697f7f7..79ba311 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test15
+++ b/testcases/kernel/fs/fs_bind/rbind/test15
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,25 +40,25 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1/x
 	mount --rbind "$disk2" share2
 	mount --rbind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	check parent2 share2
-	
+
 	mkdir parent2/child2
 	mount --rbind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test15: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -79,8 +79,8 @@
 	umount parent2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test16 b/testcases/kernel/fs/fs_bind/rbind/test16
index f2574e2..b916ec6 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test16
+++ b/testcases/kernel/fs/fs_bind/rbind/test16
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,19 +40,19 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mkdir parent1/child1/x
-	
+
 	mount --rbind parent1 share1
 	mount --rbind "$disk1" parent1/child1/x
-	
+
 	mkdir parent2/child2
 	mount --rbind parent1/child1 parent2/child2 2> /dev/null || result=$? # mount should fail
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test16: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -69,8 +69,8 @@
 	umount share1
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
diff --git a/testcases/kernel/fs/fs_bind/rbind/test17 b/testcases/kernel/fs/fs_bind/rbind/test17
index 23b708e..fbf83f5 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test17
+++ b/testcases/kernel/fs/fs_bind/rbind/test17
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --rbind "$disk1" share1
 	mount --rbind share1 parent1
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	mount --rbind parent1 parent2 
-	
+	mount --rbind parent1 parent2
+
 	check parent1 share1 parent2
 	mount --rbind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --rbind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --rbind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test17: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test17: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test18 b/testcases/kernel/fs/fs_bind/rbind/test18
index a5cf3be..4eba0ed 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test18
+++ b/testcases/kernel/fs/fs_bind/rbind/test18
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --rbind "$disk1" share1
 	mount --rbind share1 parent1
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	mount --rbind parent1 parent2 
-	
+	mount --rbind parent1 parent2
+
 	check parent1 share1 parent2
 	mount --rbind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --rbind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --rbind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test18: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test18: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test19 b/testcases/kernel/fs/fs_bind/rbind/test19
index e45bfb5..078ee28 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test19
+++ b/testcases/kernel/fs/fs_bind/rbind/test19
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,38 +39,38 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	####### SETUP ###### 
-	
-	
-	
+
+	####### SETUP ######
+
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --rbind "$disk1" share1
 	mount --rbind share1 parent1
 	mount --rbind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
-	###### BODY ###### 
+
+	###### BODY ######
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	mount --rbind parent1 parent2 
-	##### VERIFICATION ###### 
+	mount --rbind parent1 parent2
+	##### VERIFICATION ######
 	check parent1 share1 parent2
 	mount --rbind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --rbind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --rbind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
-	##### CLEANUP ###### 
+
+	##### CLEANUP ######
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test19: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -93,7 +93,7 @@
 	umount parent1
 	umount share1
 	umount share2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -103,6 +103,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test19: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test20 b/testcases/kernel/fs/fs_bind/rbind/test20
index 764dff2..3e2bdeb 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test20
+++ b/testcases/kernel/fs/fs_bind/rbind/test20
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --rbind "$disk1" share1
 	mount --rbind share1 parent1
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	mount --rbind parent1 parent2 
-	
+	mount --rbind parent1 parent2
+
 	check parent1 share1 parent2
 	mount --rbind "$disk2" parent1/child1
 	check parent1/child1 parent2/child1
 	check parent1/child1 share1/child1
 	mount --rbind "$disk3" parent2/a
-	
+
 	check parent1/a parent2/a share1/a
-	
+
 	mount --rbind "$disk4" share1/b
-	
+
 	check parent1/b parent2/b share1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test20: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -83,7 +83,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test20: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test21 b/testcases/kernel/fs/fs_bind/rbind/test21
index 8ecc620..2c1424a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test21
+++ b/testcases/kernel/fs/fs_bind/rbind/test21
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,34 +39,34 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --rbind share1 parent1
 	mount --rbind share2 parent2
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
-	
+	mount --rbind parent1 parent2
+
 	check parent1 share1 parent2 share2
 	check parent1/child1/ parent2/child1
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a parent2/child1/a
 	check -n parent1/child1/a share1/child1/a
 	check parent2/child1/a share2/child1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
 	check parent2/child1/b share2/child1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test21: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -91,7 +91,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -101,6 +101,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test21: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test22 b/testcases/kernel/fs/fs_bind/rbind/test22
index 688ecff..6eda425 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test22
+++ b/testcases/kernel/fs/fs_bind/rbind/test22
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --rbind share2 parent2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
-	
+	mount --rbind parent1 parent2
+
 	check parent1 parent2
 	check parent1/child1/ parent2/child1
 	check -n parent2 share2
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a parent2/child1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test22: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,7 +84,7 @@
 	umount parent1
 	umount share2
 	umount parent2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -94,6 +94,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test22: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test23 b/testcases/kernel/fs/fs_bind/rbind/test23
index 0689224..d8fcce2 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test23
+++ b/testcases/kernel/fs/fs_bind/rbind/test23
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
+	mount --rbind parent1 parent2
 	mount --rbind parent1 share1
-	
+
 	check parent1 parent2
 	check parent1/child1/ parent2/child1
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a share1/child1/a
 	check -n parent1/child1/a parent2/child1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test23: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -86,7 +86,7 @@
 	umount parent1
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -96,6 +96,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test23: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test24 b/testcases/kernel/fs/fs_bind/rbind/test24
index 197b6bc..7899f50 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test24
+++ b/testcases/kernel/fs/fs_bind/rbind/test24
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,30 +39,30 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
+	mount --rbind parent1 parent2
 	mount --rbind parent1 share1
-	
+
 	check parent1 parent2
 	check parent1/child1/ parent2/child1
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a share1/child1/a
 	check -n parent1/child1/a parent2/child1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test24: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -86,7 +86,7 @@
 	umount parent1
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -96,6 +96,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test24: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test25 b/testcases/kernel/fs/fs_bind/rbind/test25
index c15e168..bd68172 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test25
+++ b/testcases/kernel/fs/fs_bind/rbind/test25
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,37 +40,37 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	mkdir parent1/child1
-	
+
 	mount --bind share1 parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
-	mount --rbind parent1 parent2 
-	
+
+	mount --rbind parent1 parent2
+
 	check parent1 parent2
-	check parent1/child1/ parent2/child1 
-	
+	check parent1/child1/ parent2/child1
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a parent2/child1/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
 	check -n parent2/child1/b share1/b
-	
+
 	mount --rbind "$disk4" share1/c
 	check parent2/child1/c share1/c
 	check parent1/child1/c share1/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test25: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -90,8 +90,8 @@
 	umount parent2
 	umount parent2
 	umount parent1
-	
-	
+
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -101,6 +101,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test25: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test26 b/testcases/kernel/fs/fs_bind/rbind/test26
index 1cf6024..dd0e39a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test26
+++ b/testcases/kernel/fs/fs_bind/rbind/test26
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind share1 parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
-	mount --rbind parent1 parent2 
-	
-	check parent1 parent2 
-	check parent1/child1/ parent2/child1 
-	
+
+	mount --rbind parent1 parent2
+
+	check parent1 parent2
+	check parent1/child1/ parent2/child1
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a parent2/child1/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test26: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -93,6 +93,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test26: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test27 b/testcases/kernel/fs/fs_bind/rbind/test27
index 95627ec..af2b64b 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test27
+++ b/testcases/kernel/fs/fs_bind/rbind/test27
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,35 +39,35 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind share1 parent1/child1
 	mount --bind share2 parent2
 	mount --rbind "$disk1" parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
-	mount --rbind parent1 parent2 
-	
-	check parent1 parent2 
-	check parent1/child1/ parent2/child1 
+
+	mount --rbind parent1 parent2
+
+	check parent1 parent2
+	check parent1/child1/ parent2/child1
 	check -n parent2 share2
-	
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a parent2/child1/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test27: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -89,7 +89,7 @@
 	umount parent2
 	umount share2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -99,6 +99,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test27: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test28 b/testcases/kernel/fs/fs_bind/rbind/test28
index e43b779..aba105a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test28
+++ b/testcases/kernel/fs/fs_bind/rbind/test28
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
-	
+
 	mount --bind share1 parent1/child1
-	
+
 	mount --rbind "$disk1" parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
-	
-	mount --rbind parent1 parent2 
-	
-	check parent1 parent2 
-	check parent1/child1/ parent2/child1 
-	
+
+	mount --rbind parent1 parent2
+
+	check parent1 parent2
+	check parent1/child1/ parent2/child1
+
 	mount --rbind "$disk2" parent1/child1/a
-	
+
 	check -n parent1/child1/a parent2/child1/a
 	check -n parent1/child1/a share1/a
-	
+
 	mount --rbind "$disk3" parent2/child1/b
-	
+
 	check -n parent1/child1/b parent2/child1/b
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test28: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -84,7 +84,7 @@
 	umount parent2
 	umount parent1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -94,6 +94,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test28: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test29 b/testcases/kernel/fs/fs_bind/rbind/test29
index 3e59e28..9b3cd68 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test29
+++ b/testcases/kernel/fs/fs_bind/rbind/test29
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,24 +39,24 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --rbind share1 parent1
 	mount --rbind share2 parent2
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
-	
-	check -n parent1/child1 share1/child1 
-	check -n parent1/child1 parent2/child1 
+	mount --rbind parent1 parent2
+
+	check -n parent1/child1 share1/child1
+	check -n parent1/child1 parent2/child1
 	check parent2/child1 share2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test29: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -76,7 +76,7 @@
 	umount share1
 	umount parent1
 	umount share2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -86,6 +86,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test29: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test30 b/testcases/kernel/fs/fs_bind/rbind/test30
index 80d92b6..93fd1e9 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test30
+++ b/testcases/kernel/fs/fs_bind/rbind/test30
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,21 +39,21 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --rbind share1 parent1
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
-	
-	check -n parent1/child1 share1/child1 
-	check -n parent1/child1 parent2/child1 
-	
+	mount --rbind parent1 parent2
+
+	check -n parent1/child1 share1/child1
+	check -n parent1/child1 parent2/child1
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test30: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -71,7 +71,7 @@
 	umount parent1
 	umount share1
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -81,6 +81,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test30: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test31 b/testcases/kernel/fs/fs_bind/rbind/test31
index 81a6559..32e4623 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test31
+++ b/testcases/kernel/fs/fs_bind/rbind/test31
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,26 +39,26 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" priv parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
-	
+
 	mount --rbind share1 parent1
 	mount --rbind share2 parent2
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
-	
-	check -n parent1/child1 share1/child1 
-	check -n parent1/child1 parent2/child1 
+	mount --rbind parent1 parent2
+
+	check -n parent1/child1 share1/child1
+	check -n parent1/child1 parent2/child1
 	check -n parent2 share2
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test31: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -78,7 +78,7 @@
 	umount share1
 	umount share2
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -88,6 +88,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test31: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test32 b/testcases/kernel/fs/fs_bind/rbind/test32
index 9701f45..bf14aa2 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test32
+++ b/testcases/kernel/fs/fs_bind/rbind/test32
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,21 +39,21 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent1
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
-	
+
 	mount --rbind share1 parent1
-	
+
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
 	mount --rbind "$disk1" parent1/child1
-	mount --rbind parent1 parent2 
-	
-	check -n parent1/child1 share1/child1 
-	check -n parent1/child1 parent2/child1 
-	
+	mount --rbind parent1 parent2
+
+	check -n parent1/child1 share1/child1
+	check -n parent1/child1 parent2/child1
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test32: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -71,7 +71,7 @@
 	umount parent1
 	umount share1
 	umount parent1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -81,6 +81,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test32: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test33 b/testcases/kernel/fs/fs_bind/rbind/test33
index 9ccc53b..1ba506a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test33
+++ b/testcases/kernel/fs/fs_bind/rbind/test33
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -40,41 +40,41 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
-	"${FS_BIND_ROOT}/bin/makedir" share dir1  
-	
+
+
+	"${FS_BIND_ROOT}/bin/makedir" share dir1
+
 	mkdir dir1/x dir2 dir3 dir4
-	
+
 	mount --rbind dir1 dir2
 	"${FS_BIND_ROOT}/bin/makedir" slave dir2
-	"${FS_BIND_ROOT}/bin/makedir" -n share dir2 
-	
+	"${FS_BIND_ROOT}/bin/makedir" -n share dir2
+
 	mount --rbind dir2 dir3
 	"${FS_BIND_ROOT}/bin/makedir" slave dir3
-	"${FS_BIND_ROOT}/bin/makedir" -n share dir3 
-	
+	"${FS_BIND_ROOT}/bin/makedir" -n share dir3
+
 	mount --rbind dir3 dir4
 	"${FS_BIND_ROOT}/bin/makedir" slave dir4
-	
+
 	mount --rbind "$disk1" dir1/x
-	
+
 	check dir1/x dir2/x dir3/x dir4/x
-	
+
 	mount --rbind "$disk2" dir2/x/a
 	check -n dir1/x/a dir2/x/a
 	check dir2/x/a dir3/x/a dir4/x/a
-	
+
 	mount --rbind "$disk3" dir3/x/b
 	check -n dir1/x/b dir3/x/b
 	check -n dir2/x/b dir3/x/b
 	check dir3/x/b dir4/x/b
-	
+
 	mount --rbind "$disk4" dir4/x/c
 	check -n dir1/x/c dir4/x/c
 	check -n dir2/x/c dir4/x/c
 	check -n dir3/x/c dir4/x/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test33: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -94,9 +94,9 @@
 	umount dir2
 	umount dir3
 	umount dir4
-	
+
 	rm -rf dir*
-	
+
 	cleanup
 } >& /dev/null
 
diff --git a/testcases/kernel/fs/fs_bind/rbind/test34 b/testcases/kernel/fs/fs_bind/rbind/test34
index 835387b..3e7d49c 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test34
+++ b/testcases/kernel/fs/fs_bind/rbind/test34
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,18 +39,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child2
-	
+
 	mount --rbind "$disk3" parent/child1
-	
-	mount --rbind parent parent/child2/ 
+
+	mount --rbind parent parent/child2/
 	check parent parent/child2/
 	check parent/child1 parent/child2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test34: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -63,23 +63,23 @@
 {
 	umount parent/child2/child1
 	check parent/child1 parent/child2/child1
-	
+
 	umount parent/child1
 	check parent/child1 parent/child2/child1
-	
+
 	mount --rbind "$disk4" parent/child2/child1
 	check parent/child1 parent/child2/child1
-	
+
 	umount parent/child1
 	check parent/child1 parent/child2/child1
-	
+
 	umount parent/child2/child2
 	umount parent/child2
 	umount parent/child2
 	umount parent
-	
+
 	rm -rf parent
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -88,6 +88,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test34: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test35 b/testcases/kernel/fs/fs_bind/rbind/test35
index dbcfb7a..fb79cf8 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test35
+++ b/testcases/kernel/fs/fs_bind/rbind/test35
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,18 +39,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent
 	"${FS_BIND_ROOT}/bin/makedir" priv parent/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child2
-	
+
 	mount --rbind "$disk3" parent/child1
-	
-	mount --rbind parent parent/child2/ 
+
+	mount --rbind parent parent/child2/
 	check parent parent/child2/
 	check parent/child1 parent/child2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test35: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -64,24 +64,24 @@
 	umount parent/child2/child1
 	#added -n
 	check -n parent/child1 parent/child2/child1
-	
+
 	umount parent/child1
 	check parent/child1 parent/child2/child1
-	
+
 	mount --rbind "$disk4" parent/child2/child1
 	check -n parent/child1 parent/child2/child1
-	
+
 	umount parent/child2/child1
 	check parent/child1 parent/child2/child1
-	
+
 	umount parent/child2/child2
 	umount parent/child2/child1
 	umount parent/child2
 	umount parent/child2
 	umount parent
-	
+
 	rm -rf parent
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -90,6 +90,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test35: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test36 b/testcases/kernel/fs/fs_bind/rbind/test36
index dc37b91..6870151 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test36
+++ b/testcases/kernel/fs/fs_bind/rbind/test36
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,18 +39,18 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	"${FS_BIND_ROOT}/bin/makedir" share parent
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent/child2
-	
+
 	mount --rbind "$disk3" parent/child1
-	
-	mount --rbind parent parent/child2/ 
+
+	mount --rbind parent parent/child2/
 	check parent parent/child2/
 	check -n  parent/child1 parent/child2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test36: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -63,21 +63,21 @@
 {
 	umount parent/child1
 	check parent/child1 parent/child2/child1
-	
+
 	mount --rbind "$disk4" parent/child2/child1
 	check -n  parent/child1 parent/child2/child1
-	
+
 	umount parent/child2/child1
 	check parent/child1 parent/child2/child1
-	
+
 	umount parent/child2/child2
 	umount parent/child1
 	umount parent/child2
 	umount parent/child2
 	umount parent
-	
+
 	rm -rf parent
-	
+
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -86,6 +86,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test36: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test37 b/testcases/kernel/fs/fs_bind/rbind/test37
index 6609fb3..14a6b4a 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test37
+++ b/testcases/kernel/fs/fs_bind/rbind/test37
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,32 +39,32 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	mkdir parent1 parent2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
 	"${FS_BIND_ROOT}/bin/makedir" share parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" share parent2/child2
-	
+
 	mount --bind "$disk1" parent1/child1
 	mount --rbind parent1/child1 share1
-	
+
 	mount --rbind parent2/child2 share2
-	
+
 	mount --rbind parent1 parent2
-	
+
 	check parent1 parent2
 	check parent1/child1 parent2/child1
-	
+
 	mount --bind "$disk2" parent2/child1/a
 	check parent1/child1/a parent2/child1/a share1//a
-	
+
 	mount --bind "$disk3" parent1/child1/b
 	check parent1/child1/b parent2/child1/b share1/b
-	
+
 	mount --bind "$disk4" share1/c
 	check parent1/child1/c parent2/child1/c share1/c
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test37: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -87,7 +87,7 @@
 	umount share1
 	umount share1
 	umount parent2/child2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -97,6 +97,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test37: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test38 b/testcases/kernel/fs/fs_bind/rbind/test38
index c3f46fb..c9cf3e1 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test38
+++ b/testcases/kernel/fs/fs_bind/rbind/test38
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,7 +39,7 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	mkdir parent1 parent2 parent1/child1 parent2/child2
 	"${FS_BIND_ROOT}/bin/makedir" share share1
 	"${FS_BIND_ROOT}/bin/makedir" share share2
@@ -47,24 +47,24 @@
 	mount --rbind share2 parent2/child2
 	"${FS_BIND_ROOT}/bin/makedir" slave parent1/child1
 	"${FS_BIND_ROOT}/bin/makedir" slave parent2/child2
-	
+
 	mount --bind "$disk1" share1
-	
+
 	mount --rbind parent1 parent2
-	
+
 	check parent1 parent2
 	check parent1/child1 parent2/child1
-	
+
 	mount --bind "$disk2" share1/a
 	check parent1/child1/a parent2/child1/a share1/a
-	
+
 	mount --bind "$disk3" parent1/child1/b
 	check -n parent1/child1/b share1/b
-	
+
 	mount --bind "$disk4" parent2/child1/c
 	check -n parent2/child1/c share1/c
-	
-	
+
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test38: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -86,7 +86,7 @@
 	umount parent2
 	umount share1
 	umount share1
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -96,6 +96,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test38: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/rbind/test39 b/testcases/kernel/fs/fs_bind/rbind/test39
index 8451d08..006b06b 100755
--- a/testcases/kernel/fs/fs_bind/rbind/test39
+++ b/testcases/kernel/fs/fs_bind/rbind/test39
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,17 +39,17 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
+
 	mkdir parent1 parent2
 	"${FS_BIND_ROOT}/bin/makedir" unclone parent1/child1
-	
+
 	mount --bind "$disk1" parent1/child1
-	
+
 	mount --rbind parent1 parent2
-	
+
 	check parent1 parent2
 	check -n parent1/child1 parent2/child1
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "rbind/test39: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -63,7 +63,7 @@
 	umount parent1/child1
 	umount parent1/child1
 	umount parent2
-	
+
 	rm -rf parent* share*
 	cleanup
 } >& /dev/null
@@ -73,6 +73,6 @@
 	exit 1
 else
 	tst_resm TPASS "rbind/test39: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/regression/test01 b/testcases/kernel/fs/fs_bind/regression/test01
index 5cdcd08..8cfbfb4 100755
--- a/testcases/kernel/fs/fs_bind/regression/test01
+++ b/testcases/kernel/fs/fs_bind/regression/test01
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,12 +39,12 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	mkdir dir
 	mount --bind "$disk1" dir
 	check "$disk1" dir
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "regression/test01: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -56,8 +56,8 @@
 trap '' ERR
 {
 	umount dir
-	
-	rm -rf dir 
+
+	rm -rf dir
 	cleanup
 } >& /dev/null
 if [ $result -ne 0 ]
@@ -66,6 +66,6 @@
 	exit 1
 else
 	tst_resm TPASS "regression/test01: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/regression/test02 b/testcases/kernel/fs/fs_bind/regression/test02
index e2ac59d..c07c3ed 100755
--- a/testcases/kernel/fs/fs_bind/regression/test02
+++ b/testcases/kernel/fs/fs_bind/regression/test02
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,16 +39,16 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	mkdir dir1
 	mkdir dir2
 	mount --bind "$disk1" dir1
 	mount --bind "$disk2" dir1/a
 	mount --rbind dir1 dir2
-	
+
 	check dir1/a dir2/a
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "regression/test02: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -63,7 +63,7 @@
 	umount dir2/a
 	umount dir2
 	umount dir1
-	
+
 	rm -rf dir*
 	cleanup
 } >& /dev/null
@@ -73,6 +73,6 @@
 	exit 1
 else
 	tst_resm TPASS "regression/test02: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_bind/regression/test03 b/testcases/kernel/fs/fs_bind/regression/test03
index 07698db..7b3cc3e 100755
--- a/testcases/kernel/fs/fs_bind/regression/test03
+++ b/testcases/kernel/fs/fs_bind/regression/test03
@@ -1,4 +1,4 @@
-#!/bin/bash  
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -39,16 +39,16 @@
 while /bin/true ; do
 	# This loop is for error recovery purposes only
 
-	
-	
+
+
 	mkdir dir1
 	mkdir dir2
 	mount --bind "$disk1" dir1
 	mount --bind "$disk2" dir1/a
 	mount --move dir1 dir2
-	
+
 	check dir2/a "$disk2"
-	
+
 	break
 done
 trap 'ERR=$? ; tst_resm TWARN "regression/test03: caught error near: ${BASH_SOURCE[0]}:${FUNCNAME[0]}:${LINENO}:$_ (returned ${ERR})"' ERR
@@ -62,7 +62,7 @@
 	umount dir2/a
 	umount dir2
 	umount dir1
-	
+
 	rm -rf dir*
 	cleanup
 } >& /dev/null
@@ -72,6 +72,6 @@
 	exit 1
 else
 	tst_resm TPASS "regression/test03: PASSED"
-	exit 0 
+	exit 0
 fi
 tst_exit
diff --git a/testcases/kernel/fs/fs_di/fs_di b/testcases/kernel/fs/fs_di/fs_di
index c6447ef..7d1f415 100755
--- a/testcases/kernel/fs/fs_di/fs_di
+++ b/testcases/kernel/fs/fs_di/fs_di
@@ -129,7 +129,7 @@
             export TESTFS="$TMP";;
         h)  usage
 	    exit 0;;
-   
+
         l)  # Execute user defined number of loops.
             LOOPS=$OPTARG;;
 
@@ -144,7 +144,7 @@
 
         S)  # Size of usable partition, which is used for creating creating the files
             DISK_SIZE=$OPTARG;;
-	
+
        \?) usage
 	   exit 0;;
        esac
diff --git a/testcases/kernel/fs/fs_inod/fs_inod b/testcases/kernel/fs/fs_inod/fs_inod
index b962dad..8c12098 100755
--- a/testcases/kernel/fs/fs_inod/fs_inod
+++ b/testcases/kernel/fs/fs_inod/fs_inod
@@ -20,14 +20,14 @@
 #
 #***********************************************************************
 #
-# TEST: 
+# TEST:
 # 	NAME:		fs_inod
 #	FUNCTIONALITY: 	File system stress - inode allocation/deallocation
-# 	DESCRIPTION:	Rapidly creates and deletes files through 
-#			multiple processes running in the background.  
-#			The user may specify the number of subdirectories 
-#			to create, the number of files to create (per 
-#			subdirectory), and the number of times to repeat 
+# 	DESCRIPTION:	Rapidly creates and deletes files through
+#			multiple processes running in the background.
+#			The user may specify the number of subdirectories
+#			to create, the number of files to create (per
+#			subdirectory), and the number of times to repeat
 #			the creation/deletion cycle.
 #
 #========================================================================
@@ -76,7 +76,7 @@
         }
 	: $((i += 1))
     done;
-} 
+}
 
 
 #=============================================================================
@@ -97,7 +97,7 @@
 	cd dir$j
 	k=0;
 
-	while [ "$k" -lt "$numfiles" ]; do  
+	while [ "$k" -lt "$numfiles" ]; do
 	    >file$j$k || err_log ">file$j$k FAILED"
 	    : $((k += 1))
 	done
@@ -126,7 +126,7 @@
 	cd dir$j
 	k=0;
 
-	while [ "$k" -lt "$numfiles" ]; do  
+	while [ "$k" -lt "$numfiles" ]; do
 	    rm -f file$j$k || err_log "rm -f file$j$k FAILED"
 	    : $((k += 1))
 	done
@@ -147,7 +147,7 @@
 # RETURNS: 		None.
 #=============================================================================
 step1 ()
-{ 
+{
     echo "=============================================="
     echo "MULTIPLE PROCESSES CREATING AND DELETING FILES"
     echo "=============================================="
@@ -168,8 +168,8 @@
     make_subdirs || err_log "make_subdirs on dir1 FAILED"
     touch_files &
     pid1=$!
-    
-    i=1;   
+
+    i=1;
     while [ "$i" -le "$numloops" ]; do
 	echo "Executing loop $i of $numloops..."
 
@@ -177,13 +177,13 @@
 
 	echo "$0: cd ../dir1 & creating files"
 	cd ../dir1
-	wait $pid1 
+	wait $pid1
 	touch_files &
 	pid1=$!
-	
+
 	echo "$0: cd ../dir1 & removing files"
 	cd ../dir1
-	wait $pid1 
+	wait $pid1
 	rm_files &
 	pid2=$!
 
@@ -195,7 +195,7 @@
 
 	echo "$0: cd ../dir2 & removing files"
 	cd ../dir2
-	wait $pid2 
+	wait $pid2
 	rm_files &
 	pid1=$!
 
@@ -203,14 +203,14 @@
     done
 
     # wait for all background processes to complete execution
-    wait	
+    wait
     return $step_errors
 }
 
 
 #=============================================================================
-# MAIN 
-#     See the description, purpose, and design of this test under TEST 
+# MAIN
+#     See the description, purpose, and design of this test under TEST
 #     in this test's prolog.
 #=============================================================================
     USAGE="Usage: ./fs_inod [volumename] [numsubdirectories] [numfiles] [numloops]"
@@ -228,7 +228,7 @@
     numloops=$4
 
     cd $testvol || exit 2
-    
+
     echo "FS_INODE: File system stress - inode allocation/deallocation"
     echo "Volume under test: $testvol"
     echo "Number of subdirectories: $numsubdirs"
@@ -246,7 +246,7 @@
             echo "step$I failed - see above errors"
             : $((ERRORS += step_errors))
          fi
-    done   
+    done
 
 # Clean up and timestamp
     rm -rf $testvol/dir*
diff --git a/testcases/kernel/fs/fs_inod/fs_inod_readme.txt b/testcases/kernel/fs/fs_inod/fs_inod_readme.txt
index 2bccae2..de9b22c 100644
--- a/testcases/kernel/fs/fs_inod/fs_inod_readme.txt
+++ b/testcases/kernel/fs/fs_inod/fs_inod_readme.txt
@@ -19,19 +19,19 @@
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
 
-TEST: 
+TEST:
 
  	NAME:		fs_inod
 	FUNCTIONALITY: 	File system stress - inode allocation/deallocation
- 	DESCRIPTION:	Rapidly creates and deletes files through 
-			multiple processes running in the background.  
-			The user may specify the number of subdirectories 
-			to create, the number of files to create (per 
-			subdirectory), and the number of times to repeat 
+ 	DESCRIPTION:	Rapidly creates and deletes files through
+			multiple processes running in the background.
+			The user may specify the number of subdirectories
+			to create, the number of files to create (per
+			subdirectory), and the number of times to repeat
 			the creation/deletion cycle.
 USE:
-	FS_INOD is a korn shell script that was originally written as part 
-	of a jfs stress test suite for AIX.  The command to execute the script 
+	FS_INOD is a korn shell script that was originally written as part
+	of a jfs stress test suite for AIX.  The command to execute the script
 	is:
 
 	./fs_inod [volumename] [numsubdirectories] [numfiles] [numloops]
@@ -41,24 +41,24 @@
     numfiles:	number of files per subdirectory
     numloops:	number of loops for the creation/deletion cycle
 
-	FS_INOD will create two directories (dir1 and dir2) in whichever 
-	directory it is executed, or you can set environment variable FS 
-	to the name of the volume you wish to test. This variable is 
+	FS_INOD will create two directories (dir1 and dir2) in whichever
+	directory it is executed, or you can set environment variable FS
+	to the name of the volume you wish to test. This variable is
 	currently set in function Main in the script, but may be changed.
-	Below dir1 and dir2 it will create numsubdirs, and within each 
-	subdir it will create numfiles.  Then it will delete the files 
-	and subdirs.  It will repeat the creation/deletion process for 
-	numloops.  It should be noted that large values for numsubdirs 
-	and numfiles can cause the test to exceed the capacity of a given 
-	hard drive.  There is no error checking for this, so beware.  
-	Additionally, a large value for numloops may cause the test to 
-	run for a very long time.  
-	
-	FS_INOD will completely clean up all files and directories 
+	Below dir1 and dir2 it will create numsubdirs, and within each
+	subdir it will create numfiles.  Then it will delete the files
+	and subdirs.  It will repeat the creation/deletion process for
+	numloops.  It should be noted that large values for numsubdirs
+	and numfiles can cause the test to exceed the capacity of a given
+	hard drive.  There is no error checking for this, so beware.
+	Additionally, a large value for numloops may cause the test to
+	run for a very long time.
+
+	FS_INOD will completely clean up all files and directories
 	created during the test.
 
-	Currently all FS_INOD output goes to stdout, to preserve ouput 
-	redirect to a file.  
+	Currently all FS_INOD output goes to stdout, to preserve ouput
+	redirect to a file.
 
 FUTURE ENHANCEMENTS:
 
diff --git a/testcases/kernel/fs/fs_maim/README b/testcases/kernel/fs/fs_maim/README
index f5a35d1..d561e8e 100644
--- a/testcases/kernel/fs/fs_maim/README
+++ b/testcases/kernel/fs/fs_maim/README
@@ -7,36 +7,36 @@
     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 
+    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., 59 Temple Place, Suite 330, Boston, 
+
+    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., 59 Temple Place, Suite 330, Boston,
     MA 02111-1307 USA
 
 
-Overview: 
-    Name:          fs_maim 
+Overview:
+    Name:          fs_maim
     Description:   fs_maim is a collection of smaller scripts to stress
-                   storage management utilities.  Each script has more 
+                   storage management utilities.  Each script has more
                    specific documentation in it.
-                        
+
 Files:
     backbeat
     partbeat
     maimparts
-    README 
-                        
-Installation:      Untar. 
-                        
+    README
+
+Installation:      Untar.
+
 Use:               maimparts <device like hda, sda, etc.> <iterations> <fstype like jfs, ext3, etc>
 
 Warning(s):        The device you specify on the command line (hda/sda/etc)
-                   will be blown away...smoking any important data, programs, 
-                   OS, etc.  Don't specify a device name that you don't want 
+                   will be blown away...smoking any important data, programs,
+                   OS, etc.  Don't specify a device name that you don't want
                    to wipe out.
                    YOU HAVE BEEN WARNED!
 
diff --git a/testcases/kernel/fs/fs_maim/backbeat b/testcases/kernel/fs/fs_maim/backbeat
index 365c75b..52006d8 100755
--- a/testcases/kernel/fs/fs_maim/backbeat
+++ b/testcases/kernel/fs/fs_maim/backbeat
@@ -19,10 +19,10 @@
 
 #
 #  FILE(s)     : backbeat
-#  DESCRIPTION : Test takes 3 partitions (ex: /dev/hda1 /dev/hda2 /dev/hda3) and simulates 
+#  DESCRIPTION : Test takes 3 partitions (ex: /dev/hda1 /dev/hda2 /dev/hda3) and simulates
 #                an online backup of /sbin using cp, tar and diff.
 #  AUTHOR      : Jeff Martin (martinjn@us.ibm.com)
-#  HISTORY     : 
+#  HISTORY     :
 #
 
 ($junk,$junk,$part1)=split(/\//,$ARGV[0]);
@@ -49,10 +49,10 @@
 
 if ($tmp) {
         print $tmp;
-        print "\nDiff: FAIL\n"; 
+        print "\nDiff: FAIL\n";
         exit 1;
         }
     else {
-        print "\nDiff: PASS\n"; 
+        print "\nDiff: PASS\n";
         exit 0;
         }
diff --git a/testcases/kernel/fs/fs_maim/maimparts b/testcases/kernel/fs/fs_maim/maimparts
index 920dd08..de69e26 100755
--- a/testcases/kernel/fs/fs_maim/maimparts
+++ b/testcases/kernel/fs/fs_maim/maimparts
@@ -19,9 +19,9 @@
 
 #
 #  FILE(s)     : maimparts
-#  DESCRIPTION : Takes the disk device name (ex: hda) and number of iterations 
-#                to run thru and then rips the drive into a defined number of 
-#                partitions ($parts).  This sets up the device for partbeat 
+#  DESCRIPTION : Takes the disk device name (ex: hda) and number of iterations
+#                to run thru and then rips the drive into a defined number of
+#                partitions ($parts).  This sets up the device for partbeat
 #                and backbeat which are called after setup occurs.
 #
 #  WARNING!!!  : The device you specify on the command line (hda/sda/etc) will be
@@ -30,7 +30,7 @@
 #                YOU HAVE BEEN WARNED!
 #
 #  AUTHOR      : Jeff Martin (martinjn@us.ibm.com)
-#  HISTORY     : 
+#  HISTORY     :
 #
 
 # target is device to split into partions
@@ -45,8 +45,8 @@
 if (!$ARGV[0]) {
     print "Usage: maimparts [target device ie: hda or sda] [iterations]\n";
     exit;
-    } 
-# run sfdisk to display device geometry and rip out info 
+    }
+# run sfdisk to display device geometry and rip out info
 # (specifically cylinders)
 $Geom = `/sbin/sfdisk -g /dev/$target`;
 chomp $Geom;
@@ -56,7 +56,7 @@
 ($Heads,$Junk) = split(/ /,$Heads,2);
 ($Sec,$Junk) = split(/ /,$Sec,2);
 
-# determine partition size to create (force int so we don't 
+# determine partition size to create (force int so we don't
 # try to use 1/2 a cylinder!)
 $psize = int($Cyl/$parts);
 
diff --git a/testcases/kernel/fs/fs_maim/partbeat b/testcases/kernel/fs/fs_maim/partbeat
index b826860..47560ab 100755
--- a/testcases/kernel/fs/fs_maim/partbeat
+++ b/testcases/kernel/fs/fs_maim/partbeat
@@ -18,13 +18,13 @@
 #
 
 #
-#  FILE(s)     : partbeat 
+#  FILE(s)     : partbeat
 #  DESCRIPTION : Quick test to test storage management functions like mount and fsck.
 #                More can be added later without much trouble.  Command line takes the
 #                partition device name (ex: /dev/hda1), an integer for how many iterations
 #                of the test you would like to run and the filesystem type to use (jfs or ext2 for now).
 #  AUTHOR      : Jeff Martin (martinjn@us.ibm.com)
-#  HISTORY     : 
+#  HISTORY     :
 #
 
 $target=$ARGV[0];
diff --git a/testcases/kernel/fs/fs_perms/fs_perms.c b/testcases/kernel/fs/fs_perms/fs_perms.c
index 0fc46ca..9dc72e7 100644
--- a/testcases/kernel/fs/fs_perms/fs_perms.c
+++ b/testcases/kernel/fs/fs_perms/fs_perms.c
@@ -149,7 +149,7 @@
 	default:
 	break;
 	}
-	
+
 	wait(&status);
 
 	return WEXITSTATUS(status);
diff --git a/testcases/kernel/fs/fsstress/global.h b/testcases/kernel/fs/fsstress/global.h
index 9644666..b9d8502 100644
--- a/testcases/kernel/fs/fsstress/global.h
+++ b/testcases/kernel/fs/fsstress/global.h
@@ -1,35 +1,35 @@
 /*
  * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- * 
+ *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  * published by the Free Software Foundation.
- * 
+ *
  * This program is distributed in the hope that it would be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * 
+ *
  * Further, this software is distributed without any warranty that it is
  * free of the rightful claim of any third person regarding infringement
  * or the like.  Any license provided herein, whether implied or
  * otherwise, applies only to this software file.  Patent licenses, if
  * any, provided herein do not apply to combinations of this program with
  * other software, or any other product whatsoever.
- * 
+ *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
- * 
+ *
  * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
  * Mountain View, CA  94043, or:
- * 
- * http://www.sgi.com 
- * 
- * For further information regarding this notice, see: 
- * 
+ *
+ * http://www.sgi.com
+ *
+ * For further information regarding this notice, see:
+ *
  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
  */
- 
+
 #ifndef GLOBAL_H
 #define GLOBAL_H
 
diff --git a/testcases/kernel/fs/fsstress/xfscompat.h b/testcases/kernel/fs/fsstress/xfscompat.h
index 390e181..61550a8 100644
--- a/testcases/kernel/fs/fsstress/xfscompat.h
+++ b/testcases/kernel/fs/fsstress/xfscompat.h
@@ -1,7 +1,7 @@
 #define MAXNAMELEN 1024
 struct dioattr {
 	int d_miniosz, d_maxiosz, d_mem;
-}; 
+};
 
 #define MIN(a,b) ((a)<(b) ? (a):(b))
 #define MAX(a,b) ((a)>(b) ? (a):(b))
diff --git a/testcases/kernel/fs/fsx-linux/fsxtest b/testcases/kernel/fs/fsx-linux/fsxtest
index 067d920..5c9dd82 100755
--- a/testcases/kernel/fs/fsx-linux/fsxtest
+++ b/testcases/kernel/fs/fsx-linux/fsxtest
@@ -2,7 +2,7 @@
 #
 # Copyright (c) 2001 Silicon Graphics, Inc.  All Rights Reserved.
 # 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
@@ -12,19 +12,19 @@
 # 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-# 
+#
 #
 # Proper error checking and result reporting still needed
 #
 # usage:  fsxtest $1 $2 $3
 # $1 scratch device to use for testing
 # $2 optional file system type
-# $3 number of operations to perform 
+# $3 number of operations to perform
 
 #Uncomment line below for debugging
 #set -x
diff --git a/testcases/kernel/fs/fsx-linux/fsxtest02 b/testcases/kernel/fs/fsx-linux/fsxtest02
index 728b313..b18da20 100755
--- a/testcases/kernel/fs/fsx-linux/fsxtest02
+++ b/testcases/kernel/fs/fsx-linux/fsxtest02
@@ -2,7 +2,7 @@
 #
 # Copyright (c) 2001 Silicon Graphics, Inc.  All Rights Reserved.
 # 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
@@ -12,17 +12,17 @@
 # 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-# 
+#
 #
 # Proper error checking and result reporting still needed
 #
-# usage:  fsxtest02 $1 
-# $1 number of operations to perform 
+# usage:  fsxtest02 $1
+# $1 number of operations to perform
 
 #Uncomment line below for debugging
 #set -x
diff --git a/testcases/kernel/fs/ftest/ftest06.c b/testcases/kernel/fs/ftest/ftest06.c
index 1e2a6df..ccf432f 100644
--- a/testcases/kernel/fs/ftest/ftest06.c
+++ b/testcases/kernel/fs/ftest/ftest06.c
@@ -139,7 +139,7 @@
 			}
 		}
 		cwd = startdir;
-		
+
 		snprintf(dirname, ARRAY_SIZE(dirname),
 		         "%s/ftest06.%d", cwd, getpid());
 		snprintf(homedir, ARRAY_SIZE(homedir),
@@ -150,7 +150,7 @@
 
 		if (chdir(dirname) < 0)
 			tst_brkm(TFAIL|TERRNO, cleanup, "\tCan't chdir(%s)", dirname);
-		
+
 		dirlen = strlen(dirname);
 
 		if (chdir(homedir) < 0)
diff --git a/testcases/kernel/fs/linktest/README b/testcases/kernel/fs/linktest/README
index 4d8ea1f..ac97310 100644
--- a/testcases/kernel/fs/linktest/README
+++ b/testcases/kernel/fs/linktest/README
@@ -9,35 +9,35 @@
     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 
+    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., 59 Temple Place, Suite 330, Boston, 
+
+    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., 59 Temple Place, Suite 330, Boston,
     MA 02111-1307 USA
 
 
-Overview: 
+Overview:
     Name:           linktest.pl
     Description:    A regression test for links per file.
                     Linktest.pl is a simple test that attempts
-                    to create a given number of hard links and 
+                    to create a given number of hard links and
                     symbolic links to a single file.
-                        
+
 Files:
     linktest.pl
-    README 
-                        
+    README
+
 Availability:
-    Currently only available via internal IBM websites pending 
+    Currently only available via internal IBM websites pending
     legal review:
     http://cvs.opensource.ibm.com/cgi-bin/cvsweb.cgi/testcases/fs/fs_perms/?cvsroot=ltp
 
 Installation:
-    N/A                    
+    N/A
 
 Use:
     ./linktest.pl <number of symbolic links> <number of hard links>
diff --git a/testcases/kernel/fs/linktest/linktest.sh b/testcases/kernel/fs/linktest/linktest.sh
index 718698e..12b2482 100755
--- a/testcases/kernel/fs/linktest/linktest.sh
+++ b/testcases/kernel/fs/linktest/linktest.sh
@@ -22,7 +22,7 @@
 #  DESCRIPTION : Regression test for max links per file
 #  USE         : linktest.sh <number of symlinks> <number of hardlinks>
 #  AUTHOR      : Garrett Cooper (yanegomi@gmail.com)
-#  HISTORY     : 
+#  HISTORY     :
 #	A rewrite of testcases/kernel/fs/linktest.pl
 
 export TCID=linker01
diff --git a/testcases/kernel/fs/mongo/README b/testcases/kernel/fs/mongo/README
index b7eb417..3c72ae0 100644
--- a/testcases/kernel/fs/mongo/README
+++ b/testcases/kernel/fs/mongo/README
@@ -9,7 +9,7 @@
 <device>    - test device
 <processes> - number of processes
 
-The benchmark will be performed on given device with 
+The benchmark will be performed on given device with
 reiserfs and ext2. Then results will be compared.
 
 The relults directory : ./results
@@ -22,7 +22,7 @@
 Mongo.pl description :
 
   mongo.pl <filesystem> <device> <test_dir> <log> <processes>
-  
+
   for example :
   mongo.pl reiserfs /dev/hda5 /testfs log 1
 
diff --git a/testcases/kernel/fs/mongo/mongo.pl b/testcases/kernel/fs/mongo/mongo.pl
index 1f7b21f..5d47d87 100755
--- a/testcases/kernel/fs/mongo/mongo.pl
+++ b/testcases/kernel/fs/mongo/mongo.pl
@@ -1,29 +1,29 @@
-#!/usr/bin/perl 
+#!/usr/bin/perl
 #
 # Copyright 2000 by Hans Reiser, licensing governed by reiserfs/README
 #
 
 #
-# Mongo.pl is reiserfs benchmark. 
+# Mongo.pl is reiserfs benchmark.
 #
-# To run please use run_mongo script or : 
+# To run please use run_mongo script or :
 #
 # # ./mongo.pl reiserfs /dev/xxxx /testfs log1 5
-# or 
+# or
 # # ./mongo.pl ext2 /dev/xxxx /testfs log2 5
-# 
-# 5 - number of processes, you can set any number here 
+#
+# 5 - number of processes, you can set any number here
 #
 # Test will format partition /dev/xxxx by 'mkreiserfs' or 'mke2fs'
 # mount it and run given number of processes during each phase :
 # Create, Copy, Symlinks, Read, Stats, Rename and Delete.
 #
 # Also, the program calc fragmentations after Create and Copy phases:
-# Fragm = number_of_fragments / number_of_files 
+# Fragm = number_of_fragments / number_of_files
 # (Current version use the files more than 16KB to calc Fragm.)
 #
 # You can find the same results in files : log, log.tbl, log_table
-# 
+#
 # log       - raw results
 # log.tbl   - results for compare program
 # log_table - results in table form
@@ -37,7 +37,7 @@
 
 sub print_usage {
 
-        print "\nUsage: mongo.pl <filesystem> <device>"; 
+        print "\nUsage: mongo.pl <filesystem> <device>";
 	print                  " <mount_point> <log> <processes>\n";
 
 	print "<filesystem>  - the name of filesystem [reiserfs|ext2]\n";
@@ -46,11 +46,11 @@
 	print " (e.g. /mnt/testfs)\n";
 	print "<log>         - the name prefix for benchmark results\n";
 	print "<processes>   - the number of benchmark processes\n";
- 	
+
 	print "\nexamples:\n";
 	print "mongo.pl reiserfs /dev/hda9 /testfs reiserfs_results 1\n";
 	print "mongo.pl ext2 /dev/hda9 /testfs ext2_results 1\n";
-	
+
 	print "\nThe results will be put in ./results directory\n";
 }
 
@@ -64,7 +64,7 @@
 #------- main() -------------------------
 
 if ( $#{ARGV} != 4 ) {
-        print_usage;		
+        print_usage;
 	exit(0);
     }
 
@@ -89,7 +89,7 @@
 $nproc       = $PROCESSES;
 $READIT      = "${TOPDIR}/mongo_read";
 $SLINKS      = "${TOPDIR}/mongo_slinks";
-    
+
 #-------- reiser_fract_tree parameters----------------
 $x1mb   = 1024 * 1024;
 $x2mb   =    2 * $x1mb;
@@ -114,12 +114,12 @@
 $big_size     = 10000;
 $large_size   = 100000;
 
-# Keep the largest file to one fifth (100 million bytes) 
+# Keep the largest file to one fifth (100 million bytes)
 # of the total tree size.
 #-------------------------------------------------------
 $max_file_size = 100000000;
 
-# Yuri Shevchuk says that 0 is the median size 
+# Yuri Shevchuk says that 0 is the median size
 # in real life, so I believe him.
 #----------------------------------------------
 $median_dir_nr_files = 0;
@@ -128,14 +128,14 @@
 #-------------------------------------------------
 $bytes_to_consume = 10000000;
 
-$median_file_size = 100; 
+$median_file_size = 100;
 $max_file_size    = 1000000;
 
 $median_dir_nr_files    = 100;
-$max_directory_nr_files = 10000; 
+$max_directory_nr_files = 10000;
 
 $median_dir_branching = 0;
-$max_dir_branching    = 1; 
+$max_dir_branching    = 1;
 
 # This should be varying, someday....
 #------------------------------------
@@ -152,7 +152,7 @@
 #--------------------------------
 unless (-e $RESDIR) {
     print "Creating dir: ${RESDIR} \n";
-    system("mkdir $RESDIR"); 
+    system("mkdir $RESDIR");
 }
 
 unless ( -e $HTMLDIR ) {
@@ -162,7 +162,7 @@
 
 #... Compile *.c files if it is necessary
 #----------------------------------------
-sub compile 
+sub compile
 {
   my $file = shift @_;
   my $opt = shift @_ if @_ ;
@@ -209,7 +209,7 @@
 }
 
 sub make_fsys {
-        
+
     system ("umount $TESTDIR") ;
 
     if ( $FILESYSTEM eq "reiserfs" ) {
@@ -228,22 +228,22 @@
 # Mongo Launcher
 #------------------------------------------------------------------
 sub mongo_launcher {
-    
+
     my ($phase_num, $phase_name, $cmd, $dir1, $dir2, $flag, $processes) = @_ ;
 
-    
+
     print "$phase_num.$phase_name files of median size $median_file_size bytes ($p processes)...\n";
     print LOG "********* Phase $phase_num: $phase_name files of median size $median_file_size bytes ($p processes) *********\n";
-    $i=0; 
+    $i=0;
     $total=0;
-	                    	
+
 # eliminate the rep counter and the while
-    while ( $i < $reiser_fract_tree_rep_counter ) {	
+    while ( $i < $reiser_fract_tree_rep_counter ) {
 	print "$phase_name : ";
     	print LOG "$phase_name : ";
 	$com = "";
 	$pp=$processes;
-	
+
 	$j=0;
 	while ($pp > 0) {
 	    $pp--;
@@ -255,11 +255,11 @@
 # one line command and see what that phase of the test does instead of
 # looking in many places throughout the code.
 
-	    if ($phase_num == 1) {	
+	    if ($phase_num == 1) {
     		$com .= "$cmd $dir1-$i-$j $flag";
-	    }  
+	    }
 	    elsif ($phase_num == 2) {
-		$com .= "$cmd $dir1-$i-$j $dir2-$i-$j";		
+		$com .= "$cmd $dir1-$i-$j $dir2-$i-$j";
 	    }
 	    elsif ($phase_num == 3) {
 		$com .= "$cmd $dir1-$i-$j "."-type f | while read X; do echo \$X \$X.lnk ; done | $TOPDIR/mongo_slinks ";
@@ -272,55 +272,55 @@
 	    }
 	    elsif ($phase_num == 6) {
 		$com .= "$cmd $dir1-$i-$j -type f | perl -e 'while (<>) { chomp; rename (\$_, \"\$_.r\"); };'";
-		#$com .= " & $cmd $dir2-$i-$j "."-type d -exec mv {} {}.r ';'"; 
+		#$com .= " & $cmd $dir2-$i-$j "."-type d -exec mv {} {}.r ';'";
 	    }
 	    elsif ($phase_num == 7) {
-		if ($processes > 1) { 
+		if ($processes > 1) {
 		    $com .= "$cmd $dir1-$i-$j & $cmd $dir2-$i-$j";
 		}
-		else { 
+		else {
 		    $com .= "$cmd $dir1-$i-$j ; $cmd $dir2-$i-$j";
 		}
-	    }	    
-	    $com .= " & ";    	    
+	    }
+	    $com .= " & ";
 	    $j++;
 	}
-	         			
+
 	$com .= " wait";
-	#print $com, "\n";    
-	
-	@t=`(time -p $com) 2>&1`; 
-	
-	@tt = split ' ', $t[0];    
+	#print $com, "\n";
+
+	@t=`(time -p $com) 2>&1`;
+
+	@tt = split ' ', $t[0];
     	$res = $tt[1];
 	unless ( $res =~ /\s*\d+/) {
-	    print @t , "\n"; 
+	    print @t , "\n";
 	    print LOG @t, "\n";
-	} else {	
-	    print LOG "$res sec.\n"; 
+	} else {
+	    print LOG "$res sec.\n";
 	    print "$res sec.\n";
 	}
-	
-	$total += $res; 
+
+	$total += $res;
     	$i++;
      }
-    
+
     print "total $phase_name time: $total sec.\n";
     print LOG "total $phase_name time: $total sec.\n";
-	
-    $ares[$phase_num]=$total;  # ser array of results 
+
+    $ares[$phase_num]=$total;  # ser array of results
 
     if ($EXTENDED_STATISTICS) {
-	if( $phase_num < 3) {    
+	if( $phase_num < 3) {
 	    $used = get_blocks_usage($TESTDIR) - $used0;
 	    if ($phase_num == 1) {
 		$used1=$used;
 	    }elsif($phase_num == 2){
 		$used2=$used;
-	    }      
+	    }
 	    print "Used disk space (df) : $used KB\n";
 	    print LOG "Used disk space (df) : $used KB\n";
-	    
+
 	    open (FIND_PIPE, "find $TESTDIR|") || die "cannnot open pipe from \"find\": $!\n";
 	    $dirs = 0;
 	    $files = 0;
@@ -343,24 +343,24 @@
 	    print "Total files: $files\n";
 	    print LOG "Total dirs: $dirs\n";
 	    print LOG "Total files: $files\n";
-	    
+
 	    #$f=$frag;
 	    $f16  = $files16;
 	    $fr16 =`find $TESTDIR -type f -size +16k | xargs $TOPDIR/map5 | $TOPDIR/summ | tail -n 1 2>&1`;
-	    @ff16= split ' ', $f16;  
+	    @ff16= split ' ', $f16;
 	    @ffr16= split ' ', $fr16;
-	    $files16 = $ff16[0];  
-	    $frag = $ffr16[0];  
+	    $files16 = $ff16[0];
+	    $frag = $ffr16[0];
 	    $procent = $frag / $files16;
 	    print "Total fragments : $frag \n";
 	    print LOG "Total fragments : $frag \n";
 
 	    printf "Fragments / files :%.3f\n", $procent;
-	    printf LOG "Fragments / files :%.3f\n", $procent;	
+	    printf LOG "Fragments / files :%.3f\n", $procent;
 	    $frag_res[$phase_num]=$procent;  # ser array of results
-	} 
+	}
     }
-    
+
     system("sync");
     print "\n";
     print LOG "\n";
@@ -373,15 +373,15 @@
 # MONGO_X_PROCESS ( x is number of processes to run )
 #------------------------------------------------------------------
 sub mongo_x_process {
-    
+
     my ($processes) = @_ ;
     $p = $processes;
-    
+
     make_fsys;       # make and mount the file system
     $used0 = get_blocks_usage($TESTDIR);
 
     open LOG,  ">>$LOGFILE"  or die "Can not open log file $LOGFILE\n";
-    open LOG2, ">>$LOGFILE2" or die "Can not open log file $LOGFILE2\n"; 
+    open LOG2, ">>$LOGFILE2" or die "Can not open log file $LOGFILE2\n";
     open LOG3, ">>$LOGFILE3" or die "Can not open log file $LOGFILE2\n";
 
     print LOG "FILESYSTEM=$FILESYSTEM \n";
@@ -394,7 +394,7 @@
         print "mongo_multi_process ($p processes), the_set_of_param.N=$par_set_n of $total_params \n";
 	print LOG "mongo_multi_process ($p processes), the_set_of_paramN=$par_set_n of $total_params \n";
     }
-    
+
     print "Results in file : $LOGFILE \n";
     print "\n";
 
@@ -402,14 +402,14 @@
     $dir2 = "$TESTDIR/testdir2";
     $flag = 0;
 
-    $cmd_1 = "$TOPDIR/reiser_fract_tree $bytes_to_consume $median_file_size $max_file_size $median_dir_nr_files $max_directory_nr_files $median_dir_branching $max_dir_branching $write_buffer_size";    
+    $cmd_1 = "$TOPDIR/reiser_fract_tree $bytes_to_consume $median_file_size $max_file_size $median_dir_nr_files $max_directory_nr_files $median_dir_branching $max_dir_branching $write_buffer_size";
     $cmd_2 = "cp -r";
     $cmd_3 = "find";
     $cmd_4 = "find $TESTDIR -type f | xargs $TOPDIR/mongo_read";
     $cmd_5 = "find $TESTDIR -type f > /dev/null"; # it should be enough for stat all files. -zam
-    $cmd_6 = "find"; #" $TESTDIR -type f -exec mv {} {}.r ';'"; 
+    $cmd_6 = "find"; #" $TESTDIR -type f -exec mv {} {}.r ';'";
     $cmd_7 = "rm -r";
-    
+
     system("sync");
     $frag = 0;
     mongo_launcher ( 1, "Create", $cmd_1, $dir1, $dir2, $flag, $p); # phase 1
@@ -418,7 +418,7 @@
     mongo_launcher ( 4, "Read  ", $cmd_4, $dir1, $dir2, $flag, $p); # phase 4
     mongo_launcher ( 5, "Stats ", $cmd_5, $dir1, $dir2, $flag, $p); # phase 5
     mongo_launcher ( 6, "Rename", $cmd_6, $dir1, $dir2, $flag, $p); # phase 6
-    mongo_launcher ( 7, "Delete", $cmd_7, $dir1, $dir2, $flag, $p); # phase 7    
+    mongo_launcher ( 7, "Delete", $cmd_7, $dir1, $dir2, $flag, $p); # phase 7
 
     print LOG2 "\n";
     if ($processes > 1) {
@@ -426,13 +426,13 @@
     }else {
 	print LOG2 "MONGO_SINGLE_PROCESS BENCHMARK RESULTS (time in sec.)\n";
     }
-    print LOG2 "  FILESYSTEM=$FILESYSTEM\n"; 
+    print LOG2 "  FILESYSTEM=$FILESYSTEM\n";
     print LOG2 "  parameters: files=$files, base_size=$median_file_size bytes, dirs=$dirs\n";
     print LOG2 "--------------------------------------------------------------\n";
-    print LOG2 "Create\tCopy\tSlink\tRead\tStats\tRename\tDelete\n"; 
-    print LOG2 " time \ttime\ttime\ttime\ttime \t time \t time\n";     
+    print LOG2 "Create\tCopy\tSlink\tRead\tStats\tRename\tDelete\n";
+    print LOG2 " time \ttime\ttime\ttime\ttime \t time \t time\n";
     print LOG2 "--------------------------------------------------------------\n";
-    print LOG2 "$ares[1]\t$ares[2]\t$ares[3]\t$ares[4]\t$ares[5]\t$ares[6]\t$ares[7]\n"; 
+    print LOG2 "$ares[1]\t$ares[2]\t$ares[3]\t$ares[4]\t$ares[5]\t$ares[6]\t$ares[7]\n";
     print LOG2 "--------------------------------------------------------------\n";
     print LOG2 "The size of files tree : \n";
     print LOG2 "         after create = $used1 kb\n";
@@ -442,18 +442,18 @@
 
     print LOG3 "\n";
     if ($processes > 1) {
-	print LOG3 "MONGO_MULTI_PROCESS  ($processes)    \n"; 
+	print LOG3 "MONGO_MULTI_PROCESS  ($processes)    \n";
     }else {
-	print LOG3 "MONGO_SINGLE_PROCESS      \n"; 
-    }	
+	print LOG3 "MONGO_SINGLE_PROCESS      \n";
+    }
     print LOG3 "parameters:              \n";
     print LOG3 "files=$files            \n";
     print LOG3 "base_size=$median_file_size bytes    \n";
     print LOG3 "dirs=$dirs              \n";
     print LOG3 "\n";
-    
-    print LOG3 "FSYS=$FILESYSTEM         \n"; 
-    print LOG3 "(time in sec.)           \n"; 
+
+    print LOG3 "FSYS=$FILESYSTEM         \n";
+    print LOG3 "(time in sec.)           \n";
     print LOG3 "Create : $ares[1]\n";
     print LOG3 "Fragm. : $frag_res[1]\n";
     print LOG3 "df     : $used1\n\n";
@@ -461,51 +461,51 @@
     print LOG3 "Fragm. : $frag_res[2]\n";
     print LOG3 "df     : $used2\n\n";
     print LOG3 "Slinks : $ares[3]\n";
-    print LOG3 "Read   : $ares[4]\n"; 
-    print LOG3 "Stats  : $ares[5]\n"; 
+    print LOG3 "Read   : $ares[4]\n";
+    print LOG3 "Stats  : $ares[5]\n";
     print LOG3 "Rename : $ares[6] \n";
     print LOG3 "Delete : $ares[7]\n";
-    
+
     print LOG3 "\n";
 
-    
+
     if($processes > 1) {
 	print LOG "******* The end of mongo_multi_process *******";
     }else {
 	print LOG "******* The end of mongo_single_process *******";
-    } 
+    }
 }
 
 #---------------------------------------------------
-# Set parameters 
+# Set parameters
 #---------------------------------------------------
 sub set_params {
     my ($n) = @_ ;
-    
+
     $bytes_to_consume = $numb_of_bytes[$n];
-    $median_file_size = $size_of_files[$n]; 
-    
+    $median_file_size = $size_of_files[$n];
+
     #$max_file_size    = 1000000;
 
     #$median_dir_nr_files    = 100;
-    #$max_directory_nr_files = 10000; 
+    #$max_directory_nr_files = 10000;
 
     #$median_dir_branching = 0;
-    #$max_dir_branching    = 1; 
-    
+    #$max_dir_branching    = 1;
+
 }
 
 #----------------------------------------------------------
 #           TEST START
 #----------------------------------------------------------
-     
+
     $par_set_n = 0;
-    foreach $fsize (@size_of_files) { 	
-	set_params ($par_set_n);	
-	mongo_x_process( $nproc );    # run n processes	
-	$par_set_n++; 
+    foreach $fsize (@size_of_files) {
+	set_params ($par_set_n);
+	mongo_x_process( $nproc );    # run n processes
+	$par_set_n++;
     }
     system("umount $TESTDIR");
     exit;
 
-    
+
diff --git a/testcases/kernel/fs/mongo/run_mongo b/testcases/kernel/fs/mongo/run_mongo
index fb45d7a..e22e2b9 100755
--- a/testcases/kernel/fs/mongo/run_mongo
+++ b/testcases/kernel/fs/mongo/run_mongo
@@ -11,14 +11,14 @@
    echo "# run_mogo /dev/hdx1 2"
    echo
    exit
-fi 
+fi
 
 DEVICE=$1
 NPROC=$2
 
 y="Yes"
 echo "WARNING : All data will be erased on device=$DEVICE "
-echo "Run ? (Yes | no)" 
+echo "Run ? (Yes | no)"
 read x
 
 if [ -z $x ]
@@ -30,7 +30,7 @@
 then
    exit
 fi
-   
+
 ./mongo.pl reiserfs $DEVICE /testfs reiserfs $NPROC
 ./mongo.pl ext2     $DEVICE /testfs ext2    $NPROC
 ./mongo_compare  ./results/ext2.tbl ./results/reiserfs.tbl ./results/html/ext2_vs_reiserfs
diff --git a/testcases/kernel/fs/mongo/test.sh b/testcases/kernel/fs/mongo/test.sh
index 0e598ea..78b9e48 100755
--- a/testcases/kernel/fs/mongo/test.sh
+++ b/testcases/kernel/fs/mongo/test.sh
@@ -1,8 +1,8 @@
 #!/bin/sh
-#To exectute this you need mongo filesystem utility. 
-#Run this inside the mongo directory. 
+#To exectute this you need mongo filesystem utility.
+#Run this inside the mongo directory.
 #mongo utility can be found in www.namesys.com/benchmarks/mongo-xxx.tgz
-#Description-this script tests the mongo utility which actulally give the time ie cpu time 
+#Description-this script tests the mongo utility which actulally give the time ie cpu time
 #Real time etc on reiserfile system and jfs filesystem.
 #created by prakash.banu@wipro.com
 #
@@ -32,14 +32,14 @@
 	fi
 		#set the PATH variable if its not done .
 export PATH=$PATH:/sbin
-lsmod |grep reiserfs 
+lsmod |grep reiserfs
 
 	if [ $? -ne 0 ]; then
 		echo "inserting reiserfs and its dependencies"
-	fi 
-modprobe reiserfs  
+	fi
+modprobe reiserfs
 	if [ $? -ne 0 ]; then
-		echo "check wheather reiserfs  is been compiled in the kernel" 
+		echo "check wheather reiserfs  is been compiled in the kernel"
 	fi
 
 lsmod |grep loop
@@ -51,7 +51,7 @@
 		echo "check wheather loopback device option is been compiled in the kernel"
 	fi
 
-	#run the mongo test on reiserfs file system type 
+	#run the mongo test on reiserfs file system type
 reiserfs()
 {
 cat > fs.sh <<EOF
@@ -59,17 +59,17 @@
 dd if=/dev/zero of=reiserfs  bs=8k count=10240 > /dev/null 2>&1
 losetup /dev/loop0 reiserfs
 mkdir -p $TEST_DIR
-./mongo.pl LOG=/tmp/logfile1 file_size=10000 bytes=100000 fstype=reiserfs dev=/dev/loop0 dir=$TEST_DIR RUN   log=$LOG_DIR/reiserlog > /dev/null 2>&1 
+./mongo.pl LOG=/tmp/logfile1 file_size=10000 bytes=100000 fstype=reiserfs dev=/dev/loop0 dir=$TEST_DIR RUN   log=$LOG_DIR/reiserlog > /dev/null 2>&1
 
-echo "RESULTS LOGGED IN $LOG_DIR/reiserlog" 
+echo "RESULTS LOGGED IN $LOG_DIR/reiserlog"
 export PATH=$PATH:/sbin
 losetup -d /dev/loop0
 
 EOF
 }
-	
 
-#To run on jfs file system type 
+
+#To run on jfs file system type
 JFS()
 {
 cat >> fs.sh <<EOF
@@ -77,12 +77,12 @@
 mkdir -p $TEST_DIR
 dd if=/dev/zero of=jfs  bs=8k count=10240 > /dev/null 2>&1
 losetup /dev/loop0 jfs
-./mongo.pl LOG=/tmp/logfile1 file_size=10000 bytes=100000 fstype=jfs dev=/dev/loop0 dir=$TEST_DIR   RUN log=$LOG_DIR/jfslog 
+./mongo.pl LOG=/tmp/logfile1 file_size=10000 bytes=100000 fstype=jfs dev=/dev/loop0 dir=$TEST_DIR   RUN log=$LOG_DIR/jfslog
 
 echo "RESULTS LOGGED IN $LOG_DIR/jfslog"
 export PATH=$PATH:/sbin
 losetup -d /dev/loop0
-echo "rm -rf ./fs.sh" >> ./fs.sh 2>&1 
+echo "rm -rf ./fs.sh" >> ./fs.sh 2>&1
 EOF
 }
 
@@ -104,6 +104,6 @@
 echo "THIS MAY TAKE SOME MINUTES"
 sh fs.sh
 
-#performing cleanup 
-#losetup -d /dev/loop0 
+#performing cleanup
+#losetup -d /dev/loop0
 rm -rf $TEST_DIR
diff --git a/testcases/kernel/fs/quota_remount/quota_remount_test01.sh b/testcases/kernel/fs/quota_remount/quota_remount_test01.sh
index f8b4848..a9d53ae 100755
--- a/testcases/kernel/fs/quota_remount/quota_remount_test01.sh
+++ b/testcases/kernel/fs/quota_remount/quota_remount_test01.sh
@@ -28,7 +28,7 @@
 #               http://git.kernel.org/git/?p=linux/kernel/git/torvalds/       ##
 #               linux-2.6.git;a=commit;                                       ##
 #               h=0ff5af8340aa6be44220d7237ef4a654314cf795                    ##
-#               for more info.                                                ## 
+#               for more info.                                                ##
 #                                                                             ##
 # Author:       Jan Kara <jack@suse.cz>,                                      ##
 #                                                                             ##
diff --git a/testcases/kernel/fs/racer/fs_racer.sh b/testcases/kernel/fs/racer/fs_racer.sh
index 0754e40..dcb1ca7 100755
--- a/testcases/kernel/fs/racer/fs_racer.sh
+++ b/testcases/kernel/fs/racer/fs_racer.sh
@@ -77,14 +77,14 @@
 
 call_exit()
 {
-    echo \"Cleaning up\" 
-    killall fs_racer_file_create.sh 
+    echo \"Cleaning up\"
+    killall fs_racer_file_create.sh
     killall fs_racer_dir_create.sh
-    killall fs_racer_file_rm.sh 
-    killall fs_racer_file_rename.sh 
-    killall fs_racer_file_link.sh 
-    killall fs_racer_file_symlink.sh 
-    killall fs_racer_file_list.sh 
+    killall fs_racer_file_rm.sh
+    killall fs_racer_file_rename.sh
+    killall fs_racer_file_link.sh
+    killall fs_racer_file_symlink.sh
+    killall fs_racer_file_list.sh
     killall fs_racer_file_concat.sh
     exit 0
 }
diff --git a/testcases/kernel/fs/racer/fs_racer_dir_create.sh b/testcases/kernel/fs/racer/fs_racer_dir_create.sh
index 3595bd2..6a105bf 100755
--- a/testcases/kernel/fs/racer/fs_racer_dir_create.sh
+++ b/testcases/kernel/fs/racer/fs_racer_dir_create.sh
@@ -26,7 +26,7 @@
     echo "asdf" > $DIR/$file/$file/$file
 }
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     mkdir -p $DIR/$file/$file/ 2> /dev/null
     create 2> /dev/null
diff --git a/testcases/kernel/fs/racer/fs_racer_dir_test.sh b/testcases/kernel/fs/racer/fs_racer_dir_test.sh
index f6bb357..26e82f8 100755
--- a/testcases/kernel/fs/racer/fs_racer_dir_test.sh
+++ b/testcases/kernel/fs/racer/fs_racer_dir_test.sh
@@ -22,10 +22,10 @@
 
 count=1
 dir=""
-while /bin/true ; do 
+while /bin/true ; do
     dir=$dir"/a"
     mkdir race/$dir
     count=$(($count + 1))
     echo $count
 done;
-    
+
diff --git a/testcases/kernel/fs/racer/fs_racer_file_concat.sh b/testcases/kernel/fs/racer/fs_racer_file_concat.sh
index 7d57416..e87640e 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_concat.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_concat.sh
@@ -28,7 +28,7 @@
 
 }
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     new_file=$(($RANDOM%$MAX))
     concat 2> /dev/null
diff --git a/testcases/kernel/fs/racer/fs_racer_file_create.sh b/testcases/kernel/fs/racer/fs_racer_file_create.sh
index fa15ea0..6947237 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_create.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_create.sh
@@ -29,7 +29,7 @@
     dd if=/dev/zero of=$DIR/$file bs=1k count=$SIZE
 }
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     create 2> /dev/null
 done
diff --git a/testcases/kernel/fs/racer/fs_racer_file_link.sh b/testcases/kernel/fs/racer/fs_racer_file_link.sh
index ab5b2b4..3981ad8 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_link.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_link.sh
@@ -22,7 +22,7 @@
 DIR=$1
 MAX=$2
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     new_file=$((($file + 1)%$MAX))
     ln -s $file $DIR/$new_file 2> /dev/null
diff --git a/testcases/kernel/fs/racer/fs_racer_file_list.sh b/testcases/kernel/fs/racer/fs_racer_file_list.sh
index 3634ee3..c0d4b06 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_list.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_list.sh
@@ -22,7 +22,7 @@
 DIR=$1
 MAX=$2
 
-while /bin/true ; do 
+while /bin/true ; do
     ls -R $DIR/ > /dev/null 2> /dev/null &
     ls -R $DIR/ > /dev/null 2> /dev/null &
     ls -R $DIR/ > /dev/null 2> /dev/null &
diff --git a/testcases/kernel/fs/racer/fs_racer_file_rename.sh b/testcases/kernel/fs/racer/fs_racer_file_rename.sh
index b34f3ff..021dfea 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_rename.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_rename.sh
@@ -22,7 +22,7 @@
 DIR=$1
 MAX=$2
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     new_file=$((($file + 1)%$MAX))
     mv $DIR/$file $DIR/$new_file 2> /dev/null
diff --git a/testcases/kernel/fs/racer/fs_racer_file_rm.sh b/testcases/kernel/fs/racer/fs_racer_file_rm.sh
index cd0d707..c088c20 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_rm.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_rm.sh
@@ -22,7 +22,7 @@
 DIR=$1
 MAX=$2
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     rm -rf $DIR/$file 2> /dev/null
     sleep 1
diff --git a/testcases/kernel/fs/racer/fs_racer_file_symlink.sh b/testcases/kernel/fs/racer/fs_racer_file_symlink.sh
index 74276c1..727d8de 100755
--- a/testcases/kernel/fs/racer/fs_racer_file_symlink.sh
+++ b/testcases/kernel/fs/racer/fs_racer_file_symlink.sh
@@ -22,7 +22,7 @@
 DIR=$1
 MAX=$2
 
-while /bin/true ; do 
+while /bin/true ; do
     file=$(($RANDOM%$MAX))
     new_file=$((($file + 1)%$MAX))
     ln -s $file $DIR/$new_file 2> /dev/null
diff --git a/testcases/kernel/fs/scsi/ltpfs/Ltpfs.h b/testcases/kernel/fs/scsi/ltpfs/Ltpfs.h
index aabb227..24a85c9 100644
--- a/testcases/kernel/fs/scsi/ltpfs/Ltpfs.h
+++ b/testcases/kernel/fs/scsi/ltpfs/Ltpfs.h
@@ -45,15 +45,15 @@
 #define DEV_PATH                            "/dev"
 #define LTP_FS_DIR_NAME                   ""
 #define LTP_FS_DEV_NAME                   "LTPFS"
-#define LTP_FS_DEV_NODE_PATH              DEV_PATH "/" 
+#define LTP_FS_DEV_NODE_PATH              DEV_PATH "/"
 #define LTP_FS_DEVICE_NAME                DEV_PATH "/"  LTP_FS_DEV_NAME
-#define MINOR_SHIFT_BITS 3 
+#define MINOR_SHIFT_BITS 3
 #define MAX_PARTITIONS 8                    /* partition 0 + 7 more possible due to 3 bit partition number field */
 #define	MAX_NUM_DISKS 3                   /* number of real devices */
 
 #define MPDEV_FLAG_CLEAR 0
 #define MPDEV_FLAG_SET   1
-                       
+
 typedef struct _ltpdev_cmd {
     u_int32_t     cmd;           // input - 0==recover, 1==fail
     u_int32_t     status;        // ouput - 0==success
diff --git a/testcases/kernel/fs/scsi/ltpfs/Makefile b/testcases/kernel/fs/scsi/ltpfs/Makefile
index c7990ce..7c46a4c 100644
--- a/testcases/kernel/fs/scsi/ltpfs/Makefile
+++ b/testcases/kernel/fs/scsi/ltpfs/Makefile
@@ -15,13 +15,13 @@
 
 default:
 	$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
-	${CC}  $(CFLAGS) -o ltpfstest -lm  main.c 
+	${CC}  $(CFLAGS) -o ltpfstest -lm  main.c
 #	$(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules
 endif
 
 clean:
-	rm -f LtpfsCmds.o  
-	rm -f LtpfsCmds.ko 
+	rm -f LtpfsCmds.o
+	rm -f LtpfsCmds.ko
 	rm -f LtpfsCmds.bb
 	rm -f LtpfsCmds.bbg
 	rm -f LtpfsCmds.mod.c
diff --git a/testcases/kernel/fs/scsi/ltpfs/ltpfsio.sh b/testcases/kernel/fs/scsi/ltpfs/ltpfsio.sh
index c1ac41a..0338724 100755
--- a/testcases/kernel/fs/scsi/ltpfs/ltpfsio.sh
+++ b/testcases/kernel/fs/scsi/ltpfs/ltpfsio.sh
@@ -1,9 +1,9 @@
 -#!/bin/sh
 # This script should be run prior to running executing the filesystem tests.
 # valid devices need to be passed for the test to work correctly
-# 10/06/03 mridge@us.ibm.com added instance and time command line options 
-# 
-# 
+# 10/06/03 mridge@us.ibm.com added instance and time command line options
+#
+#
 
 cd `dirname $0`
 export LTPROOT=${PWD}
@@ -16,7 +16,7 @@
 export TMPBASE="/tmp"
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -a part1 ] [ -n nfsmount ]
@@ -26,7 +26,7 @@
 	ltproot=$TPROOT
 	tmpdir=$TMPBASE
 
-	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir 
+	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir
 
         - This test will ONLY run on a 2.5.66 or higher kernel system.
 
@@ -42,7 +42,7 @@
 		a)	part1=$OPTARG;;
                 n)      nfsmount=$OPTARG;;
                 v)      verb=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
@@ -63,36 +63,36 @@
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
 
 
-mkdir /test                   >/dev/null 2>&1 
-mkdir /test/growfiles         >/dev/null 2>&1  
-mkdir /test/growfiles/ext2    >/dev/null 2>&1  
-mkdir /test/growfiles/msdos   >/dev/null 2>&1  
-mkdir /test/growfiles/reiser  >/dev/null 2>&1  
-mkdir /test/growfiles/minix   >/dev/null 2>&1  
-mkdir /test/growfiles/xfs     >/dev/null 2>&1  
-mkdir /test/growfiles/nfs     >/dev/null 2>&1  
-mkdir /test/growfiles/jfs     >/dev/null 2>&1  
-mkdir /test/growfiles/ext3 >/dev/null 2>&1  
+mkdir /test                   >/dev/null 2>&1
+mkdir /test/growfiles         >/dev/null 2>&1
+mkdir /test/growfiles/ext2    >/dev/null 2>&1
+mkdir /test/growfiles/msdos   >/dev/null 2>&1
+mkdir /test/growfiles/reiser  >/dev/null 2>&1
+mkdir /test/growfiles/minix   >/dev/null 2>&1
+mkdir /test/growfiles/xfs     >/dev/null 2>&1
+mkdir /test/growfiles/nfs     >/dev/null 2>&1
+mkdir /test/growfiles/jfs     >/dev/null 2>&1
+mkdir /test/growfiles/ext3 >/dev/null 2>&1
 
 
 mkfs -V -t ext2     /dev/$part1
 
 
-mount -v -t nfs $nfsmount               /test/growfiles/nfs                                          
-mount -v /dev/$part1 /test/growfiles/ext2                              
+mount -v -t nfs $nfsmount               /test/growfiles/nfs
+mount -v /dev/$part1 /test/growfiles/ext2
 
 
-echo "************ Running tests " 
+echo "************ Running tests "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltpfs.part1 > ${TMPBASE}/ltpfs.part1
 
 ${LTPROOT}/pan/pan -e -S -a ltpfspart1 -n ltpfspart1 -l lvmlogfile -f ${TMPBASE}/ltpfs.part1 &
 
 wait $!
 
-umount -v -t nfs $nfsmount            
+umount -v -t nfs $nfsmount
 umount -v /dev/$part1
 mkfs.xfs -f   /dev/$part1
-mount -v /dev/$part1 /test/growfiles/xfs                             
+mount -v /dev/$part1 /test/growfiles/xfs
 
 
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltpfs.part2 > ${TMPBASE}/ltpfs.part2
@@ -103,7 +103,7 @@
 
 mkfs -V -t msdos    /dev/$part1
 umount -v /dev/$part1
-mount -v /dev/$part1 /test/growfiles/msdos                             
+mount -v /dev/$part1 /test/growfiles/msdos
 
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltpfs.part3 > ${TMPBASE}/ltpfs.part3
 
@@ -113,7 +113,7 @@
 
 umount -v /dev/$part1
 mkreiserfs          /dev/$part1 <yesenter.txt
-mount -v /dev/$part1 /test/growfiles/reiser                            
+mount -v /dev/$part1 /test/growfiles/reiser
 
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltpfs.part4 > ${TMPBASE}/ltpfs.part4
 
@@ -123,7 +123,7 @@
 
 umount -v /dev/$part1
 mkfs -V -t minix    /dev/$part1
-mount -v /dev/$part1 /test/growfiles/minix                             
+mount -v /dev/$part1 /test/growfiles/minix
 
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltpfs.part5 > ${TMPBASE}/ltpfs.part5
 
@@ -133,7 +133,7 @@
 
 umount -v /dev/$part1
 mkfs -V -t ext3     /dev/$part1
-mount -v /dev/$part1 /test/growfiles/ext3                              
+mount -v /dev/$part1 /test/growfiles/ext3
 
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltpfs.part6 > ${TMPBASE}/ltpfs.part6
 
diff --git a/testcases/kernel/fs/scsi/ltpscsi/ltpfsscsi.sh b/testcases/kernel/fs/scsi/ltpscsi/ltpfsscsi.sh
index 10470b5..a26d6f6 100755
--- a/testcases/kernel/fs/scsi/ltpscsi/ltpfsscsi.sh
+++ b/testcases/kernel/fs/scsi/ltpscsi/ltpfsscsi.sh
@@ -1,8 +1,8 @@
 #!/bin/sh
 # This script should be run to execute the filesystem tests on SCSI vitual devices.
 # 10/21/03 mridge@us.ibm.com Initial creation of testcases
-# 
-# 
+#
+#
 
 cd `dirname $0`
 export LTPROOT=${PWD}
@@ -15,7 +15,7 @@
 export TMPBASE="/tmp"
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -a part1 ] [ -b part2 ] [ -k Kernel Path - fully qualified kernel path ]
@@ -41,7 +41,7 @@
                 b)      part2=$OPTARG;;
                 c)      part3=$OPTARG;;
                 k)      kernpath=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
@@ -74,12 +74,12 @@
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
 
 
-mkdir /test                   >/dev/null 2>&1 
-mkdir /test/growfiles         >/dev/null 2>&1  
-mkdir /test/growfiles/scsi    >/dev/null 2>&1  
-mkdir /test/growfiles/scsi/ext2    >/dev/null 2>&1  
-mkdir /test/growfiles/scsi/ext3    >/dev/null 2>&1  
-mkdir /test/growfiles/scsi/reiser  >/dev/null 2>&1  
+mkdir /test                   >/dev/null 2>&1
+mkdir /test/growfiles         >/dev/null 2>&1
+mkdir /test/growfiles/scsi    >/dev/null 2>&1
+mkdir /test/growfiles/scsi/ext2    >/dev/null 2>&1
+mkdir /test/growfiles/scsi/ext3    >/dev/null 2>&1
+mkdir /test/growfiles/scsi/reiser  >/dev/null 2>&1
 
 
 mkfs -V -t ext2     /dev/$part1 <yesenter.txt
@@ -87,15 +87,15 @@
 mkreiserfs -f       /dev/$part3 <yesenter.txt
 
 
-mount -v -t ext2 /dev/$part1       /test/growfiles/scsi/ext2                              
-mount -v -t ext3 /dev/$part2       /test/growfiles/scsi/ext3                              
-mount -v /dev/$part3               /test/growfiles/scsi/reiser                             
+mount -v -t ext2 /dev/$part1       /test/growfiles/scsi/ext2
+mount -v -t ext3 /dev/$part2       /test/growfiles/scsi/ext3
+mount -v /dev/$part3               /test/growfiles/scsi/reiser
 
 cd $kernpath/drivers/scsi
 modprobe scsi_debug max_luns=2 num_tgts=7 add_host=10
 cd ${LTPROOT}
 
-echo "************ Running tests " 
+echo "************ Running tests "
 ${LTPROOT}/tools/rand_lines -g ${LTPROOT}/runtest/scsi.part1 > ${TMPBASE}/scsi.part1
 
 ${LTPROOT}/pan/pan -e -S -a scsipart1 -n scsipart1 -l scsilogfile -f ${TMPBASE}/scsi.part1 &
diff --git a/testcases/kernel/fs/scsi/ltpscsi/sg_err.h b/testcases/kernel/fs/scsi/ltpscsi/sg_err.h
index 317767b..735f8a9 100644
--- a/testcases/kernel/fs/scsi/ltpscsi/sg_err.h
+++ b/testcases/kernel/fs/scsi/ltpscsi/sg_err.h
@@ -3,7 +3,7 @@
 
 /* Feel free to copy and modify this GPL-ed code into your applications. */
 
-/* Version 0.89 (20030313) 
+/* Version 0.89 (20030313)
 */
 
 
@@ -126,7 +126,7 @@
                           int host_status, int driver_status,
                           const unsigned char * sense_buffer, int sb_len);
 
-/* The following function declaration is for the sg version 3 driver. 
+/* The following function declaration is for the sg version 3 driver.
    Only version 3 sg_err.c defines it. */
 struct sg_io_hdr;
 extern int sg_chk_n_print3(const char * leadin, struct sg_io_hdr * hp);
@@ -149,14 +149,14 @@
                int driver_status, const unsigned char * sense_buffer,
                int sb_len);
 
-/* The following function declaration is for the sg version 3 driver. 
+/* The following function declaration is for the sg version 3 driver.
    Only version 3 sg_err.c defines it. */
 extern int sg_err_category3(struct sg_io_hdr * hp);
 
 /* Returns length of SCSI command given the opcode (first byte) */
 extern int sg_get_command_size(unsigned char opcode);
 
-extern void sg_get_command_name(unsigned char opcode, int buff_len, 
+extern void sg_get_command_name(unsigned char opcode, int buff_len,
 				char * buff);
 
 #endif
diff --git a/testcases/kernel/hotplug/cpu_hotplug/ChangeLog b/testcases/kernel/hotplug/cpu_hotplug/ChangeLog
index 9a9c4b1..5e6b9df 100644
--- a/testcases/kernel/hotplug/cpu_hotplug/ChangeLog
+++ b/testcases/kernel/hotplug/cpu_hotplug/ChangeLog
@@ -10,20 +10,20 @@
 	* hotplug07.sh:  Fixing permissions
 	* hotplug07.sh:  Updating includes
 	* include/hotplug.fns:  Fixing error where files in
-	  /sys/devices/system/cpu were detected as (invalid) cpus. 
-	
+	  /sys/devices/system/cpu were detected as (invalid) cpus.
+
 2006-03-09  Bryce Harrington  <bryce@osdl.org>
 
 	* hotplug01.sh: Correcting text when onlining CPU
 	* runtests.sh:  Fixing override for num cpus to test on
 	* hotplug06.sh: Correcting path of executable
-	
+
 2005-09-23  Bryce Harrington  <bryce@osdl.org>
 
 	* Changing loop_num to just loop
 	* Fixing up paths in online/offline_cpu
 	* Expanding runtests.sh to support LOOP overriding
-	
+
 2005-09-22  Bryce Harrington  <bryce@osdl.org>
 
 	* First... er... changelog log!
diff --git a/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug02.txt b/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug02.txt
index 8dba2d7..3cc554c 100644
--- a/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug02.txt
+++ b/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug02.txt
@@ -2,7 +2,7 @@
 -----------
 
 This test checks that a process migrates when the CPU it is running on
-is offlined.  
+is offlined.
 
 
 Algorithm
diff --git a/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug03.txt b/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug03.txt
index bf4dede..67e5c00 100644
--- a/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug03.txt
+++ b/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug03.txt
@@ -22,7 +22,7 @@
   Start up a number of processes equal to twice the number of CPUs we
   have, so we can be pretty sure that we've got enough processes that at
   least one will migrate to the new CPU.
-  
+
   Now online the specified CPU
 
   Wait a few seconds, to allow the process scheduler to move processes
diff --git a/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug06.txt b/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug06.txt
index 22e99b6..0cccc87 100644
--- a/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug06.txt
+++ b/testcases/kernel/hotplug/cpu_hotplug/doc/hotplug06.txt
@@ -21,7 +21,7 @@
 
   Wait a little time for top to notice the CPU is gone
 
-  Now check that top hasn't crashed by verifying its PID is still 
+  Now check that top hasn't crashed by verifying its PID is still
   being reported by ps.
 
 When exiting:
@@ -39,7 +39,7 @@
   Start up sar writing to a temp log and give it a little time to run
 
   Verify that SAR has correctly listed the missing CPU as 'nan' in its
-  tmp log 
+  tmp log
 
   Take a timestamp and count how many CPUs sar is reporting to be
   offline
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug01.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug01.sh
index 0979849..3c3cced 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug01.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug01.sh
@@ -13,7 +13,7 @@
 CPU_TO_TEST=${1#cpu}
 if [ -z "${CPU_TO_TEST}" ]; then
 	echo "usage: ${0##*/} <CPU to online>"
-	exit 1 
+	exit 1
 fi
 
 # Includes:
@@ -29,13 +29,13 @@
 EOF
 
 # Time delay after an online of cpu
-TM_ONLINE=${HOTPLUG01_TM_ONLINE:-1} 
+TM_ONLINE=${HOTPLUG01_TM_ONLINE:-1}
 
 # Time delay after offline of cpu
-TM_OFFLINE=${HOTPLUG01_TM_OFFLINE:-1} 
+TM_OFFLINE=${HOTPLUG01_TM_OFFLINE:-1}
 
 # Time delay before start of entire new cycle.
-TM_DLY=${HOTPLUG01_TM_DLY:-6}	
+TM_DLY=${HOTPLUG01_TM_DLY:-6}
 
 if ! type -P perl > /dev/null; then
 	tst_brk TCONF "analysis script - report_proc_interrupts - requires perl"
@@ -80,7 +80,7 @@
 		tst_resm TINFO "CPU = $CPU_COUNT @on = $offline_cpu"
 		offline_cpu $offline_cpu
 		: $(( CPU_COUNT -= 1 ))
-	done			
+	done
 	if [ "x${cpustate}" = x1 ]; then
 		online_cpu ${CPU_TO_TEST}
 	else
@@ -113,7 +113,7 @@
 
 # do_online(CPU)
 #
-#  Onlines the CPU and then sets the smp_affinity of all IRQs to 
+#  Onlines the CPU and then sets the smp_affinity of all IRQs to
 #  this CPU.
 #
 do_online()
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug02.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug02.sh
index 3ddc038..f636117 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug02.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug02.sh
@@ -70,7 +70,7 @@
 		exit_clean 1
 	fi
 	tst_resm TPASS "turned off CPU ${CPU_TO_TEST}, process migrated to CPU ${NEW_CPU}"
-	
+
 	# Turn the CPU back online just to see what happens.
 	online_cpu ${CPU_TO_TEST}
 	: $(( TST_COUNT += 1 ))
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug03.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug03.sh
index 730a130..6923756 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug03.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug03.sh
@@ -54,12 +54,12 @@
 	done
 }
 
-until [ $TST_COUNT -gt $TST_TOTAL ]; do 
+until [ $TST_COUNT -gt $TST_TOTAL ]; do
 	cpu=0
 	number_of_cpus=0
 
 	# Turns on all CPUs and saves their states
-	for i in $( get_all_cpus ); do 
+	for i in $( get_all_cpus ); do
 		if ! online_cpu $1; then
 			: $(( cpu += 1 ))
 			eval "on_${cpu}=$i"
@@ -74,7 +74,7 @@
 
 	# Start up a number of processes equal to twice the number of
 	# CPUs we have.  This is to help ensure we've got enough processes
-	# that at least one will migrate to the new CPU.  Store the PIDs 
+	# that at least one will migrate to the new CPU.  Store the PIDs
 	# so we can kill them later.
 	: $(( number_of_cpus *= 2 ))
 	until [ $number_of_cpus -eq 0 ]; do
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug04.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug04.sh
index 91c8054..8dce89d 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug04.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug04.sh
@@ -60,7 +60,7 @@
 	# Return CPU 0 to its initial state
 	if [ $cpustate = 1 ]; then
 		online_cpu 0
-	else 
+	else
 		offline_cpu 0
 	fi
 
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sar.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sar.sh
index 8de113c..745b4ae 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sar.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sar.sh
@@ -51,7 +51,7 @@
 	sar -P ALL 1 0 > $TMP/log_$$ &
 	sleep 2
 	SAR_PID=$!
-	
+
 	# Verify that SAR has correctly listed the missing CPU as 'nan'
 	while ! grep -iq nan $TMP/log_$$; do
 		tst_resm TFAIL "CPU${CPU_TO_TEST} Not Found on SAR!"
@@ -72,7 +72,7 @@
 		tst_resm TFAIL "CPU${CPU_TO_TEST} cannot be onlined line"
 		exit_clean 1
 	fi
-	
+
 	sleep 1
 	time=$(date +%T)
 	sleep .5
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sh
index ec90e58..b0c79e0 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.sh
@@ -17,7 +17,7 @@
 . $LHCS_PATH/include/hotplug.fns
 
 cat <<EOF
-Name:   $TCID 
+Name:   $TCID
 Date:   `date`
 Desc:   Verify user tools can handle adding and removing CPUs.
 
diff --git a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.top.sh b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.top.sh
index 8d7ff83..16c88c6 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.top.sh
+++ b/testcases/kernel/hotplug/cpu_hotplug/functional/hotplug06.top.sh
@@ -48,7 +48,7 @@
 
 until [ $TST_COUNT -gt $TST_TOTAL ]; do
 	# Start up top and give it a little time to run
-	top -b -d 00.10 > /dev/null 2>&1 & 
+	top -b -d 00.10 > /dev/null 2>&1 &
 	TOP_PID=$!
 	sleep 1
 
diff --git a/testcases/kernel/hotplug/cpu_hotplug/include/hotplug.fns b/testcases/kernel/hotplug/cpu_hotplug/include/hotplug.fns
index f08446f..8a7cc32 100644
--- a/testcases/kernel/hotplug/cpu_hotplug/include/hotplug.fns
+++ b/testcases/kernel/hotplug/cpu_hotplug/include/hotplug.fns
@@ -1,8 +1,8 @@
-# hotplug.fns - Collection of functions for hotplugging 
+# hotplug.fns - Collection of functions for hotplugging
 # operations.
 
 # Routines in this library are set up to allow timing to be done
-# by defining $TIME to a timing command.  
+# by defining $TIME to a timing command.
 TIME=${TIME:-""}
 
 # get_all_irqs()
@@ -16,7 +16,7 @@
 }
 
 # migrate_irq(CPU, IRQS)
-# 
+#
 #  Sets the smp_affinity for the list of $IRQS to the given
 #  CPU number
 #
@@ -62,7 +62,7 @@
 #  to perform the online operation successfully, false otherwise.
 #
 #  $CPU should either be a specific number like 4, or the cpu name,
-#  as in 'cpu4'.  
+#  as in 'cpu4'.
 #
 online_cpu()
 {
@@ -192,7 +192,7 @@
     CPU=${1#cpu}
     if [ `cat /sys/devices/system/cpu/cpu${CPU}/online` = "1" ]; then
         return 0
-    else 
+    else
         return 1
     fi
 }
diff --git a/testcases/kernel/hotplug/cpu_hotplug/include/testsuite.fns b/testcases/kernel/hotplug/cpu_hotplug/include/testsuite.fns
index f768602..59103c2 100644
--- a/testcases/kernel/hotplug/cpu_hotplug/include/testsuite.fns
+++ b/testcases/kernel/hotplug/cpu_hotplug/include/testsuite.fns
@@ -38,7 +38,7 @@
 
   lineno=$2
 
-  if [ ! $1 ] 
+  if [ ! $1 ]
   then
     echo "Assertion failed:  \"$1\""
     echo "File \"$0\", line $lineno"
@@ -46,7 +46,7 @@
   # else
   #   return
   #   and continue executing script.
-  fi  
+  fi
 }
 
 ############################################################
@@ -88,7 +88,7 @@
 TIME=${TIME:-""}
 
 # Allows overriding the filename to use for storing time
-# measurements.  Required in order to 
+# measurements.  Required in order to
 TIME_TMP_FILE=${TIME_TMP_FILE:-"${TMP:-/tmp}/cpu_$$"}
 
 # perform_timings()
@@ -116,7 +116,7 @@
 
 # do_clean()
 #
-#  Virtual function called by do_intr().  Override this to 
+#  Virtual function called by do_intr().  Override this to
 #  provide custom cleanup handling.
 #
 do_clean()
diff --git a/testcases/kernel/hotplug/cpu_hotplug/tools/do_disk_write_loop b/testcases/kernel/hotplug/cpu_hotplug/tools/do_disk_write_loop
index 083787e..9e28591 100755
--- a/testcases/kernel/hotplug/cpu_hotplug/tools/do_disk_write_loop
+++ b/testcases/kernel/hotplug/cpu_hotplug/tools/do_disk_write_loop
@@ -5,7 +5,7 @@
 
 
 CNT=0
-while : 
+while :
 do
 
 	: $(( CNT += 1 ))
diff --git a/testcases/kernel/hotplug/memory_hotplug/README b/testcases/kernel/hotplug/memory_hotplug/README
index ddd25a9..7bb7355 100644
--- a/testcases/kernel/hotplug/memory_hotplug/README
+++ b/testcases/kernel/hotplug/memory_hotplug/README
@@ -7,7 +7,7 @@
 
 May be run interactively or from a script [see ./test*].
 
-Use 'help' command interactively, or, e.g., 
+Use 'help' command interactively, or, e.g.,
 
 	echo help | ./memtoy
 
@@ -28,11 +28,11 @@
 	shows nodes from which program may allocate memory
 	with total and free memory.
 
-migrate <to-node-id[s]> [<from-node-id[s]>] - 
+migrate <to-node-id[s]> [<from-node-id[s]>] -
 	migrate this process' memory from <from-node-id[s]>
 	to <to-node-id[s]>.  Specify multiple node ids as a
 	comma-separated list.  If both to and from nodes are
-	specified, the sets must have the same # of nodes, 
+	specified, the sets must have the same # of nodes,
 	and must not intersect.  If <from-node-id[s]> is
 	omitted, <to-node-id[s]> must specify a single node.
 
@@ -48,14 +48,14 @@
 	omitted and specified on the map command.
 	<seg-share> := private|shared - default = private
 
-shm <seg-name> <seg-size>[k|m|g|p] - 
+shm <seg-name> <seg-size>[k|m|g|p] -
 	define a shared memory segment of specified size.
 	You may need to increase limits [/proc/sys/kernel/shmmax].
 	Use map/unmap to attach/detach
 
 remove <seg-name> [<seg-name> ...] - remove the named segment[s]
 
-map <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]] [<seg-share>] - 
+map <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]] [<seg-share>] -
 	mmap()/shmat() a previously defined, currently unmapped() segment.
 	<offset> and <length> apply only to mapped files.
 	Use <length> of '*' or '0' to map to the end of the file.
@@ -64,20 +64,20 @@
 
 unmap <seg-name> - unmap specified segment, but remember name/size/...
 
-touch <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]] [read|write] - 
+touch <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]] [read|write] -
 	read [default] or write the named segment from <offset> through
 	<offset>+<length>.  If <offset> and <length> omitted, touches all
 	 of mapped segment.
 
 mbind <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]]
-      <policy> [<node/list>] - 
+      <policy> [<node/list>] -
 	set the numa policy for the specified range of the name segment
 	to policy --  one of {default, bind, preferred, interleaved}.
 	<node/list> specifies a node id or a comma separated list of
 	node ids.  <node> is ignored for 'default' policy, and only
 	the first node is used for 'preferred' policy
 
-where <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]] - 
+where <seg-name> [<offset>[k|m|g|p] <length>[k|m|g|p]] -
 	show the node location of pages in the specified range
 	of the specified segment.  <offset> defaults to start of
 	segment; <length> defaults to 64 pages.
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c
index 6e59b7d..3253158 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c
@@ -1,5 +1,5 @@
 # memtoy test 1c - single 64 page anon segment
-# 
+#
 numa
 anon foo 64p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c8 b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c8
index 084b5ea..7c19fc8 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c8
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1c8
@@ -1,5 +1,5 @@
 # memtoy test 1c - single 8 page anon segment
-# 
+#
 numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1l b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1l
index 0c499d1..06513ea 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1l
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1l
@@ -1,5 +1,5 @@
 # memtoy test 1l - single 8 page anon segment
-# 
+#
 numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1la b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1la
index d5d8519..33277b6 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test1la
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test1la
@@ -1,6 +1,6 @@
 # memtoy test 1la - single 8 page anon segment
 # bind to nodes 1&2 -- migration should not be req'd
-# 
+#
 numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test2l b/testcases/kernel/hotplug/memory_hotplug/Scripts/test2l
index f03f9d3..54d3fad 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test2l
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test2l
@@ -1,5 +1,5 @@
 # memtoy test 2l - single file seg - lazy mig
-# 
+#
 numa
 file zerofile
 map zerofile
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test3l b/testcases/kernel/hotplug/memory_hotplug/Scripts/test3l
index 7117dfe..50a395d 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test3l
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test3l
@@ -1,5 +1,5 @@
 # memtoy test 3l - single shm seg - lazy mig
-# 
+#
 numa
 shm foo 1m
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Scripts/test4f b/testcases/kernel/hotplug/memory_hotplug/Scripts/test4f
index 71e0e17..d85430f 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Scripts/test4f
+++ b/testcases/kernel/hotplug/memory_hotplug/Scripts/test4f
@@ -3,7 +3,7 @@
 # NOTE:  depends on prior existence of file '/var/tmp/kern'
 #        for my tests, this was a copy of an uncompressed kernel image
 numa
-file /var/tmp/kern 
+file /var/tmp/kern
 map kern
 mbind kern interleaved 0,1
 touch kern w
diff --git a/testcases/kernel/hotplug/memory_hotplug/TODO b/testcases/kernel/hotplug/memory_hotplug/TODO
index ec5ca29..35c18aa 100644
--- a/testcases/kernel/hotplug/memory_hotplug/TODO
+++ b/testcases/kernel/hotplug/memory_hotplug/TODO
@@ -17,7 +17,7 @@
 
 	+ multiple processes [children] sharing mappings
 
-	+ help summary for help w/ no args.  Details when 
+	+ help summary for help w/ no args.  Details when
 	  command specified.
 
 	+ command to toggle verbosity?
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g
index 34890cc..369516b 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g
@@ -1,5 +1,5 @@
 # memtoy test  - lazy migrate single 1G anon segment
-# 
+#
 numa
 anon foo 1g
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g-touch b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g-touch
index 8c104d6..1468043 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g-touch
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1g-touch
@@ -1,6 +1,6 @@
 # memtoy test  - lazy migrate single 1G anon segment
 # no 'WAIT on mbind
-# 
+#
 numa
 anon foo 1g
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1p b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1p
index 72fbdfa..270df3a 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1p
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-1p
@@ -1,6 +1,6 @@
 # memtoy test  - lazy migrate single 1 page anon segment
 # for debug/testing
-# 
+#
 #numa
 anon foo 1p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p
index 5075045..b2b4375 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p
@@ -1,5 +1,5 @@
 # memtoy test - lazy migrate single 8 page anon segment
-# 
+#
 #numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-nomig b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-nomig
index d605a85..602ff6a 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-nomig
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-nomig
@@ -1,6 +1,6 @@
 # memtoy test - lazy, single 8 page anon segment
 # bind to nodes 1&2 -- migration should not be req'd
-# 
+#
 numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-touch b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-touch
index b71fa00..2bb6c2f 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-touch
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-anon-8p-touch
@@ -1,5 +1,5 @@
 # memtoy test - lazy migrate single 8 page anon segment
-# 
+#
 #numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m
index 0f4b157..8713934 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m
@@ -1,6 +1,6 @@
 # memtoy test - lazy migration of entire 16M mapped file
 # requires ./zerofile-16m
-# 
+#
 numa
 file zerofile-16m
 map zerofile-16m
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m-touch b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m-touch
index ec008ee..d52577f 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m-touch
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-16m-touch
@@ -1,6 +1,6 @@
 # memtoy test - lazy migration of entire 16M mapped file
 # requires ./zerofile-16m
-# 
+#
 numa
 file zerofile-16m
 map zerofile-16m
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m
index d8d4650..56b4773 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m
@@ -1,6 +1,6 @@
 # memtoy test - lazy migration of entire 1M mapped file
 # requires ./zerofile-1m
-# 
+#
 numa
 file zerofile-1m
 map zerofile-1m
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m-touch b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m-touch
index fc29c1a..6b9ed68 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m-touch
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-1m-touch
@@ -1,7 +1,7 @@
 # memtoy test - lazy migration of entire 1M mapped file
 # lazy migrate, then touch to fault
 # requires ./zerofile-1m
-# 
+#
 numa
 file zerofile-1m
 map zerofile-1m
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-8p b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-8p
index 5e28f81..6beebb7 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-8p
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-file-8p
@@ -1,6 +1,6 @@
 # memtoy test - lazy 8p region of single file seg
 # requires ./zerofile-1m
-# 
+#
 #numa
 file zerofile-1m
 map zerofile-1m
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-shm-8p b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-shm-8p
index d2132e5..c32b3ee 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-shm-8p
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-lazy-shm-8p
@@ -1,5 +1,5 @@
 # memtoy test - lazy migrate 8p range of single 1M shm seg
-# 
+#
 numa
 shm foo 1m
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1g b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1g
index c2c76be..3f33396 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1g
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1g
@@ -1,5 +1,5 @@
 # memtoy test  - manual migrate single 1G anon segment
-# 
+#
 numa
 anon foo 1g
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1p b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1p
index 21b8204..6eb70b5 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1p
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-1p
@@ -1,6 +1,6 @@
 # memtoy test - manual migrate single 1 page anon segment
 # 1 page for debug
-# 
+#
 numa
 anon foo 1p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-8p b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-8p
index c17a5c2..08f2ca8 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-8p
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-anon-8p
@@ -1,5 +1,5 @@
 # memtoy test - manual migrate single 8 page anon segment
-# 
+#
 numa
 anon foo 8p
 map foo
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-16m b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-16m
index 6ed61f0..6d2771b 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-16m
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-16m
@@ -1,6 +1,6 @@
 # memtoy test - manual migrate of 16M mapped file
 # requires ./zerofile-16m
-# 
+#
 numa
 file zerofile-16m
 map zerofile-16m
diff --git a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-1m b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-1m
index 6a7fcb0..91a285c 100755
--- a/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-1m
+++ b/testcases/kernel/hotplug/memory_hotplug/Xpm-tests/test-mpm-file-1m
@@ -1,6 +1,6 @@
 # memtoy test - manual migrate of mapped file
 # requires ./zerofile-1m
-# 
+#
 numa
 file zerofile-1m
 map zerofile-1m
diff --git a/testcases/kernel/hotplug/memory_hotplug/segment.h b/testcases/kernel/hotplug/memory_hotplug/segment.h
index 2a9bbd5..8b120b0 100644
--- a/testcases/kernel/hotplug/memory_hotplug/segment.h
+++ b/testcases/kernel/hotplug/memory_hotplug/segment.h
@@ -31,7 +31,7 @@
 typedef enum {
 	SEGT_NONE=0,	/* unused segment */
 	SEGT_ANON=1,	/* anonymous -- MAP_ANON */
-	SEGT_FILE=2,    
+	SEGT_FILE=2,
 	SEGT_SHM=3,
 	SEGT_NTYPES
 } seg_type_t;
diff --git a/testcases/kernel/io/aio/aio02/README b/testcases/kernel/io/aio/aio02/README
index addec27..81ab36e 100644
--- a/testcases/kernel/io/aio/aio02/README
+++ b/testcases/kernel/io/aio/aio02/README
@@ -9,4 +9,4 @@
 	make sure your system are support with libaio-0.3.92 or higher.
 		you can download this form http://www.kernel.org.
 	make sure your system are support with glibc 2.1.91 or higher.
-	
+
diff --git a/testcases/kernel/io/aio/aio02/common.h b/testcases/kernel/io/aio/aio02/common.h
index 6962e90..4b80761 100644
--- a/testcases/kernel/io/aio/aio02/common.h
+++ b/testcases/kernel/io/aio/aio02/common.h
@@ -23,6 +23,6 @@
 		fprintf(stderr, "%s: %s\n", func, strerror(-rc));
 	else
 		fprintf(stderr, "%s: error %d\n", func, rc);
-	
+
 	exit(1);
 }
diff --git a/testcases/kernel/io/direct_io/Makefile b/testcases/kernel/io/direct_io/Makefile
index af6f308..31bffd0 100644
--- a/testcases/kernel/io/direct_io/Makefile
+++ b/testcases/kernel/io/direct_io/Makefile
@@ -20,7 +20,7 @@
 
 include $(top_srcdir)/include/mk/testcases.mk
 
-CFLAGS				+= -DSHARED_OFILE -D_GNU_SOURCE 
+CFLAGS				+= -DSHARED_OFILE -D_GNU_SOURCE
 
 LDLIBS				+= -lpthread
 
diff --git a/testcases/kernel/io/direct_io/README b/testcases/kernel/io/direct_io/README
index d6956f5..dfa7e70 100644
--- a/testcases/kernel/io/direct_io/README
+++ b/testcases/kernel/io/direct_io/README
@@ -32,14 +32,14 @@
 
 		$ <testprogram-name> [options]
 
-Note: 
+Note:
 -----
 1: The script diorun gives different ways to run the tests. Add additional
    test cases as needed.
-2: For diotest3.c and diotest6.c fails randomly with a number of children 
-   for bigger runs. The test fail with either data comparaision failures 
-   or input/output errors during read. Two issues are identified with 
-   buffered/direct read, write coherence and the problem is reported. 
+2: For diotest3.c and diotest6.c fails randomly with a number of children
+   for bigger runs. The test fail with either data comparaision failures
+   or input/output errors during read. Two issues are identified with
+   buffered/direct read, write coherence and the problem is reported.
    (bugzilla.linux.ibm.com - Bug# 862).
 
 Any questions?
diff --git a/testcases/kernel/io/disktest/LICENSE b/testcases/kernel/io/disktest/LICENSE
index cde4efd..118c5c6 100644
--- a/testcases/kernel/io/disktest/LICENSE
+++ b/testcases/kernel/io/disktest/LICENSE
@@ -9,264 +9,264 @@
 
       Preamble
 
-      The licenses for most software are designed to take away your freedom to 
-      share and change it. By contrast, the GNU General Public License is 
-      intended to guarantee your freedom to share and change free software--to 
-      make sure the software is free for all its users. This General Public 
-      License applies to most of the Free Software Foundation's software and to 
-      any other program whose authors commit to using it. (Some other Free 
-      Software Foundation software is covered by the GNU Library General Public 
+      The licenses for most software are designed to take away your freedom to
+      share and change it. By contrast, the GNU General Public License is
+      intended to guarantee your freedom to share and change free software--to
+      make sure the software is free for all its users. This General Public
+      License applies to most of the Free Software Foundation's software and to
+      any other program whose authors commit to using it. (Some other Free
+      Software Foundation software is covered by the GNU Library General Public
       License instead.) You can apply it to your programs, too.
 
-      When we speak of free software, we are referring to freedom, not price. 
-      Our General Public Licenses are designed to make sure that you have the 
-      freedom to distribute copies of free software (and charge for this service 
-      if you wish), that you receive source code or can get it if you want it, 
-      that you can change the software or use pieces of it in new free programs; 
+      When we speak of free software, we are referring to freedom, not price.
+      Our General Public Licenses are designed to make sure that you have the
+      freedom to distribute copies of free software (and charge for this service
+      if you wish), that you receive source code or can get it if you want it,
+      that you can change the software or use pieces of it in new free programs;
       and that you know you can do these things.
 
-      To protect your rights, we need to make restrictions that forbid anyone to 
-      deny you these rights or to ask you to surrender the rights. These 
-      restrictions translate to certain responsibilities for you if you 
+      To protect your rights, we need to make restrictions that forbid anyone to
+      deny you these rights or to ask you to surrender the rights. These
+      restrictions translate to certain responsibilities for you if you
       distribute copies of the software, or if you modify it.
 
-      For example, if you distribute copies of such a program, whether gratis or 
-      for a fee, you must give the recipients all the rights that you have. You 
-      must make sure that they, too, receive or can get the source code. And you 
+      For example, if you distribute copies of such a program, whether gratis or
+      for a fee, you must give the recipients all the rights that you have. You
+      must make sure that they, too, receive or can get the source code. And you
       must show them these terms so they know their rights.
 
-      We protect your rights with two steps: (1) copyright the software, and (2) 
-      offer you this license which gives you legal permission to copy, 
+      We protect your rights with two steps: (1) copyright the software, and (2)
+      offer you this license which gives you legal permission to copy,
       distribute and/or modify the software.
 
-      Also, for each author's protection and ours, we want to make certain that 
-      everyone understands that there is no warranty for this free software. If 
-      the software is modified by someone else and passed on, we want its 
-      recipients to know that what they have is not the original, so that any 
-      problems introduced by others will not reflect on the original authors' 
+      Also, for each author's protection and ours, we want to make certain that
+      everyone understands that there is no warranty for this free software. If
+      the software is modified by someone else and passed on, we want its
+      recipients to know that what they have is not the original, so that any
+      problems introduced by others will not reflect on the original authors'
       reputations.
 
-      Finally, any free program is threatened constantly by software patents. We 
-      wish to avoid the danger that redistributors of a free program will 
-      individually obtain patent licenses, in effect making the program 
-      proprietary. To prevent this, we have made it clear that any patent must 
+      Finally, any free program is threatened constantly by software patents. We
+      wish to avoid the danger that redistributors of a free program will
+      individually obtain patent licenses, in effect making the program
+      proprietary. To prevent this, we have made it clear that any patent must
       be licensed for everyone's free use or not licensed at all.
 
-      The precise terms and conditions for copying, distribution and 
+      The precise terms and conditions for copying, distribution and
       modification follow.
 
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
-      0. This License applies to any program or other work which contains a 
-      notice placed by the copyright holder saying it may be distributed under 
-      the terms of this General Public License. The "Program", below, refers to 
-      any such program or work, and a "work based on the Program" means either 
-      the Program or any derivative work under copyright law: that is to say, a 
-      work containing the Program or a portion of it, either verbatim or with 
-      modifications and/or translated into another language. (Hereinafter, 
-      translation is included without limitation in the term "modification".) 
+      0. This License applies to any program or other work which contains a
+      notice placed by the copyright holder saying it may be distributed under
+      the terms of this General Public License. The "Program", below, refers to
+      any such program or work, and a "work based on the Program" means either
+      the Program or any derivative work under copyright law: that is to say, a
+      work containing the Program or a portion of it, either verbatim or with
+      modifications and/or translated into another language. (Hereinafter,
+      translation is included without limitation in the term "modification".)
       Each licensee is addressed as "you".
 
-      Activities other than copying, distribution and modification are not 
-      covered by this License; they are outside its scope. The act of running 
-      the Program is not restricted, and the output from the Program is covered 
-      only if its contents constitute a work based on the Program (independent 
-      of having been made by running the Program). Whether that is true depends 
+      Activities other than copying, distribution and modification are not
+      covered by this License; they are outside its scope. The act of running
+      the Program is not restricted, and the output from the Program is covered
+      only if its contents constitute a work based on the Program (independent
+      of having been made by running the Program). Whether that is true depends
       on what the Program does.
 
-      1. You may copy and distribute verbatim copies of the Program's source 
-      code as you receive it, in any medium, provided that you conspicuously and 
-      appropriately publish on each copy an appropriate copyright notice and 
-      disclaimer of warranty; keep intact all the notices that refer to this 
-      License and to the absence of any warranty; and give any other recipients 
+      1. You may copy and distribute verbatim copies of the Program's source
+      code as you receive it, in any medium, provided that you conspicuously and
+      appropriately publish on each copy an appropriate copyright notice and
+      disclaimer of warranty; keep intact all the notices that refer to this
+      License and to the absence of any warranty; and give any other recipients
       of the Program a copy of this License along with the Program.
 
-      You may charge a fee for the physical act of transferring a copy, and you 
+      You may charge a fee for the physical act of transferring a copy, and you
       may at your option offer warranty protection in exchange for a fee.
 
-      2. You may modify your copy or copies of the Program or any portion of it, 
-      thus forming a work based on the Program, and copy and distribute such 
-      modifications or work under the terms of Section 1 above, provided that 
+      2. You may modify your copy or copies of the Program or any portion of it,
+      thus forming a work based on the Program, and copy and distribute such
+      modifications or work under the terms of Section 1 above, provided that
       you also meet all of these conditions:
 
-        a) You must cause the modified files to carry prominent notices stating 
+        a) You must cause the modified files to carry prominent notices stating
         that you changed the files and the date of any change.
 
-        b) You must cause any work that you distribute or publish, that in whole 
-        or in part contains or is derived from the Program or any part thereof, 
-        to be licensed as a whole at no charge to all third parties under the 
+        b) You must cause any work that you distribute or publish, that in whole
+        or in part contains or is derived from the Program or any part thereof,
+        to be licensed as a whole at no charge to all third parties under the
         terms of this License.
 
-        c) If the modified program normally reads commands interactively when 
-        run, you must cause it, when started running for such interactive use in 
-        the most ordinary way, to print or display an announcement including an 
-        appropriate copyright notice and a notice that there is no warranty (or 
-        else, saying that you provide a warranty) and that users may 
-        redistribute the program under these conditions, and telling the user 
-        how to view a copy of this License. (Exception: if the Program itself is 
-        interactive but does not normally print such an announcement, your work 
+        c) If the modified program normally reads commands interactively when
+        run, you must cause it, when started running for such interactive use in
+        the most ordinary way, to print or display an announcement including an
+        appropriate copyright notice and a notice that there is no warranty (or
+        else, saying that you provide a warranty) and that users may
+        redistribute the program under these conditions, and telling the user
+        how to view a copy of this License. (Exception: if the Program itself is
+        interactive but does not normally print such an announcement, your work
         based on the Program is not required to print an announcement.)
 
-      These requirements apply to the modified work as a whole. If identifiable 
-      sections of that work are not derived from the Program, and can be 
-      reasonably considered independent and separate works in themselves, then 
-      this License, and its terms, do not apply to those sections when you 
-      distribute them as separate works. But when you distribute the same 
-      sections as part of a whole which is a work based on the Program, the 
-      distribution of the whole must be on the terms of this License, whose 
-      permissions for other licensees extend to the entire whole, and thus to 
+      These requirements apply to the modified work as a whole. If identifiable
+      sections of that work are not derived from the Program, and can be
+      reasonably considered independent and separate works in themselves, then
+      this License, and its terms, do not apply to those sections when you
+      distribute them as separate works. But when you distribute the same
+      sections as part of a whole which is a work based on the Program, the
+      distribution of the whole must be on the terms of this License, whose
+      permissions for other licensees extend to the entire whole, and thus to
       each and every part regardless of who wrote it.
 
-      Thus, it is not the intent of this section to claim rights or contest your 
-      rights to work written entirely by you; rather, the intent is to exercise 
-      the right to control the distribution of derivative or collective works 
+      Thus, it is not the intent of this section to claim rights or contest your
+      rights to work written entirely by you; rather, the intent is to exercise
+      the right to control the distribution of derivative or collective works
       based on the Program.
 
-      In addition, mere aggregation of another work not based on the Program 
-      with the Program (or with a work based on the Program) on a volume of a 
-      storage or distribution medium does not bring the other work under the 
+      In addition, mere aggregation of another work not based on the Program
+      with the Program (or with a work based on the Program) on a volume of a
+      storage or distribution medium does not bring the other work under the
       scope of this License.
 
-      3. You may copy and distribute the Program (or a work based on it, under 
-      Section 2) in object code or executable form under the terms of Sections 1 
+      3. You may copy and distribute the Program (or a work based on it, under
+      Section 2) in object code or executable form under the terms of Sections 1
       and 2 above provided that you also do one of the following:
 
-        a) Accompany it with the complete corresponding machine-readable source 
-        code, which must be distributed under the terms of Sections 1 and 2 
+        a) Accompany it with the complete corresponding machine-readable source
+        code, which must be distributed under the terms of Sections 1 and 2
         above on a medium customarily used for software interchange; or,
 
-        b) Accompany it with a written offer, valid for at least three years, to 
-        give any third party, for a charge no more than your cost of physically 
-        performing source distribution, a complete machine-readable copy of the 
-        corresponding source code, to be distributed under the terms of Sections 
+        b) Accompany it with a written offer, valid for at least three years, to
+        give any third party, for a charge no more than your cost of physically
+        performing source distribution, a complete machine-readable copy of the
+        corresponding source code, to be distributed under the terms of Sections
         1 and 2 above on a medium customarily used for software interchange; or,
 
-        c) Accompany it with the information you received as to the offer to 
-        distribute corresponding source code. (This alternative is allowed only 
-        for noncommercial distribution and only if you received the program in 
-        object code or executable form with such an offer, in accord with 
+        c) Accompany it with the information you received as to the offer to
+        distribute corresponding source code. (This alternative is allowed only
+        for noncommercial distribution and only if you received the program in
+        object code or executable form with such an offer, in accord with
         Subsection b above.)
 
-      The source code for a work means the preferred form of the work for making 
-      modifications to it. For an executable work, complete source code means 
-      all the source code for all modules it contains, plus any associated 
-      interface definition files, plus the scripts used to control compilation 
-      and installation of the executable. However, as a special exception, the 
-      source code distributed need not include anything that is normally 
-      distributed (in either source or binary form) with the major components 
-      (compiler, kernel, and so on) of the operating system on which the 
+      The source code for a work means the preferred form of the work for making
+      modifications to it. For an executable work, complete source code means
+      all the source code for all modules it contains, plus any associated
+      interface definition files, plus the scripts used to control compilation
+      and installation of the executable. However, as a special exception, the
+      source code distributed need not include anything that is normally
+      distributed (in either source or binary form) with the major components
+      (compiler, kernel, and so on) of the operating system on which the
       executable runs, unless that component itself accompanies the executable.
 
-      If distribution of executable or object code is made by offering access to 
-      copy from a designated place, then offering equivalent access to copy the 
-      source code from the same place counts as distribution of the source code, 
-      even though third parties are not compelled to copy the source along with 
+      If distribution of executable or object code is made by offering access to
+      copy from a designated place, then offering equivalent access to copy the
+      source code from the same place counts as distribution of the source code,
+      even though third parties are not compelled to copy the source along with
       the object code.
 
-      4. You may not copy, modify, sublicense, or distribute the Program except 
-      as expressly provided under this License. Any attempt otherwise to copy, 
-      modify, sublicense or distribute the Program is void, and will 
-      automatically terminate your rights under this License. However, parties 
-      who have received copies, or rights, from you under this License will not 
-      have their licenses terminated so long as such parties remain in full 
+      4. You may not copy, modify, sublicense, or distribute the Program except
+      as expressly provided under this License. Any attempt otherwise to copy,
+      modify, sublicense or distribute the Program is void, and will
+      automatically terminate your rights under this License. However, parties
+      who have received copies, or rights, from you under this License will not
+      have their licenses terminated so long as such parties remain in full
       compliance.
 
-      5. You are not required to accept this License, since you have not signed 
-      it. However, nothing else grants you permission to modify or distribute 
-      the Program or its derivative works. These actions are prohibited by law 
-      if you do not accept this License. Therefore, by modifying or distributing 
-      the Program (or any work based on the Program), you indicate your 
-      acceptance of this License to do so, and all its terms and conditions for 
+      5. You are not required to accept this License, since you have not signed
+      it. However, nothing else grants you permission to modify or distribute
+      the Program or its derivative works. These actions are prohibited by law
+      if you do not accept this License. Therefore, by modifying or distributing
+      the Program (or any work based on the Program), you indicate your
+      acceptance of this License to do so, and all its terms and conditions for
       copying, distributing or modifying the Program or works based on it.
 
-      6. Each time you redistribute the Program (or any work based on the 
-      Program), the recipient automatically receives a license from the original 
-      licensor to copy, distribute or modify the Program subject to these terms 
-      and conditions. You may not impose any further restrictions on the 
-      recipients' exercise of the rights granted herein. You are not responsible 
+      6. Each time you redistribute the Program (or any work based on the
+      Program), the recipient automatically receives a license from the original
+      licensor to copy, distribute or modify the Program subject to these terms
+      and conditions. You may not impose any further restrictions on the
+      recipients' exercise of the rights granted herein. You are not responsible
       for enforcing compliance by third parties to this License.
 
-      7. If, as a consequence of a court judgment or allegation of patent 
-      infringement or for any other reason (not limited to patent issues), 
-      conditions are imposed on you (whether by court order, agreement or 
-      otherwise) that contradict the conditions of this License, they do not 
-      excuse you from the conditions of this License. If you cannot distribute 
-      so as to satisfy simultaneously your obligations under this License and 
-      any other pertinent obligations, then as a consequence you may not 
-      distribute the Program at all. For example, if a patent license would not 
-      permit royalty-free redistribution of the Program by all those who receive 
-      copies directly or indirectly through you, then the only way you could 
-      satisfy both it and this License would be to refrain entirely from 
+      7. If, as a consequence of a court judgment or allegation of patent
+      infringement or for any other reason (not limited to patent issues),
+      conditions are imposed on you (whether by court order, agreement or
+      otherwise) that contradict the conditions of this License, they do not
+      excuse you from the conditions of this License. If you cannot distribute
+      so as to satisfy simultaneously your obligations under this License and
+      any other pertinent obligations, then as a consequence you may not
+      distribute the Program at all. For example, if a patent license would not
+      permit royalty-free redistribution of the Program by all those who receive
+      copies directly or indirectly through you, then the only way you could
+      satisfy both it and this License would be to refrain entirely from
       distribution of the Program.
 
-      If any portion of this section is held invalid or unenforceable under any 
-      particular circumstance, the balance of the section is intended to apply 
+      If any portion of this section is held invalid or unenforceable under any
+      particular circumstance, the balance of the section is intended to apply
       and the section as a whole is intended to apply in other circumstances.
 
-      It is not the purpose of this section to induce you to infringe any 
-      patents or other property right claims or to contest validity of any such 
-      claims; this section has the sole purpose of protecting the integrity of 
-      the free software distribution system, which is implemented by public 
-      license practices. Many people have made generous contributions to the 
-      wide range of software distributed through that system in reliance on 
-      consistent application of that system; it is up to the author/donor to 
-      decide if he or she is willing to distribute software through any other 
+      It is not the purpose of this section to induce you to infringe any
+      patents or other property right claims or to contest validity of any such
+      claims; this section has the sole purpose of protecting the integrity of
+      the free software distribution system, which is implemented by public
+      license practices. Many people have made generous contributions to the
+      wide range of software distributed through that system in reliance on
+      consistent application of that system; it is up to the author/donor to
+      decide if he or she is willing to distribute software through any other
       system and a licensee cannot impose that choice.
 
-      This section is intended to make thoroughly clear what is believed to be a 
+      This section is intended to make thoroughly clear what is believed to be a
       consequence of the rest of this License.
 
-      8. If the distribution and/or use of the Program is restricted in certain 
-      countries either by patents or by copyrighted interfaces, the original 
-      copyright holder who places the Program under this License may add an 
-      explicit geographical distribution limitation excluding those countries, 
-      so that distribution is permitted only in or among countries not thus 
-      excluded. In such case, this License incorporates the limitation as if 
+      8. If the distribution and/or use of the Program is restricted in certain
+      countries either by patents or by copyrighted interfaces, the original
+      copyright holder who places the Program under this License may add an
+      explicit geographical distribution limitation excluding those countries,
+      so that distribution is permitted only in or among countries not thus
+      excluded. In such case, this License incorporates the limitation as if
       written in the body of this License.
 
-      9. The Free Software Foundation may publish revised and/or new versions of 
-      the General Public License from time to time. Such new versions will be 
-      similar in spirit to the present version, but may differ in detail to 
+      9. The Free Software Foundation may publish revised and/or new versions of
+      the General Public License from time to time. Such new versions will be
+      similar in spirit to the present version, but may differ in detail to
       address new problems or concerns.
 
-      Each version is given a distinguishing version number. If the Program 
-      specifies a version number of this License which applies to it and "any 
-      later version", you have the option of following the terms and conditions 
-      either of that version or of any later version published by the Free 
-      Software Foundation. If the Program does not specify a version number of 
-      this License, you may choose any version ever published by the Free 
+      Each version is given a distinguishing version number. If the Program
+      specifies a version number of this License which applies to it and "any
+      later version", you have the option of following the terms and conditions
+      either of that version or of any later version published by the Free
+      Software Foundation. If the Program does not specify a version number of
+      this License, you may choose any version ever published by the Free
       Software Foundation.
 
-      10. If you wish to incorporate parts of the Program into other free 
-      programs whose distribution conditions are different, write to the author 
-      to ask for permission. For software which is copyrighted by the Free 
-      Software Foundation, write to the Free Software Foundation; we sometimes 
-      make exceptions for this. Our decision will be guided by the two goals of 
-      preserving the free status of all derivatives of our free software and of 
+      10. If you wish to incorporate parts of the Program into other free
+      programs whose distribution conditions are different, write to the author
+      to ask for permission. For software which is copyrighted by the Free
+      Software Foundation, write to the Free Software Foundation; we sometimes
+      make exceptions for this. Our decision will be guided by the two goals of
+      preserving the free status of all derivatives of our free software and of
       promoting the sharing and reuse of software generally.
 
       NO WARRANTY
 
-      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 
-      FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 
-      OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 
-      PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 
-      OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 
-      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 
-      TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 
-      PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 
+      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+      FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+      OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+      PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+      OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+      TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+      PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
       REPAIR OR CORRECTION.
 
-      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 
-      WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 
-      REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 
-      INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES 
-      ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT 
-      LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES 
-      SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE 
-      WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN 
+      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+      WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+      REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+      INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
+      ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT
+      LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES
+      SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE
+      WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN
       ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
 
       END OF TERMS AND CONDITIONS
 
- 
+
diff --git a/testcases/kernel/io/disktest/Makefile.windows b/testcases/kernel/io/disktest/Makefile.windows
index 93e623d..b29156c 100644
--- a/testcases/kernel/io/disktest/Makefile.windows
+++ b/testcases/kernel/io/disktest/Makefile.windows
@@ -2,28 +2,28 @@
 !IF "$(CFG)" == ""
 CFG=disktest - Release
 !MESSAGE No configuration specified. Defaulting to disktest - Release.
-!ENDIF 
+!ENDIF
 
 !IF "$(CFG)" != "disktest - Release" && "$(CFG)" != "disktest - Debug"
 !MESSAGE Invalid configuration "$(CFG)" specified.
 !MESSAGE You can specify a configuration when running NMAKE
 !MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
+!MESSAGE
 !MESSAGE nmake /f "Makefile.windows" CFG="disktest - Debug"
-!MESSAGE 
+!MESSAGE
 !MESSAGE Possible choices for configuration are:
-!MESSAGE 
+!MESSAGE
 !MESSAGE "disktest - Release" (based on "(x86) Console Application")
 !MESSAGE "disktest - Debug" (based on "(x86) Console Application")
-!MESSAGE 
+!MESSAGE
 !ERROR An invalid configuration is specified.
-!ENDIF 
+!ENDIF
 
 !IF "$(OS)" == "Windows_NT"
 NULL=
-!ELSE 
+!ELSE
 NULL=nul
-!ENDIF 
+!ENDIF
 
 CPP=cl.exe
 RSC=rc.exe
@@ -72,10 +72,10 @@
 "$(OUTDIR)" :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
-CPP_PROJ=/nologo /W3 /Gs /MD /D"WIN32" /D"_WIN32_WINNT=0x0500" /D"WINDOWS" /D"NDEBUG" /D"_CONSOLE" /D"_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\disktest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+CPP_PROJ=/nologo /W3 /Gs /MD /D"WIN32" /D"_WIN32_WINNT=0x0500" /D"WINDOWS" /D"NDEBUG" /D"_CONSOLE" /D"_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\disktest.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
 
 LINK=link.exe bufferoverflowu.lib Winmm.lib Ws2_32.lib
-LINK_FLAGS=/nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\disktest.pdb" /out:"$(OUTDIR)\disktest.exe" 
+LINK_FLAGS=/nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\disktest.pdb" /out:"$(OUTDIR)\disktest.exe"
 LINK_OBJS= \
 	"$(INTDIR)\childmain.obj" \
 	"$(INTDIR)\timer.obj" \
@@ -141,10 +141,10 @@
 "$(OUTDIR)" :
     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
 
-CPP_PROJ=bufferoverflow.lib /nologo /MLd /W3 /Gm /GX /ZI /Od /MD /D"WIN32" /D"_WIN32_WINNT=0x0500" /D"WINDOWS" /D"_DEBUG" /D"_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\disktest.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+CPP_PROJ=bufferoverflow.lib /nologo /MLd /W3 /Gm /GX /ZI /Od /MD /D"WIN32" /D"_WIN32_WINNT=0x0500" /D"WINDOWS" /D"_DEBUG" /D"_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\disktest.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
 
 LINK=link.exe bufferoverflow.lib Winmm.lib Ws2_32.lib
-LINK_FLAGS=/nologo /subsystem:console /pdb:"$(OUTDIR)\disktest.pdb" /out:"$(OUTDIR)\disktest.exe" 
+LINK_FLAGS=/nologo /subsystem:console /pdb:"$(OUTDIR)\disktest.pdb" /out:"$(OUTDIR)\disktest.exe"
 LINK_OBJS= \
 	"$(INTDIR)\childmain.obj" \
 	"$(INTDIR)\Getopt.obj" \
@@ -165,16 +165,16 @@
   $(LINK_FLAGS) $(LINK_OBJS)
 <<
 
-!ENDIF 
+!ENDIF
 
 .c{$(INTDIR)}.obj::
    $(CPP) @<<
-   $(CPP_PROJ) $< 
+   $(CPP_PROJ) $<
 <<
 
 .c{$(INTDIR)}.sbr::
    $(CPP) @<<
-   $(CPP_PROJ) $< 
+   $(CPP_PROJ) $<
 <<
 
 !IF "$(CFG)" == "disktest - Release" || "$(CFG)" == "disktest - Debug"
@@ -231,5 +231,5 @@
 
 "$(INTDIR)\signals.obj"	"$(INTDIR)\signals.sbr" : $(SOURCE) "$(INTDIR)"
 
-!ENDIF 
+!ENDIF
 
diff --git a/testcases/kernel/io/disktest/man1/disktest.1 b/testcases/kernel/io/disktest/man1/disktest.1
index efbd7e8..0449235 100644
--- a/testcases/kernel/io/disktest/man1/disktest.1
+++ b/testcases/kernel/io/disktest/man1/disktest.1
@@ -102,7 +102,7 @@
 .B Disktest
 does repeated accesses to a
 .I filespec
-and optionally writes to, reads from, and verifies the data.  By default, 
+and optionally writes to, reads from, and verifies the data.  By default,
 .B disktest
 makes assumptions about the running environment which allows for a quick start of IO generation.  However,
 .B Disktest
@@ -261,7 +261,7 @@
 .B fsync(2)
 to occur on every write.
 
-Adding 
+Adding
 .B d
 will open with the
 .B O_DIRECT
@@ -444,7 +444,7 @@
 .B disktest
 will exit normally.
 .IP -w
-Write to 
+Write to
 .I filespec.
 Data will be written as fast as possible and not read back to check for data corruption. can be combined with -r option to do read/write testing and -E to perform data integrity checking.
 .IP -z
diff --git a/testcases/kernel/io/disktest/man1/disktest_manual.html b/testcases/kernel/io/disktest/man1/disktest_manual.html
index 7355584..0bbe574 100644
--- a/testcases/kernel/io/disktest/man1/disktest_manual.html
+++ b/testcases/kernel/io/disktest/man1/disktest_manual.html
@@ -140,7 +140,7 @@
 does repeated accesses to a
 <I>filespec</I>
 
-and optionally writes to, reads from, and verifies the data.  By default, 
+and optionally writes to, reads from, and verifies the data.  By default,
 <B>disktest</B>
 
 makes assumptions about the running environment which allows for a quick start of IO generation.  However,
@@ -344,7 +344,7 @@
 
 to occur on every write.
 <P>
-Adding 
+Adding
 <B>d</B>
 
 will open with the
@@ -577,7 +577,7 @@
 
 will exit normally.
 <DT>-w<DD>
-Write to 
+Write to
 <I>filespec.</I>
 
 Data will be written as fast as possible and not read back to check for data corruption. can be combined with -r option to do read/write testing and -E to perform data integrity checking.
diff --git a/testcases/kernel/io/ltp-aiodio/README b/testcases/kernel/io/ltp-aiodio/README
index 205427d..ae31db7 100644
--- a/testcases/kernel/io/ltp-aiodio/README
+++ b/testcases/kernel/io/ltp-aiodio/README
@@ -2,7 +2,7 @@
 TESTS to check consistency between O_DIRECT reads/writes and buffered
 reads/writes and truncate.
 
-These tests should be run from the aiodio directory and MUST use a kernel 
+These tests should be run from the aiodio directory and MUST use a kernel
 compiled with GCC 3.3.X. Older versions of the compiler will fail and seg fault.
 
 The large file passed should be at least 25M to properly stress AIO & DIO. A
diff --git a/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c b/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c
index 9760574..c488f88 100644
--- a/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c
+++ b/testcases/kernel/io/ltp-aiodio/aiodio_sparse.c
@@ -68,7 +68,7 @@
 
 	if ((num_aio * writesize) > filesize)
 		num_aio = filesize / writesize;
-	
+
 	memset(&myctx, 0, sizeof(myctx));
 	io_queue_init(num_aio, &myctx);
 
@@ -124,7 +124,7 @@
 	 * As AIO requests finish, keep issuing more AIO until done.
 	 */
 	aio_inflight = num_aio;
-	
+
 	while (offset < filesize)  {
 		int n;
 		struct iocb *iocbp;
@@ -138,12 +138,12 @@
 				tst_resm(TBROK, "io_getevents() returned %d", n);
 			break;
 		}
-		
+
 		if (debug)
 			tst_resm(TINFO, "aiodio_sparse: io_getevent() returned %d", n);
-		
+
 		aio_inflight--;
-		
+
 		/*
 		 * check if write succeeded.
 		 */
@@ -168,10 +168,10 @@
 				 offset);
 			break;
 		}
-		
+
 		if (debug)
 			tst_resm(TINFO, "io_submit() return %d", w);
-		
+
 		aio_inflight++;
 	}
 
@@ -198,10 +198,10 @@
 			         event.res);
 		}
 	}
-	
+
 	close(fd);
 	unlink(filename);
-	
+
 	return 0;
 }
 
@@ -284,9 +284,9 @@
 		}
 	}
 	tst_sig(FORK, DEF_HANDLER, cleanup);
-	
+
 	ret = aiodio_sparse(filename, alignment, writesize, filesize, num_aio);
-	
+
 	tst_resm(TINFO, "Killing childrens(s)");
 
 	for (i = 0; i < num_children; i++)
@@ -308,10 +308,10 @@
 	if (children_errors)
 		tst_resm(TFAIL, "%i children(s) exited abnormally",
 		         children_errors);
-		
+
 	if (!children_errors && !ret)
 		tst_resm(TPASS, "Test passed");
-	
+
 	cleanup();
 	tst_exit();
 }
diff --git a/testcases/kernel/io/ltp-aiodio/common_sparse.h b/testcases/kernel/io/ltp-aiodio/common_sparse.h
index 3c7286f..61fe66f 100644
--- a/testcases/kernel/io/ltp-aiodio/common_sparse.h
+++ b/testcases/kernel/io/ltp-aiodio/common_sparse.h
@@ -20,7 +20,7 @@
 #define LTP_AIODIO_COMMON_SPARSE
 
 /*
- * This code tries to create dirty free blocks on 
+ * This code tries to create dirty free blocks on
  * the HDD so there is a chance that blocks to be allocated
  * for a file are filled with something else than zeroes.
  *
@@ -37,14 +37,14 @@
 	size = ((size + pg - 1) / pg) * pg;
 
 	fd = open(filename, O_CREAT|O_RDWR|O_EXCL, 0600);
-	
+
 	if (fd < 0)
-		tst_brkm(TBROK|TERRNO, cleanup, "failed to open '%s'", filename); 
-	
+		tst_brkm(TBROK|TERRNO, cleanup, "failed to open '%s'", filename);
+
 	SAFE_FTRUNCATE(cleanup, fd, size);
-	
+
 	p = SAFE_MMAP(cleanup, NULL, size, PROT_WRITE|PROT_READ, MAP_SHARED|MAP_FILE, fd, 0);
-	
+
 	memset(p, 0xaa, size);
 	msync(p, size, MS_SYNC);
 	munmap(p, size);
@@ -95,12 +95,12 @@
 		buf++;
 		size--;
 	}
-	
+
 	return NULL;
 }
 
 /*
- * Make sure we read only zeroes, 
+ * Make sure we read only zeroes,
  * either there is a hole in the file,
  * or zeroes were actually written by parent.
  */
@@ -122,7 +122,7 @@
 		if (debug)
 			fprintf(stderr, "Child %i waits for '%s' to appear\n",
 			        getpid(), filename);
-		
+
 		usleep(100000);
 	}
 
diff --git a/testcases/kernel/io/ltp-aiodio/dio_sparse.c b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
index 97dbef8..6e4ab72 100644
--- a/testcases/kernel/io/ltp-aiodio/dio_sparse.c
+++ b/testcases/kernel/io/ltp-aiodio/dio_sparse.c
@@ -1,9 +1,9 @@
 /*
  *   Copyright (c) 2004 Daniel McNeil <daniel@osdl.org>
  *                 2004 Open Source Development Lab
- *   
+ *
  *   Copyright (c) 2004 Marty Ridgeway <mridge@us.ibm.com>
- *   
+ *
  *   Copyright (c) 2011 Cyril Hrubis <chrubis@suse.cz>
  *
  *   This program is free software;  you can redistribute it and/or modify
@@ -81,7 +81,7 @@
 			close(fd);
 			return 1;
 		}
-		
+
 		i += w;
 	}
 
@@ -165,11 +165,11 @@
 		}
 	}
 	tst_sig(FORK, DEF_HANDLER, cleanup);
-	
+
 	ret = dio_sparse(filename, alignment, writesize, filesize);
 
 	tst_resm(TINFO, "Killing childrens(s)");
-	
+
 	for (i = 0; i < num_children; i++)
 		kill(pid[i], SIGTERM);
 
@@ -189,10 +189,10 @@
 	if (children_errors)
 		tst_resm(TFAIL, "%i children(s) exited abnormally",
 		         children_errors);
-		
+
 	if (!children_errors && !ret)
 		tst_resm(TPASS, "Test passed");
-	
+
 	cleanup();
 	tst_exit();
 }
diff --git a/testcases/kernel/io/stress_floppy/Makefile b/testcases/kernel/io/stress_floppy/Makefile
index e1a021b..96aa2e6 100644
--- a/testcases/kernel/io/stress_floppy/Makefile
+++ b/testcases/kernel/io/stress_floppy/Makefile
@@ -22,7 +22,7 @@
 
 CLEAN_TARGETS		:= 10*K_file dumpdir
 
-INSTALL_DEPS		:= dumpdir 
+INSTALL_DEPS		:= dumpdir
 
 INSTALL_TARGETS		:= stress_floppy
 
diff --git a/testcases/kernel/io/stress_floppy/stress_floppy b/testcases/kernel/io/stress_floppy/stress_floppy
index 0fdb41c..80e76d8 100755
--- a/testcases/kernel/io/stress_floppy/stress_floppy
+++ b/testcases/kernel/io/stress_floppy/stress_floppy
@@ -117,7 +117,7 @@
   exit 1
 fi
 
-dump -f /dev/fd0 dumpdir 
+dump -f /dev/fd0 dumpdir
 if [ $? -ne 0 ]; then
   echo "$the_file dump write failed!"
   exit 1
@@ -125,7 +125,7 @@
   echo "$the_file dump write passed."
 fi
 
-rm -rf $TCtmp/dumpdir 
+rm -rf $TCtmp/dumpdir
 cd /
 
 restore -v -r -f /dev/fd0 2>/dev/null
@@ -226,11 +226,11 @@
 done
 }
 
-test_linuxformat() 
+test_linuxformat()
 {
 $trace_logic
 echo Testing mkdosfs....
-mkfs -v /dev/fd0 
+mkfs -v /dev/fd0
   if [ $? -ne 0 ]; then
     echo "Linux (ext2) format failed!"
     exit 1
@@ -239,11 +239,11 @@
   fi
 }
 
-test_dosformat() 
+test_dosformat()
 {
 $trace_logic
 echo Testing mkdosfs....
-mkdosfs -v /dev/fd0 
+mkdosfs -v /dev/fd0
   if [ $? -ne 0 ]; then
     echo "Dosformat failed!"
     exit 1
diff --git a/testcases/kernel/ipc/ipc_stress/README b/testcases/kernel/ipc/ipc_stress/README
index 6aed2d4..ba366f6 100644
--- a/testcases/kernel/ipc/ipc_stress/README
+++ b/testcases/kernel/ipc/ipc_stress/README
@@ -2,10 +2,10 @@
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 To run these tests run ./testall
-On completion you will see a lot of sem and shm id's created (ipcs), run the 
+On completion you will see a lot of sem and shm id's created (ipcs), run the
 script ./cleanup to remove them from your system.
 
-You can manually remove the ids by doing the following 
+You can manually remove the ids by doing the following
 
 IDS=`ipcs | cut -f 2 -d " "`
 
diff --git a/testcases/kernel/ipc/ipc_stress/cleanup b/testcases/kernel/ipc/ipc_stress/cleanup
index fd40856..5ca4f9a 100755
--- a/testcases/kernel/ipc/ipc_stress/cleanup
+++ b/testcases/kernel/ipc/ipc_stress/cleanup
@@ -1,12 +1,12 @@
 #!/bin/sh
- 
+
 SEMS=`ipcs -s | awk '{printf " %d", $2}' | sed -e 's/ 0//g'`
 for SEM_IDS in $SEMS
-do 
+do
 	echo "ipcrm -s $SEM_IDS"
-	ipcrm -s $SEM_IDS 
+	ipcrm -s $SEM_IDS
 done
- 
+
 MSGS=`ipcs -q | awk '{printf " %d", $2}' | sed -e 's/ 0//g'`
 for MSG_IDS in $MSGS
 do
@@ -18,5 +18,5 @@
 for SHM_IDS in $SHMS
 do
 	echo "ipcrm -m $SHM_IDS"
-	ipcrm -m $SHM_IDS 
+	ipcrm -m $SHM_IDS
 done
diff --git a/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh b/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh
index 549786e..46921c1 100755
--- a/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh
+++ b/testcases/kernel/ipc/ipc_stress/run_semaphore_test_01.sh
@@ -2,7 +2,7 @@
 ################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2008                 ##
-## Copyright (c) Jinbing Guo, guojb@cn.ibm.com, 2008                          ## 
+## Copyright (c) Jinbing Guo, guojb@cn.ibm.com, 2008                          ##
 ##                                                                            ##
 ## 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       ##
@@ -56,7 +56,7 @@
 SEM_ID=0
 
 if [ -f $LTPROOT/testcases/bin/semaphore_test_01 ]; then
-	RC=0                
+	RC=0
 else
 	tst_resm TBROK, "Could not find the case semaphore_test_01."
 	RC=1
@@ -87,7 +87,7 @@
 RC=0                        # return code from commands.
 
 SEM_ID=`semaphore_test_01`
-RC=$?   
+RC=$?
 
 # Check the return value of semaphore_test_01
 if [ $RC -ne 0 ]
diff --git a/testcases/kernel/ipc/ipc_stress/signals.h b/testcases/kernel/ipc/ipc_stress/signals.h
index 3f60acb..bcbaf23 100644
--- a/testcases/kernel/ipc/ipc_stress/signals.h
+++ b/testcases/kernel/ipc/ipc_stress/signals.h
@@ -19,42 +19,42 @@
 
 // signal names for numbers
 
-char * signames [] = 
-{"!!ERROR - NOT A SIGNAL!!", 
- "SIGHUP", //          1       // Hangup (POSIX).  
- "SIGINT", //          2       // Interrupt (ANSI).  
- "SIGQUIT", //         3       // Quit (POSIX).  
- "SIGILL", //          4       // Illegal instruction (ANSI).  
- "SIGTRAP", //         5       // Trace trap (POSIX).  
- "SIGIOT/SIGABRT", //  6       // Abort (ANSI).  
-                   //  6       // IOT trap (4.2 BSD).  
- "SIGBUS", //          7       // BUS error (4.2 BSD).  
- "SIGFPE", //          8       // Floating-point exception (ANSI).  
- "SIGKILL", //         9       // Kill, unblockable (POSIX).  
- "SIGUSR1", //         10      // User-defined signal 1 (POSIX).  
- "SIGSEGV", //         11      // Segmentation violation (ANSI).  
- "SIGUSR2", //         12      // User-defined signal 2 (POSIX).  
- "SIGPIPE", //         13      // Broken pipe (POSIX).  
- "SIGALRM", //         14      // Alarm clock (POSIX).  
- "SIGTERM", //         15      // Termination (ANSI).  
- "SIGSTKFLT", //       16      // Stack fault.  
- "SIGCLD/SIGCHLD", //  SIGCHLD // Same as SIGCHLD (System V).  
- //"SIGCHLD", //       17      // Child status has changed (POSIX).  
- "SIGCONT", //         18      // Continue (POSIX).  
- "SIGSTOP", //         19      // Stop, unblockable (POSIX).  
- "SIGTSTP", //         20      // Keyboard stop (POSIX).  
- "SIGTTIN", //         21      // Background read from tty (POSIX).  
- "SIGTTOU", //         22      // Background write to tty (POSIX).  
- "SIGURG", //          23      // Urgent condition on socket (4.2 BSD).  
- "SIGXCPU", //         24      // CPU limit exceeded (4.2 BSD).  
- "SIGXFSZ", //         25      // File size limit exceeded (4.2 BSD).  
- "SIGVTALRM", //       26      // Virtual alarm clock (4.2 BSD).  
- "SIGPROF", //         27      // Profiling alarm clock (4.2 BSD).  
- "SIGWINCH", //        28      // Window size change (4.3 BSD, Sun).  
- "SIGPOLL/SIGIO", //   SIGIO   // Pollable event occurred (System V).  
- //"SIGIO", //         29      // I/O now possible (4.2 BSD).  
- "SIGPWR", //          30      // Power failure restart (System V).  
- "SIGSYS/SIGUNUSED" //31      // Bad system call.  
+char * signames [] =
+{"!!ERROR - NOT A SIGNAL!!",
+ "SIGHUP", //          1       // Hangup (POSIX).
+ "SIGINT", //          2       // Interrupt (ANSI).
+ "SIGQUIT", //         3       // Quit (POSIX).
+ "SIGILL", //          4       // Illegal instruction (ANSI).
+ "SIGTRAP", //         5       // Trace trap (POSIX).
+ "SIGIOT/SIGABRT", //  6       // Abort (ANSI).
+                   //  6       // IOT trap (4.2 BSD).
+ "SIGBUS", //          7       // BUS error (4.2 BSD).
+ "SIGFPE", //          8       // Floating-point exception (ANSI).
+ "SIGKILL", //         9       // Kill, unblockable (POSIX).
+ "SIGUSR1", //         10      // User-defined signal 1 (POSIX).
+ "SIGSEGV", //         11      // Segmentation violation (ANSI).
+ "SIGUSR2", //         12      // User-defined signal 2 (POSIX).
+ "SIGPIPE", //         13      // Broken pipe (POSIX).
+ "SIGALRM", //         14      // Alarm clock (POSIX).
+ "SIGTERM", //         15      // Termination (ANSI).
+ "SIGSTKFLT", //       16      // Stack fault.
+ "SIGCLD/SIGCHLD", //  SIGCHLD // Same as SIGCHLD (System V).
+ //"SIGCHLD", //       17      // Child status has changed (POSIX).
+ "SIGCONT", //         18      // Continue (POSIX).
+ "SIGSTOP", //         19      // Stop, unblockable (POSIX).
+ "SIGTSTP", //         20      // Keyboard stop (POSIX).
+ "SIGTTIN", //         21      // Background read from tty (POSIX).
+ "SIGTTOU", //         22      // Background write to tty (POSIX).
+ "SIGURG", //          23      // Urgent condition on socket (4.2 BSD).
+ "SIGXCPU", //         24      // CPU limit exceeded (4.2 BSD).
+ "SIGXFSZ", //         25      // File size limit exceeded (4.2 BSD).
+ "SIGVTALRM", //       26      // Virtual alarm clock (4.2 BSD).
+ "SIGPROF", //         27      // Profiling alarm clock (4.2 BSD).
+ "SIGWINCH", //        28      // Window size change (4.3 BSD, Sun).
+ "SIGPOLL/SIGIO", //   SIGIO   // Pollable event occurred (System V).
+ //"SIGIO", //         29      // I/O now possible (4.2 BSD).
+ "SIGPWR", //          30      // Power failure restart (System V).
+ "SIGSYS/SIGUNUSED" //31      // Bad system call.
  //"SIGUNUSED", //       31
 };
 
diff --git a/testcases/kernel/ipc/ipc_stress/testall b/testcases/kernel/ipc/ipc_stress/testall
index 03d88e8..788a826 100755
--- a/testcases/kernel/ipc/ipc_stress/testall
+++ b/testcases/kernel/ipc/ipc_stress/testall
@@ -7,14 +7,14 @@
 
 export CYCLE=5
 
-while 
+while
 	[ -w testlog ]
 do
 	./message_queue_test_01 		1>> testlog 2>> testlog
 	./message_queue_test_02_get 		1>> testlog 2>> testlog
 	./message_queue_test_02_rcv 		1>> testlog 2>> testlog&
 	./message_queue_test_02_snd 		1>> testlog 2>> testlog
-	./message_queue_test_02_ctl -r  	1>> testlog 2>> testlog 
+	./message_queue_test_02_ctl -r  	1>> testlog 2>> testlog
 	./message_queue_test_04 		1>> testlog 2>> testlog
 	./message_queue_test_05 -n 8 		1>> testlog 2>> testlog
 	./cleanup
@@ -28,7 +28,7 @@
 	./semaphore_test_02 -s 64 -p 16 	1>> testlog 2>> testlog
 	./semaphore_test_03			1>> testlog 2>> testlog
 	./semaphore_test_03 -s 30 -p 16 	1>> testlog 2>> testlog
-	./cleanup	
+	./cleanup
 	./shmem_test_01 			1>> testlog 2>> testlog
 	./shmem_test_01 -s 1024 		1>> testlog 2>> testlog
 	./shmem_test_02 	 		1>> testlog 2>> testlog
diff --git a/testcases/kernel/mem/mtest01/mtest01.c b/testcases/kernel/mem/mtest01/mtest01.c
index dc960a8..97ac8f0 100644
--- a/testcases/kernel/mem/mtest01/mtest01.c
+++ b/testcases/kernel/mem/mtest01/mtest01.c
@@ -77,7 +77,7 @@
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
 	sigaction(SIGRTMIN,  &act, 0);
-	
+
 	while ((c = getopt(argc, argv, "c:b:p:wvh")) != -1) {
 		switch(c) {
 		case 'c':
@@ -123,23 +123,23 @@
 			exit(1);
 		}
 	}
-	
+
 	sysinfo(&sstats);
-	total_ram = sstats.totalram + sstats.totalswap; 
+	total_ram = sstats.totalram + sstats.totalswap;
 	total_free = sstats.freeram + sstats.freeswap;
 	/* Total Free Pre-Test RAM */
-	pre_mem = sstats.mem_unit * total_free;   
+	pre_mem = sstats.mem_unit * total_free;
 	max_pids = total_ram / (unsigned long)FIVE_HUNDRED_MB + 1;
- 
+
 	if ((pid_list = malloc(max_pids * sizeof(pid_t))) == NULL)
 		tst_brkm(TBROK|TERRNO, NULL, "malloc failed.");
 	memset(pid_list, 0, max_pids * sizeof(pid_t));
-	
+
 	/* Currently used memory */
 	C = sstats.mem_unit * (total_ram - total_free);
 	tst_resm(TINFO, "Total memory already used on system = %llu kbytes",
 	    C / 1024);
-	
+
 	if (maxpercent) {
 		percent = (float)maxpercent / 100.00;
 
@@ -148,7 +148,7 @@
 		tst_resm(TINFO,
 		    "Total memory used needed to reach maximum = %llu kbytes",
 		    D / 1024);
-		
+
 		/* Are we already using more than maxpercent? */
 		if (C > D) {
 			tst_resm(TFAIL,
@@ -157,7 +157,7 @@
 			free(pid_list);
 			tst_exit();
 		}
-		
+
 		/* set maxbytes to the extra amount we want to allocate */
 		maxbytes = D - C;
 		tst_resm(TINFO, "Filling up %d%% of ram which is %llu kbytes",
@@ -185,7 +185,7 @@
 		alloc_bytes = FIVE_HUNDRED_MB;
 	else
 		alloc_bytes = (unsigned long) maxbytes;
-	
+
 #elif __WORDSIZE == 32
 	while (pid != 0 && maxbytes > ONE_GB) {
 		i++;
@@ -200,7 +200,7 @@
 		alloc_bytes = ONE_GB;
 	else
 		alloc_bytes = (unsigned long)maxbytes;
-	
+
 #elif __WORDSIZE == 64
 	while (pid != 0 && maxbytes > THREE_GB) {
 		i++;
@@ -249,7 +249,7 @@
 	} else {
 		i = 0;
 		sysinfo(&sstats);
-		
+
 		if (dowrite) {
 			/* Total Free Post-Test RAM */
 			post_mem = (unsigned long long)sstats.mem_unit * sstats.freeram;
diff --git a/testcases/kernel/mem/mtest06/mmap1.c b/testcases/kernel/mem/mtest06/mmap1.c
index b60c8f8..b2996e8 100644
--- a/testcases/kernel/mem/mtest06/mmap1.c
+++ b/testcases/kernel/mem/mtest06/mmap1.c
@@ -120,10 +120,10 @@
 	for (i = 0; i < size; i++)
 		if (write(fd, "a", 1) == -1)
 			tst_brkm(TBROK|TERRNO, NULL, "write() failed");
-	
+
 	if (write(fd, "\0", 1) == -1)
 		tst_brkm(TBROK|TERRNO, NULL, "write() failed");
-		
+
 	if (fsync(fd) == -1)
 		tst_brkm(TBROK|TERRNO, NULL, "fsync() failed");
 
@@ -148,15 +148,15 @@
 		                args[0], args[1], args[2]);
 
 	for (i = 0; i < args[2]; i++) {
-		
+
 		map_address = mmap(0, (size_t)args[1], PROT_WRITE|PROT_READ,
 		                        MAP_SHARED, (int)args[0], 0);
-		
+
 		if (map_address == (void*) -1) {
 			perror("map_write_unmap(): mmap()");
 			pthread_exit((void *)1);
 		}
-	
+
 		while (read_lock)
 			sched_yield();
 
@@ -183,7 +183,7 @@
 			tst_resm(TINFO, "[%ld] times done: of total [%ld] iterations, "
 			         "map_write_unmap():memset() content of memory = %s",
                                  i, args[2], (char*)map_address);
-		
+
 		sigfillset(&sa.sa_mask);
 		sigdelset(&sa.sa_mask, SIGSEGV);
 		sa.sa_flags = SA_SIGINFO|SA_NODEFER;
@@ -219,7 +219,7 @@
                          args[2], map_address);
 
 	for (i = 0; i < args[2]; i++) {
-		
+
 		if (verbose_print)
 			tst_resm(TINFO, "read_mem() in while loop %ld times "
 			         "to go %ld times", i, args[2]);
@@ -347,7 +347,7 @@
 	sigfillset(&sigptr.sa_mask);
 	sigdelset(&sigptr.sa_mask, SIGSEGV);
 	sigptr.sa_flags = SA_SIGINFO | SA_NODEFER;
-	
+
 	for (i = 0; sig_info[i].signum != -1; i++) {
 		if (sigaction(sig_info[i].signum, &sigptr, NULL) == -1) {
 			perror("man(): sigaction()");
@@ -360,7 +360,7 @@
 	for (;;) {
 		if ((fd = mkfile(file_size)) == -1)
 			tst_brkm(TBROK, NULL, "main(): mkfile(): Failed to create temp file");
-		
+
 		if (verbose_print)
 			tst_resm(TINFO, "Tmp file created");
 
@@ -370,19 +370,19 @@
 
 		if ((ret = pthread_create(&thid[0], NULL, map_write_unmap, chld_args)))
 			tst_brkm(TBROK, NULL, "main(): pthread_create(): %s", strerror(ret));
-		
+
 		tst_resm(TINFO, "created writing thread[%lu]", thid[0]);
 
 		if ((ret = pthread_create(&thid[1], NULL, read_mem, chld_args)))
 			tst_brkm(TBROK, NULL, "main(): pthread_create(): %s", strerror(ret));
-		
+
 		tst_resm(TINFO, "created reading thread[%lu]", thid[1]);
 
 		for (i = 0; i < 2; i++) {
 			if ((ret = pthread_join(thid[i], (void*)&status[i])))
 				tst_brkm(TBROK, NULL, "main(): pthread_join(): %s",
 				         strerror(ret));
-			
+
 			if (status[i])
 				tst_brkm(TFAIL, NULL, "thread [%lu] - process exited "
 				         "with %d", thid[i], status[i]);
diff --git a/testcases/kernel/module/README b/testcases/kernel/module/README
index 6075178..95938a0 100644
--- a/testcases/kernel/module/README
+++ b/testcases/kernel/module/README
@@ -1,3 +1,3 @@
-Many of these tests have requirements on the test machine.  To ensure proper 
-build and execution, the kernel must be build on the test machine and you 
+Many of these tests have requirements on the test machine.  To ensure proper
+build and execution, the kernel must be build on the test machine and you
 must also do a 'make modules' and 'make modules_install'.
diff --git a/testcases/kernel/module/create_module/Makefile b/testcases/kernel/module/create_module/Makefile
index c07fc84..4e3aada 100644
--- a/testcases/kernel/module/create_module/Makefile
+++ b/testcases/kernel/module/create_module/Makefile
@@ -20,7 +20,7 @@
 # name of file	: Makefile						  #
 ###########################################################################
 CFLAGS+=	-Wall -O -g -I../../../../include
-LOADLIBES+=	-L../../../../lib -lltp 
+LOADLIBES+=	-L../../../../lib -lltp
 
 SRCS=$(wildcard *.c)
 TARGETS=$(patsubst %.c,%,$(SRCS))
diff --git a/testcases/kernel/module/query_module/Makefile b/testcases/kernel/module/query_module/Makefile
index 78b3e06..6aa3455 100644
--- a/testcases/kernel/module/query_module/Makefile
+++ b/testcases/kernel/module/query_module/Makefile
@@ -30,7 +30,7 @@
 	chmod 755 $(OBJS)
 
 $(OBJS): $(SRC1)
-	$(CC) -DEXPORT_SYMTAB $(MODCFLAGS) -c $(SRC1) -Wall 
+	$(CC) -DEXPORT_SYMTAB $(MODCFLAGS) -c $(SRC1) -Wall
 
 query_module01: query_module01.c
 	$(CC) $(CFLAGS) query_module01.c $(LOADLIBES) -o $@
@@ -41,7 +41,7 @@
 query_module03: query_module03.c
 	$(CC) $(CFLAGS) query_module03.c $(LOADLIBES) -o $@
 
-install: 
+install:
 	@set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ; done
 
 clean:
diff --git a/testcases/kernel/numa/README b/testcases/kernel/numa/README
index 2e64c38..3d9defb 100644
--- a/testcases/kernel/numa/README
+++ b/testcases/kernel/numa/README
@@ -22,21 +22,21 @@
 Verifies the node affinity and memory affinity by running the support_numa process which will allocate 1MB of memory.
 
 TestCase2:
-Verifies the preferred node memory policy which will allocate memory from the node we specify. This 
+Verifies the preferred node memory policy which will allocate memory from the node we specify. This
 testcase will use the support_numa process for the verfication.
 
 TestCase3:
-Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This 
+Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
 testcase will use the support_numa process for the verfication.
 
 TestCase4:
 Verifies the physical cpu affinity which runs the process support_numa on the specified physical cpu number.
 
 TestCase5:
-Verifies the local allocation policy which always allocates memory from the local node. This testcase 
+Verifies the local allocation policy which always allocates memory from the local node. This testcase
 will use the support_numa process for the verfication.
 
-TestCase6: 
+TestCase6:
 Verifies the memory interleaving policy on the shared memory which will interleave the shared memory on
 all nodes equally. Here, the testcase use touch command instead of running a seperate process to verify
 the policy applied.
diff --git a/testcases/kernel/numa/numa01.sh b/testcases/kernel/numa/numa01.sh
index 151d25b..bc77ff0 100644
--- a/testcases/kernel/numa/numa01.sh
+++ b/testcases/kernel/numa/numa01.sh
@@ -31,9 +31,9 @@
 #		Test #3: Verifies memory interleave on all nodes
 #		Test #4: Verifies physcpubind
 #		Test #5: Verifies localalloc
-#		Test #6: Verifies memory policies on shared memory 
+#		Test #6: Verifies memory policies on shared memory
 #		Test #7: Verifies numademo
-#		Test #8: Verifies memhog 
+#		Test #8: Verifies memhog
 #		Test #9: Verifies numa_node_size api
 #		Test #10:Verifies Migratepages
 #		- it uses numastat output which is expected to be in the format
@@ -111,7 +111,7 @@
 
 
 
-# Function:     extract_numastat 
+# Function:     extract_numastat
 #
 # Description:  - extract the value of given row,column from the numastat output .
 #
@@ -137,14 +137,14 @@
 	tst_brkm TBROK NULL "numastat o/p seems to be changed, $1 expected to be in the row $2"
         return 1
     fi
-   
+
     RC=$(awk '
         { if ( NR == '$2' ){
             print $'$3';
             }
         }
         ' $LTPTMP/numalog)
-    return 0 
+    return 0
 }
 
 
@@ -193,7 +193,7 @@
     # Page Size
     page_size=0
 
-    # row definitions, pls see at the top of this file 
+    # row definitions, pls see at the top of this file
     numa_hit=2
     numa_miss=3
     numa_foreign=4
@@ -233,13 +233,13 @@
     chk_ifexists INIT kill       || return $RC
 
     RC=0
-    # set max_node 
+    # set max_node
     getmax || return 1
     max_node=$RC
 
     if [ $max_node -eq 1 ]
-    then 
-        tst_resm TCONF "non-NUMA aware kernel is running or your machine does not support numa policy or 
+    then
+        tst_resm TCONF "non-NUMA aware kernel is running or your machine does not support numa policy or
                         your machine is not a NUMA machine"
     exit 0
     fi
@@ -253,7 +253,7 @@
     fi
     page_size=$(cat $LTPTMP/numaarg)
 
-    tst_resm TINFO "INIT: Numa tests will start now !!" 
+    tst_resm TINFO "INIT: Numa tests will start now !!"
 }
 
 
@@ -280,7 +280,7 @@
 # Function:     test01
 #
 # Description:  - Verification of local node and memory affinity
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 test01()
@@ -292,32 +292,32 @@
     Prev_value=0        # extracted from the numastat o/p
     Curr_value=0	# Current value extracted from numastat o/p
     Exp_incr=0          # 1 MB/ PAGESIZE
-    Node_num=0          
+    Node_num=0
     col=0
     MB=$[1024*1024]
 
     # Increase in numastat o/p is interms of pages
     Exp_incr=$[$MB/$page_size]
 
-    COUNTER=1 
+    COUNTER=1
     while [  $COUNTER -le $max_node ]; do
         Node_num=$[$COUNTER-1]		#Node numbers start from 0
         col=$[$COUNTER+1]		#Node number in numastat o/p
         numastat > $LTPTMP/numalog
-        extract_numastat local_node $local_node $col || return 1 
+        extract_numastat local_node $local_node $col || return 1
         Prev_value=$RC
-        numactl --cpunodebind=$Node_num --membind=$Node_num support_numa $ALLOC_1MB 
+        numactl --cpunodebind=$Node_num --membind=$Node_num support_numa $ALLOC_1MB
         numastat > $LTPTMP/numalog
         extract_numastat local_node $local_node $col || return 1
         Curr_value=$RC
-        comparelog $Prev_value $Curr_value 
+        comparelog $Prev_value $Curr_value
         if [ $RC -lt $Exp_incr ]
         then
              tst_resm TFAIL \
                  "Test #1: NUMA hit and localnode increase in node$Node_num is less than expected"
-            return 1 
+            return 1
         fi
-        COUNTER=$[$COUNTER+1] 
+        COUNTER=$[$COUNTER+1]
     done
     tst_resm TPASS "NUMA local node and memory affinity -TEST01 PASSED !!"
     return 0
@@ -327,7 +327,7 @@
 
 # Function:     test02
 #
-# Description:  - Verification of memory allocated from preferred node 
+# Description:  - Verification of memory allocated from preferred node
 #
 # Return:       - zero on success.
 #               - non-zero on failure.
@@ -349,9 +349,9 @@
 
     COUNTER=1
     while [  $COUNTER -le $max_node ]; do
-        
+
 	if [ $max_node -eq 1 ]
-        then 
+        then
             tst_brkm TBROK NULL "Preferred policy cant be applied for a single node machine"
 	    return 1
 	fi
@@ -370,19 +370,19 @@
         numastat > $LTPTMP/numalog
         extract_numastat other_node $other_node $col || return 1
         Prev_value=$RC
-        numactl --cpunodebind=$Node_num --preferred=$Preferred_node support_numa $ALLOC_1MB 
+        numactl --cpunodebind=$Node_num --preferred=$Preferred_node support_numa $ALLOC_1MB
 	sleep 2s	#In RHEL collection of statistics takes more time.
         numastat > $LTPTMP/numalog
         extract_numastat other_node $other_node $col || return 1
         Curr_value=$RC
-        comparelog $Prev_value $Curr_value 
+        comparelog $Prev_value $Curr_value
         if [ $RC -lt $Exp_incr ]
         then
              tst_resm TFAIL \
                  "Test #2: NUMA hit and othernode increase in node$Node_num is less than expected"
             return 1
         fi
-        COUNTER=$[$COUNTER+1]        
+        COUNTER=$[$COUNTER+1]
     done
     tst_resm TPASS "NUMA preferred node policy -TEST02 PASSED !!"
     return 0
@@ -391,7 +391,7 @@
 
 # Function:     test03
 #
-# Description:  - Verification of memory interleaved on all nodes 
+# Description:  - Verification of memory interleaved on all nodes
 #
 # Return:       - zero on success.
 #               - non-zero on failure.
@@ -412,7 +412,7 @@
     # Increase in numastat o/p is interms of pages
     Exp_incr=$[$MB/$page_size]
     # Pages will be allocated using round robin on nodes.
-    Exp_incr=$[$Exp_incr/$max_node] 
+    Exp_incr=$[$Exp_incr/$max_node]
 
     # Check whether the pages are equally distributed among available nodes
     numastat > $LTPTMP/numalog
@@ -425,7 +425,7 @@
         COUNTER=$[$COUNTER+1]
     done
 
-    numactl --interleave=all support_numa $ALLOC_1MB 
+    numactl --interleave=all support_numa $ALLOC_1MB
     sleep 2s        #In RHEL collection of statistics takes more time.
 
     numastat > $LTPTMP/numalog
@@ -435,7 +435,7 @@
 	Node_num=$[$COUNTER-1]         #Node numbers start from 0
         extract_numastat interleave_hit $interleave_hit $col || return 1
         Curr_value=$RC
-        comparelog ${parray[$COUNTER]} $Curr_value 
+        comparelog ${parray[$COUNTER]} $Curr_value
         if [ $RC -lt $Exp_incr ]
         then
              tst_resm TFAIL \
@@ -452,7 +452,7 @@
 
 # Function:     test04
 #
-# Description:  - Verification of physical cpu bind 
+# Description:  - Verification of physical cpu bind
 #
 # Return:       - zero on success.
 #               - non-zero on failure.
@@ -462,22 +462,22 @@
     TCID=numa04
     TST_COUNT=4
 
-    no_of_cpus=0	#no. of cpu's exist 
-    run_on_cpu=0	
+    no_of_cpus=0	#no. of cpu's exist
+    run_on_cpu=0
     running_on_cpu=0
 
     no_of_cpus=$(ls /sys/devices/system/cpu/ | wc -w)
     # not sure whether cpu's can't be in odd number
-    run_on_cpu=$[$[$no_of_cpus+1]/2]		
+    run_on_cpu=$[$[$no_of_cpus+1]/2]
     numactl --physcpubind=$run_on_cpu support_numa $PAUSE & #just waits for sigint
     pid=$!
     var=`awk '{ print $2 }' /proc/$pid/stat`
     while [ $var = '(numactl)' ]; do
         var=`awk '{ print $2 }' /proc/$pid/stat`
     done
-    # Warning !! 39 represents cpu number, on which process pid is currently running and 
+    # Warning !! 39 represents cpu number, on which process pid is currently running and
     # this may change if Some more fields are added in the middle, may be in future
-    running_on_cpu=$(awk '{ print $39; }' /proc/$pid/stat) 
+    running_on_cpu=$(awk '{ print $39; }' /proc/$pid/stat)
     if [ $running_on_cpu -ne $run_on_cpu ]
     then
 	 tst_resm TFAIL \
@@ -498,7 +498,7 @@
 
 # Function:     test05
 #
-# Description:  - Verification of local node allocation 
+# Description:  - Verification of local node allocation
 #
 # Return:       - zero on success.
 #               - non-zero on failure.
@@ -539,7 +539,7 @@
         COUNTER=$[$COUNTER+1]
     done
     tst_resm TPASS "NUMA local node allocation -TEST05 PASSED !!"
-    return 0 
+    return 0
 }
 
 
@@ -619,7 +619,7 @@
 test07()
 {
     TCID=numa07
-    TST_COUNT=7 
+    TST_COUNT=7
 
     RC=0                # Return value from commands.
     Prev_value=0        # extracted from the numastat o/p
@@ -850,7 +850,7 @@
     init_ret=0
     init || init_ret=$?
     if [ $init_ret -ne 0 ]
-    then 
+    then
         tst_resm TFAIL "INIT NUMA FAILED !!"
         exit $RC
     fi
@@ -862,7 +862,7 @@
         func_ret=0
 	$call_test || func_ret=$?
         if [ $func_ret -ne 0 ]
-        then 
+        then
             no_of_test_failed=$[$no_of_test_failed+1]
         fi
         COUNT=$[$COUNT+1]
diff --git a/testcases/kernel/power_management/README b/testcases/kernel/power_management/README
index ae4dd51..aa91791 100644
--- a/testcases/kernel/power_management/README
+++ b/testcases/kernel/power_management/README
@@ -23,7 +23,7 @@
 The tests requires the Kernel to  be compiled with the following config's
 
 for CPU FREQUENCY tests:
- 
+
 CONFIG_CPU_FREQ
 CONFIG_CPU_FREQ_TABLE
 CONFIG_CPU_FREQ_DEBUG
@@ -43,7 +43,7 @@
 CONFIG_SCHED_MC
 
 The power management test automation suite helps run the power management functionality
-(e.g: cpu frequency, cpu idle etc..) tests and report results. 
+(e.g: cpu frequency, cpu idle etc..) tests and report results.
 
 Test Scripts for CPU FREQUENCY:
 change_freq.sh
@@ -58,7 +58,7 @@
 
 Common functionality:
 pm_include.sh
-check_kv_arch.c 
+check_kv_arch.c
 pwkm_load_unload.sh
 
 To run your tests you can execute the runpwtests.sh
diff --git a/testcases/kernel/power_management/check_config.sh b/testcases/kernel/power_management/check_config.sh
index 16f52a7..4eeac4e 100755
--- a/testcases/kernel/power_management/check_config.sh
+++ b/testcases/kernel/power_management/check_config.sh
@@ -25,7 +25,7 @@
 	grep_command=zgrep
 fi
 
-while read config_option 
+while read config_option
 do
 	check_config_options "${config_option}=*" ${config_file} ${grep_command}
 done < ${filename}
diff --git a/testcases/kernel/power_management/cpu_consolidation.py b/testcases/kernel/power_management/cpu_consolidation.py
index c23a751..992a745 100755
--- a/testcases/kernel/power_management/cpu_consolidation.py
+++ b/testcases/kernel/power_management/cpu_consolidation.py
@@ -43,11 +43,11 @@
         count_num_sockets()
         if is_hyper_threaded():
             generate_sibling_list()
-        
+
         # User should set option -v to test cpu consolidation
         # resets when sched_mc &(/) sched_smt is disabled when
         # workload is already running in the system
- 
+
         if options.vary_mc_smt:
 
             # Since same code is used for testing package consolidation and core
@@ -73,7 +73,7 @@
             else:
                 #Wait for 120 seconds and then validate cpu consolidation works
                 #When sched_mc & sched_smt is set
-                trigger_kernbench (options.smt_value, "partial", background, pinned, "no") 
+                trigger_kernbench (options.smt_value, "partial", background, pinned, "no")
                 work_ld="kernbench"
                 import time
                 time.sleep(300)
@@ -112,7 +112,7 @@
                 print "INFO: CPU consolidation failed when sched_mc &(/) \
 sched_smt was enabled. This is pre-requisite to proceed"
                 return(status)
-        else:           
+        else:
             #The else part of the code validates behaviour of sched_mc
             # and sched_smt set to 0, 1 & 2
             if is_multi_socket():
@@ -136,7 +136,7 @@
             reset_schedmc()
             if is_hyper_threaded():
                 reset_schedsmt()
-            return(status)        
+            return(status)
     except Exception, details:
         print "INFO: CPU consolidation failed", details
         return(1)
diff --git a/testcases/kernel/power_management/ilb_test.py b/testcases/kernel/power_management/ilb_test.py
index 220c671..cec0b29 100755
--- a/testcases/kernel/power_management/ilb_test.py
+++ b/testcases/kernel/power_management/ilb_test.py
@@ -49,8 +49,8 @@
         reset_schedmc()
         if is_hyper_threaded():
             reset_schedsmt()
-        return(status)     
-   
+        return(status)
+
     except Exception, details:
         print "INFO: Idle Load Balancer test failed", details
         return(1)
diff --git a/testcases/kernel/power_management/lib/sched_mc.py b/testcases/kernel/power_management/lib/sched_mc.py
index d5660ce..cb78b55 100755
--- a/testcases/kernel/power_management/lib/sched_mc.py
+++ b/testcases/kernel/power_management/lib/sched_mc.py
@@ -100,7 +100,7 @@
 def is_multi_core():
     ''' Return true if system has sockets has multiple cores
     '''
-  
+
     try:
         file_cpuinfo = open("/proc/cpuinfo", 'r')
         for line in file_cpuinfo:
@@ -109,8 +109,8 @@
             if line.startswith('cpu cores'):
                 cpu_cores = line.split(":")
                 break
-       
-        if int( siblings[1] ) == int( cpu_cores[1] ): 
+
+        if int( siblings[1] ) == int( cpu_cores[1] ):
             if int( cpu_cores[1] ) > 1:
                 multi_core = 1
             else:
@@ -144,7 +144,7 @@
     except Exception:
         print "Failed to check if system is hyper-threaded"
         sys.exit(1)
-         
+
 def map_cpuid_pkgid():
     ''' Routine to map physical package id to cpu id
     '''
@@ -161,7 +161,7 @@
                 if not cpu_phy_id in cpu_map.keys():
                     core_info = {}
                 else:
-                    core_info = cpu_map[cpu_phy_id] 
+                    core_info = cpu_map[cpu_phy_id]
                 if not core_id in core_info.keys():
                     core_info[core_id] = [i]
                 else:
@@ -194,7 +194,7 @@
             siblings_file += '/topology/thread_siblings_list'
             threads_sibs = open(siblings_file).read().rstrip()
             thread_ids = threads_sibs.split("-")
-    
+
             if not thread_ids in siblings_list:
                 siblings_list.append(thread_ids)
     except Exception, details:
@@ -291,7 +291,7 @@
 def get_job_count(stress, workload, sched_smt):
     ''' Returns number of jobs/threads to be triggered
     '''
-    
+
     try:
         if stress == "thread":
             threads = get_hyper_thread_count()
@@ -301,7 +301,7 @@
                 if workload == "ebizzy" and int(sched_smt) ==0:
                     threads = threads / get_hyper_thread_count()
                 if workload == "kernbench" and int(sched_smt) < 2:
-                    threads = threads / get_hyper_thread_count()    
+                    threads = threads / get_hyper_thread_count()
         if stress == "full":
             threads = cpu_count
         if stress == "single_job":
@@ -324,7 +324,7 @@
         wklds_avlbl = list()
         workload = "ebizzy"
         workload_dir = ""
-    
+
         # Use the latest version of similar workload available
         for file_name in os.listdir('.'):
             if file_name.find(workload) != -1:
@@ -343,16 +343,16 @@
                         % (threads, duration))
                 else:
                     if pinned == "yes":
-                        succ = os.system('taskset -c %s ./ebizzy -t%s -s4096 -S %s >/dev/null' 
+                        succ = os.system('taskset -c %s ./ebizzy -t%s -s4096 -S %s >/dev/null'
                             % (cpu_count -1, threads, duration))
                     else:
-                        succ = os.system('./ebizzy -t%s -s4096 -S %s >/dev/null' 
+                        succ = os.system('./ebizzy -t%s -s4096 -S %s >/dev/null'
                             % (threads, duration))
-         
-                if succ == 0: 
+
+                if succ == 0:
                     print "INFO: ebizzy workload triggerd"
                     os.chdir(olddir)
-                    #Commented bcoz it doesnt make sense to capture it when workload triggered 
+                    #Commented bcoz it doesnt make sense to capture it when workload triggered
                     #in background
                     #get_proc_loc_count(intr_stop)
                     #get_proc_data(stats_stop)
@@ -365,7 +365,7 @@
                 sys.exit(1)
     except Exception, details:
         print "Ebizzy workload trigger failed ", details
-        sys.exit(1)   
+        sys.exit(1)
 
 def trigger_kernbench (sched_smt, stress, background, pinned, perf_test):
     ''' Trigger load on system like kernbench.
@@ -377,7 +377,7 @@
         threads = get_job_count(stress, "kernbench", sched_smt)
 
         dst_path = "/root"
-        olddir = os.getcwd()      
+        olddir = os.getcwd()
         path = '%s/utils/benchmark' % os.environ['LTPROOT']
         os.chdir(path)
         wklds_avlbl = list()
@@ -393,7 +393,7 @@
                 print "INFO: kernbench benchmark not found"
                 sys.exit(1)
         os.chdir(olddir)
-        
+
         os.chdir(dst_path)
         linux_source_dir=""
         for file_name in os.listdir('.'):
@@ -406,7 +406,7 @@
             print "INFO: Linux kernel source not found in /root. Workload\
                Kernbench cannot be executed"
 	    sys.exit(1)
-  
+
         get_proc_data(stats_start)
         get_proc_loc_count(intr_start)
         if pinned == "yes":
@@ -432,15 +432,15 @@
                     import time
                     time.sleep(240)
                     stop_wkld("kernbench")
-        
+
         print "INFO: Workload kernbench triggerd"
         os.chdir(olddir)
     except Exception, details:
         print "Workload kernbench trigger failed ", details
         sys.exit(1)
-   
+
 def trigger_workld(sched_smt, workload, stress, duration, background, pinned, perf_test):
-    ''' Triggers workload passed as argument. Number of threads 
+    ''' Triggers workload passed as argument. Number of threads
         triggered is based on stress value.
     '''
     try:
@@ -511,7 +511,7 @@
                             total += stats_stop["cpu%d" % cpu][i]
             else:
                 total_idle = 0
-                total = 0 
+                total = 0
                 for cpu in cpu_map[pkg]:
                     total_idle += stats_stop["cpu%d" % cpu][4]
                     for i in range(1, len(stats_stop["cpu%d" % cpu])):
@@ -562,11 +562,11 @@
     try:
         global intr_start, intr_stop
         for i in range(0, cpu_count):
-            intr_stat_timer_0.append(intr_stop[i]) 
+            intr_stat_timer_0.append(intr_stop[i])
         intr_start = []
         intr_stop = []
     except Exception, details:
-        print "INFO: Record interrupt statistics when timer_migration=0",details 
+        print "INFO: Record interrupt statistics when timer_migration=0",details
 
 def expand_range(range_val):
     '''
@@ -624,13 +624,13 @@
                         #if CPUs used across the cores
                         for i in range(0, len(core_cpus)):
                             if core_cpus[i] in modi_cpu_grp:
-                                modi_cpu_grp.remove(core_cpus[i]) 
+                                modi_cpu_grp.remove(core_cpus[i])
                                 if len(modi_cpu_grp) == 0:
                                     return 0
-                            #This code has to be deleted 
+                            #This code has to be deleted
                             #else:
                                 # If sched_smt == 0 then its oky if threads run
-                                # in different cores of same package 
+                                # in different cores of same package
                                 #if sched_smt_level > 0 :
                                     #return 1
 	else:
@@ -643,13 +643,13 @@
                     if int(cpus_utilized[0]) in cpu_map[pkg] or int(cpus_utilized[1]) in cpu_map[pkg]:
                         return(0)
 
-        return(1) 
+        return(1)
 
     except Exception, details:
         print "Exception in validate_cpugrp_map: ", details
         sys.exit(1)
-    
- 
+
+
 def verify_sched_domain_dmesg(sched_mc_level, sched_smt_level):
     '''
        Read sched domain information from dmesg.
@@ -722,7 +722,7 @@
                         sib_list = siblings.split()
                         utilization = int(stats_percentage[l][1])
                         for i in range(0, len(sib_list)):
-                            utilization += int(get_cpu_utilization("cpu%s" %sib_list[i])) 
+                            utilization += int(get_cpu_utilization("cpu%s" %sib_list[i]))
                     else:
                         utilization = stats_percentage[l][1]
                     if utilization > 40:
@@ -764,7 +764,7 @@
         highest = 0
         second_highest = 0
         cpus_utilized = []
-        
+
         #Skipping CPU0 as it is generally high
         for i in range(1, cpu_count):
             if int(intr_stop[i]) > int(highest):
@@ -779,7 +779,7 @@
                     cpu2_max_intr = i
         cpus_utilized.append(cpu1_max_intr)
         cpus_utilized.append(cpu2_max_intr)
-        
+
         for i in range(1, cpu_count):
             if i != cpu1_max_intr and i != cpu2_max_intr:
                 diff = second_highest - intr_stop[i]
@@ -793,7 +793,7 @@
     except Exception, details:
         print "Exception in get_cpuid_max_intr_count: ", details
         sys.exit(1)
-  
+
 def validate_ilb (sched_mc_level, sched_smt_level):
     ''' Validate if ilb is running in same package where work load is running
     '''
@@ -801,7 +801,7 @@
         cpus_utilized = get_cpuid_max_intr_count()
         if not cpus_utilized:
             return 1
-       
+
         status = validate_cpugrp_map(cpus_utilized, sched_mc_level, sched_smt_level)
         return status
     except Exception, details:
diff --git a/testcases/kernel/power_management/pm_include.sh b/testcases/kernel/power_management/pm_include.sh
index 7e1dd3c..77fc0ca 100755
--- a/testcases/kernel/power_management/pm_include.sh
+++ b/testcases/kernel/power_management/pm_include.sh
@@ -35,7 +35,7 @@
 	do
 		cpus[$cpu]=cpu${cpu}
 		phyid[$cpu]=$(cat /sys/devices/system/cpu/cpu${cpu}/topology/physical_package_id)
-	done 
+	done
 	j=0
 	while [ "${j}" -lt "${total_cpus}" ]
 	do
@@ -61,7 +61,7 @@
 }
 
 get_supporting_freq() {
-	cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies | uniq	
+	cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_available_frequencies | uniq
 }
 
 get_supporting_govr() {
@@ -119,7 +119,7 @@
 		: $(( num_of_cpus = siblings / cpu_cores ))
 		[ $num_of_cpus -gt 1 ]; return $?
 	fi
-}		
+}
 
 is_dual_core() {
 	siblings=`cat /proc/cpuinfo | grep siblings | uniq | cut -f2 -d':'`
@@ -145,7 +145,7 @@
 		*) export valid_input="0 1 2" ;;
 	esac
 }
-		
+
 analyze_result_hyperthreaded() {
 	sched_mc=$1
     pass_count=$2
@@ -219,7 +219,7 @@
 			else
 				tst_resm TPASS "Consolidation at package level passed for \
 sched_mc=$sched_mc"
-			fi	
+			fi
         	;;
     	esac
 	fi
@@ -237,7 +237,7 @@
 		else
 			tst_resm TFAIL "Consolidation at core level passed for \
 sched_smt=$sched_smt"
-		fi ;;	
+		fi ;;
 	*)
 		if [ $pass_count -lt 5 ]; then
 			RC=1
@@ -268,7 +268,7 @@
 				tst_resm TPASS "sched domain test for sched_mc=$sched_mc"
 			else
 				RC=1
-				tst_resm TFAIL "sched domain test for sched_mc=$sched_mc"		
+				tst_resm TFAIL "sched domain test for sched_mc=$sched_mc"
 			fi
 		fi
 	else
diff --git a/testcases/kernel/power_management/runpwtests.sh b/testcases/kernel/power_management/runpwtests.sh
index afcdebe..bd1783a 100755
--- a/testcases/kernel/power_management/runpwtests.sh
+++ b/testcases/kernel/power_management/runpwtests.sh
@@ -1,9 +1,9 @@
-#! /bin/sh 
+#! /bin/sh
 ################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2001                 ##
 ##                                                                            ##
-## This program is free software;  you can redistribute it and#or modify      ##      
+## 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.                                        ##
@@ -21,7 +21,7 @@
 #
 # File :        runpwtests.sh
 #
-# Description:  
+# Description:
 #
 # Author:       Nageswara R Sastry <nasastry@in.ibm.com>
 #
@@ -192,14 +192,14 @@
 test cannot run"
 elif ! grep sched_debug -qw /proc/cmdline ; then
 	tst_resm TCONF "Kernel cmdline parameter 'sched_debug' needed,\
-CPU Consolidation test cannot run" 
+CPU Consolidation test cannot run"
 else
 	if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then
     		echo "max sched mc $max_sched_mc"
 		for sched_mc in `seq 0 $max_sched_mc`; do
 			: $(( TST_COUNT+=1))
 			sched_domain.py -c $sched_mc; RC=$?
-			analyze_sched_domain_result $sched_mc $RC 
+			analyze_sched_domain_result $sched_mc $RC
 			if [ $hyper_threaded -eq $YES -a -f /sys/devices/system/cpu/sched_smt_power_savings ]; then
 				get_sched_values sched_smt; max_sched_smt=$?
 				for sched_smt in `seq 0 $max_sched_smt`; do
@@ -232,8 +232,8 @@
 	fi
 fi
 
-if [ $# -gt 0 -a "$1" = "-exclusive" ]; then 
-	# Test CPU consolidation 
+if [ $# -gt 0 -a "$1" = "-exclusive" ]; then
+	# Test CPU consolidation
 	if [ $multi_socket -eq $YES -a $multi_core -eq $YES ]; then
 		for sched_mc in `seq 0  $max_sched_mc`; do
 			: $(( TST_COUNT += 1 ))
@@ -249,8 +249,8 @@
 					: $(( sched_mc_pass_cnt += 1 ))
 				fi
 			done
-			analyze_package_consolidation_result $sched_mc $sched_mc_pass_cnt	
-			
+			analyze_package_consolidation_result $sched_mc $sched_mc_pass_cnt
+
 			if [ $hyper_threaded -eq $YES ]; then
 				for sched_smt in `seq 0 $max_sched_smt`; do
 					: $(( TST_COUNT += 1 ))
@@ -274,7 +274,7 @@
 			for sched_smt in `seq 0 $max_sched_smt`; do
 				if [ $sched_smt -eq 2 ]; then
 				 	work_load="kernbench"
-				else	
+				else
 					work_load="ebizzy"
 				fi
 				sched_smt_pass_cnt=0
@@ -293,7 +293,7 @@
     if [ $multi_socket -eq $YES -a $multi_core -eq $YES ]; then
         for sched_mc in `seq 1  $max_sched_mc`; do
 			: $(( TST_COUNT += 1 ))
-		
+
 			# Vary sched_mc from 1/2 to 0 when workload is running and ensure that
 			# tasks do not consolidate to single package when sched_mc is set to 0
 			if cpu_consolidation.py -v -c $sched_mc; then
@@ -303,7 +303,7 @@
         	fi
 
 			if [ $hyper_threaded -eq $YES ]; then
-				for sched_smt in `seq 1  $max_sched_smt`; do		
+				for sched_smt in `seq 1  $max_sched_smt`; do
 					if [ $sched_smt -eq $sched_mc ]; then
 						# Vary sched_mc & sched_smt from 1 to 0 & 2 to 0 when workload is running and ensure that
             			# tasks do not consolidate to single package when sched_mc is set to 0
@@ -331,11 +331,11 @@
 		else
 			tst_resm TFAIL "CPU consolidation test by varying sched_smt from 1 to 0"
 		fi
-        
+
         # Vary only sched_smt from 2 to 0 when workload is running and ensure that
         # tasks do not consolidate to single core when sched_smt is set to 0
-        : $(( TST_COUNT += 1 )) 
-        if cpu_consolidation.py -v -t 2; then 
+        : $(( TST_COUNT += 1 ))
+        if cpu_consolidation.py -v -t 2; then
             tst_resm TPASS "CPU consolidation test by varying sched_smt 2 to 0"
         else
             tst_resm TFAIL "CPU consolidation test by varying sched_smt 2 to 0"
@@ -369,7 +369,7 @@
 & sched_smt=$sched_smt"
 					else
 						tst_resm TFAIL "ILB & workload did not execute in same package for \
-sched_mc=$sched_mc & sched_smt=$sched_smt. Ensure CONFIG_NO_HZ is set"    
+sched_mc=$sched_mc & sched_smt=$sched_smt. Ensure CONFIG_NO_HZ is set"
 					fi
 				done
 			fi
diff --git a/testcases/kernel/power_management/sched_domain.py b/testcases/kernel/power_management/sched_domain.py
index 808e16f..3d19ac0 100755
--- a/testcases/kernel/power_management/sched_domain.py
+++ b/testcases/kernel/power_management/sched_domain.py
@@ -32,12 +32,12 @@
         clear_dmesg()
         count_num_cpu()
         map_cpuid_pkgid()
-       
+
         if is_hyper_threaded() and int(options.smt_level) >= 0:
             set_sched_smt_power(options.smt_level)
 
         if int(options.mc_level) >= 0:
-            set_sched_mc_power(options.mc_level) 
+            set_sched_mc_power(options.mc_level)
         if int(options.smt_level) >= 0 or int(options.mc_level) >= 0:
             status = verify_sched_domain_dmesg(options.mc_level, options.smt_level)
             reset_schedmc()
diff --git a/testcases/kernel/power_management/test_sched_mc.sh b/testcases/kernel/power_management/test_sched_mc.sh
index 037f49c..c695798 100755
--- a/testcases/kernel/power_management/test_sched_mc.sh
+++ b/testcases/kernel/power_management/test_sched_mc.sh
@@ -16,7 +16,7 @@
 
 RC=0
 echo "${0}: ---Valid test cases---"
-check_input "${valid_input}" valid $test_file 
+check_input "${valid_input}" valid $test_file
 RC=$?
 echo "${0}: ---Invalid test cases---"
 check_input "${invalid_input}" invalid $test_file
diff --git a/testcases/kernel/power_management/test_timer_migration.sh b/testcases/kernel/power_management/test_timer_migration.sh
index edf1169..e2d3296 100755
--- a/testcases/kernel/power_management/test_timer_migration.sh
+++ b/testcases/kernel/power_management/test_timer_migration.sh
@@ -14,7 +14,7 @@
 
 RC=0
 echo "${0}: ---Valid test cases---"
-check_input "${valid_input}" valid $test_file 
+check_input "${valid_input}" valid $test_file
 RC=$?
 echo "${0}: ---Invalid test cases---"
 check_input "${invalid_input}" invalid $test_file
diff --git a/testcases/kernel/pty/Makefile b/testcases/kernel/pty/Makefile
index 8ab09bf..2040a81 100644
--- a/testcases/kernel/pty/Makefile
+++ b/testcases/kernel/pty/Makefile
@@ -24,6 +24,6 @@
 
 include $(top_srcdir)/include/mk/testcases.mk
 
-CPPFLAGS		+= -D_GNU_SOURCE 
+CPPFLAGS		+= -D_GNU_SOURCE
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/kernel/sched/clisrv/inet.h b/testcases/kernel/sched/clisrv/inet.h
index 63b6963..e62bd98 100644
--- a/testcases/kernel/sched/clisrv/inet.h
+++ b/testcases/kernel/sched/clisrv/inet.h
@@ -45,7 +45,7 @@
 
 #else
 
-#define prtln() 
+#define prtln()
 #define dprt	noprintf
 #define dprt2(args) noprintf args
 
diff --git a/testcases/kernel/sched/nptl/README b/testcases/kernel/sched/nptl/README
index 9990c16..c6e8e76 100644
--- a/testcases/kernel/sched/nptl/README
+++ b/testcases/kernel/sched/nptl/README
@@ -1,2 +1,2 @@
-Although these could be executed against Linuxthreads, they are 
+Although these could be executed against Linuxthreads, they are
 intended to test against the Native Posix Threading Library (NPTL).
diff --git a/testcases/kernel/sched/pthreads/pth_str01.h b/testcases/kernel/sched/pthreads/pth_str01.h
index f2d06db..05e78cb 100644
--- a/testcases/kernel/sched/pthreads/pth_str01.h
+++ b/testcases/kernel/sched/pthreads/pth_str01.h
@@ -7,12 +7,12 @@
  *   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, 
+ *   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 
+ *   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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
diff --git a/testcases/kernel/sched/sched_stress/sched_stress.sh b/testcases/kernel/sched/sched_stress/sched_stress.sh
index d5795d1..848f30c 100755
--- a/testcases/kernel/sched/sched_stress/sched_stress.sh
+++ b/testcases/kernel/sched/sched_stress/sched_stress.sh
@@ -24,7 +24,7 @@
 #  PURPOSE : Exports required environment variables and runs sched_driver
 #
 
-# The command below will only work on x86 setups, b/c other archs keep 
+# The command below will only work on x86 setups, b/c other archs keep
 # their bootfiles other locations.
 export KERNEL=./sched_datafile
 touch $KERNEL
diff --git a/testcases/kernel/security/mmc_security/ask_password.sh b/testcases/kernel/security/mmc_security/ask_password.sh
index a113ebc..558bd6b 100644
--- a/testcases/kernel/security/mmc_security/ask_password.sh
+++ b/testcases/kernel/security/mmc_security/ask_password.sh
@@ -57,7 +57,7 @@
 			exit 1
 		fi
 		echo "Password accepted."
-		
+
 		exit 0
 	} &> $USER_CONSOLE < $USER_CONSOLE
 }
diff --git a/testcases/kernel/security/mmc_security/assign_password.sh b/testcases/kernel/security/mmc_security/assign_password.sh
index 0fb3224..783e3b7 100644
--- a/testcases/kernel/security/mmc_security/assign_password.sh
+++ b/testcases/kernel/security/mmc_security/assign_password.sh
@@ -62,7 +62,7 @@
 		exit 1
 	fi
 	echo "Password assigned."
-	
+
 	exit 0
 	} &> $USER_CONSOLE < $USER_CONSOLE
 }
diff --git a/testcases/kernel/security/mmc_security/change_password.sh b/testcases/kernel/security/mmc_security/change_password.sh
index 4bcc4b5..8e09e65 100644
--- a/testcases/kernel/security/mmc_security/change_password.sh
+++ b/testcases/kernel/security/mmc_security/change_password.sh
@@ -41,22 +41,22 @@
 	export TCID="change_password" # Test case identifier
 	export TST_COUNT=0  # Set up is initialized as test 0
 	RC=0                # Exit values of system commands used
-	
+
 	echo "=== Change MMC Password ==="
 	keyid=$(keyctl request mmc "mmc:key")
 	if [ -z "$keyid" ]; then
 		echo "*** No protected and unlocked MMC was found. The password cannot be changed."
 		exit 1
 	fi
-	
+
 	while [ -z "$oldpasswd" ]; do
 		read -s -p "Current MMC password: " oldpasswd; echo
 	done
-	
+
 	while [ -z "$newpasswd" ]; do
 		read -s -p "New MMC password: " newpasswd; echo
 	done
-	
+
 	while [ -z "$newpasswd2" ]; do
 		read -s -p "Retype MMC password: " newpasswd2; echo
 	done
@@ -64,16 +64,16 @@
 		echo "*** Passwords do not match."
 		exit 1
 	fi
-	
+
 	if ! keyctl update $keyid "$oldpasswd$newpasswd"; then
 		echo "*** Wrong password!"
 		exit 1
 	fi
-	
+
 	# Clear session keyring
 	# FIXME: It assumes we have only the MMC key there
 	keyctl clear -3
-	
+
 	echo "Password changed."
 }
 
diff --git a/testcases/kernel/security/mmc_security/force_erase.sh b/testcases/kernel/security/mmc_security/force_erase.sh
index 4909180..bde908f 100644
--- a/testcases/kernel/security/mmc_security/force_erase.sh
+++ b/testcases/kernel/security/mmc_security/force_erase.sh
@@ -51,7 +51,7 @@
 		echo "erase operation on locked cards."
 		exit 1
 	fi
-	
+
 	while [ -z "$yn" ]; do
 		read -p "WARNING: all card contents will be lost! Continue? (y/n) " yn
 		case "$yn" in
@@ -60,15 +60,15 @@
 			*) yn=""
 		esac
 	done
-	
+
 	echo "Erasing card. This may take some time, wait..."
 	echo erase > /sys/bus/mmc/devices/mmc0\:*/lockable || \
 	{ echo "*** Error erasing card" >&2; exit 1 ;}
-	
+
 	# Clear session keyring
 	# FIXME: It assumes we have only the MMC key there
 	keyctl clear -3
-	
+
 	echo "Card unlocked and erased."
 }
 
diff --git a/testcases/kernel/security/mmc_security/remove_password.sh b/testcases/kernel/security/mmc_security/remove_password.sh
index 3cacee9..2f74fb9 100644
--- a/testcases/kernel/security/mmc_security/remove_password.sh
+++ b/testcases/kernel/security/mmc_security/remove_password.sh
@@ -43,21 +43,21 @@
 	export TCID="remove_password" # Test case identifier
 	export TST_COUNT=0  # Set up is initialized as test 0
 	RC=0                # Exit values of system commands used
-	
+
 	echo "=== Remove MMC Password ==="
 	keyid=$(keyctl request mmc "mmc:key")
 	if [ -z "$keyid" ]; then
 		echo "*** No protected and unlocked MMC was found. The password cannot be removed."
 		exit 1
 	fi
-	
+
 	echo remove > /sys/bus/mmc/devices/mmc0\:*/lockable || \
 	{ echo "*** Password reset failed."; exit 1 ;}
-	
+
 	# Clear session keyring
 	# FIXME: It assumes we have only the MMC key there
 	keyctl clear -3
-	
+
 	echo "Password removed."
 }
 
diff --git a/testcases/kernel/security/smack/smack_set_ambient.sh b/testcases/kernel/security/smack/smack_set_ambient.sh
index aa48b62..fcfdbc5 100755
--- a/testcases/kernel/security/smack/smack_set_ambient.sh
+++ b/testcases/kernel/security/smack/smack_set_ambient.sh
@@ -20,7 +20,7 @@
 label=`cat "$smackfsdir/ambient" 2>/dev/null`
 if [ "$label" != "$NotTheFloorLabel" ]; then
 	cat <<EOM
-The smack label reported for the current process is "$label", not the expected 
+The smack label reported for the current process is "$label", not the expected
 "$NotTheFloorLabel".
 EOM
 	exit 1
diff --git a/testcases/kernel/security/tomoyo/include.h b/testcases/kernel/security/tomoyo/include.h
index c99ac6b..4cef496 100644
--- a/testcases/kernel/security/tomoyo/include.h
+++ b/testcases/kernel/security/tomoyo/include.h
@@ -53,7 +53,7 @@
 #include <linux/ip.h>
 #include <err.h>
 
-/* 
+/*
  * Some architectures like mips n32 don't have __NR_uselib defined in the
  * system headers.
  */
diff --git a/testcases/kernel/syscalls/acct/acct01.c b/testcases/kernel/syscalls/acct/acct01.c
index 324d423..913ae40 100644
--- a/testcases/kernel/syscalls/acct/acct01.c
+++ b/testcases/kernel/syscalls/acct/acct01.c
@@ -68,7 +68,7 @@
 static void setup(void)
 {
 
-	/* 
+	/*
 	 * XXX: FreeBSD says you must always be superuser, but Linux says you
 	 * need to have CAP_SYS_PACCT capability.
 	 *
@@ -97,7 +97,7 @@
 	setup();
 
 	/* EISDIR */
-	if (acct("/") == -1 && errno == EISDIR) 
+	if (acct("/") == -1 && errno == EISDIR)
 		tst_resm(TPASS, "Failed with EISDIR as expected");
 	else
 		tst_brkm(TFAIL|TERRNO, cleanup,
diff --git a/testcases/kernel/syscalls/chdir/chdir01.c b/testcases/kernel/syscalls/chdir/chdir01.c
index 00b49da..86623f0 100644
--- a/testcases/kernel/syscalls/chdir/chdir01.c
+++ b/testcases/kernel/syscalls/chdir/chdir01.c
@@ -159,7 +159,7 @@
 	found = 0;
 	while ((dir = readdir(ddir)) != NULL) {
 		for (i = 0; i < fnamecount; i++) {
-			/* 
+			/*
 			 * if dir->d_name is not null terminated it is a bug
 			 * anyway
 			 */
diff --git a/testcases/kernel/syscalls/epoll2/examples/Makefile b/testcases/kernel/syscalls/epoll2/examples/Makefile
index ca5c8d6..ade6634 100644
--- a/testcases/kernel/syscalls/epoll2/examples/Makefile
+++ b/testcases/kernel/syscalls/epoll2/examples/Makefile
@@ -25,7 +25,7 @@
 
 SOURCES = $(SRCDIR)/epoll-test.c
 
-MKDEP = mkdep -f 
+MKDEP = mkdep -f
 
 
 all: blaster httpd pipetest
diff --git a/testcases/kernel/syscalls/epoll2/include/epoll.h b/testcases/kernel/syscalls/epoll2/include/epoll.h
index c41b1a7..be599c7 100644
--- a/testcases/kernel/syscalls/epoll2/include/epoll.h
+++ b/testcases/kernel/syscalls/epoll2/include/epoll.h
@@ -59,7 +59,7 @@
 #define EPOLL_CTL_MOD 3	/* Change file decriptor epoll_event structure.  */
 
 
-/* 
+/*
  * On x86-64 make the 64bit structure have the same alignment as the
  * 32bit structure. This makes 32bit emulation easier.
  */
diff --git a/testcases/kernel/syscalls/fchown/fchown04.c b/testcases/kernel/syscalls/fchown/fchown04.c
index 2faa53a..f342ef9 100644
--- a/testcases/kernel/syscalls/fchown/fchown04.c
+++ b/testcases/kernel/syscalls/fchown/fchown04.c
@@ -101,7 +101,7 @@
 	void (*setupfunc) ();
 } test_cases[] = {
 	{ 1, EPERM, setup1 },
-	{ 2, EBADF, setup2 }, 
+	{ 2, EBADF, setup2 },
 };
 
 char test_home[PATH_MAX];	/* variable to hold TESTHOME env */
diff --git a/testcases/kernel/syscalls/ftruncate/ftruncate04.sh b/testcases/kernel/syscalls/ftruncate/ftruncate04.sh
index 9c9584c..31f3188 100755
--- a/testcases/kernel/syscalls/ftruncate/ftruncate04.sh
+++ b/testcases/kernel/syscalls/ftruncate/ftruncate04.sh
@@ -23,7 +23,7 @@
 if [ "x$DEV" = x -o "x$MOUNT_POINT" = x ] ; then
     tst_resm TCONF "backend mountpoint for $TMPDIR does not correspond to a real device:"
     df -P .
-    exit 0 
+    exit 0
 fi
 FLAG=$(mount | grep ${DEV} | sed 's/.*(\(.*\)).*/\1/g')
 cat <<EOF
@@ -32,7 +32,7 @@
 FLAG:        $FLAG
 EOF
 if ! mount ${DEV} -o remount,mand; then
-    error "mounting ${DEV} remount,mand failed" 
+    error "mounting ${DEV} remount,mand failed"
     exit 2
 fi
 "$FTRUNCATE"
diff --git a/testcases/kernel/syscalls/io_destroy/io_destroy01.c b/testcases/kernel/syscalls/io_destroy/io_destroy01.c
index 694b7bb..19e9535 100644
--- a/testcases/kernel/syscalls/io_destroy/io_destroy01.c
+++ b/testcases/kernel/syscalls/io_destroy/io_destroy01.c
@@ -99,7 +99,7 @@
 		break;
 		}
 	}
-	
+
 	cleanup();
 	tst_exit();
 }
diff --git a/testcases/kernel/syscalls/io_getevents/io_getevents01.c b/testcases/kernel/syscalls/io_getevents/io_getevents01.c
index 0400d20..dbc7c90 100644
--- a/testcases/kernel/syscalls/io_getevents/io_getevents01.c
+++ b/testcases/kernel/syscalls/io_getevents/io_getevents01.c
@@ -70,7 +70,7 @@
 {
 	int lc;
 	char *msg;
-	
+
 	io_context_t ctx;
 
 	memset(&ctx, 0, sizeof(ctx));
@@ -104,7 +104,7 @@
 		break;
 		}
 	}
-	
+
 	cleanup();
 	tst_exit();
 }
diff --git a/testcases/kernel/syscalls/mallopt/mallopt01.c b/testcases/kernel/syscalls/mallopt/mallopt01.c
index 9e60db7..edd0ae4 100644
--- a/testcases/kernel/syscalls/mallopt/mallopt01.c
+++ b/testcases/kernel/syscalls/mallopt/mallopt01.c
@@ -37,7 +37,7 @@
 #define __MALLOC_STANDARD__
 #endif
 #include <errno.h>
-/* 
+/*
  * NOTE: struct mallinfo is only exported via malloc.h (not stdlib.h), even
  * though it's an obsolete header for malloc(3).
  *
diff --git a/testcases/kernel/syscalls/mmap/mmap10.c b/testcases/kernel/syscalls/mmap/mmap10.c
index 339f7da..1d104ce 100644
--- a/testcases/kernel/syscalls/mmap/mmap10.c
+++ b/testcases/kernel/syscalls/mmap/mmap10.c
@@ -159,7 +159,7 @@
 		tst_brkm(TBROK|TERRNO, cleanup, "fork");
 	case 0:
 		if (munmap(x+SIZE+ps, SIZE-ps-ps) == -1)
-			tst_brkm(TFAIL|TERRNO, cleanup, 
+			tst_brkm(TFAIL|TERRNO, cleanup,
 					"subsequent munmap #1");
 		exit(0);
 	default:
@@ -168,7 +168,7 @@
 			tst_brkm(TBROK|TERRNO, cleanup, "fork");
 		case 0:
 			if (munmap(x+SIZE+ps, SIZE-ps-ps) == -1)
-				tst_brkm(TFAIL|TERRNO, cleanup, 
+				tst_brkm(TFAIL|TERRNO, cleanup,
 						"subsequent munmap #2");
 			exit(0);
 		default:
diff --git a/testcases/kernel/syscalls/nftw/Makefile b/testcases/kernel/syscalls/nftw/Makefile
index 3873f37..948c94b 100644
--- a/testcases/kernel/syscalls/nftw/Makefile
+++ b/testcases/kernel/syscalls/nftw/Makefile
@@ -1,12 +1,12 @@
-# IBM Corporation 
-# 10/31/2002   Port to LTP     robbiew@us.ibm.com 
+# IBM Corporation
+# 10/31/2002   Port to LTP     robbiew@us.ibm.com
 # 06/30/2001   Port to Linux   nsharoff@us.ibm.com
 
 #
 # $Copyright: $
 # Copyright (c) 1984-1999
 # Sequent Computer Systems, Inc.   All rights reserved.
-#  
+#
 # This software is furnished under a license and may be used
 # only in accordance with the terms of that license and with the
 # inclusion of the above copyright notice.   This software may not
@@ -24,7 +24,7 @@
 
 nftw01: CPPFLAGS += -D_LARGEFILE_SOURCE
 
-nftw01: nftw.o tools.o test_func.o test.o lib.o 
+nftw01: nftw.o tools.o test_func.o test.o lib.o
 	$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o "$@"
 
 nftw64.o tools64.o test_func64.o test64.o lib64.o: %.o: %.c
diff --git a/testcases/kernel/syscalls/nftw/nftw.h b/testcases/kernel/syscalls/nftw/nftw.h
index 65a3fb1..1bf8b97 100644
--- a/testcases/kernel/syscalls/nftw/nftw.h
+++ b/testcases/kernel/syscalls/nftw/nftw.h
@@ -25,7 +25,7 @@
  * NAME
  *	nftw.h - Header file for nftw.c
  */
- 
+
 
 #ifndef _NFTW_H_
 #define _NFTW_H_
@@ -143,7 +143,7 @@
 extern int test_func3(const char *, const struct stat *, int, struct FTW *);
 extern int test_func4(const char *, const struct stat *, int, struct FTW *);
 extern int test_func5(const char *, const struct stat *, int, struct FTW *);
-extern int test_func7(const char *, const struct stat *, int, struct FTW *); 
+extern int test_func7(const char *, const struct stat *, int, struct FTW *);
 extern int test_func8(const char *, const struct stat *, int, struct FTW *);
 extern int test_func9(const char *, const struct stat *, int, struct FTW *);
 extern int test_func10(const char *, const struct stat *, int, struct FTW *);
diff --git a/testcases/kernel/syscalls/nftw/nftw64.h b/testcases/kernel/syscalls/nftw/nftw64.h
index 8309a38..4dd2dcb 100644
--- a/testcases/kernel/syscalls/nftw/nftw64.h
+++ b/testcases/kernel/syscalls/nftw/nftw64.h
@@ -10,7 +10,7 @@
 /* $Copyright: $
  * Copyright (c) 1984-1999
  * Sequent Computer Systems, Inc.   All rights reserved.
- *  
+ *
  * This software is furnished under a license and may be used
  * only in accordance with the terms of that license and with the
  * inclusion of the above copyright notice.   This software may not
diff --git a/testcases/kernel/syscalls/rt_sigtimedwait/Makefile b/testcases/kernel/syscalls/rt_sigtimedwait/Makefile
index 27a9e9e..c7110d7 100644
--- a/testcases/kernel/syscalls/rt_sigtimedwait/Makefile
+++ b/testcases/kernel/syscalls/rt_sigtimedwait/Makefile
@@ -18,7 +18,7 @@
 
 top_srcdir ?= ../../../..
 
-include $(top_srcdir)/include/mk/testcases.mk 
+include $(top_srcdir)/include/mk/testcases.mk
 
 CPPFLAGS += -DTEST_RT_SIGTIMEDWAIT
 
@@ -27,5 +27,5 @@
 
 MAKE_TARGETS := rt_sigtimedwait01
 
-include $(top_srcdir)/include/mk/generic_leaf_target.mk 
+include $(top_srcdir)/include/mk/generic_leaf_target.mk
 
diff --git a/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c b/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c
index c9e9fe4..52f40b6 100644
--- a/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c
+++ b/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c
@@ -88,7 +88,7 @@
 	for (lc = 0; TEST_LOOPING(lc); lc++) {
 		for (i = 0; i < sizeof(tests) / sizeof(struct test); i++) {
 			TEST(syscall(tests[i].syscall, tests[i].u_info));
-			
+
 			if (TEST_RETURN != tests[i].exp_ret) {
 				tst_resm(TFAIL, "%s returned %li expected %i",
 				         get_name(tests[i].syscall),
@@ -103,7 +103,7 @@
 					 strerror(tests[i].exp_errno));
 				continue;
 			}
-			
+
 			tst_resm(TPASS, "%s returned %li errno %i (%s)",
 			         get_name(tests[i].syscall), TEST_RETURN,
 				 TEST_ERRNO, strerror(TEST_ERRNO));
diff --git a/testcases/kernel/syscalls/setgid/compat_16.h b/testcases/kernel/syscalls/setgid/compat_16.h
index 1534de7..fb9453c 100644
--- a/testcases/kernel/syscalls/setgid/compat_16.h
+++ b/testcases/kernel/syscalls/setgid/compat_16.h
@@ -29,7 +29,7 @@
 
 #ifdef TST_USE_COMPAT16_SYSCALL
 
-int 
+int
 SETGID(GID_T gid)
 {
 	return syscall(__NR_setgid, gid);
@@ -42,8 +42,8 @@
 
 	gid = getgid();
 	if (!GID_SIZE_CHECK(gid))
-	  tst_brkm(TBROK, 
-		   cleanup, 
+	  tst_brkm(TBROK,
+		   cleanup,
 		   "gid for the current process is too large for testing setgid16");
 
 	return (GID_T)gid;
@@ -51,7 +51,7 @@
 
 #else
 
-int 
+int
 SETGID(GID_T gid)
 {
 	return setgid(gid);
diff --git a/testcases/kernel/syscalls/swapon/swapon03.c b/testcases/kernel/syscalls/swapon/swapon03.c
index bc044d9..797c9de 100644
--- a/testcases/kernel/syscalls/swapon/swapon03.c
+++ b/testcases/kernel/syscalls/swapon/swapon03.c
@@ -327,7 +327,7 @@
 		    "count=%d > tmpfile 2>&1", swapfile, bs, count) < 0) {
 		tst_resm(TWARN,
 			 "sprintf() failed to create the command string");
-	
+
 		return -1;
 	}
 
@@ -336,7 +336,7 @@
 				"command: %s", cmd_buffer);
 		return -1;
 	}
-	
+
 	/* make the file swapfile */
 	if (snprintf(cmd_buffer, sizeof(cmd_buffer),
 		    "mkswap %s > tmpfile 2>&1", swapfile) < 0) {
@@ -344,7 +344,7 @@
 			 "snprintf() failed to create mkswap command string");
 		return -1;
 	}
-	
+
 	if (system(cmd_buffer) != 0) {
 		tst_resm(TWARN, "failed to make swap file %s via command %s",
 			 swapfile, cmd_buffer);
diff --git a/testcases/kernel/syscalls/syslog/syslog-lib.sh b/testcases/kernel/syscalls/syslog/syslog-lib.sh
index 3d0c189..ce53dcb 100755
--- a/testcases/kernel/syscalls/syslog/syslog-lib.sh
+++ b/testcases/kernel/syscalls/syslog/syslog-lib.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-#  Copyright (c) Linux Test Project, 2010 
+#  Copyright (c) Linux Test Project, 2010
 #
 #  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
@@ -102,7 +102,7 @@
 	else
 		# Fallback to /etc/init.d/syslog if $SYSLOG_INIT_SCRIPT
 		# doesn't exist.
-		for SYSLOG_INIT_SCRIPT in "$SYSLOG_INIT_SCRIPT" "/etc/init.d/syslog"; do 
+		for SYSLOG_INIT_SCRIPT in "$SYSLOG_INIT_SCRIPT" "/etc/init.d/syslog"; do
 			if [ -x "$SYSLOG_INIT_SCRIPT" ]; then
 				SYSLOG_RESTART_COMMAND="$SYSLOG_INIT_SCRIPT restart"
 				break
diff --git a/testcases/kernel/syscalls/syslog/syslog05 b/testcases/kernel/syscalls/syslog/syslog05
index 9019035..5081329 100755
--- a/testcases/kernel/syscalls/syslog/syslog05
+++ b/testcases/kernel/syscalls/syslog/syslog05
@@ -56,7 +56,7 @@
 		;;
 	esac
 
-	restart_syslog_daemon	
+	restart_syslog_daemon
 
 	# check if /var/log/messages script exists
 	if [ "$CONFIG_FILE" != "/etc/syslog-ng/syslog-ng.conf" -a ! -e /var/log/messages ]
diff --git a/testcases/kernel/syscalls/syslog/syslog08 b/testcases/kernel/syscalls/syslog/syslog08
index 09a4338..a684c58 100755
--- a/testcases/kernel/syscalls/syslog/syslog08
+++ b/testcases/kernel/syscalls/syslog/syslog08
@@ -30,7 +30,7 @@
 # LOG_DAEMON, LOG_AUTH, LOG_LPR.				 #
 # Don't know how to send kernel messages from syslog()   	 #
 #								 #
-# o Create seperate entries in config file for each facility.	 # 
+# o Create seperate entries in config file for each facility.	 #
 # o Send the message and grep for the entry in log file.	 #
 ##################################################################
 
diff --git a/testcases/kernel/syscalls/utils/compat_16.mk b/testcases/kernel/syscalls/utils/compat_16.mk
index 59bc01a..371bd43 100644
--- a/testcases/kernel/syscalls/utils/compat_16.mk
+++ b/testcases/kernel/syscalls/utils/compat_16.mk
@@ -20,26 +20,26 @@
 # Technique used here is suggested by Garrett Cooper <yanegomi@gmail.com>
 
 # Usage:
-# 
+#
 # This makefile snippet is for writing test cases
-# for foo16 system calls. Here I assume you already have 
-# test cases for foo like foo01, foo02.. fooN and I also 
+# for foo16 system calls. Here I assume you already have
+# test cases for foo like foo01, foo02.. fooN and I also
 # assume the source file name for fooN is fooN.c.
 # On the above assumption, this file does:
-# 
-# * adding fooN_16 as MAKE_TARGETS, 
+#
+# * adding fooN_16 as MAKE_TARGETS,
 # * making *.c depend on compat_16.h if the header file exists,
 # * adding rules to build fooN_16 from fooN.c (and compat_16.h), and
-# * passing a cpp symbol TST_USE_COMPAT16_SYSCALL to 
+# * passing a cpp symbol TST_USE_COMPAT16_SYSCALL to
 #   CC when building fooN_16.
 #
 #
 # You can use this file in following procedures:
-# 
+#
 # 1. write fooN.c.
 # 2. add the code for 16 bit syscall and wrap
 #    it #ifdef TST_USE_COMPAT16_SYSCALL/endif.
-# 3. introduce your own compat_16.h if the ifdef 
+# 3. introduce your own compat_16.h if the ifdef
 #    block is too large.
 # 4. don't forget putting compat_16.h in all fooN.c
 #    if you introduced compat_16.h.
diff --git a/testcases/kernel/syscalls/utils/compat_gid.h b/testcases/kernel/syscalls/utils/compat_gid.h
index 5d4403b..485a376 100644
--- a/testcases/kernel/syscalls/utils/compat_gid.h
+++ b/testcases/kernel/syscalls/utils/compat_gid.h
@@ -28,7 +28,7 @@
 
 #ifdef TST_USE_COMPAT16_SYSCALL
 typedef __kernel_old_gid_t GID_T;
-int 
+int
 GID_SIZE_CHECK(gid_t gid)
 {
 	/* See high2lowgid in linux/highuid.h
@@ -40,7 +40,7 @@
 #else
 
 typedef gid_t GID_T;
-int 
+int
 GID_SIZE_CHECK(gid_t gid)
 {
 	return 1;
diff --git a/testcases/kernel/syscalls/utils/compat_uid.h b/testcases/kernel/syscalls/utils/compat_uid.h
index 24a407d..05aa40c 100644
--- a/testcases/kernel/syscalls/utils/compat_uid.h
+++ b/testcases/kernel/syscalls/utils/compat_uid.h
@@ -28,7 +28,7 @@
 
 #ifdef TST_USE_COMPAT16_SYSCALL
 typedef __kernel_old_uid_t UID_T;
-int 
+int
 UID_SIZE_CHECK(uid_t uid)
 {
 	/* See high2lowuid in linux/highuid.h
@@ -40,7 +40,7 @@
 #else
 
 typedef uid_t UID_T;
-int 
+int
 UID_SIZE_CHECK(uid_t uid)
 {
 	return 1;
diff --git a/testcases/kernel/syscalls/utils/newer_64.mk b/testcases/kernel/syscalls/utils/newer_64.mk
index ead21f8..1125cbd 100644
--- a/testcases/kernel/syscalls/utils/newer_64.mk
+++ b/testcases/kernel/syscalls/utils/newer_64.mk
@@ -19,7 +19,7 @@
 # Author: Masatake YAMATO <yamato@redhat.com>
 # Technique used here is suggested by Garrett Cooper <yanegomi@gmail.com>
 
-# This file does the same things on foo64 system call 
+# This file does the same things on foo64 system call
 # as compat_16.mk does on foo16. See both compat_16.mk
 # and Makefile for fadvise test case.
 
diff --git a/testcases/kernel/tracing/ftrace_stress_test/ftrace_stress/ftrace_trace_stat.sh b/testcases/kernel/tracing/ftrace_stress_test/ftrace_stress/ftrace_trace_stat.sh
index cb601db..d7e6fd3 100755
--- a/testcases/kernel/tracing/ftrace_stress_test/ftrace_stress/ftrace_trace_stat.sh
+++ b/testcases/kernel/tracing/ftrace_stress_test/ftrace_stress/ftrace_trace_stat.sh
@@ -21,7 +21,7 @@
         should_skip=1
 fi
 
-# For kernels older than 2.6.36, this testcase can result in 
+# For kernels older than 2.6.36, this testcase can result in
 # divide-by-zero kernel bug
 tst_kvercmp 2 6 36
 if [ $? -eq 0 ]; then
diff --git a/testcases/lib/cmdlib.sh b/testcases/lib/cmdlib.sh
index 9a7ff28..6aeb10f 100644
--- a/testcases/lib/cmdlib.sh
+++ b/testcases/lib/cmdlib.sh
@@ -132,7 +132,7 @@
 # echo $SHELL
 #
 # Gentoo:
-# gcooper@orangebox ~/Desktop $ ./foo.sh 
+# gcooper@orangebox ~/Desktop $ ./foo.sh
 # foo.sh
 # foo.sh
 # /bin/bash
diff --git a/testcases/misc/math/float/README b/testcases/misc/math/float/README
index 45eaa25..464bdde 100644
--- a/testcases/misc/math/float/README
+++ b/testcases/misc/math/float/README
@@ -50,7 +50,7 @@
 ------
 1)
 /* datafiles are supposed to be placed to the same directory as executables */
-/* this can be changed giving the absolute path of the directory to the 
+/* this can be changed giving the absolute path of the directory to the
  testcase ex:$ float_trigo -D /home/linux/livr */
 
 2) number of threads is initialized to 20 per function
diff --git a/testcases/misc/math/float/bessel/readme b/testcases/misc/math/float/bessel/readme
index 53fecea..fb3c091 100644
--- a/testcases/misc/math/float/bessel/readme
+++ b/testcases/misc/math/float/bessel/readme
@@ -8,7 +8,7 @@
 $ make all
 
 /* start datafiles generator */
-$ genbessel  
+$ genbessel
 
 /* put datafiles where they have to be loaded */
 $ make install
diff --git a/testcases/misc/math/float/power/readme b/testcases/misc/math/float/power/readme
index cf85994..b9d2cdd 100644
--- a/testcases/misc/math/float/power/readme
+++ b/testcases/misc/math/float/power/readme
@@ -8,7 +8,7 @@
 $ make all
 
 /* start datafiles generator */
-$ genpower  
+$ genpower
 
 /* put datafiles where they have to be loaded */
 $ make install
diff --git a/testcases/misc/tcore_patch_test_suites/tcore.exp b/testcases/misc/tcore_patch_test_suites/tcore.exp
index 7f1dc9f..294cae3 100644
--- a/testcases/misc/tcore_patch_test_suites/tcore.exp
+++ b/testcases/misc/tcore_patch_test_suites/tcore.exp
@@ -16,7 +16,7 @@
 #    along with this program;  if not, write to the Free Software
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
-set curr_thread 0 
+set curr_thread 0
 set pass 0
 proc check_buf {buf key} {
     set num 0
@@ -36,7 +36,7 @@
 proc check_threads {} {
     global curr_thread
     global pass
-    set istrue 0 
+    set istrue 0
     send "info threads\n"
     expect {
        	-re " \[0-9\]+ process .*(gdb)" {
@@ -86,7 +86,7 @@
                 set number [check_buf $buf "in"]
                 if {  $number < 1  } {
 			set test 1
-	        } 
+	        }
                 set counter [expr $counter + 1]
         }
 	if { 0 == $test } {
@@ -106,7 +106,7 @@
 	send "\n"
 	send "info register\n"
 	send "\n"
-	expect { 
+	expect {
 		-re "xmm$num\[\t \]+\{f \= .*\}+\[\t \]+\{f \= .*\}" {
 			set buf $expect_out(0,string)
 		}
@@ -122,7 +122,7 @@
 	set number [lindex $buf2 1]
 	if { 0 != $number } {
 		set pass [expr $pass + 1]
-		send_user "success while check whether core dump includes fpu information"	
+		send_user "success while check whether core dump includes fpu information"
 		return 0
 	} else {
 		send_user "fail while check whether core dump includes fpu information"
diff --git a/testcases/misc/tcore_patch_test_suites/tcore.sh b/testcases/misc/tcore_patch_test_suites/tcore.sh
index 1fce517..9e10936 100755
--- a/testcases/misc/tcore_patch_test_suites/tcore.sh
+++ b/testcases/misc/tcore_patch_test_suites/tcore.sh
@@ -16,7 +16,7 @@
 #    along with this program;  if not, write to the Free Software
 #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
-# Test suite for the t-core kernel patch 
+# Test suite for the t-core kernel patch
 export TCID=tcore01
 PTHREAD_DIR="/lib/i686"
 BIN_DIR=$LTPROOT/testcases/bin/
@@ -28,7 +28,7 @@
 fail=0
 check_install()
 {
-	if [ -f /proc/sys/kernel/core_dumps_threads ];then		
+	if [ -f /proc/sys/kernel/core_dumps_threads ];then
 		pass=`expr $pass + 1`
 		return 0
 	else
@@ -46,7 +46,7 @@
 cleanup()
 {
 		rm -rf $TEST_DIR
-		[ -f /proc/sys/kernel/core_dumps_threads ] && ! [ -z "$OLD_PATTERN" ] && 
+		[ -f /proc/sys/kernel/core_dumps_threads ] && ! [ -z "$OLD_PATTERN" ] &&
 		echo "$OLD_PATTERN" > /proc/sys/kernel/core_dumps_threads
 		exit $1
 }
@@ -80,7 +80,7 @@
 		}
 	fi
 }
-#Prepare for the gdb dump 
+#Prepare for the gdb dump
 prepare_gdb()
 {
 	os_check
@@ -116,7 +116,7 @@
 		echo "FAIL"
 		fail=`expr $fail + 1`
 		return 1
-	fi	
+	fi
 }
 
 Test_core_file()
@@ -138,7 +138,7 @@
 echo "Linux Tcore test results" > results
 echo "Total pass fail" >>  results
 echo "  5	$pass	$fail" >> results
-cleanup $fail 
+cleanup $fail
 
-	
-	
+
+
diff --git a/testcases/network/Makefile b/testcases/network/Makefile
index f847df9..adcdc62 100644
--- a/testcases/network/Makefile
+++ b/testcases/network/Makefile
@@ -35,7 +35,7 @@
 
 RM			+= -r
 
-$(INSTALL_TARGETS): | generate 
+$(INSTALL_TARGETS): | generate
 
 .PHONY: generate
 
diff --git a/testcases/network/can/filter-tests/00_Descriptions.txt b/testcases/network/can/filter-tests/00_Descriptions.txt
index dacce1c..8961098 100644
--- a/testcases/network/can/filter-tests/00_Descriptions.txt
+++ b/testcases/network/can/filter-tests/00_Descriptions.txt
@@ -1,7 +1,7 @@
 Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial communications
 protocol which was developed by Bosch in 1991, mainly for automotive, but now
 widely used in marine (NMEA2000), industrial, and medical applications. More
-information on the CAN network protocol family PF_CAN is contained in 
+information on the CAN network protocol family PF_CAN is contained in
 <Kernel/Documentation/networking/can.txt>.
 
 For any issue(s) with CAN tests please write to:
diff --git a/testcases/network/can/filter-tests/INSTALL b/testcases/network/can/filter-tests/INSTALL
index 763b9d6..e549aed 100644
--- a/testcases/network/can/filter-tests/INSTALL
+++ b/testcases/network/can/filter-tests/INSTALL
@@ -12,11 +12,11 @@
 $ make
 
 2) To Run the tests from this directory, do:
-$ ./run_ltp-can_tests.sh 
+$ ./run_ltp-can_tests.sh
 
 3) To let LTP run the tests from $LTPROOT, execute:
 $ ./runltp -f can
- 
+
 4) Clean up using:
 $ make clean
 
diff --git a/testcases/network/can/filter-tests/run_ltp-can_tests.sh b/testcases/network/can/filter-tests/run_ltp-can_tests.sh
index 8070c9a..079c6dc 100644
--- a/testcases/network/can/filter-tests/run_ltp-can_tests.sh
+++ b/testcases/network/can/filter-tests/run_ltp-can_tests.sh
@@ -46,7 +46,7 @@
     exit 1
 fi
 
-# test of CAN filters on af_can.c 
+# test of CAN filters on af_can.c
 ./tst-filter $VCAN || exit 1
 
 # test of CAN frame flow down to the netdevice and up again
diff --git a/testcases/network/can/filter-tests/tst-filter.c b/testcases/network/can/filter-tests/tst-filter.c
index a2d46f1..6ec0a4b 100644
--- a/testcases/network/can/filter-tests/tst-filter.c
+++ b/testcases/network/can/filter-tests/tst-filter.c
@@ -138,7 +138,7 @@
 	printf("---\n");
 
 	for (testcase = 0; testcase < TC; testcase++) {
-		
+
 		rfilter.can_id   = calc_id(testcase);
 		rfilter.can_mask = calc_mask(testcase);
 		setsockopt(s, SOL_CAN_RAW, CAN_RAW_FILTER,
diff --git a/testcases/network/dhcpd/dhcpd_tests.sh b/testcases/network/dhcpd/dhcpd_tests.sh
index b686720..fa02a93 100755
--- a/testcases/network/dhcpd/dhcpd_tests.sh
+++ b/testcases/network/dhcpd/dhcpd_tests.sh
@@ -214,7 +214,7 @@
 	fi
 
   # Removing the added route
-  /sbin/route del 10.1.1.12 
+  /sbin/route del 10.1.1.12
 
 	rm -fr $LTPTMP
 	return $RC
@@ -224,7 +224,7 @@
 # Function:		test01
 #
 # Description	- Test basic functionality of dhcpd.
-#               - Test #1: dhcpd will serve IP addresses based on rules in 
+#               - Test #1: dhcpd will serve IP addresses based on rules in
 #                 /etc/dhcpd.conf file.
 #				- create dhcpd.conf file, server to listen to ethX/.../10.1.1.0
 #               - start dhcpd server
@@ -258,7 +258,7 @@
 		tst_brkm TBROK NULL "Test #1: Unable to create expected reaults."
 		return $RC
 	fi
-	
+
 	tst_resm TINFO "Test #1: starting dhcp server"
 	dhcpd > $LTPTMP/tst_dhcpd.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
@@ -303,7 +303,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
diff --git a/testcases/network/iproute/ip_tests.sh b/testcases/network/iproute/ip_tests.sh
index 56fcbdf..0b97470 100755
--- a/testcases/network/iproute/ip_tests.sh
+++ b/testcases/network/iproute/ip_tests.sh
@@ -66,8 +66,8 @@
 	then
 		tst_brkm TBROK "INIT: Unable to create temporary directory"
 		return $RC
-	fi	
-		
+	fi
+
 	# Check to see if test harness functions are in the path.
 	which tst_resm  >$LTPTMP/tst_ip.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
@@ -226,15 +226,15 @@
 	TST_COUNT=2		# Test number.
 
 	tst_resm TINFO \
-	 "Test #2: ip link show lists device attributes." 
+	 "Test #2: ip link show lists device attributes."
 
-	
+
 	tst_resm TINFO \
 	 "Test #2: Installing dummy.o in kernel"
 
 	modprobe dummy >$LTPTMP/tst_ip.out 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
-	then 
+	then
 		tst_brk TBROK $LTPTMP/tst_ip.out NULL \
 			"Test #2: modprobe failed to load dummy.o"
 		return $RC
@@ -277,7 +277,7 @@
 
 	tst_resm TINFO \
 	 "Test #3: ip addr add - adds a new protolcol address to the device"
-	
+
 	ip addr add 127.6.6.6 dev lo >$LTPTMP/tst_ip.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
@@ -313,7 +313,7 @@
 			else
 				RC=0
 			fi
-		
+
 		tst_resm TPASS \
 			"Test #3: ip addr command tests successful"
 		fi
@@ -327,7 +327,7 @@
 # Description	- Test basic functionality of ip command
 #               - Test #4: ip neigh add - add new neighbour entry to arp table
 #               - Test #4: ip neigh show - show neighbour entry to arp table
-#               - Test #4: ip neigh delete - delete new neighbour entry to arp 
+#               - Test #4: ip neigh delete - delete new neighbour entry to arp
 #               		   table
 #               - execute the command and create output.
 #               - create expected output
@@ -344,7 +344,7 @@
 
 	tst_resm TINFO \
 	 "Test #4: ip neigh add - adds a new neighbour to arp tables."
-	
+
 	ip neigh add 127.0.0.1 dev lo nud reachable >$LTPTMP/tst_ip.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
@@ -396,7 +396,7 @@
 				RC=0
 			fi
 		fi
-		
+
 		tst_resm TPASS \
 			"Test #4: ip neigh command tests successful"
 	fi
@@ -426,7 +426,7 @@
 	tst_resm TINFO \
 	 "Test #5: ip route add - adds a new route to route tables."
 
-	
+
 	tst_resm TINFO \
 	 "Test #5: create an interface with inet 10.6.6.6 alias to eth0"
 
@@ -437,7 +437,7 @@
 			"Test #5: unable to create interface eth0:1 inet 10.6.6.6. Reason:"
 		return $RC
 	fi
-	
+
 	ip route add 10.6.6.6 via 127.0.0.1 >$LTPTMP/tst_ip.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
@@ -490,7 +490,7 @@
 				RC=0
 			fi
 		fi
-		
+
 		tst_resm TPASS \
 			"Test #5: ip route command tests successful"
 	fi
@@ -527,7 +527,7 @@
 			"Test #6: unable to create interface eth0:1 inet 10.6.6.6. Reason:"
 		return $RC
 	fi
-	
+
 	ip maddr add 66:66:00:00:00:66 dev eth0:1 >$LTPTMP/tst_ip.err 2>&1 || RC=$?
 	if [ $RC -ne 0 ]
 	then
@@ -580,7 +580,7 @@
 				RC=0
 			fi
 		fi
-		
+
 		tst_resm TPASS \
 			"Test #6: ip maddr command tests successful"
 	fi
@@ -590,7 +590,7 @@
 # Function:		main
 #
 # Description:	- Execute all tests, report results.
-#               
+#
 # Exit:			- zero on success
 # 				- non-zero on failure.
 TFAILCNT=0			# Set TFAILCNT to 0, increment on failure.
diff --git a/testcases/network/iptables/iptables_tests.sh b/testcases/network/iptables/iptables_tests.sh
index 4565f39..3523689 100755
--- a/testcases/network/iptables/iptables_tests.sh
+++ b/testcases/network/iptables/iptables_tests.sh
@@ -22,16 +22,16 @@
 # File :        iptables_tests.sh
 #
 # Description:  Test basic functionality of iptables (firewall administration)
-#		- Test #1:  iptables -L -t <table> will list all rules in the 
+#		- Test #1:  iptables -L -t <table> will list all rules in the
 #		  selected table.
 #		- Test #2:  Test iptables DROP packets from particular IP.
 #		- Test #3:  Test iptables REJECT ping request.
 #		- Test #4:  Test iptables log packets to single port.
 #		- Test #5:  Test iptables log packets to multiple ports.
 #		- Test #6:  Test limit matched logging for ping request.
-#               
 #
-# History: 
+#
+# History:
 #		Jan 20 2004 Hubert Lin <linux02NOSPAAAM@tw.ibm.com or hubertNOSPAAAM@symbio.com.tw>
 #		  - Ported test01, test02 from Manoj Iyer's ipchains_tests.sh
 #		  - Added test03, test04, test05, test06
@@ -112,7 +112,7 @@
 		iptables -F -t filter > $LTPTMP/tst_iptables.out 2>&1
 		iptables -F -t nat > $LTPTMP/tst_iptables.out 2>&1
 		iptables -F -t mangle > $LTPTMP/tst_iptables.out 2>&1
-		rmmod -v ipt_limit ipt_multiport ipt_LOG ipt_REJECT iptable_mangle iptable_nat ip_conntrack iptable_filter ip_tables > $LTPTMP/tst_iptables.out 2>&1 
+		rmmod -v ipt_limit ipt_multiport ipt_LOG ipt_REJECT iptable_mangle iptable_nat ip_conntrack iptable_filter ip_tables > $LTPTMP/tst_iptables.out 2>&1
 	fi
 	rm -fr $LTPTMP/tst_iptables.*
 	return $RC
@@ -122,7 +122,7 @@
 # Function:	test01
 #
 # Description	- Test basic functionality of iptables (firewall administration)
-#               - Test #1:  iptables -L -t <table> will list all rules in the 
+#               - Test #1:  iptables -L -t <table> will list all rules in the
 #                 selected table.
 #
 # Return	- zero on success
@@ -174,7 +174,7 @@
 		fi
 	fi
 
-	local cmd="iptables -L -t mangle" 
+	local cmd="iptables -L -t mangle"
 	tst_resm TINFO \
 		"$TCID: $cmd will list all rules in table mangle."
 	$cmd > $LTPTMP/tst_iptables.out 2>&1 || RC=$?
@@ -203,7 +203,7 @@
 # Description	- Test basic functionality of iptables (firewall administration)
 #               - Test #2:  Test iptables DROP packets from particular IP.
 #               - Append new rule to block all packets from loopback.
-#				- ping -c 2 loopback, this should fail. 
+#				- ping -c 2 loopback, this should fail.
 #				- remove rule, and ping -c loopback, this should work.
 #
 # Return	- zero on success
@@ -262,7 +262,7 @@
 		tst_resm TINFO "$TCID: Ping succsess"
 		tst_resm TPASS "$TCID: iptables can DROP packets from particular IP."
 	fi
-	
+
 	return $RC
 }
 
@@ -272,7 +272,7 @@
 # Description	- Test basic functionality of iptables (firewall administration)
 #               - Test #3:  Test iptables REJECT ping request.
 #               - Append new rule to block all packets from loopback.
-#				- ping -c 2 loopback, this should fail. 
+#				- ping -c 2 loopback, this should fail.
 #				- remove rule, and ping -c loopback, this should work.
 #
 # Return	- zero on success
@@ -331,7 +331,7 @@
 		tst_resm TINFO "$TCID: Ping succsess"
 		tst_resm TPASS "$TCID: iptables can REJECT ping requests."
 	fi
-	
+
 	return $RC
 }
 
@@ -543,13 +543,13 @@
 # Function:	main
 #
 # Description:	- Execute all tests, report results.
-#              
+#
 # Exit:		- zero on success
 # 		- non-zero on failure.
 TFAILCNT=0	# Set TFAILCNT to 0, increment on failure.
 RC=0		# Return code from test.
 
-init || exit $RC # Exit if initializing testcases fails.	
+init || exit $RC # Exit if initializing testcases fails.
 
 test01 || RC=$?
 if [ $RC -ne 0 ]; then
diff --git a/testcases/network/multicast/README b/testcases/network/multicast/README
index c16cee7..02b0fec 100644
--- a/testcases/network/multicast/README
+++ b/testcases/network/multicast/README
@@ -1,19 +1,19 @@
 
 NOTE:
 
-  These tests ALL assume that the "RHOST" variable is set to the hostname 
-of the remote machine, i.e. 
+  These tests ALL assume that the "RHOST" variable is set to the hostname
+of the remote machine, i.e.
 
     # export RHOST=<hostname here>.
 
 These tests also assume an identical path tree for their location on the remote
 machine.  So if pan's root path is "/home/ltptests" on the test machine, then
 it must also be located in "/home/ltptests" on the remote machine (RHOST).
-  
-You will also need to setup a ".rhosts" file in root's home directory on the 
-remote machine, with the name of the local machine listed.  For example, if 
+
+You will also need to setup a ".rhosts" file in root's home directory on the
+remote machine, with the name of the local machine listed.  For example, if
 machineA is running the tests, with machineB set as RHOST, then machineB's
-root home directory will need an ".rhosts" file with machineA's hostname listed. 
+root home directory will need an ".rhosts" file with machineA's hostname listed.
 
   I apologize for the lengthy setup, but I tried to make it as minimal as possible.
 
diff --git a/testcases/network/multicast/mc_cmds/mc_cmds b/testcases/network/multicast/mc_cmds/mc_cmds
index f43dd95..23835f7 100755
--- a/testcases/network/multicast/mc_cmds/mc_cmds
+++ b/testcases/network/multicast/mc_cmds/mc_cmds
@@ -90,7 +90,7 @@
 
 # Added for support for more adapters configured
     MulticastAdap=
-    for eth in $IFNAME 
+    for eth in $IFNAME
     do
 
 	$trace_logic
@@ -130,7 +130,7 @@
        end_testcase "Multicast ping disabled on this system (this is normal on post year:2005 kernels)"
    fi
 
-   # Do the ping tests: Execute ping 224.0.0.1 - Verify that the proper 
+   # Do the ping tests: Execute ping 224.0.0.1 - Verify that the proper
    # number of responses are returned.
 
    echo "Ping all-host-groups address(over default route!)"
diff --git a/testcases/network/multicast/mc_commo/mc_commo b/testcases/network/multicast/mc_commo/mc_commo
index 8882d4c..d9986ff 100755
--- a/testcases/network/multicast/mc_commo/mc_commo
+++ b/testcases/network/multicast/mc_commo/mc_commo
@@ -93,7 +93,7 @@
       [ $? = 0 ] || end_testcase "Could NOT start mc_recv on `hostname`"
 
       grep -q "cannot join group" $OUTFILE
-      [ $? = 0 ] && end_testcase "Membership NOT set" 
+      [ $? = 0 ] && end_testcase "Membership NOT set"
 
       netstat -ng | grep -q $GROUP_ADDR
       [ $? = 0 ] || end_testcase "membership not set for $GROUP_ADDR"
@@ -110,7 +110,7 @@
 #          echo "Ping test skipped"
 #       else
 #           echo "Running ping to verify group can be reached "
-#           ping -c5 -I $INTERFACE $GROUP_ADDR > /dev/null 
+#           ping -c5 -I $INTERFACE $GROUP_ADDR > /dev/null
 #        [ $? = 0 ] || end_testcase "failed: ping -c5 -I $INTERFACE $GROUP_ADDR"
 #       fi
 
@@ -133,19 +133,19 @@
          sleep 10
 	rsh -n -l root $HOST "ps -ewf | grep mc_send | grep -v grep"
           [ $? = 0 ] || end_testcase "Could NOT start mc_send on $HOST"
-      done 
+      done
 
       echo "Waiting for 100 sec.! Do not interrupt."
       sleep 100  #wait until datagrams are received in $STATUS
-      COUNT=$(( $COUNT + 1 )) 
-   done 
-  
+      COUNT=$(( $COUNT + 1 ))
+   done
+
    #test if datagrams has been sent
    for HOST in $RHOST
    do
       grep -q "$HOST [0-9] [0-9]" $OUTFILE
       [ $? = 0 ] || end_testcase "NO Datagrams received from $HOST"
-   done 
+   done
 }
 
 #-----------------------------------------------------------------------
diff --git a/testcases/network/multicast/mc_member/mc_member b/testcases/network/multicast/mc_member/mc_member
index 597797d..5585bcb 100755
--- a/testcases/network/multicast/mc_member/mc_member
+++ b/testcases/network/multicast/mc_member/mc_member
@@ -24,7 +24,7 @@
 #  TEST DESCRIPTION : To verify that two of the new options for level IPPROTO_IP
 #                     Service Interface allow the list of host group memberships
 #                     to be updated properly in response to the JoinHostGroup and
-#                     LeaveHostGroup requests. To test boundary conditions while 
+#                     LeaveHostGroup requests. To test boundary conditions while
 #                     exercising IP Multicast JoinHostGroup and LeaveHostGroup
 #                     Service Interfaces.
 #
@@ -63,7 +63,7 @@
   DIGIT=`ps -ef | grep mc_member | grep -v grep | wc -l`
   ADDRESS=$DIGIT.$DIGIT.$DIGIT.$DIGIT
 }
- 
+
 #******************************************************************************
 #
 # FUNCTION:  do_test
@@ -107,7 +107,7 @@
          sleep 5
          grep "cannot join group" $ERRFILE
          [ $? = 0 ] && end_testcase "MC group could NOT join $INTERFACE"
-      done 
+      done
 
       # See if the groups are joined
 
@@ -119,7 +119,7 @@
          # See if they respond to a ping.
 	 #ping -c 3 -I $INTERFACE $agroup
 	 #[ $? != 0 ] && { echo "Error - $TC: $agroup NOT responding over $INTERFACE" ;}
-   
+
       done
 
       echo "Waiting 60 seconds! Do not interrupt!"
@@ -128,11 +128,11 @@
       for agroup in `cat $GLIST`
       do
 	netstat -gn | grep $agroup
-        if [ $? != 1 ]; then 
+        if [ $? != 1 ]; then
 	   end_testcase "$agroup still joined on $INTERFACE"
 	fi
       done
-      
+
       # Test the membership boundaries
 
       echo "Running member on too many groups over $INTERFACE"
diff --git a/testcases/network/multicast/mc_opts/mc_opts b/testcases/network/multicast/mc_opts/mc_opts
index a0103bd..3b0478e 100755
--- a/testcases/network/multicast/mc_opts/mc_opts
+++ b/testcases/network/multicast/mc_opts/mc_opts
@@ -26,8 +26,8 @@
 #           Service Interface are initially set to the default values as
 #           defined in the documentation and that each of the new options
 #           can be set and read properly by the setsockopt and getsockopt
-#           routines, respectively.  To test boundary conditions and to 
-#           generate errors while exercising the IP Multicast Service 
+#           routines, respectively.  To test boundary conditions and to
+#           generate errors while exercising the IP Multicast Service
 #           Interface options.
 #
 #  HISTORY:
@@ -83,7 +83,7 @@
       echo "Running mc_$EXECUTABLES on $IPADDR"
       for i in $EXECUTABLES
       do
-        $TCtmp/$i $IPADDR 
+        $TCtmp/$i $IPADDR
         [ $? = 0 ] || end_testcase "$i $IPADDR failed"
       done
 
@@ -131,7 +131,7 @@
 #=============================================================================
 
 end_testcase()
-{ 
+{
    $trace_logic
    echo "$this_file: doing $0."
 
@@ -141,7 +141,7 @@
    [ $# = 0 ] && { echo "Test Successful"; exit 0; }
    echo "Test Failed: $@"
    exit 1
-}  
+}
 
 #******************************************************************************
 #
diff --git a/testcases/network/nfs/README b/testcases/network/nfs/README
index 079364d..ee58415 100644
--- a/testcases/network/nfs/README
+++ b/testcases/network/nfs/README
@@ -1,8 +1,8 @@
 
 NOTE:
 
-  These tests ALL assume that the "RHOST" variable is set to the hostname 
-of the remote machine, i.e. 
+  These tests ALL assume that the "RHOST" variable is set to the hostname
+of the remote machine, i.e.
 
     # export RHOST=<hostname here>.
 
@@ -13,13 +13,13 @@
 also need to do a make and make install on both the local and remote machines
 before you run the test.
 
- You will also need to setup a ".rhosts" file in root's home directory on the 
+ You will also need to setup a ".rhosts" file in root's home directory on the
 remote machine, with the name of the local machine listed.  For example, if
-machineA is running the tests, with machineB set as RHOST, then machineB's 
-root home directory will need an ".rhosts" file with machineA's hostname 
+machineA is running the tests, with machineB set as RHOST, then machineB's
+root home directory will need an ".rhosts" file with machineA's hostname
 listed. After you create the .rhost file you must also set the proper
 permissions on the .rhost file.  chmod 600 .rhosts
- 
+
 I apologize for the lengthy setup, but I tried to make it as minimal as
 possible.
 
diff --git a/testcases/network/nfs/fsx-linux/fsx.sh b/testcases/network/nfs/fsx-linux/fsx.sh
index 9df9f2e..a0f8e4f 100755
--- a/testcases/network/nfs/fsx-linux/fsx.sh
+++ b/testcases/network/nfs/fsx-linux/fsx.sh
@@ -20,11 +20,11 @@
 #
 #  FILE   : fsx.sh
 #
-#  PURPOSE: Runs the fsx-linux tool with a 50000 iterations setting to 
+#  PURPOSE: Runs the fsx-linux tool with a 50000 iterations setting to
 #	    attempt to uncover the "doread:read input/output" error
 #	    received if the latest NFS patches for 2.4.17 from Trond
-#	    are not applied. http://nfs.sf.net 
-#           
+#	    are not applied. http://nfs.sf.net
+#
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
@@ -74,7 +74,7 @@
 $trace_logic
 
     PID=$$
-   
+
     VERSION=${VERSION:=2}
     RHOST=${RHOST:=`hostname`}
     ITERATIONS=${ITERATIONS:=50000}
@@ -166,12 +166,12 @@
 $trace_logic
     if [ "$CLEANUP" = "ON" ]; then
 	cd \
-	
+
 	echo "Cleaning up testcase"
         cd $HOME
     	echo "Unmounting $TCtmp"
 	sleep 2
-        umount $TCtmp || { echo "Cannot umount $TCtmp"; exit 1; } 
+        umount $TCtmp || { echo "Cannot umount $TCtmp"; exit 1; }
 	rm -rf $TCtmp || echo "Cannot remove $TCtmp"
         rsh -n $RHOST "/usr/sbin/exportfs -u *:$TESTDIR"
  rsh -n $RHOST "rm -rf $TESTDIR"
diff --git a/testcases/network/nfs/nfs01/nfs01 b/testcases/network/nfs/nfs01/nfs01
index 672ca33..e3b2b0e 100755
--- a/testcases/network/nfs/nfs01/nfs01
+++ b/testcases/network/nfs/nfs01/nfs01
@@ -20,7 +20,7 @@
 #
 #  FILE   : nfs01
 #
-#  PURPOSE: Stresses NFS by opening a large number of files on a nfs 
+#  PURPOSE: Stresses NFS by opening a large number of files on a nfs
 #           mounted filesystem.
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
@@ -69,7 +69,7 @@
 setup_testcase()
 {
 $trace_logic
-   
+
     PID=$$
 
     VERSION=${VERSION:=2}
@@ -118,13 +118,13 @@
     mount -t $NFS_TYPE $OPTS $REMOTE_DIR $TCtmp || end_testcase "Cannot mount $TCtmp"
     [ $? = 0 ] || end_testcase "Could not mount $REMOTE_DIR"
 
-    cd $TCtmp 
+    cd $TCtmp
     echo "Removing old and create new directories"
     [ -d $LOCAL_DIR ] && rm -rf $LOCAL_DIR
     [ -d $LOCAL_DIR ] || { \
 	mkdir -p $LOCAL_DIR || end_testcase "Could not create $LOCAL_DIR"
 	chmod 777 $LOCAL_DIR
-        cp $TCsrc/$EXECUTABLES $LOCAL_DIR || end_testcase "Could not write to mount point" 
+        cp $TCsrc/$EXECUTABLES $LOCAL_DIR || end_testcase "Could not write to mount point"
     }
 }
 
@@ -176,7 +176,7 @@
 $trace_logic
     if [ "$CLEANUP" = "ON" ]; then
 	cd \
-	
+
 	echo "Cleaning up testcase"
 
         mount -t $NFS_TYPE $OPTS $REMOTE_DIR $TCtmp || echo "Cannot mount $TCtmp"
diff --git a/testcases/network/nfs/nfs02/nfs02 b/testcases/network/nfs/nfs02/nfs02
index ff2a4ee..7a0f3c0 100755
--- a/testcases/network/nfs/nfs02/nfs02
+++ b/testcases/network/nfs/nfs02/nfs02
@@ -82,7 +82,7 @@
 
    IAM=${IAM:=`whoami`}
    [ $IAM = "root" ] || end_testcase "Must be root user"
-   
+
    #Setup and Export the data directory on RHOST
    rsh -n $RHOST "mkdir -p $TESTDIR"
    [ $? -eq 0 ] || end_testcase "Could not create $TESTDIR from $RHOST"
@@ -120,15 +120,15 @@
 # INPUT:    None.
 # OUTPUT:    Error messages are logged if any of the tests fail.
 #---------------------------------------------------------------------#
-do_test1() 
+do_test1()
 {
-$trace_logic 
+$trace_logic
   echo "do_test1 $TC "
   cp $TCdat/ascii.jmb $TCtmp &
   wait $!
   echo "compare both ascii.jmbs"
-  diff $TCtmp/ascii.jmb $TCdat/ascii.jmb 
-  [ $? -eq 0 ] || end_testcase "'diff' of ascii.jmb FAILED" 
+  diff $TCtmp/ascii.jmb $TCdat/ascii.jmb
+  [ $? -eq 0 ] || end_testcase "'diff' of ascii.jmb FAILED"
 
 }
 
@@ -138,7 +138,7 @@
 # INPUT:    None.
 # OUTPUT:    Error messages are logged if any of the tests fail.
 #---------------------------------------------------------------------#
-do_test2() 
+do_test2()
 {
 $trace_logic
    echo "do_test2 $TC "
@@ -153,19 +153,19 @@
    cp $TCtmp/ascii.sm $TCtmp/ascii.smcp &
    wait $!
    diff $TCtmp/ascii.smcp $TCdat/ascii.sm
-   [ $? -eq 0 ] || end_testcase "'diff' of ascii.sm FAILED" 
+   [ $? -eq 0 ] || end_testcase "'diff' of ascii.sm FAILED"
 
    #medium file
    cp $TCtmp/ascii.med $TCtmp/ascii.medcp &
    wait $!
    diff $TCtmp/ascii.medcp $TCdat/ascii.med
-   [ $? -eq 0 ] || end_testcase "'diff' of ascii.med FAILED" 
+   [ $? -eq 0 ] || end_testcase "'diff' of ascii.med FAILED"
 
    #large file
    cp $TCtmp/ascii.lg $TCtmp/ascii.lgcp &
    wait $!
    diff $TCtmp/ascii.lgcp $TCdat/ascii.lg
-   [ $? -eq 0 ] || end_testcase "'diff' of ascii.lg FAILED" 
+   [ $? -eq 0 ] || end_testcase "'diff' of ascii.lg FAILED"
 
 }
 
@@ -181,7 +181,7 @@
    echo "do_test3 $TC "
    chmod a-wx $TCtmp/ascii.sm &
    wait $!
-   ls -l $TCtmp/ascii.sm | grep "r--" 
+   ls -l $TCtmp/ascii.sm | grep "r--"
    [ $? -eq 0 ] || end_testcase "Removal of write permissions not honored on ascii.sm"
    chmod a+w $TCtmp/ascii.sm
 }
@@ -192,7 +192,7 @@
 # INPUT:    None.
 # OUTPUT:   None.
 #---------------------------------------------------------------------#
-do_cleanup() 
+do_cleanup()
 {
 $trace_logic
    echo "do_cleanup $TC "
@@ -201,8 +201,8 @@
    umount $TCtmp
    sleep 3
    rmdir $TCtmp
-   rsh -n $RHOST "/usr/sbin/exportfs -u *:$TESTDIR" 
-   rsh -n $RHOST "rm -rf $TESTDIR"   
+   rsh -n $RHOST "/usr/sbin/exportfs -u *:$TESTDIR"
+   rsh -n $RHOST "rm -rf $TESTDIR"
 }
 
 #=============================================================================
diff --git a/testcases/network/nfs/nfs03/nfs03 b/testcases/network/nfs/nfs03/nfs03
index f973376..231c8ad 100755
--- a/testcases/network/nfs/nfs03/nfs03
+++ b/testcases/network/nfs/nfs03/nfs03
@@ -20,9 +20,9 @@
 #
 #  FILE   : nfs03
 #
-#  DESCRIPTION: This script sets up the NFS directories in the remote machine 
+#  DESCRIPTION: This script sets up the NFS directories in the remote machine
 #		and runs the LTP's filesystem test: fs_inod.
-#  
+#
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
 #         where the test is executed.
@@ -73,8 +73,8 @@
 # FUNCTION NAME:        fs_inod
 #
 # FUNCTION DESCRIPTION: Filesystems test from LTP.
-# 
-# PARAMETERS:		Filesystem, number of directories, number of files, 
+#
+# PARAMETERS:		Filesystem, number of directories, number of files,
 #			and loops
 #
 # RETURNS:		0 for PASS and Error Code for FAIL.
@@ -308,7 +308,7 @@
 setup_testcase()
 {
 $trace_logic
-   
+
 
     echo ""
     echo "Test Options:"
@@ -323,7 +323,7 @@
     echo " Number of Files per Directory: $FILE_NUM"
     echo " Number of nfsds tested: $THREAD_NUM"
     echo ""
-    
+
     if [ "x$NFS_TYPE" != "xnfs4" ]; then
         OPTS=${OPTS:="-o vers=$VERSION,proto=$SOCKET_TYPE "}
     fi
@@ -352,7 +352,7 @@
     echo "Mounting NFS filesystem $REMOTE_DIR on $TCtmp with options '$OPTS'"
     mount -t $NFS_TYPE $OPTS $REMOTE_DIR $TCtmp || end_testcase "Cannot mount $TCtmp"
     [ $? = 0 ] || end_testcase "Could not mount $REMOTE_DIR"
-    
+
     echo "Setting server side nfsd count to $THREAD_NUM"
     ORIG_NFSD=`rsh -n $RHOST "ps -ef" | grep nfsd | grep -v grep | wc -l`
     rsh -n $RHOST "/usr/sbin/rpc.nfsd $THREAD_NUM"
@@ -374,10 +374,10 @@
 {
 $trace_logic
     echo "fs_inod starting on $TCtmp."
-    fs_inod $TCtmp $DIR_NUM $FILE_NUM 1 
+    fs_inod $TCtmp $DIR_NUM $FILE_NUM 1
     retval=$?
     echo "fs_inod on $TCtmp finished."
-    
+
     if [ "$retval" != 0 ]; then
       end_testcase "Errors have resulted from this test: fs_inod returned $retval."
     fi
@@ -400,7 +400,7 @@
 $trace_logic
     if [ "$CLEANUP" = "ON" ]; then
 	cd \
-	
+
 	echo "Cleaning up testcase"
         /bin/umount $TCtmp || echo "Cannot umount $TCtmp"
 	sleep 2
diff --git a/testcases/network/nfs/nfs04/nfs04 b/testcases/network/nfs/nfs04/nfs04
index 5db1265..d1519bf 100755
--- a/testcases/network/nfs/nfs04/nfs04
+++ b/testcases/network/nfs/nfs04/nfs04
@@ -22,10 +22,10 @@
 #
 #  PURPOSE: Creates a text file of specified size locally and copies
 #	    the file to an NFS mountpoint.  The two files are compared
-#	    and checked for differences.  If the files differ, then 
+#	    and checked for differences.  If the files differ, then
 #	    the test fails.  By default, this test creates a 10Mb file
 #	    and runs for one loop.
-#	               
+#
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
@@ -68,7 +68,7 @@
 setup_testcase()
 {
 $trace_logic
-   
+
     PID=$$
 
     VERSION=${VERSION:=2}
@@ -118,7 +118,7 @@
     fi
 
     tst_resm TINFO "Mounting NFS filesystem"
-    mount -t $NFS_TYPE $OPTS $REMOTE_DIR $TCtmp || end_testcase "Cannot mount $TCtmp" 
+    mount -t $NFS_TYPE $OPTS $REMOTE_DIR $TCtmp || end_testcase "Cannot mount $TCtmp"
     [ $? = 0 ] || end_testcase "Could not mount $REMOTE_DIR"
 }
 
@@ -143,13 +143,13 @@
   tst_resm TINFO "Test Started"
   while [ $loopcount -lt $LOOPS ]
     do
-	cp /tmp/nfs04$PID.testfile $TCtmp/nfs04$PID.testfile$loopcount	
+	cp /tmp/nfs04$PID.testfile $TCtmp/nfs04$PID.testfile$loopcount
 	cmp /tmp/nfs04$PID.testfile $TCtmp/nfs04$PID.testfile$loopcount
 	retval=$?
 	if [ "$retval" != 0 ]; then
 		end_testcase "Error in loop $loopcount: First cmp FAILED"
 	fi
-	cp $TCtmp/nfs04$PID.testfile$loopcount /tmp/nfs04$PID.testfile_compare	
+	cp $TCtmp/nfs04$PID.testfile$loopcount /tmp/nfs04$PID.testfile_compare
 	cmp /tmp/nfs04$PID.testfile /tmp/nfs04$PID.testfile_compare
 	retval=$?
 	if [ "$retval" != 0 ]; then
diff --git a/testcases/network/nfs/nfs_fsstress/Makefile b/testcases/network/nfs/nfs_fsstress/Makefile
index d3557ec..c1b3c2b 100644
--- a/testcases/network/nfs/nfs_fsstress/Makefile
+++ b/testcases/network/nfs/nfs_fsstress/Makefile
@@ -31,6 +31,6 @@
 # aren't as easy to resolve as I would like.
 CPPFLAGS		+= -Wno-error
 
-INSTALL_TARGETS		:= nfs_fsstress.sh 
+INSTALL_TARGETS		:= nfs_fsstress.sh
 
 include $(top_srcdir)/include/mk/generic_leaf_target.mk
diff --git a/testcases/network/nfs/nfs_fsstress/global.h b/testcases/network/nfs/nfs_fsstress/global.h
index f788395..ccdf037 100644
--- a/testcases/network/nfs/nfs_fsstress/global.h
+++ b/testcases/network/nfs/nfs_fsstress/global.h
@@ -1,35 +1,35 @@
 /*
  * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
- * 
+ *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  * published by the Free Software Foundation.
- * 
+ *
  * This program is distributed in the hope that it would be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * 
+ *
  * Further, this software is distributed without any warranty that it is
  * free of the rightful claim of any third person regarding infringement
  * or the like.  Any license provided herein, whether implied or
  * otherwise, applies only to this software file.  Patent licenses, if
  * any, provided herein do not apply to combinations of this program with
  * other software, or any other product whatsoever.
- * 
+ *
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
- * 
+ *
  * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
  * Mountain View, CA  94043, or:
- * 
- * http://www.sgi.com 
- * 
- * For further information regarding this notice, see: 
- * 
+ *
+ * http://www.sgi.com
+ *
+ * For further information regarding this notice, see:
+ *
  * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
  */
- 
+
 #ifndef GLOBAL_H
 #define GLOBAL_H
 
diff --git a/testcases/network/nfs/nfs_fsstress/nfs_fsstress.sh b/testcases/network/nfs/nfs_fsstress/nfs_fsstress.sh
index 77feb38..9d106b3 100755
--- a/testcases/network/nfs/nfs_fsstress/nfs_fsstress.sh
+++ b/testcases/network/nfs/nfs_fsstress/nfs_fsstress.sh
@@ -26,7 +26,7 @@
 #	   NFS kernel code and possibly the underlying filesystem where
 #	   the export resides.  A PASS is if the test completes.
 #
-#  PREREQUISITE: There must exist an NFS exported filesystem available to 
+#  PREREQUISITE: There must exist an NFS exported filesystem available to
 #		test on.
 #
 #
@@ -63,22 +63,22 @@
 mount -o "intr,soft,proto=udp,vers=2" $RHOST:$FILESYSTEM /tmp/udp/2/${HOSTNAME}1 >/dev/null 2>&1
 if [ $? -ne 0 ];then
   echo "Error: mount using UDP & version 2 failed"
-  exit 1 
+  exit 1
 fi
 mount -o "intr,soft,proto=tcp,vers=2" $RHOST:$FILESYSTEM /tmp/tcp/2/${HOSTNAME}2 >/dev/null 2>&1
 if [ $? -ne 0 ];then
   echo "Error: mount using TCP & version 2 failed"
-  exit 1 
+  exit 1
 fi
 mount -o "intr,soft,proto=udp,vers=3" $RHOST:$FILESYSTEM /tmp/udp/3/${HOSTNAME}3 >/dev/null 2>&1
 if [ $? -ne 0 ];then
   echo "Error: mount using UDP & version 3 failed"
-  exit 1 
+  exit 1
 fi
 mount -o "intr,soft,proto=tcp,vers=3" $RHOST:$FILESYSTEM /tmp/tcp/3/${HOSTNAME}4 >/dev/null 2>&1
 if [ $? -ne 0 ];then
   echo "Error: mount using TCP & version 3 failed"
-  exit 1 
+  exit 1
 fi
 
 echo "Test set for $DURATION seconds. Starting test processes now."
@@ -93,18 +93,18 @@
 echo "Testing in progress"
 sleep $DURATION
 echo "Testing done. Killing processes."
-killall -9 sadc 
-killall -9 fsstress 
+killall -9 sadc
+killall -9 fsstress
 ps -ef | grep -v grep | grep fsstress > /dev/null 2>&1
 TESTING=$?
 while [ $TESTING -eq 0 ]
 do
-  killall -9 fsstress 
+  killall -9 fsstress
   echo -n "."
   sleep 5
   ps -ef | grep -v grep | grep -v nfs_fsstress | grep fsstress > /dev/null 2>&1
   TESTING=$?
-done 
+done
 echo " "
 echo "All processes killed."
 echo "Unmounting NFS filesystem"
diff --git a/testcases/network/nfs/nfs_fsstress/xfscompat.h b/testcases/network/nfs/nfs_fsstress/xfscompat.h
index 390e181..61550a8 100644
--- a/testcases/network/nfs/nfs_fsstress/xfscompat.h
+++ b/testcases/network/nfs/nfs_fsstress/xfscompat.h
@@ -1,7 +1,7 @@
 #define MAXNAMELEN 1024
 struct dioattr {
 	int d_miniosz, d_maxiosz, d_mem;
-}; 
+};
 
 #define MIN(a,b) ((a)<(b) ? (a):(b))
 #define MAX(a,b) ((a)>(b) ? (a):(b))
diff --git a/testcases/network/nfs/nfslock01/nfslock01 b/testcases/network/nfs/nfslock01/nfslock01
index 438303b..e9a1546 100755
--- a/testcases/network/nfs/nfslock01/nfslock01
+++ b/testcases/network/nfs/nfslock01/nfslock01
@@ -23,8 +23,8 @@
 #  PURPOSE:
 #           Two processes open FLOCK_IDATA file simultaneously
 #           each one locks odd and even lines of the file simultaneously
-#           and fill them with '0's and '1's. After they find eof, the 
-#           datafiles are compared. 
+#           and fill them with '0's and '1's. After they find eof, the
+#           datafiles are compared.
 #
 #  HISTORY:
 #    04/25/01 Robbie Williamson (robbiew@us.ibm.com)
@@ -69,7 +69,7 @@
 
    $FLOCK_DGEN $FLOCK_DATA 63 16384 0
    $FLOCK_DGEN $FLOCK_ODATA 63 16384 1
-   
+
    [ `wc -c $FLOCK_DATA | awk '{print $1}'` -ne 1048576 ] && { \
       echo "abort - could not create $FLOCK_DATA"; exit 99; }
    [ `wc -c $FLOCK_ODATA | awk '{print $1}'` -ne 1048576 ] && { \
@@ -103,11 +103,11 @@
    cp $FLOCK_DATA $FLOCK_IDATA
 
    echo "locking $FLOCK_IDATA file and writing data"
-   $FLOCK_FRK $FLOCK_EXEC $FLOCK_IDATA 
+   $FLOCK_FRK $FLOCK_EXEC $FLOCK_IDATA
    [ $? = 0 ] || end_testcase "Errors in do_test $TC"
    sleep 1
    diff $FLOCK_ODATA $FLOCK_IDATA > /dev/null 2>&1
-   [ $? = 0 ] || end_testcase "$FLOCK_ODATA is different than $FLOCK_IDATA"   
+   [ $? = 0 ] || end_testcase "$FLOCK_ODATA is different than $FLOCK_IDATA"
 
 }
 
diff --git a/testcases/network/nfs/nfsstat01/nfsstat01 b/testcases/network/nfs/nfsstat01/nfsstat01
index 39d73cd..c5d714e 100755
--- a/testcases/network/nfs/nfsstat01/nfsstat01
+++ b/testcases/network/nfs/nfsstat01/nfsstat01
@@ -18,7 +18,7 @@
 #
 #  FILE   : nfsstat
 #
-#  PURPOSE: Tests the 'nfsstat' command.  This test runs locally, so no 
+#  PURPOSE: Tests the 'nfsstat' command.  This test runs locally, so no
 #           actual network connection is needed.
 #
 #  SETUP: The nfs server/client daemons must be active.
@@ -74,7 +74,7 @@
    #Check for mountd.
    rpcinfo -p | grep mountd
    [ $? -eq 0 ] || end_testcase "Mountd is NOT running"
-   
+
    #Check for nfsd.
    rpcinfo -p | grep nfs
    [ $? -eq 0 ] || end_testcase "NFS server daemon (nfsd) is NOT running"
@@ -113,27 +113,27 @@
 
 #---------------------------------------------------------------------#
 # FUNCTION: do_test
-# PURPOSE:  Performs simple copies and removes to verify statistic 
+# PURPOSE:  Performs simple copies and removes to verify statistic
 #           tracking using the 'nfsstat' command and /proc/net/rpc
 #---------------------------------------------------------------------#
-do_test() 
+do_test()
 {
-$trace_logic 
+$trace_logic
   echo "do_test $TC"
-   
+
   echo "Checking RPC calls for server and client"
-  
+
   # Server
   SERVER_CALLS=`cat /proc/net/rpc/nfsd | grep rpc | awk '{print $2}'`
   nfsstat -sr | grep $SERVER_CALLS
   [ $? -eq 0 ] || end_testcase "Check of server RPC calls failed"
-  
+
   # Client
   CLIENT_CALLS=`cat /proc/net/rpc/nfs | grep rpc | awk '{print $2}'`
   nfsstat -cr | grep $CLIENT_CALLS
   [ $? -eq 0 ] || end_testcase "Check of client RPC calls failed"
- 
-  
+
+
   echo "Checking for tracking of RPC calls for server and client"
   cat /proc/cpuinfo > $TESTDIR/nfsstat01.tmp
   NEW_SERVER_CALLS=`cat /proc/net/rpc/nfsd | grep rpc | awk '{print $2}'`
@@ -142,7 +142,7 @@
   [ $NEW_CLIENT_CALLS -gt $CLIENT_CALLS ] || end_testcase "Client RPC calls not increased"
 
   nfsstat -sr | grep $NEW_SERVER_CALLS
-  [ $? -eq 0 ] || end_testcase "nfsstat not reporting change in server RPC calls" 
+  [ $? -eq 0 ] || end_testcase "nfsstat not reporting change in server RPC calls"
   nfsstat -cr | grep $NEW_CLIENT_CALLS
   [ $? -eq 0 ] || end_testcase "nfsstat not reporting change in client RPC calls"
 
@@ -154,7 +154,7 @@
    SERVER_CALLS=`cat /proc/net/rpc/nfsd | grep proc2 | awk '{print $13}'`
   else
    SERVER_CALLS=`cat /proc/net/rpc/nfsd | grep proc3 | awk '{print $15}'`
-  fi 
+  fi
   nfsstat -sn | grep $SERVER_CALLS
   [ $? -eq 0 ] || end_testcase "Check of server NFS calls failed"
 
@@ -167,9 +167,9 @@
   nfsstat -cn | grep $CLIENT_CALLS
   [ $? -eq 0 ] || end_testcase "Check of client NFS calls failed"
 
-  
+
   echo "Checking for tracking of NFS calls for server and client"
-  
+
   rm -f $TESTDIR/nfsstat01.tmp
   if [ "$VERSION" = "2" ]; then
    NEW_SERVER_CALLS=`cat /proc/net/rpc/nfsd | grep proc2 | awk '{print $13}'`
@@ -199,7 +199,7 @@
 # INPUT:    None.
 # OUTPUT:   None.
 #---------------------------------------------------------------------#
-do_cleanup() 
+do_cleanup()
 {
 $trace_logic
    echo "do_cleanup $TC "
@@ -211,7 +211,7 @@
    sleep 3
 
    echo "Unmounting EXPORTDIR"
-   /usr/sbin/exportfs -u $HOST:$EXPORTDIR 
+   /usr/sbin/exportfs -u $HOST:$EXPORTDIR
    umount $EXPORTDIR
    sleep 3
    rm -rf $EXPORTDIR
@@ -251,5 +251,5 @@
 #           test.
 #---------------------------------------------------------------------#
 do_setup
-do_test 
+do_test
 end_testcase
diff --git a/testcases/network/nfs/nfsstress/nfsstress b/testcases/network/nfs/nfsstress/nfsstress
index 9989d22..5b747d3 100755
--- a/testcases/network/nfs/nfsstress/nfsstress
+++ b/testcases/network/nfs/nfsstress/nfsstress
@@ -20,9 +20,9 @@
 #
 #  FILE   : nfsstress
 #
-#  DESCRIPTION: This script sets up the NFS directories in the remote machine 
+#  DESCRIPTION: This script sets up the NFS directories in the remote machine
 #               and invokes the program make_tree with parameters.
-#  
+#
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
 #         where the test is executed.
@@ -84,7 +84,7 @@
 setup_testcase()
 {
 $trace_logic
-   
+
 
     echo ""
     echo "Test Options:"
@@ -98,7 +98,7 @@
     echo " Number of Files per Directory: $FILE_NUM"
     echo " Number of Threads: $THREAD_NUM"
     echo ""
-    
+
     if [ "x$NFS_TYPE" != "xnfs4" ]; then
         OPTS=${OPTS:="-o vers=$VERSION,proto=$SOCKET_TYPE "}
     fi
@@ -127,13 +127,13 @@
     mount -t $NFS_TYPE $OPTS $REMOTE_DIR $TCtmp || end_testcase "Cannot mount $TCtmp"
     [ $? = 0 ] || end_testcase "Could not mount $REMOTE_DIR"
 
-    cd $TCtmp 
+    cd $TCtmp
     echo "Removing old and create new directories"
     [ -d $LOCAL_DIR ] && rm -rf $LOCAL_DIR
     [ -d $LOCAL_DIR ] || { \
 	mkdir -p $LOCAL_DIR || end_testcase "Could not create $LOCAL_DIR"
 	chmod 777 $LOCAL_DIR
-        cp $TCsrc/$EXECUTABLES $LOCAL_DIR || end_testcase "Could not write to mount point" 
+        cp $TCsrc/$EXECUTABLES $LOCAL_DIR || end_testcase "Could not write to mount point"
     }
 
 }
@@ -151,14 +151,14 @@
 do_test()
 {
 $trace_logic
-    EXEC=${EXEC:=$EXECUTABLES -d $DIR_NUM -f $FILE_NUM -t $THREAD_NUM} 
+    EXEC=${EXEC:=$EXECUTABLES -d $DIR_NUM -f $FILE_NUM -t $THREAD_NUM}
     cd $LOCAL_DIR
     echo "${LOCAL_DIR}/${EXEC} Starting"
     ./$EXEC &
     wait $!
     retval=$?
     echo "${LOCAL_DIR}/${EXEC} Finished"
-    
+
     if [ "$retval" != 0 ]; then
       end_testcase "Errors have resulted from this test: $EXECUTABLES returned $retval."
     fi
@@ -181,7 +181,7 @@
 $trace_logic
     if [ "$CLEANUP" = "ON" ]; then
 	cd \
-	
+
 	echo "Cleaning up testcase"
 	rm -rf $LOCAL_DIR || echo "Cannot remove $LOCAL_DIR"
 	sleep 2
diff --git a/testcases/network/nfsv4/acl/create_users.py b/testcases/network/nfsv4/acl/create_users.py
index 93121fd..568cb9a 100755
--- a/testcases/network/nfsv4/acl/create_users.py
+++ b/testcases/network/nfsv4/acl/create_users.py
@@ -1,5 +1,5 @@
-''' 
-	Access Control Lists testing based on newpynfs framework 
+'''
+	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
 '''
 
diff --git a/testcases/network/nfsv4/acl/random_gen.py b/testcases/network/nfsv4/acl/random_gen.py
index a4defce..d39dbb3 100755
--- a/testcases/network/nfsv4/acl/random_gen.py
+++ b/testcases/network/nfsv4/acl/random_gen.py
@@ -22,10 +22,10 @@
 	gListSize = len(gList)
 	uList = []
 	uListSize = len(uList)
-	
+
 	fList=[]
 	fListSize = len(fList)
-	
+
 	""" Create a user in available groups to do the tests """
 	def createUser(self,username):
 		group = self.gList[random.randint(0,len(self.gList)-1)][0]
@@ -39,18 +39,18 @@
 			fName = 'file' + str(i)
 			u = commands.getoutput('touch ' + path + '/'+ fName)
 			self.fList.append(fName)
-	
+
 	def createGroup(self, grpname, gid):
 		u = commands.getoutput('/usr/sbin/groupadd -g' + gid + " " + grpname)
 		if u != "":
 			print u
-	
+
 	def createNGroup(self, n):
 		for i in range(n):
 			gName = 'grp' + str(i)
 			gid = str(500+i)
 			self.createGroup(gName, gid)
-		
+
 
 	""" Random creation of n user """
 	def createNUser(self,n):
@@ -69,7 +69,7 @@
 		for name in self.gList:
 			u = commands.getoutput('/usr/sbin/groupdel '+ name[0])
 		self.gList = []
-		
+
 	""" Retrieve the list of user from /etc/passwd file """
 	def getUserList(self):
 		f = open('/etc/passwd','r')
@@ -92,7 +92,7 @@
 			NameOK = re.match("file",tmp[i])
 			if NameOK != None:
 				self.fList.append(tmp[i])
-			
+
 	def getNUserList(self,nb):
 		f = open('/etc/passwd','r')
 		lines = f.readlines()
@@ -141,10 +141,10 @@
 				break;
 		f.close()
 
-	def printUserList(self):	
+	def printUserList(self):
 		print self.uList
-	
-	def printGroupList(self):	
+
+	def printGroupList(self):
 		print self.gList
 
 	""" Create a random name of random length """
@@ -170,7 +170,7 @@
 		for i in range(listlength):
 			user = createOneName(lenght)
 			userlist.append(user)
-		return userlist		
+		return userlist
 
 	""" Create Random ACE for a file and a given usr """
 	def createRandomACE(self,user):
@@ -203,7 +203,7 @@
 		        if random.randint(0,1) == 1:
 			        out_str += 'r'
 		return out_str
-	
+
 	""" Create a random ACL operation (delete / remove / modify on user / group ) """
 	def randomOp(self,path):
 		a = random.randint(1,4)
@@ -220,20 +220,20 @@
 		if a == 3:	# deletation
 			user = self.uList[random.randint(0,len(self.uList)-1)]
 			u = commands.getoutput('setfacl -x u:' + user + " " + path + "/" + file)
-			
+
 		if a == 4:	# with group
 			group = self.gList[random.randint(0,len(self.gList)-1)][0]
 			u = commands.getoutput('setfacl -x g:' + group + " " + path + "/" + file)
-		
+
 		# request on a unexisting group
-		'''if a == 5:	
+		'''if a == 5:
 			group = self.createOneNameRandomLength(16)
 			print 'setfacl -x g:' + group + " " + path + "/" + file
 			u = commands.getoutput('setfacl -x g:' + group + " " + path + "/" + file)
-		if a == 6:	
+		if a == 6:
 			user = self.createOneNameRandomLength(16)
 			u = commands.getoutput('setfacl -x u:' + user + " " + path + "/" + file)
-		
+
 		if a == 7:	# creation/modification
 			user = self.createOneNameRandomLength(16)
 			u = commands.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + file)
@@ -247,4 +247,4 @@
               		u = commands.getoutput('getfacl ' + path + "/" + file + "| setfacl --set-file=- " + path + "/" + file2)
 		if u!="":
 			print u'''
-		
+
diff --git a/testcases/network/nfsv4/acl/runtest b/testcases/network/nfsv4/acl/runtest
index b92bb44..d2e1b4c 100755
--- a/testcases/network/nfsv4/acl/runtest
+++ b/testcases/network/nfsv4/acl/runtest
@@ -1,8 +1,8 @@
 #!/bin/sh
 #
-#       @(#)runtests	
+#       @(#)runtests
 #
-# runtests script for ACL testing 
+# runtests script for ACL testing
 REMOTEHOST=nfsserver
 MAXLENGTH=30 # maximum ACL length - NB: the current NFSv4 acl implementation does not allow ACL greater than one page (about 35 entries with 6 character user name length and 10 character domain name)
 NFSMNTDIR=/mnt/nfs-acl
@@ -29,7 +29,7 @@
 echo "Starting BASIC tests"
 
 echo "Creating testing file and directory"
-touch $NFSMNTDIR/$ACLTESTFILE 
+touch $NFSMNTDIR/$ACLTESTFILE
 mkdir $NFSMNTDIR/$ACLTESTDIR
 if test ! -d $NFSMNTDIR/$ACLTESTDIR
 then
@@ -46,7 +46,7 @@
         userdel user$i
         groupdel grp$i
     done
-               
+
 echo "Basic tests finished"
 
 echo "LONG ACL TEST"
diff --git a/testcases/network/nfsv4/acl/setacl_stress.py b/testcases/network/nfsv4/acl/setacl_stress.py
index 12d75e7..3713ff6 100755
--- a/testcases/network/nfsv4/acl/setacl_stress.py
+++ b/testcases/network/nfsv4/acl/setacl_stress.py
@@ -1,4 +1,4 @@
-''' 
+'''
 	Access Control Lists stressing script
 	To lauch on the first client
 	Aurelien Charbon - Bull SA
diff --git a/testcases/network/nfsv4/acl/test_acl.py b/testcases/network/nfsv4/acl/test_acl.py
index e8418eb..d29c0e3 100755
--- a/testcases/network/nfsv4/acl/test_acl.py
+++ b/testcases/network/nfsv4/acl/test_acl.py
@@ -1,5 +1,5 @@
-''' 
-	Access Control Lists testing based on newpynfs framework 
+'''
+	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
 '''
 from random_gen import *
@@ -14,7 +14,7 @@
 
 def test_acl_default(path):
 
-# set default acl on the test directory	
+# set default acl on the test directory
 	u = commands.getoutput('mkdir ' + path + "/" + testdir)
 	u = commands.getoutput('getfacl ' + path + "/" + testdir)
 	acl=[]
@@ -34,7 +34,7 @@
 		name = splitedline[0]
 		entry = splitedline[1]
 		acl2.append(name,entry)
-	
+
 	result_final = True
 	while i < len(acl2):
 		result = False:
@@ -42,7 +42,7 @@
 			if acl2[i] == acl[j]:
 			result = True
 		if result == False:
-			result_final = False		
+			result_final = False
 
 ''' Measuring time to add an ACE to a list regarding the number of ACE already in the list'''
 ''' Doing the measurement on 100 files '''
@@ -63,7 +63,7 @@
 	print "test acl 10000\n"
 	test = RandomGen()
 	f = open('/tmp/acl-result-10000','w')
-        
+
         path = '/mnt/nfs/test-acl'
 	for i in range(10000):
 		print "test avec " + str(i) + " ACE"
@@ -83,30 +83,30 @@
 def test_nfs_getfacl():
 	# mesures sur le getfacl
 	test = RandomGen()
-	
+
 	path = '/mnt/nfs/test-acl' # NFS mounted directory
 	u = commands.getoutput('rm ' + path + "/*")	# clean directory
 	print "test acl getfacl\n"
 	f = open('/tmp/acl-result-getfacl','w')
 	for i in range(37):
-		
+
 		test.getUserList()
 		testfile = 'testfile' + str(i)
-		
+
 		u = commands.getoutput('touch ' + path + "/" + testfile)
 		print "setfacl " + str(i) + " " + u
 		for j in range(i):
 			user = test.uList.pop()
 			mode = test.createRandomMode()
                         u = commands.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + testfile)
-		
+
 		t1=time.time()
 		u = commands.getoutput('getfacl ' + path + "/" + testfile)
 		print "getfacl - " + str(i) + u + "\n"
 		t2=time.time()
 		f.write(str(i) + "\t" + str(t2-t1)+"\n")
 	f.close()
-	
+
 
 def main():
 	# test getFileList
@@ -119,4 +119,4 @@
 
 
 
-	
+
diff --git a/testcases/network/nfsv4/acl/test_long_acl.py b/testcases/network/nfsv4/acl/test_long_acl.py
index bf04044..a7c8cb1 100755
--- a/testcases/network/nfsv4/acl/test_long_acl.py
+++ b/testcases/network/nfsv4/acl/test_long_acl.py
@@ -1,5 +1,5 @@
-''' 
-	Access Control Lists testing based on newpynfs framework 
+'''
+	Access Control Lists testing based on newpynfs framework
 	Aurelien Charbon - Bull SA
 '''
 from random_gen import *
@@ -18,7 +18,7 @@
 def test_longacl(l,path):
 	# mesures sur le getfacl
 	test = RandomGen()
-	
+
 	u = commands.getoutput('rm ' + path + "/*")	# clean directory
 	print "test acl getfacl\n"
 	for i in range(l):
@@ -32,7 +32,7 @@
                         u = commands.getoutput('setfacl -m u:' + user + ':' + mode + " " + path + "/" + testfile)
 	                if u != "":
                                 print "setfacl -m u:" + user + ':' + mode + " " + path + "/" + testfile
-                                print u	
+                                print u
 def main():
 	parser = OptionParser()
 	parser.add_option("-l", "--length", dest="length",type="int",help="max lentgh of ACL")
diff --git a/testcases/network/nfsv4/locks/README b/testcases/network/nfsv4/locks/README
index 91c1020..cf044a4 100644
--- a/testcases/network/nfsv4/locks/README
+++ b/testcases/network/nfsv4/locks/README
@@ -69,12 +69,12 @@
 * EXAMPLES *
 ============
 
-Local testing: 
+Local testing:
 ./locktests -n 50 -f /file/system/to/test
 
 Multiple clients:
 -on the test server (called host1):
-	./locktest -n 50 -f /network/file/system/to/test -c 3 
+	./locktest -n 50 -f /network/file/system/to/test -c 3
 	(Server waiting for 3 clients to be connected)
 
 -test clients:
diff --git a/testcases/network/nfsv4/locks/deploy_info b/testcases/network/nfsv4/locks/deploy_info
index f348db4..4402f94 100644
--- a/testcases/network/nfsv4/locks/deploy_info
+++ b/testcases/network/nfsv4/locks/deploy_info
@@ -27,11 +27,11 @@
 
 
 Example:
-./locktests.py -n 50 -f /mnt/nfsv4/testfile -c testmachine1 testmachine2 
+./locktests.py -n 50 -f /mnt/nfsv4/testfile -c testmachine1 testmachine2
 
 
 
-_________________________________ 
- Vincent ROQUETA - Bull SA - 2005 
+_________________________________
+ Vincent ROQUETA - Bull SA - 2005
  vincent.roqueta@ext.bull.net
 
diff --git a/testcases/network/nfsv4/locks/locktests.h b/testcases/network/nfsv4/locks/locktests.h
index 2f1926b..34ba364 100644
--- a/testcases/network/nfsv4/locks/locktests.h
+++ b/testcases/network/nfsv4/locks/locktests.h
@@ -1,10 +1,10 @@
 /* *************************************************
- * *********** README ****************************** 
- * ************************************************* 
- * 
- * COMPILE : make 
+ * *********** README ******************************
+ * *************************************************
+ *
+ * COMPILE : make
  * RUN : ./locktests -n <number of concurent process> -f <test file> [-P]
- * 
+ *
  * GOAL : This test tries to stress the fcntl locking functions.  A
  * master process sets a lock on a file region (this is called "byte
  * range locking").  Some slave processes try to perform operations on
@@ -23,10 +23,10 @@
  * process. This option may not be usefull to stress.
  *
  * EXAMPLE : ./locktests -n 50 -f /file/system/to/test
- * 
- * 
+ *
+ *
  * Vincent ROQUETA 2005 - vincent.roqueta@ext.bull.net
- * BULL S.A. 
+ * BULL S.A.
  */
 
 
@@ -122,7 +122,7 @@
 /* Public data */
 struct donneesPub {
     /* Nombre de clients */
-    /* Number of clients */  
+    /* Number of clients */
     int nclnt;
     /* Liste des clients (liste des tubes)*/
     /* List of master to slave pipes */
@@ -143,7 +143,7 @@
     /* Detailed error messages */
     int verbose;
 };
- 
+
 /* Donnees privees aux processus */
 /* private data */
 struct donneesPriv {
@@ -163,13 +163,13 @@
     int type;
     char *nom;
     int resAtt;
-   
+
 };
 
-    
 
-                
-int configureServeur(int  max);  
+
+
+int configureServeur(int  max);
 int configureClient(char *s);
 
 #endif
diff --git a/testcases/network/nfsv4/locks/locktests.py b/testcases/network/nfsv4/locks/locktests.py
index 3e3ff7a..a01630d 100755
--- a/testcases/network/nfsv4/locks/locktests.py
+++ b/testcases/network/nfsv4/locks/locktests.py
@@ -51,7 +51,7 @@
     def do(self):
         self.command="ssh "+user+"@"+self.machine+" "+self.command
         os.system(self.command)
-    
+
     def isomount(self, dir):
         export=NFS4_SERVER
         mntpoint=NFS4_PATH
@@ -114,7 +114,7 @@
         print "\n"
         print "_________________________________"
         print "Vincent ROQUETA - Bull SA - 2005\n"
-        
+
         return 0
 
 
@@ -193,7 +193,7 @@
         f=True
         continue
 
-    if a=="clients":    
+    if a=="clients":
        clients.append(args[i])
        continue
     if a=="file":
@@ -206,7 +206,7 @@
         NFS4_SERVER=args[i]
         continue
 
-        
+
     usage()
 # For ...
 if s:
@@ -217,7 +217,7 @@
     print NFS4_SERVER
     setup()
     print "Setup complete"
-    
+
 if r:
     if (not c) or (not f) or (not n):
         usage()
@@ -225,12 +225,12 @@
 
     print "Running test"
     run()
-    
 
 
 
 
-    
-              
+
+
+
 
 
diff --git a/testcases/network/rpc/basic_tests/README b/testcases/network/rpc/basic_tests/README
index 4c273d3..c35cdbc 100644
--- a/testcases/network/rpc/basic_tests/README
+++ b/testcases/network/rpc/basic_tests/README
@@ -1,26 +1,26 @@
 
 NOTE:
 
-  These tests ALL assume that the "RHOST" and "LOCALDIR" variables is set to 
+  These tests ALL assume that the "RHOST" and "LOCALDIR" variables is set to
   the hostname of the remote machine, and a local directory name that will be
   used to NFS mount.
 
     # export RHOST=<hostname here>.
-    # export LOCALDIR=<dir name> 
+    # export LOCALDIR=<dir name>
 	[NOTE! do not give absolute path, just give a name, like eg: testdir]
-  Also, on the remote server which has the NFS directory exported, it is 
+  Also, on the remote server which has the NFS directory exported, it is
   assumed that the directory has at least a gig of space.
 
 These tests also assume an identical path tree for their location on the remote
 machine.  So if pan's root path is "/home/ltptests" on the test machine, then
 it must also be located in "/home/ltptests" on the remote machine (RHOST).
-  
-You will also need to setup a ".rhosts" file in root's home directory on the 
-remote machine, with the name of the local machine listed.  For example, if 
-machineA is running the tests, with machineB set as RHOST, then machineB's
-root home directory will need an ".rhosts" file with machineA's hostname listed. 
 
-  I apologize for the lengthy setup, but I tried to make it as minimal as 
+You will also need to setup a ".rhosts" file in root's home directory on the
+remote machine, with the name of the local machine listed.  For example, if
+machineA is running the tests, with machineB set as RHOST, then machineB's
+root home directory will need an ".rhosts" file with machineA's hostname listed.
+
+  I apologize for the lengthy setup, but I tried to make it as minimal as
   possible.
 
 
diff --git a/testcases/network/rpc/basic_tests/rpc01/rpc01 b/testcases/network/rpc/basic_tests/rpc01/rpc01
index be87e94..64c5a56 100755
--- a/testcases/network/rpc/basic_tests/rpc01/rpc01
+++ b/testcases/network/rpc/basic_tests/rpc01/rpc01
@@ -24,7 +24,7 @@
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
-#         where the test is executed. 
+#         where the test is executed.
 #
 #  HISTORY:
 #    04/18/01 Robbie Williamson (robbiew@us.ibm.com)
@@ -58,9 +58,9 @@
     $trace_logic
 
     # Start server process
-    rsh -n $RHOST $TCbin/rpc_server 
+    rsh -n $RHOST $TCbin/rpc_server
     PID1=`rsh -n $RHOST ps -ewf | grep rpc_server | grep -v grep | awk '{print $2 }'`
-    echo "The rpc_server PID is $PID1" 
+    echo "The rpc_server PID is $PID1"
     # Start client process
     echo "Starting $TC"
     COUNT=1
@@ -70,7 +70,7 @@
       do
 	$TCtmp/rpc1 -s $RHOST -f $TCdat/$FILE
 	[ $? -eq 0 ] || end_testcase "Fail on using $FILE"
-      done 
+      done
       COUNT=`expr $COUNT + 1`
     done
 }
diff --git a/testcases/network/rpc/basic_tests/rpcinfo/rpcinfo01 b/testcases/network/rpc/basic_tests/rpcinfo/rpcinfo01
index 8cdf110..84960d5 100755
--- a/testcases/network/rpc/basic_tests/rpcinfo/rpcinfo01
+++ b/testcases/network/rpc/basic_tests/rpcinfo/rpcinfo01
@@ -21,7 +21,7 @@
 #
 #  FILE             : rpcinfo
 #
-#  TEST DESCRIPTION : Basic test for the `rpcinfo` command. 
+#  TEST DESCRIPTION : Basic test for the `rpcinfo` command.
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
@@ -33,7 +33,7 @@
 #    11/20/08 Aime Le Rouzic (aime.lerouzic@bull.net)
 #      - Adapt to rpcbind
 #
-# CMD      FLAG      ARGS       
+# CMD      FLAG      ARGS
 # rpcinfo   -p
 # rpcinfo   -p       rem_host
 # rpcinfo   -b
@@ -81,7 +81,7 @@
 
 echo "Checking for portmap or rpcbind daemon on `hostname` and $RHOST"
 ps -ewf | grep portmap | grep -v grep > /dev/null
-if [ $? -eq 0 ] 
+if [ $? -eq 0 ]
 then
 	PORTMAPPER="portmap"
 else
@@ -100,7 +100,7 @@
 
 echo "Test rpcinfo with default options"
 echo "rpcinfo -p"
-rpcinfo -p $RHOST | grep portmapper 
+rpcinfo -p $RHOST | grep portmapper
 [ $? -eq 0 ] || end_testcase "rpcinfo -p failed"
 
 echo "Test rpcinfo with options"
@@ -134,10 +134,10 @@
 
 # -d option
 ps -ewf | grep rusersd | grep -v grep
-if [ $? = 1 ]; then 
+if [ $? = 1 ]; then
   /usr/sbin/rpc.rusersd
   if [ $? = 0 ]; then
-    rpcinfo -p | grep 100002 
+    rpcinfo -p | grep 100002
     echo "rpcinfo -d <prog num> <ver num>"
     rpcinfo -d 100002 3
     rpcinfo -p | grep 100002
@@ -154,11 +154,11 @@
 
 # -t options
 echo "rpcinfo -t <hostname> <tcp prog num>"
-rpcinfo -t $RHOST $TPNUM 
+rpcinfo -t $RHOST $TPNUM
 [ $? -eq 0 ] || end_testcase "rpcinfo -t <hostname> <tcp prog num> - failed"
 
 echo "rpcinfo -t <hostname> <tcp prog num> <ver num>"
-rpcinfo -t $RHOST $TPNUM $TVNUM 
+rpcinfo -t $RHOST $TPNUM $TVNUM
 [ $? -eq 0 ] || end_testcase "rpcinfo -t <hostname> <tcp prog num> <ver num> - failed"
 
 echo "rpcinfo -t <hostname> <tcp prog name>"
@@ -171,7 +171,7 @@
 
 # -u options
 echo "rpcinfo -u <hostname> <udp prog num>"
-rpcinfo -u $RHOST 100000 
+rpcinfo -u $RHOST 100000
 [ $? -eq 0 ] || end_testcase "rpcinfo -u <hostname> <udp prog num> - failed"
 
 echo "rpcinfo -u <hostname> <udp prog num> <ver num>"
@@ -208,11 +208,11 @@
 esac
 
 echo "rpcinfo -p <bad hostname>"
-rpcinfo -p bogushost 
+rpcinfo -p bogushost
 [ $? -eq 1 ] || end_testcase "rpcinfo <bad hostname> should fail"
 
 echo "rpcinfo <bad flag>"
-rpcinfo -bogusflag 
+rpcinfo -bogusflag
 [ $? -eq 1 ] || end_testcase "rpcinfo <bad flag> should fail"
 
 echo "rpcinfo -t <hostname> <no prognum>"
@@ -220,19 +220,19 @@
 [ $? -eq 1 ] || end_testcase "rpcinfo -t <hostname> <no prognum> should fail"
 
 echo "rpcinfo -u <hostname> <no prognum>"
-rpcinfo -u $RHOST 
+rpcinfo -u $RHOST
 [ $? -eq 1 ] || end_testcase "rpcinfo -u <hostname> <no prognum> should fail"
 
 echo "rpcinfo -u <hostname> <bad prog name>"
-rpcinfo -u $RHOST bogusprog 
+rpcinfo -u $RHOST bogusprog
 [ $? -eq 1 ] || end_testcase "rpcinfo -u <hostname> <invalid program name> should fail"
 
 echo "rpcinfo -u <hostname> <bad prog num>"
-rpcinfo -u $RHOST 11579 
+rpcinfo -u $RHOST 11579
 [ $? -eq 1 ] || end_testcase "rpcinfo -u <hostname> 11579 should fail"
 
 echo "rpcinfo -u <hostname> <prog num> <bad ver num>"
-rpcinfo -u $RHOST 100000 5 
+rpcinfo -u $RHOST 100000 5
 [ $? -eq 1 ] || end_testcase "rpcinfo -u <hostname> <prog num> <bad ver num> should fail"
 }
 
@@ -249,9 +249,9 @@
 {
     $trace_logic
 
-    if [ "$PID" != 0 ]; then 
+    if [ "$PID" != 0 ]; then
       kill -9 $PID
-    fi   
+    fi
     rm -f $TCtmp/rpc_out
 }
 
diff --git a/testcases/network/rpc/basic_tests/rup/rup01 b/testcases/network/rpc/basic_tests/rup/rup01
index 9c7cad6..687c665 100755
--- a/testcases/network/rpc/basic_tests/rup/rup01
+++ b/testcases/network/rpc/basic_tests/rup/rup01
@@ -21,7 +21,7 @@
 #
 #  FILE             : rup
 #
-#  TEST DESCRIPTION : Basic test for the `rup` command. 
+#  TEST DESCRIPTION : Basic test for the `rup` command.
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
@@ -31,7 +31,7 @@
 #    04/18/01 Robbie Williamson (robbiew@us.ibm.com)
 #      -Written
 #
-# CMD      FLAG      ARGS       
+# CMD      FLAG      ARGS
 # rup
 # rup                rem_host
 # rup	    -d
@@ -74,41 +74,41 @@
 if [ $? -ne 0 ]; then
   echo "Attempting to start rstatd on $RHOST"
   rsh -n -l root $RHOST "/usr/sbin/rpc.rstatd &"
-  [ $? -eq 0 ] || end_testcase "rstatd is inactive on $RHOST" 
+  [ $? -eq 0 ] || end_testcase "rstatd is inactive on $RHOST"
   PID=`rsh -n $RHOST ps -ewf | grep rstatd | awk '{print $2 }'`
   echo "rstatd started on $RHOST"
 fi
 
 echo "Test rup with defaults....please be patient"
-# rusers with no options broadcasts over the net and reports 
+# rusers with no options broadcasts over the net and reports
 # responses as it receives them. Time-out for responses is approx. 2 minutes.
 
 echo "rup"
-rup  
+rup
 [ $? -eq 0 ] || end_testcase "rup with defaults - failed"
 
 echo "Test rusers with options set...please be patient"
 # Go through matrix of rup options:
 
 echo "rup $RHOST"
-rup $RHOST | grep $RHOST  
+rup $RHOST | grep $RHOST
 [ $? -eq 0 ] || end_testcase "rup $RHOST - failed"
 
 echo "rup -d"
-rup -d   
+rup -d
 [ $? -eq 0 ] || end_testcase "rup -d - failed"
 
 echo "rup -h"
-rup -h   
-[ $? -eq 0 ] || end_testcase "rup -h - failed" 
+rup -h
+[ $? -eq 0 ] || end_testcase "rup -h - failed"
 
 echo "rup -l"
-rup -l  
-[ $? -eq 0 ] || end_testcase "rup -l - failed"   
+rup -l
+[ $? -eq 0 ] || end_testcase "rup -l - failed"
 
 echo "rup -t"
-rup -t  
-[ $? -eq 0 ] || end_testcase "rup -t - failed"   
+rup -t
+[ $? -eq 0 ] || end_testcase "rup -t - failed"
 
 echo "Test rusers with bad options"
 echo "rup <invalid hostname>"
diff --git a/testcases/network/rpc/basic_tests/rusers/rusers01 b/testcases/network/rpc/basic_tests/rusers/rusers01
index 3a9d2e3..f4533a2 100755
--- a/testcases/network/rpc/basic_tests/rusers/rusers01
+++ b/testcases/network/rpc/basic_tests/rusers/rusers01
@@ -21,7 +21,7 @@
 #
 #  FILE             : rusers
 #
-#  TEST DESCRIPTION : Basic test for the `rusers` command. 
+#  TEST DESCRIPTION : Basic test for the `rusers` command.
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
@@ -31,15 +31,15 @@
 #    04/18/01 Robbie Williamson (robbiew@us.ibm.com)
 #      -Written
 #
-# CMD      FLAG      ARGS       
-# rusers                       
-# rusers             RHOST    
-# rusers    -a               
-# rusers    -a       RHOST  
-# rusers    -l             
+# CMD      FLAG      ARGS
+# rusers
+# rusers             RHOST
+# rusers    -a
+# rusers    -a       RHOST
+# rusers    -l
 # rusers    -l       RHOST
-# rusers             bogus_host  
-# rusers   -bogus_flag          
+# rusers             bogus_host
+# rusers   -bogus_flag
 #***********************************************************************
 #Uncomment line below for debug output.
 #trace_logic=${trace_logic:-"set -x"}
@@ -75,19 +75,19 @@
 if [ $? -ne 0 ]; then
   echo "Attempting to start rusersd on $RHOST"
   rsh -n -l root $RHOST "/usr/sbin/rpc.rusersd &"
-  [ $? -eq 0 ] || end_testcase "rusersd is inactive on $RHOST" 
+  [ $? -eq 0 ] || end_testcase "rusersd is inactive on $RHOST"
   PID=`rsh -n $RHOST ps -ewf | grep rusersd | awk '{print $2 }'`
   echo "ruserd started on $RHOST"
 fi
 
 #RHOST=`echo $RHOST | cut -d. -f1`   //The use is depriciated as it fails when RHOST is set to an IP address
-#                                    //Pointed out by "Ambar Seksena" <ambar.seksena@calsoftinc.com> 
+#                                    //Pointed out by "Ambar Seksena" <ambar.seksena@calsoftinc.com>
 
 echo "Test rusers with defaults...please be patient"
-# rusers with no options broadcasts over the net and reports 
+# rusers with no options broadcasts over the net and reports
 # responses as it receives them. Time-out for responses is approx. 2 minutes.
 
-rusers > /dev/null 
+rusers > /dev/null
 [ $? -eq 0 ] || end_testcase "rusers with defaults - failed"
 
 echo "Test rusers with options set...please be patient"
@@ -99,11 +99,11 @@
 rusers -a $RHOST > /dev/null
 [ $? -eq 0 ] || end_testcase "rusers -a $RHOST - failed"
 
-rusers -l > /dev/null 
-[ $? -eq 0 ] || end_testcase "rusers -l - failed" 
+rusers -l > /dev/null
+[ $? -eq 0 ] || end_testcase "rusers -l - failed"
 
 rusers -l $RHOST > /dev/null
-[ $? -eq 0 ] || end_testcase "rusers -l $RHOST - failed"   
+[ $? -eq 0 ] || end_testcase "rusers -l $RHOST - failed"
 
 echo "Test rusers with bad options"
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/README b/testcases/network/rpc/rpc-tirpc-full-test-suite/README
index 8adbdc6..93903db 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/README
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/README
@@ -54,7 +54,7 @@
 -----------
 You need one, two or three computers, all computers need ssh to run
 test suite correctly and public keys MUST be shared between computers.
-It is REQUIRED ssh is used WITHOUT passwd. 
+It is REQUIRED ssh is used WITHOUT passwd.
 Use ssh-keygen to do that.
 
 
@@ -63,14 +63,14 @@
 ------------------
 
 To install and configure your Test Suite, run in a terminal :
- 	
+
 	./configure.auto
 	or
 	./configure.interactive
-     
+
 This will configure the way to run test suite (computer IP, login)
 
- 	make deploy 
+ 	make deploy
 	make all
 
 Now your test suite is ready to use
@@ -81,7 +81,7 @@
 
 * To start all tests of this test suite :
 
- 	./rpc_ts_wizard.sh -all 
+ 	./rpc_ts_wizard.sh -all
 
 * Or, run a part of the test suite in interactive mode :
 
@@ -90,19 +90,19 @@
 this will ask you the part of tests suite you want to test such as RPC, TI-RPC...
 
 * Or, run manually a part of test suite
- 
+
 	./rpc_ts_run.sh -l <script_lib.sh> [-l <script2_lib.sh> ...]
 
 this will run all tests of script <script_lib.sh>" script_lib.sh are in the test suite root directory,
 use ls *_lib.sh to display them
-Remark : replace <script_lib.sh> by script lib name like domain_subdomain_test_lib.sh 
+Remark : replace <script_lib.sh> by script lib name like domain_subdomain_test_lib.sh
          where domain is RPC or TIRPC, subdomain is i.e. stdcall, toplevel... and test is test
          category such as basic, stress...
 
 -------------------------
 Launch Test Suite Scripts
 -------------------------
-	To run with defaults values (`hostname` for the client ,  RHOST env variable or `hostname`) 
+	To run with defaults values (`hostname` for the client ,  RHOST env variable or `hostname`)
 	./run_rpc_tirpc_test_auto.sh
 	or
 	run_rpc_test_auto.sh
@@ -118,7 +118,7 @@
 	./runltp -f tirpc
 	or
 	./runltp -f rpctirpc
-	
+
 -------------
 Tests results
 -------------
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.auto b/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.auto
index 436acd9..b3e26b0 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.auto
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.auto
@@ -3,8 +3,8 @@
 # Prepare test suite & Make Makefile shell script for RPC & TIRPC Test Suite
 # Automatic configuration script design for LTP
 # (c) 2008 BULL S.A.S.
-# 
-# 2008-02-25: created by Aurelien Charbon - Bull SA - aurelien.charbon@ext.bull.net  
+#
+# 2008-02-25: created by Aurelien Charbon - Bull SA - aurelien.charbon@ext.bull.net
 # 2008-11-27: updated by Aime Le Rouzic - Bull SA - aime.lerouzic@bull.net
 
 # ***************************
@@ -128,17 +128,17 @@
 find tests_pack -name "*.c" | grep -v tirpc | while read fil
 do
 		echo '	$(CC) '$fil' $(CFLAGS_RPC) -o '`echo $fil | cut -d '.' -f1`".bin">>Makefile
-	
+
 		TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
 		OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 		echo '	$(CC) '$SFILE' $(CFLAGS_RPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
-	
+
 		OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 		echo '	$(CC) '$SFILE' $(CFLAGS_RPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
-	
-	
+
+
 done
 
 # find all TI-RPC sources
@@ -146,14 +146,14 @@
 find tests_pack -name "*.c" | grep tirpc | while read fil
 do
 	echo '	$(CC) $(LDFLAGS_TIRPC) '$fil' $(CFLAGS_TIRPC) -o '`echo $fil | cut -d '.' -f1`".bin">>Makefile
-	
+
 	TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
 	OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	$(CC) $(LDFLAGS_TIRPC) '$SFILE' $(CFLAGS_TIRPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
-	
+
 	OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	$(CC) $(LDFLAGS_TIRPC) '$SFILE' $(CFLAGS_TIRPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
 done
 
@@ -169,14 +169,14 @@
 find $TSTPACKDIR -name "*.c" | while read fil
 do
 	echo '	rm -f '`echo $fil | cut -d '.' -f1`".bin">>Makefile
-	
+
 	TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
 	OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	rm -f '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
-	
+
 	OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	rm -f '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
 done
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.interactive b/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.interactive
index 781244c..1050b6d 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.interactive
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/configure.interactive
@@ -211,31 +211,31 @@
 find tests_pack -name "*.c" | grep -v tirpc | while read fil
 do
 		echo '	$(CC) '$fil' $(CFLAGS_RPC) -o '`echo $fil | cut -d '.' -f1`".bin">>Makefile
-	
+
 		TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
 		OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 		echo '	$(CC) '$SFILE' $(CFLAGS_RPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
-	
+
 		OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+		SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 		echo '	$(CC) '$SFILE' $(CFLAGS_RPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
-	
-	
+
+
 done
 
 # find all TI-RPC sources
 find tests_pack -name "*.c" | grep tirpc | while read fil
 do
 	echo '	$(CC) $(LDFLAGS_TIRPC) '$fil' $(CFLAGS_TIRPC) -o '`echo $fil | cut -d '.' -f1`".bin">>Makefile
-	
+
 	TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
 	OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	$(CC) $(LDFLAGS_TIRPC) '$SFILE' $(CFLAGS_TIRPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
-	
+
 	OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	$(CC) $(LDFLAGS_TIRPC) '$SFILE' $(CFLAGS_TIRPC) -o '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
 done
 
@@ -251,13 +251,13 @@
 find $TSTPACKDIR -name "*.c" | while read fil
 do
 	echo '	rm -f '`echo $fil | cut -d '.' -f1`".bin">>Makefile
-	
+
 	TSTXPR=$( echo $TSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
 	OTHXPR=$(echo $SERVERTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	rm -f '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.svc
-	
+
 	OTHXPR=$(echo $CLIENTTSTPACKDIR | sed -e s/'\/'/'\\\/'/g )
-	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g ) 
+	SFILE=$( echo $fil | sed -e s/$TSTXPR/$OTHXPR/g )
 	echo '	rm -f '`echo $SFILE | cut -d '.' -f1`".bin">>Makefile.clnt
 done
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.ftr b/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.ftr
index e508806..bfcdfda 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.ftr
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.ftr
@@ -93,7 +93,7 @@
 
 
 # looking for script arguments
-for arg in $* 
+for arg in $*
 do
 	if [ "$arg" = "-l" ]
 	then
@@ -103,7 +103,7 @@
 		TSTSCRTBL=( "${TSTSCRTBL[@]}" "$1" )
 		shift
 	fi
-	
+
 	if [ "$arg" = "-m" ]
 	then
 		# value following -m is the way to run tests cases
@@ -111,7 +111,7 @@
 		TESTWAY=$1
 		shift
 	fi
-	
+
 	if [ "$arg" = "-n" ]
 	then
 		# value following -n is the number tests cases instances to launch
@@ -119,7 +119,7 @@
 		TESTINSTANCE=$1
 		shift
 	fi
-	
+
 	if [ "$arg" = "-v" ]
 	then
 		VERBOSE=1
@@ -186,7 +186,7 @@
 	then
 		echo " - collecting logs file from remote client"
 	fi
-	scp $CLIENTUSER@$CLIENTIP:/tmp/$LOGDIR/$TESTLOGFILE $LOGDIR/ 
+	scp $CLIENTUSER@$CLIENTIP:/tmp/$LOGDIR/$TESTLOGFILE $LOGDIR/
 fi
 
 # cleaning up before Test Suite end
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.hdr b/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.hdr
index ac249b2..aa8f820 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.hdr
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/inc/rpc_ts_run.hdr
@@ -10,9 +10,9 @@
 # Please refer to RPC & TI-RPC Test Suite documentation.
 # More details at http://nfsv4.bullopensource.org/doc/rpc_testsuite.php
 
-# Usage : 
+# Usage :
 # ./rpc_ts_run.sh -l tst_list_db_1 -l tst_list_db_2 ... -l tst_list_db_n ... [-v] [-m XXX] [-n X]
-# where 
+# where
 # -l indicates a tests script to run
 # -v for verbose mode
 # -m for way to run tests cases, see TESTWAY description for more information on XXX value
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_tirpc_ts_run.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_tirpc_ts_run.sh
index 2e0148d..4dcb96f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_tirpc_ts_run.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_tirpc_ts_run.sh
@@ -6,5 +6,5 @@
 ./configure.auto
 make deploy
 make all
-./rpc_ts_wizard.sh -all 
+./rpc_ts_wizard.sh -all
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_run.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_run.sh
index 50578d9..44f2a16 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_run.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_run.sh
@@ -10,9 +10,9 @@
 # Please refer to RPC & TI-RPC Test Suite documentation.
 # More details at http://nfsv4.bullopensource.org/doc/rpc_testsuite.php
 
-# Usage : 
+# Usage :
 # ./rpc_ts_run.sh -l tst_list_db_1 -l tst_list_db_2 ... -l tst_list_db_n ... [-v] [-m XXX] [-n X]
-# where 
+# where
 # -l indicates a tests script to run
 # -v for verbose mode
 # -m for way to run tests cases, see TESTWAY description for more information on XXX value
@@ -138,7 +138,7 @@
 
 
 # looking for script arguments
-for arg in $* 
+for arg in $*
 do
 	if [ "$arg" = "-l" ]
 	then
@@ -148,7 +148,7 @@
 		TSTSCRTBL=( "${TSTSCRTBL[@]}" "$1" )
 		shift
 	fi
-	
+
 	if [ "$arg" = "-m" ]
 	then
 		# value following -m is the way to run tests cases
@@ -156,7 +156,7 @@
 		TESTWAY=$1
 		shift
 	fi
-	
+
 	if [ "$arg" = "-n" ]
 	then
 		# value following -n is the number tests cases instances to launch
@@ -164,7 +164,7 @@
 		TESTINSTANCE=$1
 		shift
 	fi
-	
+
 	if [ "$arg" = "-v" ]
 	then
 		VERBOSE=1
@@ -231,7 +231,7 @@
 	then
 		echo " - collecting logs file from remote client"
 	fi
-	scp $CLIENTUSER@$CLIENTIP:/tmp/$LOGDIR/$TESTLOGFILE $LOGDIR/ 
+	scp $CLIENTUSER@$CLIENTIP:/tmp/$LOGDIR/$TESTLOGFILE $LOGDIR/
 fi
 
 # cleaning up before Test Suite end
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_wizard.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_wizard.sh
index e503739..95f81fa 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_wizard.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/rpc_ts_wizard.sh
@@ -55,7 +55,7 @@
 	echo "Sub-ategories menu :"
 	echo " 0. Cancel and exit"
 	echo " 1. All categories"
-	
+
 	if [ "$1" = "RPC" ]
 	then
 		i=2
@@ -80,7 +80,7 @@
 	then
 		echo ""
 	fi
-	
+
 	echo -n "Choice : "
 }
 
@@ -117,7 +117,7 @@
 # Main process
 
 # check for automation mode
-for arg in $* 
+for arg in $*
 do
 	if [ "$arg" = "-v" ]
 	then
@@ -127,19 +127,19 @@
 	then
 		# run all rpc & tirpc test suite
 		tbl=( $(find ./ -name "*basic*_lib.sh") )
-	
+
 		CMD="$EXECSCRIPT "
-		
+
 		for fic in ${tbl[*]}
 		do
 			CMD="$CMD -l $fic"
 		done
-		
+
 		if [ $VERBOSE -eq 1 ]
 		then
 			CMD="$CMD -v"
 		fi
-		
+
 		$CMD
 		exit 0
 	fi
@@ -195,7 +195,7 @@
 	echo "Remarks : add -v flag to use verbose mode for Test Suite"
 	echo ""
 	draw_main_menu
-	
+
 	read MM_CHOICE
 	if [ $MM_CHOICE -eq 0 ]
 	then
@@ -231,23 +231,23 @@
 then
 	# run all test suite
 	tbl=( $(find ./ -name "$SCRIPTCATNAME") )
-	
+
 	CMD="$EXECSCRIPT "
-	
+
 	for fic in ${tbl[*]}
 	do
 		CMD="$CMD -l $fic"
 	done
-	
+
 	draw_title
 	draw_instance_menu
 	read NUMBER
-	
+
 	if [ -z $NUMBER ]
 	then
 		NUMBER=1
 	fi
-	
+
 	if [ $NUMBER -eq 0 ]
 	then
 		MNLEVEL=0
@@ -255,29 +255,29 @@
 		draw_title
 		draw_waytest_menu
 		read MM_CHOICE
-		
+
 		TESTWAY="onetomany"
-		
+
 		if [ -z $MM_CHOICE ]
 		then
 			MM_CHOICE=2
 		fi
-		
+
 		if [ $MM_CHOICE -eq 1 ]
 		then
 			TESTWAY="manycouple"
 		fi
-		
+
 		if [ $MM_CHOICE -eq 0 ]
 		then
 			MNLEVEL=0
 		fi
-		
+
 		if [ $VERBOSE -eq 1 ]
 		then
 			CMD="$CMD -v"
 		fi
-			
+
 		if [ $MNLEVEL -ne 0 ]
 		then
 			#echo "./$CMD -m $TESTWAY -n $NUMBER"
@@ -408,7 +408,7 @@
 	# run a part only
 	RUN=1
 	MNLEVEL=1
-	
+
 	# domain
 	while [ $RUN -eq 1 ]
 	do
@@ -437,26 +437,26 @@
 			MNLEVEL=0
 		fi
 	done
-	
+
 	if [ $MNLEVEL -eq 0 ]
 	then
 		# exit test suite
 		echo "Tests suite canceled"
 		exit 0
 	fi
-	
+
 	# category
 	CAT=( `cat inc/categories` )
 	RUN=1
 	MNLEVEL=1
-	
+
 	while [ $RUN -eq 1 ]
 	do
 		draw_title
 		echo "Select a category for $DOMAIN domain"
 		draw_cat_menu ${CAT[*]}
 		read MM_CHOICE
-		
+
 		if [ $MM_CHOICE -eq 0 ]
 		then
 			RUN=0
@@ -469,7 +469,7 @@
 			fi
 		fi
 	done
-	
+
 	if [ $MNLEVEL -eq 0 ]
 	then
 		# exit test suite
@@ -481,7 +481,7 @@
 	then
 		CMD="$EXECSCRIPT "
 		tbl=( $(find ./ -name "*${CAT[`expr $MM_CHOICE - 1`]}_lib.sh") )
-		
+
 		for fic in ${tbl[*]}
 		do
 			CMD="$CMD -l $fic"
@@ -490,14 +490,14 @@
 		# sub category
 		RUN=1
 		MNLEVEL=0
-		
+
 		while [ $RUN -eq 1 ]
 		do
 			draw_title
 			echo "Select a sub category for ${CAT[`expr $MM_CHOICE - 1`]} category for $DOMAIN domain"
 			draw_subcat_menu $DOMAIN ${CAT[`expr $MM_CHOICE - 1`]}
 			read MM_CHOICE_SUB
-			
+
 			if [ $DOMAIN = "RPC" ]
 			then
 				#echo "${CAT[`expr $MM_CHOICE - 1`]}"
@@ -509,20 +509,20 @@
 			if [ $DOMAIN = "TIRPC" ]
 			then
 				#echo "${CAT[`expr $MM_CHOICE - 1`]}"
-				scat=( $(find ./ -name "*_${CAT[`expr $MM_CHOICE - 1`]}_lib.sh" | grep "tirpc" | while read fic 
-				do 
-					echo $fic | sed -e 's/\.\/tirpc_//g' | sed -e s/"_"${CAT[`expr $MM_CHOICE - 1`]}"_lib.sh"//g 
+				scat=( $(find ./ -name "*_${CAT[`expr $MM_CHOICE - 1`]}_lib.sh" | grep "tirpc" | while read fic
+				do
+					echo $fic | sed -e 's/\.\/tirpc_//g' | sed -e s/"_"${CAT[`expr $MM_CHOICE - 1`]}"_lib.sh"//g
 				done) )
 			fi
-			
+
 			CMD="$EXECSCRIPT "
-			
+
 			if [ $MM_CHOICE -eq 0 ]
 			then
 				RUN=0
 				MNLEVEL=0
 			fi
-			
+
 			if [ $MM_CHOICE_SUB -eq 1 ]
 			then
 				RUN=0
@@ -544,32 +544,32 @@
 				then
 					tbl=( $(find ./ -name "*${scat[`expr $MM_CHOICE_SUB - 2`]}_${CAT[`expr $MM_CHOICE - 1`]}_lib.sh" | grep "tirpc" ) )
 				fi
-				
+
 				if [ ${#tbl[*]} -ne 0 ]
 				then
 					RUN=0
 					MNLEVEL=1
 				fi
 			fi
-		
+
 			for fic in ${tbl[*]}
 			do
 				CMD="$CMD -l $fic"
 			done
-			
+
 		done
 	fi
-	
+
 	# execute chosen tests
 	draw_title
 	draw_instance_menu
 	read NUMBER
-	
+
 	if [ -z $NUMBER ]
 	then
 		NUMBER=1
 	fi
-	
+
 	if [ $NUMBER -eq 0 ]
 	then
 		MNLEVEL=0
@@ -577,29 +577,29 @@
 		draw_title
 		draw_waytest_menu
 		read MM_CHOICE
-		
+
 		TESTWAY="onetomany"
-		
+
 		if [ -z $MM_CHOICE ]
 		then
 			MM_CHOICE=2
 		fi
-		
+
 		if [ $MM_CHOICE -eq 1 ]
 		then
 			TESTWAY="manycouple"
 		fi
-		
+
 		if [ $MM_CHOICE -eq 0 ]
 		then
 			MNLEVEL=0
 		fi
-		
+
 		if [ $VERBOSE -eq 1 ]
 		then
 			CMD="$CMD -v"
 		fi
-			
+
 		if [ $MNLEVEL -ne 0 ]
 		then
 			$CMD -m $TESTWAY -n $NUMBER
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_test_auto.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_test_auto.sh
index 0694c37..f9841d1 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_test_auto.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_test_auto.sh
@@ -9,5 +9,5 @@
 cd $SAVEPWD
 make deploy
 make all
-./rpc_ts_wizard.sh -allrpc 
+./rpc_ts_wizard.sh -allrpc
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tests.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tests.sh
index 594606f..3fae149 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tests.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tests.sh
@@ -6,5 +6,5 @@
 ./configure.auto
 make deploy
 make all
-./rpc_ts_wizard.sh -allrpc 
+./rpc_ts_wizard.sh -allrpc
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_auto.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_auto.sh
index 275d885..8da36d0 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_auto.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_auto.sh
@@ -9,5 +9,5 @@
 cd $SAVEPWD
 make deploy
 make all
-./rpc_ts_wizard.sh -all 
+./rpc_ts_wizard.sh -all
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_interactive.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_interactive.sh
index 91fa83c..8a1098b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_interactive.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_test_interactive.sh
@@ -5,5 +5,5 @@
 ./configure.interactive
 make deploy
 make all
-./rpc_ts_wizard.sh 
+./rpc_ts_wizard.sh
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_tests.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_tests.sh
index 7ebbb13..7ce7c3e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_tests.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_rpc_tirpc_tests.sh
@@ -7,5 +7,5 @@
 cd $SAVEPWD
 make deploy
 make all
-./rpc_ts_wizard.sh -all 
+./rpc_ts_wizard.sh -all
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_test_auto.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_test_auto.sh
index c0f1da6..6c160ab 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_test_auto.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_test_auto.sh
@@ -9,5 +9,5 @@
 cd $SAVEPWD
 make deploy
 make all
-./rpc_ts_wizard.sh -alltirpc 
+./rpc_ts_wizard.sh -alltirpc
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_tests.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_tests.sh
index 70122d4..570cdca 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_tests.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/run_tirpc_tests.sh
@@ -6,5 +6,5 @@
 ./configure.auto
 make deploy
 make all
-./rpc_ts_wizard.sh -alltirpc 
+./rpc_ts_wizard.sh -alltirpc
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_get_myaddress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_get_myaddress.sh
index 5c67357..2723424 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_get_myaddress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_get_myaddress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_get_myaddress.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_get_myaddress"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getmaps.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getmaps.sh
index 13fd306..d270c4a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getmaps.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getmaps.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_getmaps.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_getmaps"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getport.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getport.sh
index ebd626d..0fba212 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getport.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_getport.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_getport.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_getport"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.performance.sh
index 2d02984..d080f7d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_rmtcall.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.sh
index 609cde8..6433f68 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_rmtcall.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.stress.sh
index a042d27..f42f81e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_rmtcall.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_rmtcall.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_rmtcall"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_set.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_set.sh
index 63b585d..94f7fa9 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_set.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_set.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_set.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_set"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_unset.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_unset.sh
index 5c47197..bfdafb3 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_unset.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_addrmanagmt_pmap_unset.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_addr-managmt_pmap_unset.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_addrmanagmt_pmap_unset"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_auth_destroy.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_auth_destroy.sh
index e977abe..91e4e3b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_auth_destroy.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_auth_destroy.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_auth_auth_destroy.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_auth_auth_destroy"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authnone_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authnone_create.sh
index a933221..86ff54a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authnone_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authnone_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_auth_authnone_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_auth_authnone_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create.sh
index 86f1bdf..b673c92 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_auth_authunix_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_auth_authunix_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create_default.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create_default.sh
index 530d660..440cb00 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create_default.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_auth_authunix_create_default.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_auth_authunix_create_default.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_auth_authunix_create_default"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.complex.sh
index 1f82046..38306a4 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_broadc_clnt_broadcast.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_broadc_clnt_broadcast"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.dataint.sh
index 868fe10..31b4108 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_broadc_clnt_broadcast.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_broadc_clnt_broadcast"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.performance.sh
index 404c014..205f1d1 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_broadc_clnt_broadcast.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_broadc_clnt_broadcast"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLNTMN="7-perf"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,7 +59,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.scalability.sh
index 085a26a..e64d9c6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_broadc_clnt_broadcast.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_broadc_clnt_broadcast"
 TESTCLIENTBIN="5-scalability.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < NBINSTS-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	echo ${tblresult[*]}>>$LOCLOGDIR/$TESTLOGFILE
 }
@@ -97,15 +97,15 @@
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBPERFTESTITER" >>$TMPRESULTFILE
 	done
 	TOC=`echo $(date +%S)"."$(date +%N)`
-	
+
 	CTIME=`echo $(echo "$TOC-$TIC" | bc)`
 	if [ `expr $TOC \< $TIC` -eq 1 ]
 	then
 		CTIME=`echo $(echo 60 + $CTIME | bc)`
 	fi
-	
+
 	tblresult=( "${tblresult[@]}" "("$NBINSTS"; "$CTIME") " )
-	
+
 	NBINSTS=`expr $NBINSTS \* 2`
 done
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.sh
index 29f7403..358c30a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_broadc_clnt_broadcast.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_broadc_clnt_broadcast"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -78,7 +78,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -89,7 +89,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.stress.sh
index f7e472c..c0bfe56 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_broadc_clnt_broadcast.stress.sh
@@ -5,7 +5,7 @@
 # Please refer to RPC & TI-RPC Test Suite documentation.
 # More details at http://nfsv4.bullopensource.org/doc/rpc_testsuite.php
 
-# TEST : RPC clnt_broadcast 
+# TEST : RPC clnt_broadcast
 # creation : 2007-06-15 revision 2007-
 
 # **********************
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_broadc_clnt_broadcast.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_broadc_clnt_broadcast"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.sh
index 03d7b32..b67660e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnt_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnt_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.stress.sh
index aa897dd..c08cad3 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_create.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnt_create.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnt_create"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.sh
index 75d4ae2..7e4e09c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnt_destroy.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnt_destroy"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.stress.sh
index 2902b64..1c91505 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnt_destroy.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnt_destroy.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnt_destroy"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.complex.sh
index 9d527b6..82286ab 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clntraw_create.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntraw_create"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.performance.sh
index e1419a4..01f020a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clntraw_create.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntraw_create"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.sh
index 72f68c8..27145d6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntraw_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_create-destroy_clntraw_create"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntraw_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.limits.sh
index 11b5350..ee55f3a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnttcp_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnttcp_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.performance.sh
index 9c7de57..e3762aa 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnttcp_create.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnttcp_create"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.sh
index e48a3e3..b9cd84b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnttcp_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnttcp_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.stress.sh
index 17a2e14..2118012 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clnttcp_create.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clnttcp_create.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clnttcp_create"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.limits.sh
index 96171b7..884b167 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clntudp_bufcreate.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.sh
index 58a3caa..9ed163e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_bufcreate.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_create-destroy_clntudp_bufcreate"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntudp_bufcreate"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.performance.sh
index afc4730..ab756cd 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clntudp_create.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntudp_create"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.sh
index 53613c4..462244e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clntudp_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntudp_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.stress.sh
index baa5650..29d29e4 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_clntudp_create.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_clntudp_create.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_clntudp_create"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.sh
index 7f112d3..34cffca 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svc_destroy.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svc_destroy"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.stress.sh
index edfc8d1..4f7b2c7 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svc_destroy.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svc_destroy.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svc_destroy"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.limits.sh
index 7beb197..175395d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svcfd_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcfd_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.sh
index 8eede1a..c9e9681 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcfd_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_create-destroy_svcfd_create"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcfd_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.performance.sh
index c12adea..75364bb 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svcraw_create.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcraw_create"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.sh
index eab9222..e1ca0ba 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcraw_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_create-destroy_svcraw_create"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcraw_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.limits.sh
index d440643..8b2c09d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svctcp_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svctcp_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.performance.sh
index 338c6a6..c3ba3aa 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svctcp_create.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svctcp_create"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.sh
index 15ace1a..d42e6b6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svctcp_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svctcp_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.stress.sh
index c059222..f2a5989 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svctcp_create.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svctcp_create.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svctcp_create"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.limits.sh
index 24b3968..e92d90d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svcudp_bufcreate.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcudp_bufcreate"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.sh
index c32bb15..283ffe6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_bufcreate.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_create-destroy_svcudp_bufcreate"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcudp_bufcreate"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.performance.sh
index cfb72fa..e102bdd 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svcudp_create.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcudp_create"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.sh
index 141a98f..8fc3011 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svcudp_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcudp_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.stress.sh
index adea493..62871aa 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_createdestroy_svcudp_create.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_create-destroy_svcudp_create.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_createdestroy_svcudp_create"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_pcreateerror.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_pcreateerror.sh
index 0a0cf5a..b776722 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_pcreateerror.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_pcreateerror.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_clnt_pcreateerror.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_clnt_pcreateerror"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perrno.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perrno.sh
index cd55cbd..000dcfc 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perrno.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perrno.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_clnt_perrno.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_clnt_perrno"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perror.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perror.sh
index 4caa572..452a8fb 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perror.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_perror.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_clnt_perror.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_clnt_perror"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_spcreateerror.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_spcreateerror.sh
index ed133c0d..05dcdd6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_spcreateerror.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_spcreateerror.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_clnt_spcreateerror.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_clnt_spcreateerror"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperrno.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperrno.sh
index 2732a92..3c1c60b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperrno.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperrno.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_clnt_sperrno.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_clnt_sperrno"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperror.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperror.sh
index e09273b..e2c11d5 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperror.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_clnt_sperror.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_clnt_sperror.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_clnt_sperror"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_auth.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_auth.sh
index d37f866..79b0199 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_auth.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_auth.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_svcerr_auth.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_svcerr_auth"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noproc.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noproc.sh
index d02ccd8..d6111fd 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noproc.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noproc.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_svcerr_noproc.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_svcerr_noproc"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noprog.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noprog.sh
index 882e1b0..a8b727f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noprog.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_noprog.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_svcerr_noprog.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_svcerr_noprog"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_progvers.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_progvers.sh
index ab1f1a0..9420d43 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_progvers.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_progvers.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_svcerr_progvers.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_svcerr_progvers"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_systemerr.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_systemerr.sh
index c2d0408..e241e45 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_systemerr.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_systemerr.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_svcerr_systemerr.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_svcerr_systemerr"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_weakauth.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_weakauth.sh
index c31aee4..4dcec41 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_weakauth.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_err_svcerr_weakauth.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_err_svcerr_weakauth.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_err_svcerr_weakauth"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_registerrpc.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_registerrpc.sh
index d28ccdd..3ded1d6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_registerrpc.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_registerrpc.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_reg-unreg_registerrpc.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_regunreg_registerrpc"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_register.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_register.sh
index b391e51..eee7168 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_register.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_register.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_reg-unreg_svc_register.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_regunreg_svc_register"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_unregister.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_unregister.sh
index 2f7c63f..001616d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_unregister.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_svc_unregister.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_reg-unreg_svc_unregister.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_regunreg_svc_unregister"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_register.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_register.sh
index 95d2208..8e57ac2 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_register.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_register.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_reg-unreg_xprt_register.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_regunreg_xprt_register"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_unregister.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_unregister.sh
index fda749e..d8b31f0 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_unregister.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_regunreg_xprt_unregister.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_reg-unreg_xprt_unregister.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_regunreg_xprt_unregister"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.dataint.sh
index a11f0c8..172f004 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_callrpc.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_callrpc"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.performance.sh
index e935a8e..c0d01b7 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_callrpc.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_callrpc"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.scalability.sh
index a745b93..796bda5 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_callrpc.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_callrpc"
 TESTCLIENTBIN="5-scalability.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < NBINSTS-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	echo ${tblresult[*]}>>$LOCLOGDIR/$TESTLOGFILE
 }
@@ -97,15 +97,15 @@
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBPERFTESTITER" >>$TMPRESULTFILE
 	done
 	TOC=`echo $(date +%S)"."$(date +%N)`
-	
+
 	CTIME=`echo $(echo "$TOC-$TIC" | bc)`
 	if [ `expr $TOC \< $TIC` -eq 1 ]
 	then
 		CTIME=`echo $(echo 60 + $CTIME | bc)`
 	fi
-	
+
 	tblresult=( "${tblresult[@]}" "("$NBINSTS"; "$CTIME") " )
-	
+
 	NBINSTS=`expr $NBINSTS \* 2`
 done
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.sh
index cd28a86..4ed8a1b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_callrpc.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_callrpc"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -78,7 +78,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -89,7 +89,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.stress.sh
index 3d4a093..28eb8f1 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_callrpc.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_callrpc.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_callrpc"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.complex.sh
index 7d92797..76fa974 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_call.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_call"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -78,7 +78,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -89,7 +89,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.dataint.sh
index 6f8352c..10549b7 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_call.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_call"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.performance.sh
index 975efdc..e0cb7b9 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_call.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_call"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.scalability.sh
index e61290f..f6b7dce 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_call.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_call"
 TESTCLIENTBIN="5-scalability.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < NBINSTS-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	echo ${tblresult[*]}>>$LOCLOGDIR/$TESTLOGFILE
 }
@@ -92,26 +92,26 @@
 for ((a=0; a < SCALINSTNUMBER ; a++))
 do
 	#echo "STEP : max insts = "$NBINSTS
-	
+
 	TIC=`echo $(date +%S)"."$(date +%N)`
 	for ((i=0; i < NBINSTS ; i++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBPERFTESTITER" >>$TMPRESULTFILE
 	done
 	TOC=`echo $(date +%S)"."$(date +%N)`
-	
+
 	#echo $TIC
 	#echo $TOC
 	CTIME=`echo $(echo "$TOC-$TIC" | bc)`
-	
+
 	if [ `expr $TOC \< $TIC` -eq 1 ]
 	then
 		CTIME=`echo $(echo 60 + $CTIME | bc)`
 	fi
 	#echo $CTIME
-	
+
 	tblresult=( "${tblresult[@]}" "("$NBINSTS"; "$CTIME") " )
-	
+
 	NBINSTS=`expr $NBINSTS \* 2`
 done
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.sh
index a5ad5be..9598161 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_call.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_call"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -78,7 +78,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -89,7 +89,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.stress.sh
index 71e575e..054d5a3 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_call.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_call.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_call"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.dataint.sh
index a7d5405..d761c82 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_clnt_control.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_control"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.sh
index 826b6d4..016533e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_control.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_clnt_control"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_control"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_freeres.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_freeres.sh
index db853a6..525ec19 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_freeres.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_freeres.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_clnt_freeres.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_freeres"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -78,7 +78,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -89,7 +89,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_geterr.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_geterr.sh
index 9c8a778..6027d3d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_geterr.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_clnt_geterr.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_clnt_geterr"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_clnt_geterr"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_freeargs.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_freeargs.sh
index 0708bd9..d074ff5 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_freeargs.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_freeargs.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_svc_freeargs.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_svc_freeargs"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.dataint.sh
index f586762..0f8d686 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="RPC_std-call_svc_getargs.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_svc_getargs"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.sh
index dab088e..1eea921 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getargs.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_svc_getargs.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_svc_getargs"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getcaller.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getcaller.sh
index 4d6fa8c..6aa48f2 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getcaller.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_getcaller.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_svc_getcaller.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_svc_getcaller"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -78,7 +78,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -89,7 +89,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_sendreply.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_sendreply.sh
index 8467297..466e43d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_sendreply.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/rpc_stdcall_svc_sendreply.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="rpc_std-call_svc_sendreply.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/rpc/rpc_stdcall_svc_sendreply"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.limits.sh
index f8029e2..a0717bc 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_addr-managmt_rpcb_getaddr.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getaddr"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.sh
index 9abf05d..c51a7e0 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getaddr.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_addr-managmt_rpcb_getaddr.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getaddr"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getmaps.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getmaps.sh
index ea9803f..b9461d2 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getmaps.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_addrmanagmt_rpcb_getmaps.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_addr-managmt_rpcb_getmaps.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_addrmanagmt_rpcb_getmaps"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_create.sh
index 123a1e7..d56df1f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_auth_authdes_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_auth_authdes_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_seccreate.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_seccreate.sh
index db7bcea..84c6084 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_seccreate.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authdes_seccreate.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_auth_authdes_seccreate.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_auth_authdes_seccreate"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authnone_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authnone_create.sh
index 3557116..54f5252 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authnone_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authnone_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_auth_authnone_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_auth_authnone_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create.sh
index 8e307cc..ad6d7dd 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_auth_authsys_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_auth_authsys_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create_default.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create_default.sh
index 4054751..d5927a4 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create_default.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_auth_authsys_create_default.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_auth_authsys_create_default.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_auth_authsys_create_default"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.complex.sh
index a7fcc50..4bdd0a6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottomlevel_clnt_call.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.dataint.sh
index 0432896..0254760 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_call.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.mt.sh
index 5da904b..e7eaaa6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_call.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.performance.sh
index 02b1f93..841b015 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_call.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.scalability.sh
index 3601a7e..255b6bb 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_call.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.sh
index 5963616..7052b8a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_call.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.stress.sh
index e46e0e6..a4027ed 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_call.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_call.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_call"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.limits.sh
index 40e94cf..47ef429 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_dg_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.sh
index a4f6d3d..5d28fa3 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_dg_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_dg_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_dg_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.limits.sh
index 557ca8c..180558b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_vc_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.sh
index c4e8feb..b820a41 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_clnt_vc_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_clnt_vc_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_clnt_vc_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.limits.sh
index 97e6dea..f6b79b2 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_svc_dg_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.sh
index 95a39ab..7a4d129 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_dg_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_svc_dg_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_svc_dg_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.limits.sh
index 2b46886..0b5f79a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_svc_vc_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.sh
index 124295d..9020d01 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_bottomlevel_svc_vc_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_bottom-level_svc_vc_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_bottomlevel_svc_vc_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_pcreateerror.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_pcreateerror.sh
index d5a99d4..6d7786d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_pcreateerror.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_pcreateerror.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_clnt_pcreateerror.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_clnt_pcreateerror"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.complex.sh
index c540905..49e045e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_clnt_perrno.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_clnt_perrno"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.sh
index c3b0258..72eae47 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perrno.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_clnt_perrno.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_clnt_perrno"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.complex.sh
index 465afec..80361e6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_clnt_perror.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_clnt_perror"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.sh
index 30773bd..5a3564f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_clnt_perror.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_clnt_perror.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_clnt_perror"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noproc.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noproc.sh
index 1d436dc..44de58d 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noproc.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noproc.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_svcerr_noproc.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_svcerr_noproc"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noprog.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noprog.sh
index 6636af7..78554bf 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noprog.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_noprog.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_svcerr_noprog.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_svcerr_noprog"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_progvers.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_progvers.sh
index d54cf4a..637de39 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_progvers.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_progvers.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_svcerr_progvers.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_svcerr_progvers"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_systemerr.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_systemerr.sh
index f4ff783..fd094d3 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_systemerr.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_systemerr.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_svcerr_systemerr.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_svcerr_systemerr"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_weakauth.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_weakauth.sh
index 958029e..5551a07 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_weakauth.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_err_svcerr_weakauth.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_err_svcerr_weakauth.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_err_svcerr_weakauth"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.complex.sh
index fe2a54b..8174afa 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expertlevel_clnt_call.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.dataint.sh
index e5715ac..8149d0c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_call.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.mt.sh
index f978d06..6388aed 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_call.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.performance.sh
index 1415c96..0053bfc 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_call.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.scalability.sh
index 6224627..8508f0b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_call.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.sh
index 31bfa28..d6ede1b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_call.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.stress.sh
index 6ddbe53..584372e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_call.stress.sh
@@ -5,7 +5,7 @@
 # Please refer to RPC & TI-RPC Test Suite documentation.
 # More details at http://nfsv4.bullopensource.org/doc/rpc_testsuite.php
 
-# TEST : TIRPC clnt_call 
+# TEST : TIRPC clnt_call
 # creation : 2007-06-14 revision 2007-
 
 # **********************
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_call.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_call"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.limits.sh
index ae31127..319bbeb 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_tli_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_tli_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.sh
index edeb46d..ef8346f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_clnt_tli_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_clnt_tli_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_clnt_tli_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.complex.sh
index bdbb841..e90490f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expertlevel_rpcb_rmtcall.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.dataint.sh
index ad08eb6..632c002 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_rmtcall.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.mt.sh
index 2bede49..7263400 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_rmtcall.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.performance.sh
index 8075e92..5fd7677 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_rmtcall.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.scalability.sh
index f17494b..cff1e57 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_rmtcall.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.sh
index 76e550a..087780c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_rmtcall.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.stress.sh
index cfcc9c9..7e03b4c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_rmtcall.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_rmtcall.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_rmtcall"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_set.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_set.sh
index ecb45be..581fadd 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_set.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_set.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_set.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_set"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_unset.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_unset.sh
index e4a7ad5..6db63b6 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_unset.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_rpcb_unset.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_rpcb_unset.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_rpcb_unset"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.mt.sh
index c351f90..f834c96 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_reg.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_reg"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.sh
index af1da90..65f1e5b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_reg.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_reg"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.stress.sh
index ab34624..ed12929 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_reg.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_reg.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_reg"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.limits.sh
index 42c6a8d..d084e41 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_tli_create.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_tli_create"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.sh
index 6d74ba6..4bbe0bc 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_tli_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_tli_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_tli_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.mt.sh
index eb01b1a..471b246 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_unreg.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_unreg"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.sh
index 543a7be..f2ebc76 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_unreg.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_unreg"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.stress.sh
index 1af4e86..6c55850 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_expertlevel_svc_unreg.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_expert-level_svc_unreg.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_expertlevel_svc_unreg"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.complex.sh
index f84441d..d71490f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_interlevel_clnt_call.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.dataint.sh
index f018e0a..18f5942 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_call.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.mt.sh
index 40c4e41..2ec7007 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_call.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.performance.sh
index 8fdd9fb..74f28dc 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_call.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.scalability.sh
index 3177e21..db8c8d5 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_interlevel_clnt_call.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.sh
index 497c49f..16ed553 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_call.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.stress.sh
index 3b3ddb7..98c88f8 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_call.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_call.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_call"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -94,7 +94,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -105,7 +105,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.limits.sh
index f247308..6b3689e 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_control.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_control"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.sh
index e09c566..a2bfd20 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_control.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_control.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_control"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create.sh
index 7f8c2ee..6dc7201 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_tp_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.limits.sh
index 4dfbfa7..670bc0f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_interlevel_clnt_tp_create_timed.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create_timed"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.sh
index c978ef3..e5f153a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_clnt_tp_create_timed.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_clnt_tp_create_timed.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_clnt_tp_create_timed"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_svc_tp_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_svc_tp_create.sh
index 0f246f4..30f56f8 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_svc_tp_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_interlevel_svc_tp_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_inter-level_svc_tp_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_interlevel_svc_tp_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.complex.sh
index b42260b..7f77816 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.dataint.sh
index add9aa3..ced9b84 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.mt.sh
index f3810b5..f770d76 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.performance.sh
index 1790902..af0cfdd 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.scalability.sh
index 78ddc61..b8b4fa7 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.sh
index feebbc6..1c4410a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.stress.sh
index ad6cac9..d4f3e89 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.complex.sh
index 374b21a..4bb96e8 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.dataint.sh
index 1685b14..88077a5 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.limits.sh
index 2555091..f0f015f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.mt.sh
index f0ee0bf..40de37c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.performance.sh
index 63e1e87..7b124ea 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.scalability.sh
index 35cbfcc..a3a9bac 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.sh
index 4b8cf5b..01ebda5 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE `expr $GLOBALTIMEOUT \* 1000` `expr $GLOBALTIMEOUT \* 1000`" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` `expr $GLOBALTIMEOUT \* 1000` `expr $GLOBALTIMEOUT \* 1000`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.stress.sh
index a4adc14..dd552b4 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_broadcast_exp.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_broadcast_exp.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_broadcast_exp"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE `expr $GLOBALTIMEOUT \* 1000` `expr $GLOBALTIMEOUT \* 1000` $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` `expr $GLOBALTIMEOUT \* 1000` `expr $GLOBALTIMEOUT \* 1000` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.basic.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.basic.sh
index d362aaf..dbd848b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.basic.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.basic.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -94,7 +94,7 @@
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 		#echo "$REMOTESHELL $CLIENTUSER@$CLIENTIP $TESTCLIENT $SERVERIP $PROGNUMBASE"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -105,7 +105,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.complex.sh
index 7e13f0b..bb0def3 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.dataint.sh
index d362d06..fd721d7 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.mt.sh
index c3b49d1..75a529c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.performance.sh
index 99935bd..5e997e8 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.scalability.sh
index e31443b..92d555c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.stress.sh
index 7784526..c18b123 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_call.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_call.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_call"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.basic.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.basic.sh
index 4d1fa77..8f337dc 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.basic.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.basic.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_reg.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_reg"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.mt.sh
index 7f6b2c1..ffaf00b 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_reg.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_reg"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.stress.sh
index 34ba16e..5884450 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_simple_rpc_reg.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_simple_rpc_reg.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_simple_rpc_reg"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.complex.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.complex.sh
index 32042eb..447a0a8 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.complex.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.complex.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_toplevel_clnt_call.complex"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="8-complex.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.dataint.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.dataint.sh
index 1972ed1..f2a2144 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.dataint.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.dataint.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_call.dataint"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="6-dataint.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.mt.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.mt.sh
index bea3702..eabfa9c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.mt.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.mt.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_call.mt"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="4-mt.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,18 +36,18 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	if [ ${result[0]} -ne 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -63,7 +63,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.performance.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.performance.sh
index 4ccfd92..2d4ce3a 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.performance.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.performance.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_call.performance"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="7-performance.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -58,7 +58,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 	# print into log file tests perf results
 	echo  -n "Average execution time : "${result[1]}" ms (">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.scalability.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.scalability.sh
index 8c45b5b..4008212 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.scalability.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.scalability.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_call.scalability"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="5-scalability"
 TESTCLIENTEXT="bin"
@@ -37,13 +37,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -59,9 +59,9 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
-	
+
 	for (( a=1; a < SCALINSTNUMBER * 2; a+=2 ))
 	do
 		echo -n "("${result[$a]}"; ">>$LOCLOGDIR/$TESTLOGFILE
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.sh
index 970cd42..c831b05 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_call.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -92,7 +92,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE" >>$TMPRESULTFILE&
@@ -103,7 +103,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a`" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.stress.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.stress.sh
index 107c21d..70c3666 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.stress.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_call.stress.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_call.stress"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_call"
 TESTCLIENTBIN="2-stress.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -38,13 +38,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -52,7 +52,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -68,7 +68,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
@@ -94,7 +94,7 @@
 	then
 		echo " - Mode one server to many client : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP $PROGNUMBASE $NBTESTPROCESS" >>$TMPRESULTFILE&
@@ -105,7 +105,7 @@
 	then
 		echo " - Mode many couple client/server : "$TESTINSTANCE" instance(s)"
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE ; a++))
 	do
 		$REMOTESHELL $CLIENTUSER@$CLIENTIP "$TESTCLIENT $SERVERIP `expr $PROGNUMBASE + $a` $NBTESTPROCESS" >>$TMPRESULTFILE&
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create.sh
index a5df92e..ae203be 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.limits.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.limits.sh
index 05c359d..f21f999 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.limits.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.limits.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_create_timed.limits"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_create_timed"
 TESTCLIENTBIN="3-limits.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.sh
index 73268d6..f33bf9c 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_create_timed.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_create_timed.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_create_timed"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_destroy.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_destroy.sh
index 7d97ada..674847f 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_destroy.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_clnt_destroy.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_clnt_destroy.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_clnt_destroy"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_create.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_create.sh
index 2141519..357eb84 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_create.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_create.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_svc_create.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_svc_create"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_destroy.sh b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_destroy.sh
index 743dbcb..0bfd673 100755
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_destroy.sh
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/scripts/tirpc_toplevel_svc_destroy.sh
@@ -15,7 +15,7 @@
 # test information
 TESTNAME="TIRPC_top-level_svc_destroy.basic"
 TESTVERS="1.0"
-# test binaries, used to call 
+# test binaries, used to call
 TESTCLIENTPATH="rpc_suite/tirpc/tirpc_toplevel_svc_destroy"
 TESTCLIENTBIN="1-basic.bin"
 TESTCLIENT=$CLIENTTSTPACKDIR/$TESTCLIENTPATH/$TESTCLIENTBIN
@@ -36,13 +36,13 @@
 {
 	# default : test failed
 	r_value=1
-	
+
 	# if result table is empty last test crashes (segment fault), so return must be "failed"
 	if [ ${#result[*]} -eq 0 ]
 	then
 		return
 	fi
-	
+
 	for ((a=0; a < TESTINSTANCE-1 ; a++))
 	do
 		if [ ${result[$a]} -ne ${result[`expr $a + 1`]} ]
@@ -50,7 +50,7 @@
 			return
 		fi
 	done
-	
+
 	# if all test instances return same result return the first element, note that test succeeds if value is 0
 	r_value=${result[0]}
 }
@@ -66,7 +66,7 @@
 	4)r_valueTxt="SKIP";;
 	5)r_valueTxt="UNTESTED";;
 	esac
-	
+
 	echo $TESTCLIENTPATH"/"$( echo $TESTCLIENTBIN | cut -d . -f1 )": execution: "$r_valueTxt>>$LOCLOGDIR/$TESTLOGFILE
 }
 
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/cleaner.c.src b/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/cleaner.c.src
index 9fa6ade..00f8244 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/cleaner.c.src
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/tests_pack/cleaner.c.src
@@ -23,7 +23,7 @@
 * History:
 * Created by: Cyril Lacabanne (Cyril.Lacabanne@bull.net)
 *
-*/ 
+*/
 
 #include <stdio.h>
 #include <tirpc/netconfig.h>
@@ -37,7 +37,7 @@
 //Standard define
 #define VERSNUM 1
 
-int main(int argn, char *argc[]) 
+int main(int argn, char *argc[])
 {
 	//Server parameter is : argc[1] : Server Program Number
 	int progNum = atoi((char *)argc[1]);
diff --git a/testcases/network/rpc/rpc-tirpc-full-test-suite/tsLogParser/rpc_ts.mod.php b/testcases/network/rpc/rpc-tirpc-full-test-suite/tsLogParser/rpc_ts.mod.php
index b03c83c..48a579e 100644
--- a/testcases/network/rpc/rpc-tirpc-full-test-suite/tsLogParser/rpc_ts.mod.php
+++ b/testcases/network/rpc/rpc-tirpc-full-test-suite/tsLogParser/rpc_ts.mod.php
@@ -3,7 +3,7 @@
  * Copyright (c) 2007, Bull S.A..  All rights reserved.
  * Module created by: Cyril Lacabanne
  * Based on OPTS Module from Sebastien Decugis
- 
+
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of version 2 of the GNU General Public License as
  * published by the Free Software Foundation.
@@ -19,12 +19,12 @@
 
  /* This module is for use with the Linux RPC & TI-RPC Test Suite.
    Based on code from earlier TSLogParser releases. */
-   
-   
+
+
 class textUtils {
 /*
   This function return a number corresponding to test name :
-  
+
   test name          value returned
   basic				1
   stress			2
@@ -34,11 +34,11 @@
   dataint			6
   perf				7
   complex			8
-  
+
   if value return is 0 : testname is wrong
 */
 	function testName_ToInt($testname)
-	{		
+	{
 		if ($testname == "basic")
 		{
 			return (1);
@@ -74,15 +74,15 @@
 		return (0);/**/
 	}
 }
-   
+
 
 /* The following class contains the routines for the XML parser used later */
 class rpc_ts_xml_routines {
-	
+
 	var $assertion;
 	var $xml_parser;
 	var $debug=0;
-	
+
 	/* The functions below are used within the XML parser -- see PHP doc for more info */
 	function startElement($parser, $name, $attrs)
 	{
@@ -94,7 +94,7 @@
 			$this->assertion[$attrs["ID"]]="";
 		}
 	}
-	
+
 	function endElement($parser, $name)
 	{
 		if ($this->debug)
@@ -102,7 +102,7 @@
 		if ($name == "ASSERTION")
 			$this->assertion["cur"]=-1;
 	}
-	
+
 	function characterData($parser, $data)
 	{
 		if ($this->debug)
@@ -110,18 +110,18 @@
 		if (($this->assertion["cur"] != -1) && (trim($data)))
 			$this->assertion[$this->assertion["cur"]] .= $data."\n";
 	}
-	
+
 	/* This function is called for each assertions.xml file */
 	function parse_assertions($file)
 	{
 		/* Open the file for reading */
 		if ($this->debug)
 			echo "Opening <i>$file</i>\n";
-		if (!($fp = fopen($file, "r"))) 
+		if (!($fp = fopen($file, "r")))
 		{
 		   die("could not open XML input");
 		}
-		
+
 		/* Create the XML parser */
 		$this->assertion = array("cur"=>-1);
 		$this->xml_parser = xml_parser_create();
@@ -129,7 +129,7 @@
 		xml_parser_set_option($this->xml_parser, XML_OPTION_CASE_FOLDING, true);
 		xml_set_element_handler($this->xml_parser, "startElement", "endElement");
 		xml_set_character_data_handler($this->xml_parser, "characterData");
-		
+
 		/* Parse the file */
 		while ($data = fread($fp, 4096)) {
 		   if ($this->debug)
@@ -140,11 +140,11 @@
 				   xml_get_current_line_number($this->xml_parser)));
 		   }
 		}
-		
+
 		/* Clean up the XML parser */
 		xml_parser_free($this->xml_parser);
 		unset($this->assertion["cur"]);
-		
+
 		/* return */
 		return $this->assertion;
 	}
@@ -154,7 +154,7 @@
 /*
  module_info will return an HTML-formated text (enclosed in <p> and </p> tags)
   describing the module and the testsuite it supports.
-  All information related to the module (version, known bugs, ...) are suitable 
+  All information related to the module (version, known bugs, ...) are suitable
   for this function (think of it as the only documentation for the module).
 */
 	function module_info($what="")
@@ -162,51 +162,51 @@
 		$urlInfo = "http://"."/";
 		$moduleVers = "0.3 BETA";
 		$moduleDate = "2007-05-09";/**/
-		
+
 		$title = "<b>Linux RPC & TI-RPC</b> parser module for <b>TSLogParser</b>";
-		
+
 		$text = "<p>$title</p>\n";
 		$text.= "<p>Release: <b>".$moduleVers."</b> ".$moduleDate."</p>\n";
 		$text.= "<p>History: \n";
 		$text.= "<ul>\n<li>This is first stable release of that module\n";
 		$text.= "</li></ul></p>\n";
 		$text.= "<p>See the <a href='".$urlInfo."'>homepage</a> for more information.</p>\n";
-		
+
 		if ($what == "title")
 			return $title;
 
 		return $text;
 	}
-	
-/*	
+
+/*
  TS_parse will check for the directory TS_path and analyse its content.
   In case a correct testsuite structure is found, the testsuite is parsed
   and put into the database with name and description as provided.
   The return value is $true if success and $false otherwise.
-*/	
+*/
 	function TS_parse(&$parent, $TS_name, $TS_description, $path)
 	{
 		if ( $parent->debug )
 			echo "rpc_ts->TS_parse($TS_name, $TS_description, $path)\n";
-			
+
 		$text_utils = new textUtils();
-		
+
 		echo "NAME : ".$TS_name."<br />";
-		
+
 		$xmlparser = new rpc_ts_xml_routines();
-		
+
 		$opts_tree=array();
-		
+
 		//$regexp_testcase="^([0-9]*)-(\w*)\.(bin|sh)$";
 		$regexp_testcase="^([0-9]*)-(.*)\.(bin)$";
-	
+
 		/* Check the directory contains a coherent structure */
 		if ((!is_dir($path)) || (!is_dir($path."/rpc_suite")))
 		{
 			$parent->last_error="Directory '$path' does not contain a valid source tree -- check your archive format.\n";
 			return FALSE;
 		}
-		
+
 		/* Open and browse the tree */
 		$dh  = opendir($path."/rpc_suite/");
 		if (!$dh)
@@ -214,12 +214,12 @@
 			$parent->last_error="Failed to open directory $path/rpc_suite/ for reading.\n";
 			return FALSE;
 		}
-		
-		while (($file = readdir($dh)) !== false) 
+
+		while (($file = readdir($dh)) !== false)
 		{
 			if (($file == ".") || ($file == "..") || ($file == "CVS"))
 				continue;
-		
+
 			if (is_dir($path."/rpc_suite/".$file))
 			{
 				$dh2 =  opendir($path."/rpc_suite/".$file);
@@ -228,14 +228,14 @@
 					$parent->last_error= "Failed to open directory $path/rpc_suite/$file for reading.\n";
 					return FALSE;
 				}
-				
-				while (($file2 = readdir($dh2)) !== false) 
+
+				while (($file2 = readdir($dh2)) !== false)
 				{
 					if (($file2 == ".") || ($file2 == "..") || ($file2 == "CVS"))
 						continue;
-					
+
 					$file2array=array($file2);
-					
+
 					/* Special case: headers sys/mman.h etc... */
 					if (($file == "definitions") && ($file2 == "sys"))
 					{
@@ -246,7 +246,7 @@
 							return FALSE;
 						}
 						$file2array=array();
-						while (($file2b = readdir($dh2b)) !== false) 
+						while (($file2b = readdir($dh2b)) !== false)
 						{
 							if (($file2b == ".") || ($file2b == "..") || ($file2b == "CVS"))
 								continue;
@@ -254,8 +254,8 @@
 						}
 						closedir($dh2b);
 					}
-			
-					
+
+
 					foreach ($file2array as $file2)
 					{
 						if (is_dir($path."/rpc_suite/".$file."/".$file2))
@@ -266,29 +266,29 @@
 								$parent->last_error= "Failed to open directory $path/rpc_suite/$file/$file2 for reading.\n";
 								return FALSE;
 							}
-							
+
 							$assertion_file = 0;
-							
-							while (($file3 = readdir($dh3)) !== false) 
+
+							while (($file3 = readdir($dh3)) !== false)
 							{
 								if (($file3 == ".") || ($file3 == "..") || ($file3 == "CVS"))
 									continue;
-								
+
 								/* We're looking for "assertions.xml" files */
 								if ($file3 == "assertions.xml")
 								{
 									$assertion_file = 1;
 									continue;
 								}
-								
+
 								/* We also keep track of every testcase file */
 								if (ereg($regexp_testcase, $file3, $regs))
 								{
 									$num = $text_utils->testName_ToInt($regs[2]);
 									$opts_tree[$file][$file2]["testcase"][$regs[1]][$num]=$regs[1]."-".$regs[2].".".$regs[3];
 								}
-								
-								/* Last but not least, we want the speculative tests in the database 
+
+								/* Last but not least, we want the speculative tests in the database
 								if ($file3 == "speculative")
 								{
 									$dh4 = opendir($path."/rpc_suite/".$file."/".$file2."/".$file3);
@@ -297,7 +297,7 @@
 										$parent->last_error= "Failed to open directory $path/rpc_suite/$file/$file2/speculative for reading.\n";
 										return FALSE;
 									}
-									while (($file4 = readdir($dh4)) !== false) 
+									while (($file4 = readdir($dh4)) !== false)
 									{
 										if (($file4 == ".") || ($file4 == "..") || ($file4 == "CVS"))
 											continue;
@@ -308,31 +308,31 @@
 								}*/
 							}
 							closedir($dh3);
-							
+
 							/* We now parse the assertions */
 							if ($assertion_file)
 							{
 								$opts_tree[$file][$file2]["assertions"]=$xmlparser->parse_assertions($path."/rpc_suite/".$file."/".$file2."/assertions.xml");
 							}
-						}	
-					}	
+						}
+					}
 				}
 				closedir ($dh2);
-			}	
+			}
 		}
 		closedir($dh);
-		
+
 		/* We've parsed the whole tree */
 		if ($parent->debug > 1)
 			print_r($opts_tree);
-		
+
 		/* The database shall be initialized here */
 		if (!is_db_init())
 		{
 			$parent->last_error="Database was not initialized\n";
 			return FALSE;
 		}
-		
+
 		/* Check no release with the same name already exist */
 		$releases=query_version($TS_name, 1);
 		if ($releases)
@@ -341,7 +341,7 @@
 				"<i>".stringFromDB($releases[$TS_name]["ver_comment"])."</i>\n";
 			return FALSE;
 		}
-		
+
 		/* Now, compare the $opts_tree with the $current_asserts and build up the list of assertions
 		   to be added to the database.*/
 
@@ -360,10 +360,10 @@
 					$missing_routines[]=$routine;
 			}
 		}
-		
+
 		if ($parent->debug > 1)
 			print_r($missing_routines);
-		
+
 		/* If any routine is missing, it must be added previously to further processing */
 		if ($missing_routines)
 		{
@@ -385,11 +385,11 @@
 			echo "Done. <b>$counter</b> routine have been added.\n\n";
 			$current_routines=query_routines();
 		}
-		
+
 		$current_asserts=query_all_asserts();
 		$missing_assertions=array();
-		
-		
+
+
 		/* browse the new release assertions */
 		foreach ($opts_tree as $domain)
 		{
@@ -403,11 +403,11 @@
 						$parent->last_error="Internal script error: routine $routine was not added in 1st pass";
 						return FALSE;
 					}
-					
+
 					/* We now schedule addition of the assertions for this routine, as none was already defined */
 					foreach ($asserts["assertions"] as $id => $assert)
 					{
-						
+
 						$missing_assertions[]=array(
 							"routine"=>$routine,
 							"assert"=>$assert,
@@ -430,7 +430,7 @@
 		}
 		if ($parent->debug > 1)
 			print_r($missing_assertions);
-		
+
 		/* If any assertion is missing, it must be added previously to further processing */
 		if ($missing_assertions)
 		{
@@ -452,7 +452,7 @@
 			echo "Done. <b>$counter</b> assertions have been added.\n\n";
 			$current_asserts=query_all_asserts();
 		}
-		
+
 		/* OK, we can now create the new release of OPTS in the database */
 /**** MODIF ****/
 		$sql="INSERT INTO opts_versions (ver_name, ver_comment, ver_module) "
@@ -466,10 +466,10 @@
 			$parent->last_error= "Failed to insert new version in the database\n";
 			return FALSE;
 		}
-		
+
 		/* We retrieve the new release uniqueID */
 		$releases=query_version($TS_name, 1);
-		
+
 		if (!$releases)
 		{
 			$parent->last_error= "Internal error: the new OPTS version was not created\n";
@@ -477,7 +477,7 @@
 		}
 		if ($parent->debug > 1)
 			print_r($current_asserts);
-		
+
 		/* We can create the full release description */
 		$release_description = array();
 		$missing_test=0;
@@ -487,11 +487,11 @@
 			{
 				if (!isset($current_asserts[$routine]) || !isset($current_routines[$routine]))
 				{
-					
+
 					$parent->last_error= "Internal script error: routine $routine was not added in 1st pass";
 					return FALSE;
 				}
-					
+
 				/* We now schedule addition of the assertions for this routine, as none was already defined */
 				foreach ($asserts["assertions"] as $id => $assert)
 				{
@@ -515,20 +515,20 @@
 						echo "<b>Warning</b>, $routine's test $id-* has no matching assertions and therefore will be ignored.\n";
 			}
 		}
-		
+
 		if ($missing_test)
 			echo "\n<i>Info:</i> $missing_test assertions are not tested.\n\n";
-		
+
 		/* We've enough information now; we can create the release */
 		reset($releases);
 		$rlstmp=current($releases);
 		$release_id=$rlstmp["ver_id"];
-		
+
 		$counter=0;
-		
+
 		foreach ($release_description as $testcase)
 		{
-/**** MODIF ****/			
+/**** MODIF ****/
 			$sql = "INSERT INTO opts_version_descriptions "
 				." (descr_version, descr_assert, descr_num_assert, descr_num_test, descr_info)"
 				." VALUES (".$release_id.", "
@@ -543,20 +543,20 @@
 			else
 				echo "Failed to execute: ".htmlentities($sql)."\n";
 		}
-		
+
 		echo "<b><i>$counter testcases have been added</i></b>\n\n";
-		echo "Process terminated.\n"; 
-		
+		echo "Process terminated.\n";
+
 		return TRUE;
 	}
-	
-	
+
+
 	function TS_delete(&$parent, $TS_id)
 	{
-		
+
 		if ( $parent->debug )
 			echo "opts->TS_delete($TS_id)\n";
-		
+
 		/* Check there is no run within this testsuite */
 /**** MODIF ****/
 		$sql = "SELECT * from opts_run_results, opts_version_descriptions"
@@ -570,7 +570,7 @@
 			$parent->last_error="The testsuite contains runs -- cannot be deleted.\n Delete the runs first.\n";
 			return FALSE;
 		}
-		
+
 		/* Check the testsuite is an OPTS one */
 /**** MODIF ****/
 		$sql = "SELECT ver_module from opts_versions"
@@ -588,23 +588,23 @@
 			$parent->last_error="The testsuite is not an RPC_TS -- cannot be deleted within the current module.\n";
 			return FALSE;
 		}
-		
+
 		/* Now, delete the testsuite description */
 /**** MODIF ****/
 		$sql = "DELETE from opts_version_descriptions"
 			." WHERE descr_version=".$TS_id;
-		
+
 		if ($parent->debug > 1)
 			echo htmlentities($sql)."<br>\n";
 		$tmp = db_execute_insert($sql);
 /**** MODIF ****/
 		echo "$tmp rows deleted from opts_version_descriptions<br>\n";
-		
+
 		/* and the testsuite name */
 /**** MODIF ****/
 		$sql = "DELETE from opts_versions"
 			." WHERE ver_id=".$TS_id;
-		
+
 		if ($parent->debug > 1)
 			echo htmlentities($sql)."<br>\n";
 		$tmp = db_execute_insert($sql);
@@ -615,20 +615,20 @@
 		}
 		if ($parent->debug > 1)
 			echo "$tmp rows deleted from opts_version<br>\n";
-		
+
 		return true;
 	}
-	
-	
+
+
 	function RUN_parse(&$parent, $RUN_name, $RUN_description, $TS_id, &$CONTENT)
 	{
 		if ( $parent->debug )
 			echo "opts->RUN_parse($RUN_name, $RUN_description, $TS_id, ...".strlen($CONTENT)."c...)\n";
-		
+
 		/* Check this TS id first */
 		$sql = "SELECT ver_id, ver_name, ver_comment, ver_module FROM opts_versions WHERE ver_id=$TS_id";
 		if ($parent->debug > 1)
-			echo htmlentities($sql)."<br>\n";		
+			echo htmlentities($sql)."<br>\n";
 		$release = db_execute_select($sql);
 		if (!$release)
 		{
@@ -640,12 +640,12 @@
 			$parent->last_error="This testsuite's ID is not of type Linux RPC & TIRPC Test Suite. Aborted.\n";
 			return false;
 		}
-		
-		
+
+
 		/* Check that run name is free */
 		$sql = "SELECT run_id, run_name, run_comments FROM opts_run WHERE run_name LIKE ".stringToDB($RUN_name);
 		if ($parent->debug > 1)
-			echo htmlentities($sql)."<br>\n";		
+			echo htmlentities($sql)."<br>\n";
 		$res = db_execute_select($sql);
 		if ($res)
 		{
@@ -654,10 +654,10 @@
 			$parent->last_error.="<i>".stringFromDB($elem["run_comments"])."</i>\n";
 			return false;
 		}
-		
+
 		/* The trick for parsing the logfile is matching with a perl regexp */
 		$log_data=array();
-		
+
 		$regexp = "/rpc_suite\/"
 			."\w+\/" /* definition, interface, ... */
 			."((sys\/)?" /* special case for headers <sys/...> */
@@ -668,22 +668,22 @@
 			."\s*(FAILED|PASS|SKIP|UNSUPPORTED|UNTESTED|HUNG|INTERRUPTED|UNRESOLVED)" /* status */
 			."\s*:*\s*/";
 		$num_match = 7; /* This is the number of grouping directives in this regexp */
-		
+
 		/* Actually parse the logfile */
 		$temp_array=preg_split($regexp, $CONTENT, -1, PREG_SPLIT_DELIM_CAPTURE);
-		
+
 		if ( $parent->debug > 4 )
 			print_r($temp_array);
-		
+
 		if (count($temp_array) % ($num_match+1) != 1)
 		{
 			$parent->last_error="Regexp match error.\nInvalid logfile format -- expecting rpc_ts.";
 			return false;
 		}
-		
+
 		// Declare a new test utility Class
 		$text_utils = new textUtils();
-		
+
 		/* See preg_split documentation for more information on the data here */
 		for ($idx=1; isset($temp_array[$idx]); $idx+=($num_match+1))
 		{
@@ -701,9 +701,9 @@
 		if ( $parent->debug > 1 )
 			print_r($log_data);
 		/* We're done with the file parsing. */
-		
-		/* Next step is to eliminate duplicates and match testcases with database definition */ 
-		
+
+		/* Next step is to eliminate duplicates and match testcases with database definition */
+
 		/* We'll need the routine list */
 		$routines=query_routines();
 		if (!$routines)
@@ -711,7 +711,7 @@
 			$parent->last_error="Failed to get routines list from database";
 			return false;
 		}
-		
+
 		/* We also need this testsuite complete definition */
 /**** MODIF ****/
 		$sql = "SELECT descr_id, assert_routine, descr_num_assert, descr_num_test"
@@ -719,7 +719,7 @@
 			." WHERE opts_version_descriptions.descr_assert=opts_assertions.assert_id"
 			." AND descr_version=$TS_id";
 		if ($parent->debug > 1)
-			echo htmlentities($sql)."<br>\n";		
+			echo htmlentities($sql)."<br>\n";
 		$opts_definition_tmp = db_execute_select($sql);
 		if (!$opts_definition_tmp)
 		{
@@ -736,7 +736,7 @@
 			    =$record["descr_id"];
 		unset($opts_definition_tmp);
 		//print_r($opts_definition);
-		
+
 		/* We're ready to proceed:
 		 * -> walk through the log file (analyzed)
 		 * -> foreach test, find the corresponding description ID
@@ -764,26 +764,26 @@
 		unset ($routines);
 		unset ($opts_definition);
 		unset ($log_data);
-		
+
 		echo "\n<b>".count($result)."</b> test results can be inserted in the results database.\n\n";
-		
+
 		/* Now we've got to add the new run name in the database and get its ID */
 /**** MODIF ****/
 		$sql = "INSERT INTO opts_run ( run_name, run_comments )"
 			." VALUES ( ".stringToDB($RUN_name).", ".stringToDB($RUN_description)." )";
 		if ($parent->debug > 1)
-			echo htmlentities($sql)."<br>\n";		
+			echo htmlentities($sql)."<br>\n";
 		$res = db_execute_insert($sql);
 		if (!$res)
 		{
 			$parent->last_error="Failed to insert new run name";
 			return false;
 		}
-		
+
 /**** MODIF ****/
 		$sql = "SELECT run_id, run_name, run_comments FROM opts_run WHERE run_name LIKE ".stringToDB($RUN_name);
 		if ($parent->debug > 1)
-			echo htmlentities($sql)."<br>\n";		
+			echo htmlentities($sql)."<br>\n";
 		$res = db_execute_select($sql);
 		if (!$res)
 		{
@@ -791,7 +791,7 @@
 			return false;
 		}
 		$run_id=$res[0]["run_id"];
-		
+
 		$counter=0;
 		foreach($result as $desc_id => $testdata)
 		{
@@ -800,7 +800,7 @@
 				." VALUES ( $run_id, $desc_id, ".stringToDB($testdata["status"]).", "
 				.stringToDB($testdata["log"])." )";
 			if ($parent->debug > 1)
-				echo htmlentities($sql)."<br>\n";		
+				echo htmlentities($sql)."<br>\n";
 			if (db_execute_insert($sql))
 				$counter++;
 			else
@@ -810,13 +810,13 @@
 
 		return true;
 	}
-	
-	
+
+
 	function RUN_delete(&$parent, $RUN_id)
 	{
 		if ( $parent->debug )
 			echo "opts->RUN_delete($RUN_id)\n";
-		
+
 		/* Check this run belongs to an OPTS testsuite */
 /**** MODIF ****/
 		$sql = "SELECT ver_module FROM opts_versions, opts_version_descriptions, opts_run_results"
@@ -836,7 +836,7 @@
 			$parent->last_error="The testsuite is not an rpc_ts -- cannot be deleted within the current module.\n";
 			return FALSE;
 		}
-		
+
 		/* We can delete everything related to this run */
 /**** MODIF ****/
 		$sql = "DELETE from opts_run_results "
@@ -851,7 +851,7 @@
 		}
 		if ($parent->debug > 1)
 			echo "$tmp rows deleted from opts_run_results<br>\n";
-		
+
 /**** MODIF ****/
 		$sql = "DELETE from opts_run "
 		      ."WHERE run_id=$RUN_id";
@@ -865,7 +865,7 @@
 		}
 		if ($parent->debug > 1)
 			echo "$tmp row deleted from opts_run<br>\n";
-		
+
 		return true;
 	}
 }
diff --git a/testcases/network/sctp/include/netinet/sctp.h b/testcases/network/sctp/include/netinet/sctp.h
index e4edbea..e30bfdf 100644
--- a/testcases/network/sctp/include/netinet/sctp.h
+++ b/testcases/network/sctp/include/netinet/sctp.h
@@ -3,7 +3,7 @@
  * sctp.h
  *
  * Distributed under the terms of the LGPL v2.1 as described in
- *    http://www.gnu.org/copyleft/lesser.txt 
+ *    http://www.gnu.org/copyleft/lesser.txt
  *
  * This file is part of the user library that offers support for the
  * SCTP kernel reference Implementation. The main purpose of this
@@ -72,11 +72,11 @@
 #define SCTP_NODELAY	SCTP_NODELAY
 	SCTP_AUTOCLOSE,
 #define SCTP_AUTOCLOSE SCTP_AUTOCLOSE
-	SCTP_SET_PEER_PRIMARY_ADDR, 
+	SCTP_SET_PEER_PRIMARY_ADDR,
 #define SCTP_SET_PEER_PRIMARY_ADDR SCTP_SET_PEER_PRIMARY_ADDR
 	SCTP_PRIMARY_ADDR,
 #define SCTP_PRIMARY_ADDR SCTP_PRIMARY_ADDR
-	SCTP_ADAPTION_LAYER,      
+	SCTP_ADAPTION_LAYER,
 #define SCTP_ADAPTION_LAYER SCTP_ADAPTION_LAYER
 	SCTP_DISABLE_FRAGMENTS,
 #define SCTP_DISABLE_FRAGMENTS SCTP_DISABLE_FRAGMENTS
@@ -95,7 +95,7 @@
 	SCTP_GET_PEER_ADDR_INFO,
 #define SCTP_GET_PEER_ADDR_INFO SCTP_GET_PEER_ADDR_INFO
 
-	/* Internal Socket Options. Some of the sctp library functions are 
+	/* Internal Socket Options. Some of the sctp library functions are
 	 * implemented using these socket options.
 	 */
 	SCTP_SOCKOPT_BINDX_ADD = 100,/* BINDX requests for adding addresses. */
@@ -175,7 +175,7 @@
 	SCTP_UNORDERED = 1,  /* Send/receive message unordered. */
 	SCTP_ADDR_OVER = 2,  /* Override the primary destination. */
 	SCTP_ABORT=4,        /* Send an ABORT message to the peer. */
-	SCTP_EOF=MSG_FIN,    /* Initiate graceful shutdown process. */ 
+	SCTP_EOF=MSG_FIN,    /* Initiate graceful shutdown process. */
 };
 
 
@@ -434,7 +434,7 @@
  *
  *   The protocol parameters used to initialize and bound retransmission
  *   timeout (RTO) are tunable.  See [SCTP] for more information on how
- *   these parameters are used in RTO calculation. 
+ *   these parameters are used in RTO calculation.
  */
 struct sctp_rtoinfo {
 	sctp_assoc_t	srto_assoc_id;
@@ -571,10 +571,10 @@
 };
 
 /*
- * 8.3, 8.5 get all peer/local addresses in an association. 
+ * 8.3, 8.5 get all peer/local addresses in an association.
  * This parameter struct is used by SCTP_GET_PEER_ADDRS and
  * SCTP_GET_LOCAL_ADDRS socket options used internally to implement
- * sctp_getpaddrs() and sctp_getladdrs() API. 
+ * sctp_getpaddrs() and sctp_getladdrs() API.
  */
 struct sctp_getaddrs_old {
 	sctp_assoc_t            assoc_id;
diff --git a/testcases/network/sctp/testlib/sctputil.h b/testcases/network/sctp/testlib/sctputil.h
index 487dbe9..4178552 100644
--- a/testcases/network/sctp/testlib/sctputil.h
+++ b/testcases/network/sctp/testlib/sctputil.h
@@ -5,7 +5,7 @@
  * Copyright (c) 2001 Intel Corp.
  * Copyright (c) 2001 Nokia, Inc.
  * Copyright (c) 2001 La Monte H.P. Yarroll
- * 
+ *
  * The SCTP reference implementation is free software;
  * you can redistribute it and/or modify it under the terms of
  * the GNU General Public License as published by
@@ -56,9 +56,9 @@
 #include <string.h>
 
 typedef union {
-	struct sockaddr_in v4;	
+	struct sockaddr_in v4;
 	struct sockaddr_in6 v6;
-	struct sockaddr sa;	
+	struct sockaddr sa;
 } sockaddr_storage_t;
 
 
@@ -68,7 +68,7 @@
 #ifdef PROT_SOCK
 #define SCTP_TESTPORT_1 PROT_SOCK
 #else
-#define SCTP_TESTPORT_1 1024 
+#define SCTP_TESTPORT_1 1024
 #endif
 #define SCTP_TESTPORT_2 (SCTP_TESTPORT_1+1)
 
@@ -282,18 +282,18 @@
 	if (len != error)
 		tst_brkm(TBROK, NULL, "sctp_sendmsg: error:%d errno:%d",
 			 error, errno);
-	return error;			
+	return error;
 }
 
 static inline int test_sctp_send(int s, const void *msg, size_t len,
-				 const struct sctp_sndrcvinfo *sinfo, 
+				 const struct sctp_sndrcvinfo *sinfo,
 				 int flags)
 {
 	int error = sctp_send(s, msg, len, sinfo, flags);
 	if (len != error)
 		tst_brkm(TBROK, NULL, "sctp_send: error:%d errno:%d",
 			 error, errno);
-	return error;			
+	return error;
 }
 
 static inline int test_sctp_recvmsg(int sk, void *msg, size_t len,
@@ -304,7 +304,7 @@
 	int error = sctp_recvmsg(sk, msg, len, from, fromlen, sinfo, msg_flags);
 	if (-1 == error)
 		tst_brkm(TBROK, NULL, "sctp_recvmsg: %s", strerror(errno));
-	return error;			
+	return error;
 }
 
 static inline void *test_malloc(size_t size)
diff --git a/testcases/network/sockets/ltpSockets.sh b/testcases/network/sockets/ltpSockets.sh
index dfed18c..48fa8c6 100755
--- a/testcases/network/sockets/ltpSockets.sh
+++ b/testcases/network/sockets/ltpSockets.sh
@@ -1,26 +1,26 @@
 #!/bin/sh
-# This script will start the socket server and then run the 
+# This script will start the socket server and then run the
 # sockets clients to execute the tests. If the kernel isn't
 # setup for multiCast server, then the other tests will continue without multiCast.
-# 03/28/03 mridge@us.ibm.com new tests 
+# 03/28/03 mridge@us.ibm.com new tests
 
 cd `dirname $0`
 export LTPROOT=${PWD}
 export TMPBASE="/tmp"
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -h hostname2 ] [ -d testdata ]
-             
+
 	defaults:
 	hostname1=$hostname1
 	testdata=$testdata
 	ltproot=$LTPROOT
 	tmpdir=$TMPBASE
 
-	example: ${0##*/} -h myhostname  -d "my test data to be sent" 
+	example: ${0##*/} -h myhostname  -d "my test data to be sent"
 
 
 	END
@@ -31,7 +31,7 @@
 do      case $arg in
 		h)	hostname1=$OPTARG;;
                 d)      testdata=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
diff --git a/testcases/network/stress/README b/testcases/network/stress/README
index ef90cc4..fbfbc1c 100644
--- a/testcases/network/stress/README
+++ b/testcases/network/stress/README
@@ -4,10 +4,10 @@
 Physical Topology
 =================
 
-These tests require two machines. And each machine needs to have 2 or more 
+These tests require two machines. And each machine needs to have 2 or more
 interfaces. These tests assume that they run on the following topology.
 
-                              Control Link 
+                              Control Link
                 +------------------------------------+
                 |                                    |
         +-------+-------+                    +-------+-------+
@@ -30,7 +30,7 @@
 Currently, different NIC testcases for ICMP/UDP/TCP/Multicast require plural
 test links.  Other testcases uses only 1 test link. (Test Link 0)
 
-  
+
 
 Installation
 ============
@@ -44,7 +44,7 @@
 Execution
 =========
 
-To run the network stress testcases, networkstress.sh is prepared in 
+To run the network stress testcases, networkstress.sh is prepared in
 ltp-yyyymmdd/testscripts directory. Some envrionment variables have to be
 set for the stress testcases. Please fill the environment variable in
 networkstress.sh.
@@ -68,7 +68,7 @@
   network_stress.multicast :  24 kinds  24 tests
   network_stress.appl      :  22 kinds  22 tests
 
-Running the tests using network_stress.whole takes about 20 days. Therefore, 
+Running the tests using network_stress.whole takes about 20 days. Therefore,
 network_stress.selected is prepared. However, it takes 3 days using
 network_stress.selected. If you reduce the time, you should choose the
 testcase and prepare your own command lists. The detail of testcases
@@ -156,7 +156,7 @@
 
  o FTP_UPLOAD_DIR (for ftp stress test)
    The directory which the ftp server will store the uploaded files.
-  
+
  o FTP_UPLOAD_URLDIR (for ftp stress test)
    The directory part of URL where the client specifys to upload.
    Namely, when the URL to upload is ftp://ltp.sourceforge.net/upload ,
@@ -208,7 +208,7 @@
    This value affect interface tests of changing mtu.
 
  o IF_UPDOWN_TIMES	(for interface up/down test)
-   The up/down times of the interface tests. To up/down an interface takes 
+   The up/down times of the interface tests. To up/down an interface takes
    time. If you specify 10,000 into this value, it takes 6 hours.
    This value affect interface tests of upping/down the interface.
 
diff --git a/testcases/network/stress/broken_ip/00_Descriptions.txt b/testcases/network/stress/broken_ip/00_Descriptions.txt
index 91500e1..af686b6 100644
--- a/testcases/network/stress/broken_ip/00_Descriptions.txt
+++ b/testcases/network/stress/broken_ip/00_Descriptions.txt
@@ -1,11 +1,11 @@
 broken_ip4-version01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in version field
-	
+
 broken_ip4-ihl01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the header length field
-	
+
 broken_ip4-totlen01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the total length field
@@ -17,11 +17,11 @@
 broken_ip4-protcol01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the protocol field
-	
+
 broken_ip4-checksum01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets that have wrong value in the checksum field
-	
+
 broken_ip4-dstaddr01
 	Verify that the kernel is not crashed with receiving a large number of
 	IPv4 packets whose destination address is wrong
diff --git a/testcases/network/stress/broken_ip/broken_ip4-checksum b/testcases/network/stress/broken_ip/broken_ip4-checksum
index 1e95a42..bd2151a 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-checksum
+++ b/testcases/network/stress/broken_ip/broken_ip4-checksum
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip4-dstaddr b/testcases/network/stress/broken_ip/broken_ip4-dstaddr
index 30917ba..4497e72 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-dstaddr
+++ b/testcases/network/stress/broken_ip/broken_ip4-dstaddr
@@ -93,7 +93,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip4-fragment b/testcases/network/stress/broken_ip/broken_ip4-fragment
index 549911b..a4422da 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-fragment
+++ b/testcases/network/stress/broken_ip/broken_ip4-fragment
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip4-ihl b/testcases/network/stress/broken_ip/broken_ip4-ihl
index 14b56c0..c02ea84 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-ihl
+++ b/testcases/network/stress/broken_ip/broken_ip4-ihl
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip4-protcol b/testcases/network/stress/broken_ip/broken_ip4-protcol
index fff71cc..f28724d 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-protcol
+++ b/testcases/network/stress/broken_ip/broken_ip4-protcol
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip4-totlen b/testcases/network/stress/broken_ip/broken_ip4-totlen
index fecec90..684bdb0 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-totlen
+++ b/testcases/network/stress/broken_ip/broken_ip4-totlen
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip4-version b/testcases/network/stress/broken_ip/broken_ip4-version
index 3ce0417..a0d0dde 100644
--- a/testcases/network/stress/broken_ip/broken_ip4-version
+++ b/testcases/network/stress/broken_ip/broken_ip4-version
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip6-dstaddr b/testcases/network/stress/broken_ip/broken_ip6-dstaddr
index a681f46..e3f8cd4 100644
--- a/testcases/network/stress/broken_ip/broken_ip6-dstaddr
+++ b/testcases/network/stress/broken_ip/broken_ip6-dstaddr
@@ -93,7 +93,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip6-nexthdr b/testcases/network/stress/broken_ip/broken_ip6-nexthdr
index 307a65d..128afcc 100644
--- a/testcases/network/stress/broken_ip/broken_ip6-nexthdr
+++ b/testcases/network/stress/broken_ip/broken_ip6-nexthdr
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip6-plen b/testcases/network/stress/broken_ip/broken_ip6-plen
index 7d71f71..48d6075 100644
--- a/testcases/network/stress/broken_ip/broken_ip6-plen
+++ b/testcases/network/stress/broken_ip/broken_ip6-plen
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/broken_ip/broken_ip6-version b/testcases/network/stress/broken_ip/broken_ip6-version
index 809dadc..50c5298 100644
--- a/testcases/network/stress/broken_ip/broken_ip6-version
+++ b/testcases/network/stress/broken_ip/broken_ip6-version
@@ -92,7 +92,7 @@
 tst_resm TINFO "- Test duration is $NS_DURATION [sec]"
 
 # Get the MAC address of the interface at the local host
-field=`expr $LINK_NUM + 1` 
+field=`expr $LINK_NUM + 1`
 lhost_hwaddr=`echo $LHOST_HWADDRS | cut -d ' ' -f $field`
 if [ x${lhost_hwaddr} = x ]; then
     tst_resm TBROK "Failed to get the MAC address name at the local host"
diff --git a/testcases/network/stress/dns/00_Descriptions.txt b/testcases/network/stress/dns/00_Descriptions.txt
index 21173dc..36f1232 100644
--- a/testcases/network/stress/dns/00_Descriptions.txt
+++ b/testcases/network/stress/dns/00_Descriptions.txt
@@ -1,7 +1,7 @@
 dns4-stress01
 	Verify the dns server or the kernel is not down after handling
 	many name lookup querys
-	
+
 dns4-stress02
 	Verify the dns server or the kernel is not down after handling
 	many reverse lookup querys
diff --git a/testcases/network/stress/ftp/00_Descriptions.txt b/testcases/network/stress/ftp/00_Descriptions.txt
index de2a724..b86a58a 100644
--- a/testcases/network/stress/ftp/00_Descriptions.txt
+++ b/testcases/network/stress/ftp/00_Descriptions.txt
@@ -14,7 +14,7 @@
 	Verify the ftp server or the kernel is not down after many ftp
 	clients request data over IPv6 asynchronously for a long time
 
-	
+
 ftp4-upload-stress01
 	Verify the ftp server or the kernel is not down after a ftp client
 	uploads a large data via IPv4
@@ -22,7 +22,7 @@
 ftp4-upload-stress02
 	Verify the ftp server or the kernel is not down after many ftp clients
 	uploads data over IPv4 asynchronously for a long time
-	
+
 ftp6-upload-stress01
 	Verify the ftp server or the kernel is not down after a ftp client
 	uploads a large data via IPv6
diff --git a/testcases/network/stress/ftp/ftp4-download-stress b/testcases/network/stress/ftp/ftp4-download-stress
index 9f8d169..d543d4c 100644
--- a/testcases/network/stress/ftp/ftp4-download-stress
+++ b/testcases/network/stress/ftp/ftp4-download-stress
@@ -253,7 +253,7 @@
     done
 
     rm -f $FTP_DOWNLOAD_DIR/$TESTFILE
-    
+
     if $not_run_rmtscript ; then
 	tst_resm TBROK "Failed to run the test script at the remote host"
 	rm -f $message_file
diff --git a/testcases/network/stress/http/http4-stress b/testcases/network/stress/http/http4-stress
index b750c6f..f4808c6 100644
--- a/testcases/network/stress/http/http4-stress
+++ b/testcases/network/stress/http/http4-stress
@@ -115,7 +115,7 @@
 
     # Make sure to delete the temporary files
     rm -f $message_file
-    
+
     # Initialize the interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/interface/00_Descriptions.txt b/testcases/network/stress/interface/00_Descriptions.txt
index 7f2b021..abf1765 100644
--- a/testcases/network/stress/interface/00_Descriptions.txt
+++ b/testcases/network/stress/interface/00_Descriptions.txt
@@ -15,7 +15,7 @@
 if4-alias-adddel01
 	Verify the IPv4 connectivity is not broken when 'ifconfig add' adds,
 	then deletes an IPv4 alias many times
-	
+
 if4-alias-adddel02
 	Verify the IPv4 connectivity is not broken when 'ifconfig ethn:n' adds,
 	then deletes an IPv4 alias many times
@@ -54,7 +54,7 @@
 if4-route-addlarge02
 	Verify the IPv4 connectivity is not broken when the ip command adds
 	many IPv4 routes
-	
+
 
 if4-mtu-change01
 	Verify the IPv4 connectivity is not broken when ifconfig command
@@ -114,7 +114,7 @@
 if6-mtu-change01
 	Verify the IPv6 connectivity is not broken when the ifconfig command
 	changes MTU many times every 5 seconds
-	
+
 if6-mtu-change02
 	Verify the IPv6 connectivity is not broken when the ip command changes
 	MTU many times every 5 seconds
diff --git a/testcases/network/stress/interface/if6-route-adddel b/testcases/network/stress/interface/if6-route-adddel
index 2b6f0d1..d39d337 100644
--- a/testcases/network/stress/interface/if6-route-adddel
+++ b/testcases/network/stress/interface/if6-route-adddel
@@ -96,7 +96,7 @@
 # SET VALUES:
 #   rhost_ipv6addr	- IPv6 Address of the remote host
 #   lhost_ifname	- Interface name of the localhost
-#   rhost_ifname        - Interface name of the local host 
+#   rhost_ifname        - Interface name of the local host
 #
 #-----------------------------------------------------------------------
 do_setup()
diff --git a/testcases/network/stress/multicast/grp-operation/mcast4-grpope01 b/testcases/network/stress/multicast/grp-operation/mcast4-grpope01
index fa3223b..991d705 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast4-grpope01
+++ b/testcases/network/stress/multicast/grp-operation/mcast4-grpope01
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/grp-operation/mcast4-grpope02 b/testcases/network/stress/multicast/grp-operation/mcast4-grpope02
index b69f541..67c7bc5 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast4-grpope02
+++ b/testcases/network/stress/multicast/grp-operation/mcast4-grpope02
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/grp-operation/mcast4-grpope03 b/testcases/network/stress/multicast/grp-operation/mcast4-grpope03
index 6b43ec5..6a5b0fd 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast4-grpope03
+++ b/testcases/network/stress/multicast/grp-operation/mcast4-grpope03
@@ -93,7 +93,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/grp-operation/mcast4-grpope04 b/testcases/network/stress/multicast/grp-operation/mcast4-grpope04
index af7803b..2e0eb1a 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast4-grpope04
+++ b/testcases/network/stress/multicast/grp-operation/mcast4-grpope04
@@ -81,7 +81,7 @@
 MCAST_ADDR=224.10.10.1
 
 # Prefix of the filter souce adddress
-SOURCE_ADDR_PREFIX="10.10"	# 10.10.x.y 
+SOURCE_ADDR_PREFIX="10.10"	# 10.10.x.y
 
 
 #-----------------------------------------------------------------------
@@ -97,7 +97,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
@@ -205,7 +205,7 @@
     else
 	filter="exclude"
     fi
-    
+
     ns-mcast_join -f 4 -I $lhost_ifname -l $NS_TIMES -a $MCAST_ADDR -F $filter -s $source_addr &
     if [ $? -ne 0 ]; then
 	tst_resm TBROK "Failed to start multicast joining tool Please check the environment"
diff --git a/testcases/network/stress/multicast/grp-operation/mcast6-grpope01 b/testcases/network/stress/multicast/grp-operation/mcast6-grpope01
index 12c7d75..ea3458f 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast6-grpope01
+++ b/testcases/network/stress/multicast/grp-operation/mcast6-grpope01
@@ -87,7 +87,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/grp-operation/mcast6-grpope02 b/testcases/network/stress/multicast/grp-operation/mcast6-grpope02
index a360485..7fd402a 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast6-grpope02
+++ b/testcases/network/stress/multicast/grp-operation/mcast6-grpope02
@@ -87,7 +87,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
@@ -209,7 +209,7 @@
     ps auxw | grep -v grep | grep ns-mcast_join > /dev/null
     if [ $? -ne 0 ] ; then
 	break
-    fi 
+    fi
 done
 
 tst_resm TPASS "Test is finished successfully."
diff --git a/testcases/network/stress/multicast/grp-operation/mcast6-grpope03 b/testcases/network/stress/multicast/grp-operation/mcast6-grpope03
index f87a7a4..c676024 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast6-grpope03
+++ b/testcases/network/stress/multicast/grp-operation/mcast6-grpope03
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/grp-operation/mcast6-grpope04 b/testcases/network/stress/multicast/grp-operation/mcast6-grpope04
index 545be76..5834dd3 100644
--- a/testcases/network/stress/multicast/grp-operation/mcast6-grpope04
+++ b/testcases/network/stress/multicast/grp-operation/mcast6-grpope04
@@ -94,7 +94,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
@@ -201,7 +201,7 @@
     else
 	filter="exclude"
     fi
-    
+
     ns-mcast_join -f 6 -I $lhost_ifname -l $NS_TIMES -a $MCAST_ADDR -F $filter -s $source_addr &
     if [ $? -ne 0 ]; then
 	tst_resm TBROK "Failed to start multicast joining tool Please check the environment"
diff --git a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01 b/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
index 4da5597..535d0a6 100644
--- a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
+++ b/testcases/network/stress/multicast/packet-flood/mcast4-pktfld01
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_receiver >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-udpsender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
@@ -183,7 +183,7 @@
     tst_resm TBROK "No port is available."
     exit 1
 fi
-    
+
 # Run a receiver
 ns-mcast_receiver -f 4 -I $lhost_ifname -m $MCAST_ADDR -p $mcast_port -b
 if [ $? -ne 0 ]; then
diff --git a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02 b/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
index f34fb84..7e0118f 100644
--- a/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
+++ b/testcases/network/stress/multicast/packet-flood/mcast4-pktfld02
@@ -191,8 +191,8 @@
 
 while [ $mcastnum -lt $MCASTNUM_NORMAL ]; do
     # Define the multicast address
-    x=`expr $mcastnum \/ 254` 
-    y=`expr $mcastnum % 254 + 1` 
+    x=`expr $mcastnum \/ 254`
+    y=`expr $mcastnum % 254 + 1`
     if [ $x -gt 254 ]; then
 	tst_resm TINFO "The number of the connection is less than $mcastnum"
 	break
@@ -200,7 +200,7 @@
     mcast_addr=${MCAST_ADDR_PREFIX}.${x}.${y}
 
     # Run a receiver
-    mcast_port=`expr $mcast_port_top + $mcastnum` 
+    mcast_port=`expr $mcast_port_top + $mcastnum`
     ns-mcast_receiver -f 4 -I $lhost_ifname -m $mcast_addr -p $mcast_port -b
     if [ $? -ne 0 ]; then
 	tst_resm TBROK "Failed to start multicast receiver"
diff --git a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01 b/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01
index c69fec6..f28af8a 100644
--- a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01
+++ b/testcases/network/stress/multicast/packet-flood/mcast6-pktfld01
@@ -87,7 +87,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_receiver >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-udpsender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
@@ -179,7 +179,7 @@
     tst_resm TBROK "No port is available."
     exit 1
 fi
-    
+
 # Run a receiver
 ns-mcast_receiver -f 6 -I $lhost_ifname -m $MCAST_ADDR -p $mcast_port -b
 if [ $? -ne 0 ]; then
diff --git a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02 b/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02
index cdd59ad..4f010a4 100644
--- a/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02
+++ b/testcases/network/stress/multicast/packet-flood/mcast6-pktfld02
@@ -195,7 +195,7 @@
     mcast_addr=${MCAST_ADDR_PREFIX}:${mcastnum_hex}
 
     # Run a receiver
-    mcast_port=`expr $mcast_port_top + $mcastnum` 
+    mcast_port=`expr $mcast_port_top + $mcastnum`
     ns-mcast_receiver -f 6 -I $lhost_ifname -m $mcast_addr -p $mcast_port -b
     if [ $? -ne 0 ]; then
 	tst_resm TBROK "Failed to start multicast receiver"
diff --git a/testcases/network/stress/multicast/query-flood/00_Descriptions.txt b/testcases/network/stress/multicast/query-flood/00_Descriptions.txt
index d5789b9..c13adcb 100644
--- a/testcases/network/stress/multicast/query-flood/00_Descriptions.txt
+++ b/testcases/network/stress/multicast/query-flood/00_Descriptions.txt
@@ -21,7 +21,7 @@
 	Verify that the kernel is not crashed when joining joining plural IPv4
 	multicast groups on separate socket, then receiving a large number of
 	Multicast Address Specific Query
-	
+
 mcast4-queryfld06
 	Verify that the kernel is not crashed when joining joining plural IPv4
 	multicast groups on separate socket, then receiving a large number of
@@ -50,7 +50,7 @@
 	Verify that the kernel is not crashed when joining joining plural IPv6
 	multicast groups on separate socket, then receiving a large number of
 	Multicast Address Specific Query
-	
+
 mcast6-queryfld06
 	Verify that the kernel is not crashed when joining joining plural IPv6
 	multicast groups on separate socket, then receiving a large number of
diff --git a/testcases/network/stress/multicast/query-flood/mcast4-queryfld01 b/testcases/network/stress/multicast/query-flood/mcast4-queryfld01
index 9b164ff..a8402d4 100644
--- a/testcases/network/stress/multicast/query-flood/mcast4-queryfld01
+++ b/testcases/network/stress/multicast/query-flood/mcast4-queryfld01
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast4-queryfld02 b/testcases/network/stress/multicast/query-flood/mcast4-queryfld02
index a5f5fa8..2240462 100644
--- a/testcases/network/stress/multicast/query-flood/mcast4-queryfld02
+++ b/testcases/network/stress/multicast/query-flood/mcast4-queryfld02
@@ -77,7 +77,7 @@
 # Prefix of the Multicast Address
 MCAST_ADDR_PREFIX=224.10
 
-# Multicast Address 
+# Multicast Address
 MCAST_ADDR=224.10.0.1	# If you modify this, please refer ns-mcast_join.c
 
 #-----------------------------------------------------------------------
@@ -93,7 +93,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast4-queryfld03 b/testcases/network/stress/multicast/query-flood/mcast4-queryfld03
index 051d14f..fb2dbbb 100644
--- a/testcases/network/stress/multicast/query-flood/mcast4-queryfld03
+++ b/testcases/network/stress/multicast/query-flood/mcast4-queryfld03
@@ -77,10 +77,10 @@
 # Prefix of the Multicast Address
 MCAST_ADDR_PREFIX=224.10
 
-# Multicast Address 
+# Multicast Address
 MCAST_ADDR=224.10.0.1	# If you modify this, please refer ns-mcast_join.c
 
-# Source Address 
+# Source Address
 SRC_ADDR=10.10.10.1
 
 # Filter Mode
@@ -99,7 +99,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast4-queryfld04 b/testcases/network/stress/multicast/query-flood/mcast4-queryfld04
index 5ed9688..7f60593 100644
--- a/testcases/network/stress/multicast/query-flood/mcast4-queryfld04
+++ b/testcases/network/stress/multicast/query-flood/mcast4-queryfld04
@@ -93,7 +93,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast4-queryfld05 b/testcases/network/stress/multicast/query-flood/mcast4-queryfld05
index 4956e3e..1c3fd7f 100644
--- a/testcases/network/stress/multicast/query-flood/mcast4-queryfld05
+++ b/testcases/network/stress/multicast/query-flood/mcast4-queryfld05
@@ -93,7 +93,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast4-queryfld06 b/testcases/network/stress/multicast/query-flood/mcast4-queryfld06
index 53c66cc..a4daa14 100644
--- a/testcases/network/stress/multicast/query-flood/mcast4-queryfld06
+++ b/testcases/network/stress/multicast/query-flood/mcast4-queryfld06
@@ -99,7 +99,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-igmp_querier >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast6-queryfld01 b/testcases/network/stress/multicast/query-flood/mcast6-queryfld01
index 34aebb9..b9b33d7 100644
--- a/testcases/network/stress/multicast/query-flood/mcast6-queryfld01
+++ b/testcases/network/stress/multicast/query-flood/mcast6-queryfld01
@@ -87,7 +87,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast6-queryfld02 b/testcases/network/stress/multicast/query-flood/mcast6-queryfld02
index b1e6c89..f033bbe 100644
--- a/testcases/network/stress/multicast/query-flood/mcast6-queryfld02
+++ b/testcases/network/stress/multicast/query-flood/mcast6-queryfld02
@@ -74,7 +74,7 @@
 # Prefix of the Multicast Address
 MCAST_ADDR_PREFIX=ff0e:
 
-# Multicast Address 
+# Multicast Address
 MCAST_ADDR=ff0e::1	# If you modify this, please refer ns-mcast_join.c
 
 #-----------------------------------------------------------------------
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast6-queryfld03 b/testcases/network/stress/multicast/query-flood/mcast6-queryfld03
index 41d12a5..2ac3769 100644
--- a/testcases/network/stress/multicast/query-flood/mcast6-queryfld03
+++ b/testcases/network/stress/multicast/query-flood/mcast6-queryfld03
@@ -74,10 +74,10 @@
 # Prefix of the Multicast Address
 MCAST_ADDR_PREFIX=ff0e:
 
-# Multicast Address 
+# Multicast Address
 MCAST_ADDR=ff0e::1	# If you modify this, please refer ns-mcast_join.c
 
-# Source Address 
+# Source Address
 SRC_ADDR=fec0:100:100:100::1
 
 # Filter Mode
@@ -96,7 +96,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast6-queryfld04 b/testcases/network/stress/multicast/query-flood/mcast6-queryfld04
index d8b3563..d4b71fb 100644
--- a/testcases/network/stress/multicast/query-flood/mcast6-queryfld04
+++ b/testcases/network/stress/multicast/query-flood/mcast6-queryfld04
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast6-queryfld05 b/testcases/network/stress/multicast/query-flood/mcast6-queryfld05
index 84b1e3b..f94d214 100644
--- a/testcases/network/stress/multicast/query-flood/mcast6-queryfld05
+++ b/testcases/network/stress/multicast/query-flood/mcast6-queryfld05
@@ -90,7 +90,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/multicast/query-flood/mcast6-queryfld06 b/testcases/network/stress/multicast/query-flood/mcast6-queryfld06
index edf3f07..008bdbc 100644
--- a/testcases/network/stress/multicast/query-flood/mcast6-queryfld06
+++ b/testcases/network/stress/multicast/query-flood/mcast6-queryfld06
@@ -96,7 +96,7 @@
     # Make sure to kill the multicast receiver and sender
     killall -SIGHUP ns-mcast_join >/dev/null 2>&1
     $LTP_RSH $RHOST killall -SIGHUP ns-icmpv6_sender >/dev/null 2>&1
-    
+
     # Clean up each interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
diff --git a/testcases/network/stress/ns-tools/00_Descriptions.txt b/testcases/network/stress/ns-tools/00_Descriptions.txt
index 8f676ce..85f69ad 100644
--- a/testcases/network/stress/ns-tools/00_Descriptions.txt
+++ b/testcases/network/stress/ns-tools/00_Descriptions.txt
@@ -80,14 +80,14 @@
 ns-icmpv4_sender (binary)
 	ICMPv4 echo request sender.
 	This utility is also able to set illegal information in the IP header
-	
+
 ns-icmpv6_sender (binary)
 	ICMPv6 message (Echo request / MLDv2 query) sender.
 	This utility is also able to set illegal information in the IP header
 
 ns-igmp_querier (binary)
 	IGMP query message sender
-	
+
 ns-mcast_join (binary)
 	Assistant tool to join multicast groups
 
diff --git a/testcases/network/stress/ns-tools/add_ipv6addr b/testcases/network/stress/ns-tools/add_ipv6addr
index f3153ec..0894f2e 100644
--- a/testcases/network/stress/ns-tools/add_ipv6addr
+++ b/testcases/network/stress/ns-tools/add_ipv6addr
@@ -26,7 +26,7 @@
 #
 # Description:
 #   Add an IPv6 address to the interface which belongs to the specified
-#   test link 
+#   test link
 #
 # Author:
 #   Mitsuru Chinen <mitch@jp.ibm.com>
@@ -58,7 +58,7 @@
 . check_envval || exit 1
 
 # Arguments
-if [ $# -ne 4 ]; then 
+if [ $# -ne 4 ]; then
     echo "Usage: $0 host_type link_number network_portion host_portion" >&2
     exit 1
 fi
diff --git a/testcases/network/stress/ns-tools/bg_tcp_traffic b/testcases/network/stress/ns-tools/bg_tcp_traffic
index f858fdb..e304b94 100644
--- a/testcases/network/stress/ns-tools/bg_tcp_traffic
+++ b/testcases/network/stress/ns-tools/bg_tcp_traffic
@@ -58,7 +58,7 @@
 . check_envval || exit 1
 
 # Timeout till client starts up [sec]
-CLIENT_TIMEOUT=10 
+CLIENT_TIMEOUT=10
 
 
 #-----------------------------------------------------------------------
@@ -227,7 +227,7 @@
 #   Kill all of the TCP traffic
 #
 # Exit Value:
-#   Always 0 
+#   Always 0
 #
 #-----------------------------------------------------------------------
 killall_traffic()
diff --git a/testcases/network/stress/ns-tools/check_envval b/testcases/network/stress/ns-tools/check_envval
index 16bcfe9..7e378c9 100644
--- a/testcases/network/stress/ns-tools/check_envval
+++ b/testcases/network/stress/ns-tools/check_envval
@@ -35,7 +35,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -83,6 +83,6 @@
 
 # TMPDIR
 TMPDIR=${TMPDIR:=}
-if [ x"${TMPDIR}" = x ]; then 
+if [ x"${TMPDIR}" = x ]; then
     TMPDIR=/tmp
 fi
diff --git a/testcases/network/stress/ns-tools/check_icmpv4_connectivity b/testcases/network/stress/ns-tools/check_icmpv4_connectivity
index d0ffd3f..86d0180 100644
--- a/testcases/network/stress/ns-tools/check_icmpv4_connectivity
+++ b/testcases/network/stress/ns-tools/check_icmpv4_connectivity
@@ -39,7 +39,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -51,7 +51,7 @@
 
 # Check the arguments
 if [ $# -ne 2 ]; then
-    echo "Usage: $0 source_interface_name destionation_ipv4_address" >&2 
+    echo "Usage: $0 source_interface_name destionation_ipv4_address" >&2
     exit 1
 fi
 src_ifname=$1
diff --git a/testcases/network/stress/ns-tools/check_icmpv6_connectivity b/testcases/network/stress/ns-tools/check_icmpv6_connectivity
index ecbc7ff..87ed79a 100644
--- a/testcases/network/stress/ns-tools/check_icmpv6_connectivity
+++ b/testcases/network/stress/ns-tools/check_icmpv6_connectivity
@@ -25,13 +25,13 @@
 #   check_icmpv6_connectivity
 #
 # Description:
-#   Functions for the network stress tests 
+#   Functions for the network stress tests
 #   Check the ICMPv6 connectivity from a interface to a IPv6 address
 #
 # Arguments:
 #   $1: source interface name
 #   $2: destination IPv6 address
-#   
+#
 # Returns:
 #   0: connectivity is good.
 #   1: connectivity is something wrong.
@@ -40,7 +40,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
diff --git a/testcases/network/stress/ns-tools/check_netem b/testcases/network/stress/ns-tools/check_netem
index 352a89f..663c83a 100644
--- a/testcases/network/stress/ns-tools/check_netem
+++ b/testcases/network/stress/ns-tools/check_netem
@@ -26,10 +26,10 @@
 #
 # Description:
 #   Check the remote host has netem functionality
-#  
+#
 # Arguments:
 #   None
-#   
+#
 # Returns:
 #   0: netem functionality is available
 #   1: not avaialble
@@ -38,7 +38,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
diff --git a/testcases/network/stress/ns-tools/check_setkey b/testcases/network/stress/ns-tools/check_setkey
index 959b473..bac925f 100644
--- a/testcases/network/stress/ns-tools/check_setkey
+++ b/testcases/network/stress/ns-tools/check_setkey
@@ -26,10 +26,10 @@
 #
 # Description:
 #   Check the local/remote host has setkey command
-#  
+#
 # Arguments:
 #   None
-#   
+#
 # Returns:
 #   0: Both host have setkey command
 #   1: One or both host doesn't have setkey command
@@ -38,7 +38,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
diff --git a/testcases/network/stress/ns-tools/create_file b/testcases/network/stress/ns-tools/create_file
index 660b559..87a7649 100644
--- a/testcases/network/stress/ns-tools/create_file
+++ b/testcases/network/stress/ns-tools/create_file
@@ -39,7 +39,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
diff --git a/testcases/network/stress/ns-tools/find_portbundle b/testcases/network/stress/ns-tools/find_portbundle
index b4640de..e303ab9 100644
--- a/testcases/network/stress/ns-tools/find_portbundle
+++ b/testcases/network/stress/ns-tools/find_portbundle
@@ -28,7 +28,7 @@
 #   Find a bundle of consecutive ports
 #
 # Arguments:
-#   $1: tcp or udp 
+#   $1: tcp or udp
 #   $2: port which is the start point to check
 #   $3: quantity of the ports
 #
@@ -40,7 +40,7 @@
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
diff --git a/testcases/network/stress/ns-tools/get_ifname b/testcases/network/stress/ns-tools/get_ifname
index 5f64510..50a8235 100644
--- a/testcases/network/stress/ns-tools/get_ifname
+++ b/testcases/network/stress/ns-tools/get_ifname
@@ -36,7 +36,7 @@
 #   $2: The number of the test link
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -52,7 +52,7 @@
 . check_envval || exit 1
 
 # Arguments
-if [ $# -ne 2 ]; then 
+if [ $# -ne 2 ]; then
     echo "Usage: $0 host_type link_num" >&2
     exit 1
 fi
@@ -76,7 +76,7 @@
 esac
 
 # Pick HWaddr from HWaddr list
-field=`expr $link_num + 1` 
+field=`expr $link_num + 1`
 hwaddr=`echo $hwaddrs | cut -d ' ' -f $field`
 if [ x${hwaddr} = x ]; then
     echo "HWaddr list ($hwaddrs) is something wrong." >&2
diff --git a/testcases/network/stress/ns-tools/initialize_if b/testcases/network/stress/ns-tools/initialize_if
index c0f8772..da0ca23 100644
--- a/testcases/network/stress/ns-tools/initialize_if
+++ b/testcases/network/stress/ns-tools/initialize_if
@@ -24,22 +24,22 @@
 # File:
 #   initialize_if
 #
-# Description: 
-#   Initialize the interface which belongs to the specified test link 
+# Description:
+#   Initialize the interface which belongs to the specified test link
 #
 # Author:
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # Arguments:
 #   $1:	Set the host type (lhost - local host | rhost - remote host)
-#   $2: The number of the test link	
+#   $2: The number of the test link
 #
 # Exit Value:
-#    0: Exit normally 
+#    0: Exit normally
 #   >0: Exit abnormally
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -53,7 +53,7 @@
 . check_envval || exit 1
 
 # Arguments
-if [ $# -ne 2 ]; then 
+if [ $# -ne 2 ]; then
     echo "Usage: $0 host_type link_num" >&2
     exit 1
 fi
diff --git a/testcases/network/stress/ns-tools/killall_icmp_traffic b/testcases/network/stress/ns-tools/killall_icmp_traffic
index 9f31497..fdf0909 100644
--- a/testcases/network/stress/ns-tools/killall_icmp_traffic
+++ b/testcases/network/stress/ns-tools/killall_icmp_traffic
@@ -26,18 +26,18 @@
 #
 # Description:
 #   Kill all of the icmp traffic utilities (ping or ping6)
-#  
+#
 # Arguments:
 #   None
-#   
+#
 # Returns:
-#   None 
+#   None
 #
 # Author:
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -55,7 +55,7 @@
 WARN_WAIT=300
 
 
-# Send SIGINT to ping and ping6 
+# Send SIGINT to ping and ping6
 $LTP_RSH $RHOST "killall -SIGINT ping ping6" >/dev/null 2>&1
 
 # Verify the all ping utitlities are dead.
@@ -66,7 +66,7 @@
 
     if [ -z $ret ]; then
 	continue
-    fi 
+    fi
 
     if [ $ret -ne 0 ]; then
 	break
diff --git a/testcases/network/stress/ns-tools/killall_tcp_traffic b/testcases/network/stress/ns-tools/killall_tcp_traffic
index 404adfc..c700b5b 100644
--- a/testcases/network/stress/ns-tools/killall_tcp_traffic
+++ b/testcases/network/stress/ns-tools/killall_tcp_traffic
@@ -26,18 +26,18 @@
 #
 # Description:
 #   Kill all of the tcp traffic utilities (ns-tcpserver, ns-tcpclient)
-#  
+#
 # Arguments:
 #   None
-#   
+#
 # Returns:
-#   None 
+#   None
 #
 # Author:
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -85,7 +85,7 @@
 
     if [ -z $ret ]; then
 	continue
-    fi 
+    fi
 
     if [ $ret -ne 0 ]; then
 	break
diff --git a/testcases/network/stress/ns-tools/killall_udp_traffic b/testcases/network/stress/ns-tools/killall_udp_traffic
index cdf5cce..3d84959 100644
--- a/testcases/network/stress/ns-tools/killall_udp_traffic
+++ b/testcases/network/stress/ns-tools/killall_udp_traffic
@@ -26,18 +26,18 @@
 #
 # Description:
 #   Kill all of the udp traffic utilities (ns-udpserver, ns-udpclient)
-#  
+#
 # Arguments:
 #   None
-#   
+#
 # Returns:
-#   None 
+#   None
 #
 # Author:
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
@@ -80,12 +80,12 @@
 # Verify the client is dead.
 start_epoc=`date +%s`
 while true ; do
-    #ret=`$LTP_RSH $RHOST 'ps auxw | fgrep -v grep | grep -l '[[:blank:]]ns-udpclient[[:blank:]]' >/dev/null 2>&1; echo $?'` 
-    ret=`$LTP_RSH $RHOST 'ps auxw | fgrep -v grep | grep -l '/ns-udpclient[[:blank:]]' >/dev/null 2>&1; echo $?'` 
+    #ret=`$LTP_RSH $RHOST 'ps auxw | fgrep -v grep | grep -l '[[:blank:]]ns-udpclient[[:blank:]]' >/dev/null 2>&1; echo $?'`
+    ret=`$LTP_RSH $RHOST 'ps auxw | fgrep -v grep | grep -l '/ns-udpclient[[:blank:]]' >/dev/null 2>&1; echo $?'`
 
     if [ -z $ret ]; then
 	continue
-    fi 
+    fi
 
     if [ $ret -ne 0 ]; then
 	break
diff --git a/testcases/network/stress/ns-tools/ns-echoclient b/testcases/network/stress/ns-tools/ns-echoclient
index 9a8a5f1..6c6228c 100644
--- a/testcases/network/stress/ns-tools/ns-echoclient
+++ b/testcases/network/stress/ns-tools/ns-echoclient
@@ -109,7 +109,7 @@
 done
 
 # Check the server name
-if [ x$server_name = x ]; then 
+if [ x$server_name = x ]; then
     echo "server name isn't specified."
     usage 1
 fi
diff --git a/testcases/network/stress/ns-tools/output_ipsec_conf b/testcases/network/stress/ns-tools/output_ipsec_conf
index 0543351..f1742df 100644
--- a/testcases/network/stress/ns-tools/output_ipsec_conf
+++ b/testcases/network/stress/ns-tools/output_ipsec_conf
@@ -24,29 +24,29 @@
 # File:
 #   output_ipsec_conf
 #
-# Description: 
+# Description:
 #   Output IPsec configuration
 #
 # Author:
 #   Mitsuru Chinen <mitch@jp.ibm.com>
 #
 # Exit Value:
-#    0: Exit normally 
+#    0: Exit normally
 #   >0: Exit abnormally
 #
 # History:
-#   Oct 19 2005 - Created (Mitsuru Chinen) 
+#   Oct 19 2005 - Created (Mitsuru Chinen)
 #
 #-----------------------------------------------------------------------
 #Uncomment line below for debug output.
 $trace_logic
 
 # Encryption algorithm
-EALGO="3des-cbc" 
+EALGO="3des-cbc"
 EALGO_KEY="_I_want_to_have_chicken_"
 
 # Authentication algorithm
-AALGO="hmac-sha1" 
+AALGO="hmac-sha1"
 AALGO_KEY="beef_fish_pork_salad"
 
 # Compression algorithm
diff --git a/testcases/network/stress/route/route4-change-dst b/testcases/network/stress/route/route4-change-dst
index c54d6c0..aa42525 100644
--- a/testcases/network/stress/route/route4-change-dst
+++ b/testcases/network/stress/route/route4-change-dst
@@ -211,7 +211,7 @@
     cnt=0
     while [ $cnt -lt $NS_TIMES ]; do
 	# Define the destination IP address
-	dst_network_postfix=`expr $cnt % 255` 
+	dst_network_postfix=`expr $cnt % 255`
 	dst_addr=${DST_NETWORK_PREFIX}.${dst_network_postfix}.${DST_HOST}
 	dst_network=${DST_NETWORK_PREFIX}.${dst_network_postfix}.0
 
diff --git a/testcases/network/stress/route/route4-change-if b/testcases/network/stress/route/route4-change-if
index eb4f3cc..d223a57 100644
--- a/testcases/network/stress/route/route4-change-if
+++ b/testcases/network/stress/route/route4-change-if
@@ -164,7 +164,7 @@
 
     # Initialize the interfaces
     link_num=0
-    while [ $link_num -lt $link_total ]; do 
+    while [ $link_num -lt $link_total ]; do
 	initialize_if lhost ${link_num}
 	initialize_if rhost ${link_num}
 	link_num=`expr $link_num + 1`
@@ -263,7 +263,7 @@
 	if [ $link_num -ge $link_total ]; then
 	    link_num=0
 	fi
-	
+
 	pre_lhost_ifname=$lhost_ifname
 	pre_gateway=$gateway
 
@@ -299,7 +299,7 @@
     done
 
     # Kill the udp datagram sender
-    killall -SIGHUP ns-udpsender 
+    killall -SIGHUP ns-udpsender
 
     tst_resm TPASS "Test is finished correctly."
     return 0
diff --git a/testcases/network/stress/route/route4-redirect b/testcases/network/stress/route/route4-redirect
index d45ed63..9d2ea83 100644
--- a/testcases/network/stress/route/route4-redirect
+++ b/testcases/network/stress/route/route4-redirect
@@ -122,7 +122,7 @@
 do_setup()
 {
     # Make sure to clean up
-    do_cleanup 
+    do_cleanup
 
     # Get the Interface name of local host
     lhost_ifname=`get_ifname lhost ${LINK_NUM}`
@@ -148,7 +148,7 @@
 	tst_resm TBROK "Failed to assign an IPv4 address at the local host"
 	return 1
     fi
-    
+
     # Add route to the initial gateway
     route add -net ${DST_NETWORK}.0 netmask 255.255.255.0 gw ${IPV4_NETWORK}.${RHOST_IPV4_HOST} dev $lhost_ifname
 
@@ -194,7 +194,7 @@
     tst_resm TPASS "Test is finished correctly."
     return 0
 }
-    
+
 
 #-----------------------------------------------------------------------
 #
diff --git a/testcases/network/stress/route/route6-change-dst b/testcases/network/stress/route/route6-change-dst
index 4c8da62..d91d426 100644
--- a/testcases/network/stress/route/route6-change-dst
+++ b/testcases/network/stress/route/route6-change-dst
@@ -206,7 +206,7 @@
     cnt=0
     while [ $cnt -lt $NS_TIMES ]; do
 	# Define the destination IP address
-	tmp_postfix=`expr $cnt % 65535` 
+	tmp_postfix=`expr $cnt % 65535`
 	dst_network_postfix=`printf "%x" $tmp_postfix`
 	dst_addr=${DST_NETWORK_PREFIX}:${dst_network_postfix}::${DST_HOST}
 	dst_network=${DST_NETWORK_PREFIX}:${dst_network_postfix}::
diff --git a/testcases/network/stress/route/route6-change-gw b/testcases/network/stress/route/route6-change-gw
index 4b30dfb..9cfd649 100644
--- a/testcases/network/stress/route/route6-change-gw
+++ b/testcases/network/stress/route/route6-change-gw
@@ -1,4 +1,4 @@
-#!/bin/sh 
+#!/bin/sh
 ################################################################################
 ##                                                                            ##
 ## Copyright (c) International Business Machines  Corp., 2006                 ##
@@ -75,7 +75,7 @@
 # Host portion of the IPv6 address
 LHOST_IPV6_HOST=":2"		# src
 RHOST_IPV6_HOST_TOP="10"	# gateway
-RHOST_IPV6_HOST_LAST="19"	
+RHOST_IPV6_HOST_LAST="19"
 
 # The destination network
 DST_NETWORK="fd00:100:1:1"	# dest network would be fd00:100:1:1:::/64
diff --git a/testcases/network/stress/route/route6-change-if b/testcases/network/stress/route/route6-change-if
index b78ab83..2eaa614 100644
--- a/testcases/network/stress/route/route6-change-if
+++ b/testcases/network/stress/route/route6-change-if
@@ -162,7 +162,7 @@
 
     # Initialize the interfaces
     link_num=0
-    while [ $link_num -lt $link_total ]; do 
+    while [ $link_num -lt $link_total ]; do
 	initialize_if lhost ${link_num}
 	initialize_if rhost ${link_num}
 	link_num=`expr $link_num + 1`
@@ -261,7 +261,7 @@
 	if [ $link_num -ge $link_total ]; then
 	    link_num=0
 	fi
-	
+
 	pre_lhost_ifname=$lhost_ifname
 	pre_gateway=$gateway
 
@@ -298,7 +298,7 @@
     done
 
     # Kill the udp datagram sender
-    killall -SIGHUP ns-udpsender 
+    killall -SIGHUP ns-udpsender
 
     tst_resm TPASS "Test is finished correctly."
     return 0
diff --git a/testcases/network/stress/route/route6-redirect b/testcases/network/stress/route/route6-redirect
index 3bfe397..f43dbe5 100644
--- a/testcases/network/stress/route/route6-redirect
+++ b/testcases/network/stress/route/route6-redirect
@@ -120,7 +120,7 @@
 {
     # Make sure to cleanup the test environment
     do_cleanup
-    
+
     # Get the Interface name of local host
     lhost_ifname=`get_ifname lhost ${LINK_NUM}`
     if [ $? -ne 0 ]; then
@@ -145,7 +145,7 @@
 	tst_resm TBROK "Failed to assign an IPv6 address at the local host"
 	return 1
     fi
-    
+
     # Add route to the initial gateway
     route -A inet6 add ${DST_NETWORK}::/64 gw fe80:${RHOST_IPV6_HOST} dev $lhost_ifname
 
@@ -189,7 +189,7 @@
     tst_resm TPASS "Test is finished correctly."
     return 0
 }
-    
+
 
 #-----------------------------------------------------------------------
 #
diff --git a/testcases/network/stress/ssh/00_Descriptions.txt b/testcases/network/stress/ssh/00_Descriptions.txt
index 60574c0..b3a2f31 100644
--- a/testcases/network/stress/ssh/00_Descriptions.txt
+++ b/testcases/network/stress/ssh/00_Descriptions.txt
@@ -5,7 +5,7 @@
 	Verify the ssh connectivity over IPv4 is not broken after logged
 	in/out by many clients asynchronously for a long time
 
-ssh4-stress03 
+ssh4-stress03
 	Verify the ssh connectivity over IPv4 is not broken after forwarding
 	TCP traffic for a long time
 
@@ -16,6 +16,6 @@
 	Verify the ssh connectivity over IPv6 is not broken after logged
 	in/out by many clients asynchronously for a long time
 
-ssh6-stress03 
+ssh6-stress03
 	Verify the ssh connectivity over IPv6 is not broken after forwarding
 	TCP traffic for a long time
diff --git a/testcases/network/stress/ssh/ssh-stress01-rmt b/testcases/network/stress/ssh/ssh-stress01-rmt
index 90d3678..f814aa0 100644
--- a/testcases/network/stress/ssh/ssh-stress01-rmt
+++ b/testcases/network/stress/ssh/ssh-stress01-rmt
@@ -74,7 +74,7 @@
     exit 1
     ;;
 esac
-    
+
 # Check the connectivity first
 if [ ! -f $ssh_config ]; then
     echo "$ssh_config is something wrong."
@@ -101,7 +101,7 @@
 
 # Disconnect all ssh connection
 for ssh_pid in `ps auxw | fgrep -v grep | grep "ssh[[:blank:]].*${ssh_config}" | awk '{print $2}'` ; do
-    kill $ssh_pid 
+    kill $ssh_pid
 done
 
 # Check the connectivity again
diff --git a/testcases/network/stress/ssh/ssh-stress02-rmt b/testcases/network/stress/ssh/ssh-stress02-rmt
index b9b5b74..4d8dbe4 100644
--- a/testcases/network/stress/ssh/ssh-stress02-rmt
+++ b/testcases/network/stress/ssh/ssh-stress02-rmt
@@ -76,7 +76,7 @@
     exit 1
     ;;
 esac
-    
+
 # Check the connectivity first
 if [ ! -f $ssh_config ]; then
     echo "$ssh_config is something wrong."
@@ -88,7 +88,7 @@
     exit 1
 fi
 
-# 
+#
 # Mail loop
 #
 start_epoc=`date +%s`
diff --git a/testcases/network/stress/ssh/ssh4-stress b/testcases/network/stress/ssh/ssh4-stress
index bb0b278..f7e5ad0 100644
--- a/testcases/network/stress/ssh/ssh4-stress
+++ b/testcases/network/stress/ssh/ssh4-stress
@@ -101,7 +101,7 @@
 #   do_cleanup
 #
 # Description:
-#   Clean up after running ssh stress test 
+#   Clean up after running ssh stress test
 #
 #-----------------------------------------------------------------------
 do_cleanup()
@@ -109,13 +109,13 @@
     # Stop the ssh daemon
     kill `cat ${sshd_dir}/sshd.pid`
 
-    # Delete the dictory that stores configuration files 
+    # Delete the dictory that stores configuration files
     rm -rf $sshd_dir
     $LTP_RSH $RHOST "rm -rf $rhost_ssh_dir"
 
     # Delete the temporary files
     rm -f $message_file
-    
+
     # Initialize the interface
     initialize_if lhost ${LINK_NUM}
     initialize_if rhost ${LINK_NUM}
@@ -131,10 +131,10 @@
 #   do_setup
 #
 # Description:
-#   Setup for the ssh stress tests 
-#   - Assign IP address to the interfaces belong to the specified Link 
-#   - Run a sshd daemon for testing 
-#   - Create keys for password-less login 
+#   Setup for the ssh stress tests
+#   - Assign IP address to the interfaces belong to the specified Link
+#   - Run a sshd daemon for testing
+#   - Create keys for password-less login
 #
 # Set Values:
 #   lhost_addr:   IP address of the local host
@@ -180,7 +180,7 @@
 	    tst_resm TBROK "Failed to add any IP address at the remote host"
 	    exit 1
 	fi
-	
+
 	lhost_addr="${IPV4_NETWORK}.${LHOST_IPV4_HOST}"
 	rhost_addr="${IPV4_NETWORK}.${RHOST_IPV4_HOST}"
 	check_icmpv4_connectivity $lhost_ifname $rhost_addr
@@ -219,7 +219,7 @@
     esac
 
     #
-    # Start sshd for testing 
+    # Start sshd for testing
     #
     port=`find_portbundle tcp 1025 1`
     if [ $? -ne 0 ]; then
@@ -239,14 +239,14 @@
 PidFile ${sshd_dir}/sshd.pid
 EOD
 
- 
+
     $SSHD -f ${sshd_dir}/sshd_config
     if [ $? -ne 0 ]; then
 	tst_resm TBROK "Failed to run sshd daemon."
 	exit 1
     fi
 
-    # 
+    #
     # Generate configuration file and key at the remote host
     #
     rhost_ssh_dir=`$LTP_RSH $RHOST "mktemp -d -p $SSH_TMPDIR_PARENT"`
@@ -296,9 +296,9 @@
 
     # Script name at the remote host
     rmtscript="ssh-stress01-rmt"
-    
+
     # Run the script at the remote host
-    message_file=`mktemp -p $TMPDIR` 
+    message_file=`mktemp -p $TMPDIR`
     not_run_rmtscript=true
     for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
 	ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
@@ -346,9 +346,9 @@
 
     # Script name at the remote host
     rmtscript="ssh-stress02-rmt"
-    
+
     # Run the script at the remote host
-    message_file=`mktemp -p $TMPDIR` 
+    message_file=`mktemp -p $TMPDIR`
     not_run_rmtscript=true
     for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
 	ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
@@ -413,9 +413,9 @@
 
     server_pid=`grep PID: $info_file | cut -f 2 -d ' '`
     rm -f $info_file
-    
+
     # Run the script at the remote host
-    message_file=`mktemp -p $TMPDIR` 
+    message_file=`mktemp -p $TMPDIR`
     not_run_rmtscript=true
     for rmtdir in ${LTPROOT}/testcases/bin ${PWD} ; do
 	ret=`$LTP_RSH $RHOST 'test -x '${rmtdir}/${rmtscript}' ; echo $?'`
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic01 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic01
index c8abbb3..efaef9c 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic01
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic01
@@ -107,14 +107,14 @@
 do_cleanup()
 {
     # Kill the tcp traffic server
-    killall_tcp_traffic 
+    killall_tcp_traffic
 
     # Unset SAD/SPD
     output_ipsec_conf flush | setkey -c >/dev/null 2>&1
     $LTP_RSH $RHOST ${LTPROOT}/'testcases/bin/output_ipsec_conf flush | PATH=/sbin:/usr/sbin:$PATH setkey -c' >/dev/null 2>&1
 
     # Clean up each interface
-    link_num=0 
+    link_num=0
     while [ $link_num -lt $link_total ]; do
 	# Unset network delay
 	rhost_ifname=`get_ifname rhost $link_num`
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic02 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic02
index c5aff16..05a7d87 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic02
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic02
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic02
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic03 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic03
index baf5cde..46b0da9 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic03
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic03
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic04 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic04
index 9e50d52..3475c34 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic04
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic04
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic04
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic05 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic05
index eaaef26..2bcf45e 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic05
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic05
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic05
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic06 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic06
index 51d7ccb..a34c5b8 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic06
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic06
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic06
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic07 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic07
index 0969247..b46eb5c 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic07
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic07
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic07
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic08 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic08
index 386ff27..9d9b67c 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic08
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic08
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic08
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic09 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic09
index 7e5fa10..1536abe 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic09
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic09
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic09
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic10 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic10
index ce5c844..a0c2124 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic10
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic10
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic10
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic11 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic11
index 73d6888..79e27bb 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic11
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic11
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic11
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic12 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic12
index 1f1d853..f8abc3f 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic12
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic12
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic12
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic13 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic13
index 2a43baa..0e3aab9 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic13
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic13
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic13
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic14 b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic14
index ccd0766..6d5748b 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic14
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp4-multi-diffnic14
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffnic14
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic01 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic01
index d0a7663..98f9d26 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic01
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic01
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic01
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic02 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic02
index 3fb16bd..7e4c9b2 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic02
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic02
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic02
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic03 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic03
index a2e37f6..35cadc2 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic03
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic03
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic04 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic04
index a7b2b62..a53b0c3 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic04
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic04
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic04
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic05 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic05
index f2f56fd..8eb0add 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic05
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic05
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic05
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic06 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic06
index da86a7c..da6ff96 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic06
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic06
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic06
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic07 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic07
index 47b7dc8..6b343cc 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic07
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic07
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic07
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic08 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic08
index d17f937..6e27679 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic08
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic08
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic08
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic09 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic09
index be99c08..6b5ec4b 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic09
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic09
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic09
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic10 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic10
index ae1cb87..b041fe0 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic10
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic10
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic10
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic11 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic11
index 988f75f..736c9a0 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic11
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic11
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic11
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic12 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic12
index a792f56..3d6da18 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic12
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic12
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic12
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic13 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic13
index 43c3aa3..8ce1613 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic13
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic13
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic13
diff --git a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic14 b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic14
index dc1e79c..82b844d 100644
--- a/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic14
+++ b/testcases/network/stress/tcp/multi-diffnic/tcp6-multi-diffnic14
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffnic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-diffnic14
diff --git a/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport02 b/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport02
index bd78b4d..d563678 100644
--- a/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport02
+++ b/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport02
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffport02
diff --git a/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport03 b/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport03
index 3f24049..89f0382 100644
--- a/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport03
+++ b/testcases/network/stress/tcp/multi-diffport/tcp4-multi-diffport03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-diffport03
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport02 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport02
index 2c96deb..70db75f 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport02
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport02
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport02
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport03 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport03
index 7c0fe81..7fdfa47 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport03
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport03
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport04 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport04
index 84b344b..74e360c 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport04
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport04
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport04
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport05 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport05
index 2932b89..3404c8e 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport05
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport05
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport05
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport06 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport06
index 492aacc..e72ec1f 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport06
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport06
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport06
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport07 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport07
index ab91878..f0f6f1c 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport07
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport07
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport07
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport08 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport08
index 3f27ef7..839a9a7 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport08
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport08
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport08
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport09 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport09
index 065e6da..d50ba1f 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport09
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport09
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport09
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport10 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport10
index fad47e3..bda24f0 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport10
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport10
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport10
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport11 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport11
index cbbb056..7d65255 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport11
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport11
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport11
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport12 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport12
index f6aae32..a78f141 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport12
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport12
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport12
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport13 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport13
index 3aed210..030d920 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport13
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport13
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport13
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport14 b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport14
index 9d53baa..147e524 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport14
+++ b/testcases/network/stress/tcp/multi-sameport/tcp4-multi-sameport14
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-multi-sameport14
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport01 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport01
index 7a87faf..bb91cc6 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport01
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport01
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport01
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport02 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport02
index 87886a2..92c66aa 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport02
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport02
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport02
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport03 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport03
index e19b6a0..25eb606 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport03
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport03
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport04 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport04
index 6b5925d..0f63e68 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport04
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport04
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport04
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport05 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport05
index 5a6f7e7..f0448e2 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport05
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport05
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport05
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport06 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport06
index 404052c..228f7ba 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport06
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport06
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport06
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport07 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport07
index 59d0158..747dd92 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport07
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport07
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport07
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport08 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport08
index 95e7d9b..7711d55 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport08
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport08
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport08
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport09 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport09
index 09ad564..35f35d7 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport09
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport09
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport09
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport10 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport10
index 2c98c96..eada115 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport10
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport10
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport10
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport11 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport11
index c79377e..0ad8fcd 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport11
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport11
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport11
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport12 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport12
index 76cb816..c712ff9 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport12
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport12
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport12
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport13 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport13
index 7688005..bab842e 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport13
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport13
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport13
diff --git a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport14 b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport14
index ecb9080..d3d932b 100644
--- a/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport14
+++ b/testcases/network/stress/tcp/multi-sameport/tcp6-multi-sameport14
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-sameport testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-multi-sameport14
diff --git a/testcases/network/stress/tcp/uni-basic/tcp4-uni-basic02 b/testcases/network/stress/tcp/uni-basic/tcp4-uni-basic02
index f1f1663..ef17fe5 100644
--- a/testcases/network/stress/tcp/uni-basic/tcp4-uni-basic02
+++ b/testcases/network/stress/tcp/uni-basic/tcp4-uni-basic02
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-basic testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-basic02
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff01 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff01
index f4b1301..b1b948f 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff01
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff01
@@ -32,10 +32,10 @@
 #     - IPsec is not used
 #     - Disable window scaling
 #     - Enable Nagle algorithm
-#     - Disable TCP Duplicate SACK support 
+#     - Disable TCP Duplicate SACK support
 #     - Enable SACK Support
 #     - Some packets are lost
-#     - Disable TSO if it is avalable 
+#     - Disable TSO if it is avalable
 #
 #   *) This script may be read by the other test case
 #
@@ -68,10 +68,10 @@
 DO_DSACK=false
 
 # Make some packets are lost
-DO_PACKET_LOSS=true 
+DO_PACKET_LOSS=true
 
 # Make some packets are duplicated
-DO_PACKET_DUP=true 
+DO_PACKET_DUP=true
 
 # Load tcp4-uni-basic01
 NON_BASIC=true
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff02 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff02
index c3790bf..b9d94eb 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff02
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff02
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff02
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff03 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff03
index aa4386f..0fcdf11 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff03
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff03
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff03
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff04 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff04
index 4ddab64..8d4a6a2 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff04
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff04
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff04
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff05 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff05
index 22219e5..824088a 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff05
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff05
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff05
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff06 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff06
index 51d607f..a5e70e4 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff06
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff06
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff06
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff07 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff07
index 1bc5b3f..24bf0ce 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff07
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff07
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff07
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff08 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff08
index 1f7f027..f220a28 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff08
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff08
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff08
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff09 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff09
index 1a6525c..753b47d 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff09
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff09
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff09
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff10 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff10
index 01985ea..85d4205 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff10
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff10
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff10
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff11 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff11
index 5e1bbcb..3475c72 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff11
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff11
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff11
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff12 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff12
index 4097e1a..aae73a4 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff12
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff12
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff12
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff13 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff13
index 0a19888..b435359 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff13
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff13
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff13
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff14 b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff14
index 52c62b8..9aec2ca 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff14
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp4-uni-dsackoff14
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-dsackoff14
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff01 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff01
index dc0c88b..83338e2 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff01
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff01
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff01
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff02 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff02
index 5ce5fe8..5148a55 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff02
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff02
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff02
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff03 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff03
index bc61d77..4692e71 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff03
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff03
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff03
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff04 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff04
index 5616605..10d36bf 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff04
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff04
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff04
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff05 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff05
index 811488b..3e39662 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff05
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff05
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff05
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff06 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff06
index 653da2a..082110c 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff06
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff06
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff06
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff07 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff07
index ca1a02c..c503e07 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff07
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff07
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff07
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff08 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff08
index ed8a2b5..5389ed8 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff08
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff08
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff08
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff09 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff09
index 9645c95..fdfdf75 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff09
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff09
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff09
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff10 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff10
index eea03cf..221e172 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff10
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff10
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff10
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff11 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff11
index d074997..3cbefe9 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff11
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff11
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff11
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff12 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff12
index 5c48ccd..1859e23 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff12
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff12
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff12
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff13 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff13
index aab8fd4..b869bc1 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff13
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff13
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff13
diff --git a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff14 b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff14
index 492e5c4..b713c4c 100644
--- a/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff14
+++ b/testcases/network/stress/tcp/uni-dsackoff/tcp6-uni-dsackoff14
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-dsackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-dsackoff14
diff --git a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff02 b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff02
index a7162c9..370ce86 100644
--- a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff02
+++ b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff02
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-sackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-sackoff02
diff --git a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff03 b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff03
index 821e00c..2113658 100644
--- a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff03
+++ b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff03
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-sackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-sackoff03
diff --git a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff04 b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff04
index 6daa1d8..22a8edf 100644
--- a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff04
+++ b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff04
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-sackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-sackoff04
diff --git a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff05 b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff05
index 24de0a5..0bfed9b 100644
--- a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff05
+++ b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff05
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-sackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-sackoff05
diff --git a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff06 b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff06
index af98954..9eb468a 100644
--- a/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff06
+++ b/testcases/network/stress/tcp/uni-sackoff/tcp4-uni-sackoff06
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-sackoff testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-sackoff06
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend01 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend01
index 9987ae9..fe298f3 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend01
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend01
@@ -32,10 +32,10 @@
 #     - IPsec is not used
 #     - Disable window scaling
 #     - Disable Nagle algorithm
-#     - Enable TCP Duplicate SACK support 
+#     - Enable TCP Duplicate SACK support
 #     - Enable SACK Support
 #     - No packet are lost
-#     - Disable TSO if it is avalable 
+#     - Disable TSO if it is avalable
 #
 #   *) This script may be read by the other test case
 #
@@ -65,10 +65,10 @@
 tst_resm TINFO "Verify that the kernel is not crashed by a connection disabling NAGLE algorithm"
 
 # Disable NAGLE algorithm
-DO_SMALL_SEND=true 
+DO_SMALL_SEND=true
 
 # Load tcp4-uni-basic01
-NON_BASIC=true 
+NON_BASIC=true
 
 . tcp4-uni-basic01
 
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend02 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend02
index e3d4a75..ced2acf 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend02
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend02
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend02
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend03 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend03
index caa6faa..44b557c 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend03
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend03
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend03
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend04 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend04
index ce68fb2..2182d94 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend04
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend04
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend04
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend05 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend05
index 5ac6092..7ca8037 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend05
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend05
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend05
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend06 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend06
index 0e51d2c..cb64eed 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend06
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend06
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend06
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend07 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend07
index 3e1af97..d9a6417 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend07
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend07
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend07
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend08 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend08
index 937b875..07fd5df 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend08
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend08
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend08
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend09 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend09
index 3eb07dd..14e2100 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend09
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend09
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend09
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend10 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend10
index 4f04e56..0adbec0 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend10
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend10
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend10
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend11 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend11
index 471f803..61cb1bf 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend11
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend11
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend11
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend12 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend12
index 34677b7..7f3aa13 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend12
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend12
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend12
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend13 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend13
index f9b0b30..8899f27 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend13
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend13
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend13
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend14 b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend14
index 567e8bb..1fb79f6 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend14
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp4-uni-smallsend14
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-smallsend14
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend01 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend01
index defe74e..c1fa178 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend01
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend01
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend01
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend02 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend02
index b142e5a..da857fb 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend02
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend02
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend02
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend03 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend03
index 01d1240..5f00314 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend03
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend03
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend03
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend04 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend04
index 8d04e20..2b54468 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend04
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend04
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend04
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend05 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend05
index 22d31b1..760c201 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend05
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend05
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend05
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend06 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend06
index 3a22a5f..1ac6912 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend06
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend06
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend06
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend07 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend07
index 86f8f85..f7a9d3a 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend07
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend07
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend07
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend08 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend08
index bd4aeb3..4c57fb4 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend08
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend08
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend08
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend09 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend09
index 3d73d91..4789d20 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend09
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend09
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend09
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend10 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend10
index ddf4c38..0340068 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend10
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend10
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend10
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend11 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend11
index 896ee6e..97aeae9 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend11
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend11
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend11
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend12 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend12
index 06c0473..d7e14be 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend12
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend12
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend12
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend13 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend13
index dda0a11..e99c115 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend13
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend13
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend13
diff --git a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend14 b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend14
index 9f89935..a2e1ee8 100644
--- a/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend14
+++ b/testcases/network/stress/tcp/uni-smallsend/tcp6-uni-smallsend14
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each uni-smallsend testcase
-# 
+#
 
 # The test case ID
 TCID=tcp6-uni-smallsend14
diff --git a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso01 b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso01
index c771292..a366167 100644
--- a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso01
+++ b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso01
@@ -32,10 +32,10 @@
 #     - IPsec is not used
 #     - Enable window scaling
 #     - Enable Nagle algorithm
-#     - Enable TCP Duplicate SACK support 
+#     - Enable TCP Duplicate SACK support
 #     - Enable SACK Support
 #     - No packet are lost
-#     - Enable TSO if it is avalable 
+#     - Enable TSO if it is avalable
 #
 #   *) This script may be read by the other test case
 #
@@ -65,13 +65,13 @@
 tst_resm TINFO "Verify that the kernel, whose NIC supports TCP Segmentation Offload, is not crashed by a connection enabling TCP window scaling"
 
 # Enable window scaling
-DO_WINDOW_SCALING=true 
+DO_WINDOW_SCALING=true
 
 # Enable TSO
 DO_TSO=true
 
 # Load tcp4-uni-basic01
-NON_BASIC=true 
+NON_BASIC=true
 
 . tcp4-uni-basic01
 
diff --git a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso02 b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso02
index 3f0e889..462249e 100644
--- a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso02
+++ b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso02
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-tso testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-tso02
diff --git a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso03 b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso03
index 569e8d4..1d7e987 100644
--- a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso03
+++ b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso03
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-tso testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-tso03
diff --git a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso04 b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso04
index b171662..e97bf57 100644
--- a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso04
+++ b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso04
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-tso testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-tso04
diff --git a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso05 b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso05
index 2265211..635762d 100644
--- a/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso05
+++ b/testcases/network/stress/tcp/uni-tso/tcp4-uni-tso05
@@ -44,7 +44,7 @@
 
 #
 # Variables -- Changed by each uni-tso testcase
-# 
+#
 
 # The test case ID
 TCID=tcp4-uni-tso05
diff --git a/testcases/network/stress/udp/multi-diffip/udp4-multi-diffip01 b/testcases/network/stress/udp/multi-diffip/udp4-multi-diffip01
index 1ac3240..627166f 100644
--- a/testcases/network/stress/udp/multi-diffip/udp4-multi-diffip01
+++ b/testcases/network/stress/udp/multi-diffip/udp4-multi-diffip01
@@ -186,7 +186,7 @@
 	# Set IPv4 addresses to the interfaces
 	ip addr add ${lhost_addr}/${network_mask} broadcast $network_broadcast dev $lhost_ifname
 
-	### delete before setting 
+	### delete before setting
 	if [ $? -eq 2 ]; then
 	ip addr del ${lhost_addr}/${network_mask} broadcast $network_broadcast dev $lhost_ifname  2>&1
 	ip addr add ${lhost_addr}/${network_mask} broadcast $network_broadcast dev $lhost_ifname
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport01 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport01
index e4d5f01..a2e15a3 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport01
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport01
@@ -100,7 +100,7 @@
 do_cleanup()
 {
     # Kill the udp traffic server
-    killall_udp_traffic 
+    killall_udp_traffic
 
     # Unset SAD/SPD
     output_ipsec_conf flush | setkey -c >/dev/null 2>&1
@@ -293,7 +293,7 @@
 current_port=$start_port
 while [ $current_port -le $end_port ]; do
     # Run a UDP traffic server
-    ns-udpserver -b -f $IP_VER -p $current_port 
+    ns-udpserver -b -f $IP_VER -p $current_port
     if [ $? -ne 0 ]; then
 	if [ $connection_num -eq 0 ]; then
 	    tst_resm TFAIL "Failed to run a server"
@@ -302,7 +302,7 @@
 	tst_resm TINFO "$connection_num seems the maximum number of the client"
 	break
     fi
-    
+
     ret=`$LTP_RSH $RHOST ${LTPROOT}/testcases/bin/ns-udpclient -b -f $IP_VER -S $lhost_addr -p $current_port'; echo $?'`
     if [ $ret -ne 0 ]; then
 	if [ $connection_num -eq 0 ]; then
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport02 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport02
index 3d4ce57..a59617f 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport02
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport02
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp4-multi-diffport02
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport03 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport03
index b66bdba..cab3dc0 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport03
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp4-multi-diffport03
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport04 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport04
index 97787e7..b89cf36 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport04
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport04
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp4-multi-diffport04
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport05 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport05
index f72df26..20e64cb 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport05
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport05
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp4-multi-diffport05
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport06 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport06
index 314e80e..4c4d90e 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport06
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport06
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp4-multi-diffport06
diff --git a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport07 b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport07
index ebd034e..0ff5703 100644
--- a/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport07
+++ b/testcases/network/stress/udp/multi-diffport/udp4-multi-diffport07
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp4-multi-diffport07
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport01 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport01
index 90df666..696a06c 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport01
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport01
@@ -45,7 +45,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport01
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport02 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport02
index 97ce4a3..fedbba8 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport02
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport02
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport02
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport03 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport03
index bfd871d..3e003d7 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport03
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport03
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport03
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport04 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport04
index b2c83bc..fe2331c 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport04
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport04
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport04
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport05 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport05
index a6aa25a..a2c420b 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport05
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport05
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport05
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport06 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport06
index 7efed3f..19ff02f 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport06
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport06
@@ -47,7 +47,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport06
diff --git a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport07 b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport07
index 0767aa5..0cd3cdb 100644
--- a/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport07
+++ b/testcases/network/stress/udp/multi-diffport/udp6-multi-diffport07
@@ -46,7 +46,7 @@
 
 #
 # Variables -- Changed by each multi-diffport testcase
-# 
+#
 
 # The test case ID
 TCID=udp6-multi-diffport07
diff --git a/testcases/network/tcp_cmds/README b/testcases/network/tcp_cmds/README
index 67a325a..2f44814 100644
--- a/testcases/network/tcp_cmds/README
+++ b/testcases/network/tcp_cmds/README
@@ -1,20 +1,20 @@
 
 NOTE:
 
-  These tests ALL assume that the "RHOST" variable is set to the hostname 
-of the remote machine, i.e. 
+  These tests ALL assume that the "RHOST" variable is set to the hostname
+of the remote machine, i.e.
 
     # export RHOST=<hostname here>.
 
 These tests also assume an identical path tree for their location on the remote
 machine.  So if pan's root path is "/home/ltptests" on the test machine, then
 it must also be located in "/home/ltptests" on the remote machine (RHOST).
-  
+
   It's also a good idea to set the "PASSWD" variable to root's password on this remote
 machine, b/c some tests use this also.  You will also need to setup a ".rhosts" file in
 root's home directory on the remote machine, with the name of the local machine listed.
 For example, if machineA is running the tests, with machineB set as RHOST, then machineB's
-root home directory will need an ".rhosts" file with machineA's hostname listed. 
+root home directory will need an ".rhosts" file with machineA's hostname listed.
 
   I apologize for the lengthy setup, but I tried to make it as minimal as possible.
 
diff --git a/testcases/network/tcp_cmds/arp/arp01 b/testcases/network/tcp_cmds/arp/arp01
index 813d759..00e79fb 100755
--- a/testcases/network/tcp_cmds/arp/arp01
+++ b/testcases/network/tcp_cmds/arp/arp01
@@ -28,7 +28,7 @@
 #         of the tested machine will be used.
 #
 #  HISTORY:
-#    06/05/03 Manoj Iyer - manjo@mail.utexas.edu 
+#    06/05/03 Manoj Iyer - manjo@mail.utexas.edu
 #      - Ported to use LTP test harness API
 #    03/01 Robbie Williamson (robbiew@us.ibm.com)
 #      -Ported
@@ -73,7 +73,7 @@
 
     sleep $SLEEPTIME
 
-    # PURPOSE:  stress the automatic creation of arp entries by pinging a host 
+    # PURPOSE:  stress the automatic creation of arp entries by pinging a host
     #           and deleting the arp entry again.
 
     while [ $TST_COUNT -le $TST_TOTAL ]; do
diff --git a/testcases/network/tcp_cmds/echo/echo01 b/testcases/network/tcp_cmds/echo/echo01
index 84d53e1..34881c5 100755
--- a/testcases/network/tcp_cmds/echo/echo01
+++ b/testcases/network/tcp_cmds/echo/echo01
@@ -22,7 +22,7 @@
 #  FILE   : echo
 #
 #  PURPOSE: Stresses the inetd/xinetd daemon using the `echo` service.
-#           
+#
 #  SETUP: The echo service MUST be active on the RHOST machine. This is
 #         controlled by the inetd/xinetd daemon.
 #
@@ -73,9 +73,9 @@
 #
 #-----------------------------------------------------------------------
 
-do_test() 
+do_test()
 {
-    mkdir $TCtmp 
+    mkdir $TCtmp
     echo  "Creating echo file $ECHOFILE"
     if ! "$LTPROOT/testcases/bin/$CREATEFILE" $ECHOSIZE "$TCtmp/$ECHOFILE"; then
         end_testcase "$ECHOFILE not created"
diff --git a/testcases/network/tcp_cmds/finger/finger01 b/testcases/network/tcp_cmds/finger/finger01
index bd49176..54f00ea 100755
--- a/testcases/network/tcp_cmds/finger/finger01
+++ b/testcases/network/tcp_cmds/finger/finger01
@@ -25,7 +25,7 @@
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
 #         where the test is executed. Also, both machines MUST have
-#         the fingerd daemon active (see inetd or xinetd config file). 
+#         the fingerd daemon active (see inetd or xinetd config file).
 #
 #  HISTORY:
 #    06/06/03 Manoj Iyer - manjo@mail.utexas.edu
@@ -74,9 +74,9 @@
 
 #-----------------------------------------------------------------------
 # FUNCTION: do_test1
-# PURPOSE: Run finger with no flags 
+# PURPOSE: Run finger with no flags
 # INPUT:    None.
-# OUTPUT:   Error messages are logged for all discrepancies found. 
+# OUTPUT:   Error messages are logged for all discrepancies found.
 #-----------------------------------------------------------------------
 
 do_test1()
@@ -87,7 +87,7 @@
     [ $? = 0 ] || end_testcase "finger @$LHOST"
     finger @$RHOST  2>&1 1>/dev/null
     [ $? = 0 ] || end_testcase "finger @$RHOST"
-	
+
     # Testing finger command with user argument
 
     finger $LUSER 2>&1 1>/dev/null || end_testcase "finger $LUSER"
@@ -127,7 +127,7 @@
 # PURPOSE:  To run the "finger -flag User@Host" commands and verify that the
 #           "finger" command is functioning properly.
 # INPUT:    None.
-# OUTPUT:   Error messages are logged for all discrepancies found. 
+# OUTPUT:   Error messages are logged for all discrepancies found.
 #-----------------------------------------------------------------------
 
 do_test3()
diff --git a/testcases/network/tcp_cmds/ftp/ftp01 b/testcases/network/tcp_cmds/ftp/ftp01
index 16d06a7..62e47dd 100755
--- a/testcases/network/tcp_cmds/ftp/ftp01
+++ b/testcases/network/tcp_cmds/ftp/ftp01
@@ -21,13 +21,13 @@
 #  FILE   : ftp
 #
 #  PURPOSE: To test the basic functionality of the `ftp` command.
-#  
+#
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
 #         where the test is executed. Also, both machines MUST have
 #         the same path configuration for the test for proper test data
 #         file transfers. The PASSWD variable should also be set to root's
-#	  login password. 
+#	  login password.
 #
 #  HISTORY:
 #    06/06/03 Manoj Iyer manjo@mail.utexas.edu
@@ -93,7 +93,7 @@
 
             for a in get put; do
                 if [ $a = "get" ]; then
-                    { 
+                    {
                         echo user $RUSER $PASSWD
                         echo lcd $TCtmp
                         echo $i
@@ -102,8 +102,8 @@
                         echo quit
                     } | ftp -nv $RHOST
                     SUM1=`ls -l $TCtmp/$j  | awk '{print $5}'`
-                    SUM2=`ls -l $TCdat/$j | awk '{print $5}'` 
-                    rm -f $TCtmp/$j 
+                    SUM2=`ls -l $TCdat/$j | awk '{print $5}'`
+                    rm -f $TCtmp/$j
                 else
                     {
                         echo user $RUSER $PASSWD
@@ -114,10 +114,10 @@
                         echo quit
                     } | ftp -nv $RHOST
                     SUM1=`rsh -n -l root $RHOST sum $TCtmp/$j | awk '{print $1}'`
-                    SUM2=`sum $TCdat/$j | awk '{print $1}'` 
+                    SUM2=`sum $TCdat/$j | awk '{print $1}'`
                     rsh -n -l root $RHOST rm -f $TCtmp/$j
                 fi
- 
+
                 if [ $SUM1 = $SUM2 ]; then
                     tst_resm TINFO "Test Successful doing ftp $a $j $i"
                 else
diff --git a/testcases/network/tcp_cmds/ftp/ftp02 b/testcases/network/tcp_cmds/ftp/ftp02
index 9f57c7e..a65d788 100755
--- a/testcases/network/tcp_cmds/ftp/ftp02
+++ b/testcases/network/tcp_cmds/ftp/ftp02
@@ -20,7 +20,7 @@
 #
 #  FILE   : ftp
 #
-#  PURPOSE: Test to see if ftp rejects a user with an invalid password 
+#  PURPOSE: Test to see if ftp rejects a user with an invalid password
 #
 #  HISTORY:
 #     03/03  Jerone Young (jeroney@us.ibm.com)
@@ -48,8 +48,8 @@
     tst_setup
 
     exists expect ftp ftp02_s1 useradd userdel
-    
-    userdel $TEST_USER 
+
+    userdel $TEST_USER
     sleep 1
 
     if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
diff --git a/testcases/network/tcp_cmds/ftp/ftp02_s1 b/testcases/network/tcp_cmds/ftp/ftp02_s1
index df18d9b..e5439fd 100755
--- a/testcases/network/tcp_cmds/ftp/ftp02_s1
+++ b/testcases/network/tcp_cmds/ftp/ftp02_s1
@@ -30,8 +30,8 @@
 #                (If WS system, no vsftpd; connection will fail.)
 
 set RHOST $env(RHOST)
-set TEST_USER $env(TEST_USER) 
-set TEST_USER_PASSWD $env(TEST_USER_PASSWD) 
+set TEST_USER $env(TEST_USER)
+set TEST_USER_PASSWD $env(TEST_USER_PASSWD)
 set TEST_USER_HOMEDIR $env(TEST_USER_HOMEDIR)
 
 #RUSER
diff --git a/testcases/network/tcp_cmds/ftp/ftp03 b/testcases/network/tcp_cmds/ftp/ftp03
index 6e09faf..869b3b2 100755
--- a/testcases/network/tcp_cmds/ftp/ftp03
+++ b/testcases/network/tcp_cmds/ftp/ftp03
@@ -20,15 +20,15 @@
 #
 #  FILE   : ftp
 #
-#  PURPOSE: Ftp into a remote hosts successfully as a vaild user (other than root) 
+#  PURPOSE: Ftp into a remote hosts successfully as a vaild user (other than root)
 #
 #  HISTORY:
-#     03/03  Jerone Young (jeroney@us.ibm.com) 
+#     03/03  Jerone Young (jeroney@us.ibm.com)
 #     04/03  Dustin Kirkland (k1rkland@us.ibm.com)
 #     09/05  Kris Wilson (krisw@us.ibm.com) Check if vsftpd.conf was found.
 #
 #  NOTE:
-#	This version is intended for EAL certification, it will need modification 
+#	This version is intended for EAL certification, it will need modification
 #	to conform with LTP standards in the offical LTP tree.
 
 #-----------------------------------------------------------------------
@@ -37,7 +37,7 @@
 
 do_setup()
 {
-	
+
     RHOST="localhost"
     TEST_USER="ftpuser1"
     TCtmp=/home/$TEST_USER
@@ -68,7 +68,7 @@
     userdel $TEST_USER
     sleep 1
 
-    if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then 
+    if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
         end_testcase "Could not add test user $TEST_USER on system $RHOST."
     fi
 
@@ -98,7 +98,7 @@
 #
 # DESCRIPTION: The test user will ftp in and create a directory in his home directory on the remote host.
 #              The directory is then checked on the remote hosts to see if it is owned
-#	       by the test user. 
+#	       by the test user.
 #-----------------------------------------------------------------------
 
 do_test(){
@@ -131,7 +131,7 @@
             send \"$TEST_USER_PASSWD\r\"
             expect {
                 # 230 - Login successful
-                \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1} 
+                \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1}
                 # 500 - Login failed
                 \"500\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
                 # 530 - Login failed
@@ -145,7 +145,7 @@
     if [ $? != 0 ]; then
         end_testcase "Testcase failed"
     fi
-}	
+}
 
 #----------------------------------------------------------------------
 # FUNCTION: MAIN
diff --git a/testcases/network/tcp_cmds/ftp/ftp04 b/testcases/network/tcp_cmds/ftp/ftp04
index 6bc3682..5a22c78 100755
--- a/testcases/network/tcp_cmds/ftp/ftp04
+++ b/testcases/network/tcp_cmds/ftp/ftp04
@@ -31,7 +31,7 @@
 #-----------------------------------------------------------------------
 # FUNCTION:  do_setup
 #-----------------------------------------------------------------------
-                                                                               
+
 do_setup()
 {
 
@@ -45,7 +45,7 @@
 
     if [ -n "$PASSWD" ]; then
         TEST_USER_PASSWORD=$PASSWD
-    else	
+    else
         end_testcase "You must set your password via the PASSWD variable."
         exit 1
     fi
diff --git a/testcases/network/tcp_cmds/ftp/ftp05 b/testcases/network/tcp_cmds/ftp/ftp05
index c7b2250..f4f2bea 100755
--- a/testcases/network/tcp_cmds/ftp/ftp05
+++ b/testcases/network/tcp_cmds/ftp/ftp05
@@ -20,15 +20,15 @@
 #
 #  FILE   : ftp
 #
-#  PURPOSE: Ftp into a remote hosts successfully as a vaild user (other than root) 
+#  PURPOSE: Ftp into a remote hosts successfully as a vaild user (other than root)
 #
 #  HISTORY:
-#     03/03  Jerone Young (jeroney@us.ibm.com) 
+#     03/03  Jerone Young (jeroney@us.ibm.com)
 #     04/03  Dustin Kirkland (k1rkland@us.ibm.com)
 #     09/05  Kris Wilson (krisw@us.ibm.com) Check if vsftpd is on system.
 #
 #  NOTE:
-#	This version is intended for EAL certification, it will need modification 
+#	This version is intended for EAL certification, it will need modification
 #	to conform with LTP standards in the offical LTP tree.
 
 do_setup()
@@ -97,7 +97,7 @@
             send \"$TEST_USER_PASSWD\r\"
             expect {
                 # 230 - Login successful
-                \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1} 
+                \"230\" {send_user \"==> TEST \#$TEST : FAIL (ftp allowed login attempt)\n\";exit 1}
                 # 500 - Login failed
                 \"500\" {send_user \"==> TEST \#$TEST : PASS (ftp rejected login attempt)\n\";exit 0}
                 # 530 - Login failed
@@ -110,7 +110,7 @@
 
     [ $? -eq 0 ] || end_testcase "Testcase failed."
 
-}	
+}
 
 #----------------------------------------------------------------------
 # FUNCTION: MAIN
diff --git a/testcases/network/tcp_cmds/ftp/ftp_set_passwd b/testcases/network/tcp_cmds/ftp/ftp_set_passwd
index 8e94033..7c275c9 100755
--- a/testcases/network/tcp_cmds/ftp/ftp_set_passwd
+++ b/testcases/network/tcp_cmds/ftp/ftp_set_passwd
@@ -1,4 +1,4 @@
-#!/usr/bin/expect 
+#!/usr/bin/expect
 #
 # Set Password for a specific new user
 # This script should be run as 'root'
@@ -10,7 +10,7 @@
 if { [llength $argv] < 2} {
     exit 1
 }
- 
+
 set USER [lindex $argv 0]
 set PASSWD [lindex $argv 1]
 
diff --git a/testcases/network/tcp_cmds/host/host01 b/testcases/network/tcp_cmds/host/host01
index 5e8458b..78ec7e6 100755
--- a/testcases/network/tcp_cmds/host/host01
+++ b/testcases/network/tcp_cmds/host/host01
@@ -21,7 +21,7 @@
 #  FILE   : host
 #
 #  PURPOSE: To test the basic functionality of the `host` command.
-#  
+#
 #  SETUP: If "RHOST" is not exported, then the local hostname is used.
 #
 #  HISTORY:
@@ -65,7 +65,7 @@
                 end_testcase "reverse lookup with host failed"
             fi
 
-        else 
+        else
             end_testcase "host $RHOST on local machine failed"
         fi
 
diff --git a/testcases/network/tcp_cmds/netstat/netstat01 b/testcases/network/tcp_cmds/netstat/netstat01
index 9d8adef..b72d49e 100755
--- a/testcases/network/tcp_cmds/netstat/netstat01
+++ b/testcases/network/tcp_cmds/netstat/netstat01
@@ -44,8 +44,8 @@
 
 #-------------------------------------------------------------------------
 # FUNCTION:  do_test
-# PURPOSE:   
-#            To loop for LOOPCOUNT times 
+# PURPOSE:
+#            To loop for LOOPCOUNT times
 #            If MAXCOUNT is "-1" the "while"
 #            loop will execute until terminated by "intr" signal.
 # INPUT:     None.
@@ -53,7 +53,7 @@
 #
 #-----------------------------------------------------------------------
 
-do_test() { 
+do_test() {
 
     while [ $TST_COUNT -le $NUMLOOPS ]; do
 
diff --git a/testcases/network/tcp_cmds/perf_lan/perf_lan b/testcases/network/tcp_cmds/perf_lan/perf_lan
index 6c40862..c4b0e99 100755
--- a/testcases/network/tcp_cmds/perf_lan/perf_lan
+++ b/testcases/network/tcp_cmds/perf_lan/perf_lan
@@ -22,11 +22,11 @@
 #  FILE   : perf_lan
 #
 #  PURPOSE: Generates LAN traffic using ICMP echo packets.
-#           
+#
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
-#         MUST have a ".rhosts" file with the hostname of the client 
-#         machine, where the test is executed. 
+#         MUST have a ".rhosts" file with the hostname of the client
+#         machine, where the test is executed.
 #
 #  HISTORY:
 #    06/06/03 Manoj Iyer manjo@mail.utexas.edu
@@ -60,7 +60,7 @@
 #
 #-----------------------------------------------------------------------
 
-do_test() 
+do_test()
 {
     tst_resm TINFO "Executing $0"
 
diff --git a/testcases/network/tcp_cmds/ping/ping01 b/testcases/network/tcp_cmds/ping/ping01
index 1379741..0036f9c 100755
--- a/testcases/network/tcp_cmds/ping/ping01
+++ b/testcases/network/tcp_cmds/ping/ping01
@@ -22,7 +22,7 @@
 #  FILE   : ping
 #
 #  PURPOSE: To test the basic functionality of the `ping` command.
-#  
+#
 #  SETUP: If "RHOST" is not exported, then the local hostname is used.
 #
 #  HISTORY:
@@ -61,7 +61,7 @@
 #
 #-----------------------------------------------------------------------
 
-do_test() 
+do_test()
 {
     tst_resm TINFO "ping with $PACKETSIZES ICMP packets"
     for packetsize in $PACKETSIZES; do
diff --git a/testcases/network/tcp_cmds/rcp/rcp01 b/testcases/network/tcp_cmds/rcp/rcp01
index c93b3d7..a4dae96 100755
--- a/testcases/network/tcp_cmds/rcp/rcp01
+++ b/testcases/network/tcp_cmds/rcp/rcp01
@@ -24,7 +24,7 @@
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
-#         where the test is executed. 
+#         where the test is executed.
 #
 #  HISTORY:
 #    06/06/03 Manoj Iyer manjo@mail.utexas.edu
diff --git a/testcases/network/tcp_cmds/rdist/rdist01 b/testcases/network/tcp_cmds/rdist/rdist01
index 0d91419..1e475a3 100755
--- a/testcases/network/tcp_cmds/rdist/rdist01
+++ b/testcases/network/tcp_cmds/rdist/rdist01
@@ -25,7 +25,7 @@
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
-#         where the test is executed. 
+#         where the test is executed.
 #
 #  HISTORY:
 #    06/06/03 Manoj Iyer manjo@mail.utexas.edu
@@ -136,7 +136,7 @@
                 x=\$(( \$x + \$i ))
             done
             echo \$x`
-            if [ $TOTAL_SUM = $LSUM ]; then 
+            if [ $TOTAL_SUM = $LSUM ]; then
                 tst_resm TINFO "Success rdist in $c_ruser@$c_rhost "
                 rsh -n -l $c_ruser $c_rhost "rm -rf $FILES $DIRECTORIES"
             else
diff --git a/testcases/network/tcp_cmds/rlogin/rlogin01 b/testcases/network/tcp_cmds/rlogin/rlogin01
index 56f6450..a8beb01 100755
--- a/testcases/network/tcp_cmds/rlogin/rlogin01
+++ b/testcases/network/tcp_cmds/rlogin/rlogin01
@@ -20,20 +20,20 @@
 #
 #  FILE   : rlogin
 #
-#  PURPOSE: Tests the basic functionality of `rlogin`. 
+#  PURPOSE: Tests the basic functionality of `rlogin`.
 #
 #  SETUP: The program `/usr/bin/expect' MUST be installed.
 #         The home directory of root on the machine exported as "RHOST"
 #         should have a ".rhosts" file with the hostname of the machine
 #         where the test is executed, OR the "PASSWD" section below MUST
-#	  be uncommented and set. 
+#	  be uncommented and set.
 #
 #  HISTORY:
 #    03/01 Robbie Williamson (robbiew@us.ibm.com)
 #      -Ported
 #
-# 
-# rlogin perform a rlogin session to each host in HOST_LIST with user 
+#
+# rlogin perform a rlogin session to each host in HOST_LIST with user
 #    RUSER for a count of LOOPCOUNT and does an ls -l /etc/hosts to
 #    verify that the rlogin was established.
 #
@@ -69,8 +69,8 @@
 
       # rlogin to the host
       spawn rlogin $RHOST -l $RUSER
-      
-      # Uncomment code below and add root's passwd if .rhosts file is not 
+
+      # Uncomment code below and add root's passwd if .rhosts file is not
       # present on remote host.
       #---------------------------------
       #set PASSWD "<ROOT PASSWORD HERE>"
@@ -88,10 +88,10 @@
       exp_send "logout\r"
 
       send_user "CHECKING RLOGIN STATUS\n"
-      set nummatch [exec rsh -n -l $RUSER $RHOST "cat $TESTLOG/$RUSER.$RHOST|grep -c 9"] 
+      set nummatch [exec rsh -n -l $RUSER $RHOST "cat $TESTLOG/$RUSER.$RHOST|grep -c 9"]
       if {$nummatch==1} {
          send_user "$TC interactive Test Successful in LOOP $count\r"
-         exec rsh -n -l $RUSER $RHOST "rm -f $TESTLOG/$RUSER.$RHOST" 
+         exec rsh -n -l $RUSER $RHOST "rm -f $TESTLOG/$RUSER.$RHOST"
       } else {
          send_user "$TC interactive session FAILED\r"
          exit 1
diff --git a/testcases/network/tcp_cmds/rsh/rsh01 b/testcases/network/tcp_cmds/rsh/rsh01
index 6bd608b..fd7c66b 100755
--- a/testcases/network/tcp_cmds/rsh/rsh01
+++ b/testcases/network/tcp_cmds/rsh/rsh01
@@ -24,7 +24,7 @@
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
 #         MUST have a ".rhosts" file with the hostname of the machine
-#         where the test is executed. 
+#         where the test is executed.
 #
 #  HISTORY:
 #    03/01 Robbie Williamson (robbiew@us.ibm.com)
@@ -64,12 +64,12 @@
 
         PASSED=0
 
-        if OUT=$(rsh -n -l root $RHOST 'ls -l /etc/hosts'); then 
+        if OUT=$(rsh -n -l root $RHOST 'ls -l /etc/hosts'); then
 
             #
             # Successful output would be something of the form:
             #
-            # gcooper@orangebox ~ $ ls -l /etc/hosts         
+            # gcooper@orangebox ~ $ ls -l /etc/hosts
             # -rw-r--r-- 1 root root 463 Jul  5 09:26 /etc/hosts
             #
             echo "$OUT" |
diff --git a/testcases/network/tcp_cmds/rwho/rwho01 b/testcases/network/tcp_cmds/rwho/rwho01
index e7fdaf1..b869a8b 100755
--- a/testcases/network/tcp_cmds/rwho/rwho01
+++ b/testcases/network/tcp_cmds/rwho/rwho01
@@ -27,7 +27,7 @@
 #         MUST have a ".rhosts" file with the hostname of the machine
 #         where the test is executed. Also, both machines MUST have
 #         the rwhod daemon installed. However, it does not need to be
-#         active, the test will handle this. 
+#         active, the test will handle this.
 #
 #  HISTORY:
 #    06/09 Manoj Iyer manjo@mail.utexas.edu
@@ -132,7 +132,7 @@
 {
     if [ $PID -ne 0 ]; then
         tst_resm TINFO "Stopping rwhod on $LHOST"
-        killall rwhod 
+        killall rwhod
     fi
 
     if [ $RHOST_PID -ne 0 ]; then
diff --git a/testcases/network/tcp_cmds/sendfile/sendfile01 b/testcases/network/tcp_cmds/sendfile/sendfile01
index cb8b687..3be809d 100755
--- a/testcases/network/tcp_cmds/sendfile/sendfile01
+++ b/testcases/network/tcp_cmds/sendfile/sendfile01
@@ -22,11 +22,11 @@
 #
 #  PURPOSE: Copy files from server to client using the sendfile()
 #           function.
-#           
+#
 #
 #  SETUP: The home directory of root on the machine exported as "RHOST"
-#         MUST have a ".rhosts" file with the hostname of the client 
-#         machine, where the test is executed. 
+#         MUST have a ".rhosts" file with the hostname of the client
+#         machine, where the test is executed.
 #
 #  HISTORY:
 #    06/09/2003 Manoj Iyer manjo@mail.utexas.edu
@@ -81,9 +81,9 @@
 do_test()
 {
     tst_resm TINFO "Doing $0."
-  
+
     mkdir -p $TCtmp
-    PORT=$$ 
+    PORT=$$
     if ! rsh -l root $IPADDR "$LTPROOT/testcases/bin/SF_Server $IPADDR $PORT $LTPROOT/testcases/bin $SERVER"; then
         end_testcase "rsh failed to $IPADDR as root failed"
     fi
@@ -95,10 +95,10 @@
         serv_fname=$TCdat/$clnt_fname
         SIZE=`stat -c '%s' $serv_fname`
         tst_resm TINFO "Starting $SERVER $IPADDR Client_filename Server_filename Size "
-  
-        $CLIENT $IPADDR $PORT "$TCtmp/$clnt_fname" $serv_fname $SIZE 
+
+        $CLIENT $IPADDR $PORT "$TCtmp/$clnt_fname" $serv_fname $SIZE
         RetVal=$?
-  
+
         [ $RetVal -eq 0 ] || end_testcase "$CLIENT returned error $RetVal"
 
         diff $serv_fname $TCtmp/$clnt_fname
diff --git a/testcases/network/tcp_cmds/ssh/ssh01 b/testcases/network/tcp_cmds/ssh/ssh01
index 7e207bf..fe11c17 100755
--- a/testcases/network/tcp_cmds/ssh/ssh01
+++ b/testcases/network/tcp_cmds/ssh/ssh01
@@ -16,7 +16,7 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : ssh 
+#  FILE   : ssh
 #
 #  PURPOSE: Tests to see that ssh rejects an invalid password
 #
diff --git a/testcases/network/tcp_cmds/ssh/ssh01_s1 b/testcases/network/tcp_cmds/ssh/ssh01_s1
index 8ee7470..a2b3ac3 100755
--- a/testcases/network/tcp_cmds/ssh/ssh01_s1
+++ b/testcases/network/tcp_cmds/ssh/ssh01_s1
@@ -16,7 +16,7 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : ssh 
+#  FILE   : ssh
 #
 #  PURPOSE: Tests to see that ssh rejects an invalid password
 #
@@ -43,17 +43,17 @@
 spawn ssh -l $RUSER $RHOST whoami
 
 while 1 {
-	sleep 2 
+	sleep 2
 	expect {
 
 		"Are you sure you want to continue connecting (yes/no)?" { exp_send "yes\r"}
                 "assword:" {exp_send "$PASSWD\r"}
-		"Permission denied" { 
+		"Permission denied" {
 			send_user "SSH would not allow $RUSER to login with invalid password, Test Passed \n"
 			send_user "\nTEST_PASSED\n"
 			break
 		}
-	     "$RUSER" {send_user "SSH allowed $RUSER to login with invalid pass, Test Failed \n" ;exit 1}	
+	     "$RUSER" {send_user "SSH allowed $RUSER to login with invalid pass, Test Failed \n" ;exit 1}
 	}
 	sleep 1
 }
diff --git a/testcases/network/tcp_cmds/ssh/ssh02 b/testcases/network/tcp_cmds/ssh/ssh02
index 35fdd92..174f632 100755
--- a/testcases/network/tcp_cmds/ssh/ssh02
+++ b/testcases/network/tcp_cmds/ssh/ssh02
@@ -16,9 +16,9 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : ssh 
+#  FILE   : ssh
 #
-#  PURPOSE: Tests to see that ssh rejects an invalid username 
+#  PURPOSE: Tests to see that ssh rejects an invalid username
 #
 #  SETUP: The program `/usr/bin/expect' MUST be installed.
 #
@@ -48,7 +48,7 @@
 
     exists expect ssh ssh02_s1 useradd userdel
 
-    userdel $TEST_USER 
+    userdel $TEST_USER
     sleep 1
 
     if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
@@ -82,7 +82,7 @@
 # FUNCTION:  MAIN
 #
 # DESCRIPTION: Create Test User
-#          Call upon script to make sure an invalid user can not have access 
+#          Call upon script to make sure an invalid user can not have access
 #          Cleanup Test User from system
 #          Exit with exit code of script called upon
 #-----------------------------------------------------------------------
diff --git a/testcases/network/tcp_cmds/ssh/ssh02_s1 b/testcases/network/tcp_cmds/ssh/ssh02_s1
index f07fe1a..3dbd3ae 100755
--- a/testcases/network/tcp_cmds/ssh/ssh02_s1
+++ b/testcases/network/tcp_cmds/ssh/ssh02_s1
@@ -16,7 +16,7 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : ssh 
+#  FILE   : ssh
 #
 #  PURPOSE: Tests to see that ssh rejects an invalid username
 #
@@ -47,7 +47,7 @@
 spawn ssh -l $RUSER $RHOST
 
 while 1 {
-    sleep 2 
+    sleep 2
     expect {
 
         "Are you sure you want to continue connecting (yes/no)?" { exp_send "yes\r"}
diff --git a/testcases/network/tcp_cmds/ssh/ssh03 b/testcases/network/tcp_cmds/ssh/ssh03
index 8fbca34..f1dc390 100755
--- a/testcases/network/tcp_cmds/ssh/ssh03
+++ b/testcases/network/tcp_cmds/ssh/ssh03
@@ -16,9 +16,9 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : ssh 
+#  FILE   : ssh
 #
-#  PURPOSE: Tests to see that ssh allows a valid username (non-root) 
+#  PURPOSE: Tests to see that ssh allows a valid username (non-root)
 #
 #  SETUP: The program `/usr/bin/expect' MUST be installed.
 #
@@ -47,7 +47,7 @@
 
     exists expect ssh ssh03_s1 useradd userdel
 
-    userdel $TEST_USER 
+    userdel $TEST_USER
     sleep 1
 
     if ! useradd -m -p $TEST_USER_ENCRYPTED_PASSWD $TEST_USER; then
@@ -81,7 +81,7 @@
 # FUNCTION:  MAIN
 #
 # DESCRIPTION: Create Test User
-#              Call upon script to make sure an invalid user can not have access 
+#              Call upon script to make sure an invalid user can not have access
 #              Cleanup Test User from system
 #              Exit with exit code of script called upon
 #-----------------------------------------------------------------------
diff --git a/testcases/network/tcp_cmds/ssh/ssh03_s1 b/testcases/network/tcp_cmds/ssh/ssh03_s1
index 8b1a08b..aa5e223 100755
--- a/testcases/network/tcp_cmds/ssh/ssh03_s1
+++ b/testcases/network/tcp_cmds/ssh/ssh03_s1
@@ -16,7 +16,7 @@
 #   along with this program;  if not, write to the Free Software
 #   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 #
-#  FILE   : ssh 
+#  FILE   : ssh
 #
 #  PURPOSE: Tests to see that ssh accepts a valid user (non-root)
 #
@@ -38,7 +38,7 @@
 
 send_user "TEST: SSH allow (non-root) valid User \n"
 
-set RUSER $TEST_USER 
+set RUSER $TEST_USER
 set PASSWD $TEST_USER_PASSWD
 
 
@@ -59,4 +59,4 @@
     sleep 1
 }
 
-exit 0 
+exit 0
diff --git a/testcases/network/tcp_cmds/ssh/ssh_set_passwd b/testcases/network/tcp_cmds/ssh/ssh_set_passwd
index 95302a4..1b7bb7d 100755
--- a/testcases/network/tcp_cmds/ssh/ssh_set_passwd
+++ b/testcases/network/tcp_cmds/ssh/ssh_set_passwd
@@ -1,4 +1,4 @@
-#!/usr/bin/expect 
+#!/usr/bin/expect
 #
 # Set Password for a specific new user
 # This script should be run as 'root'
@@ -10,7 +10,7 @@
 if { [llength $argv] < 2} {
 	exit 1
 }
- 
+
 set USER [lindex $argv 0]
 set PASSWD [lindex $argv 1]
 
diff --git a/testcases/network/tcp_cmds/telnet/telnet01 b/testcases/network/tcp_cmds/telnet/telnet01
index f87444e..f3e067a 100755
--- a/testcases/network/tcp_cmds/telnet/telnet01
+++ b/testcases/network/tcp_cmds/telnet/telnet01
@@ -20,18 +20,18 @@
 #
 #  FILE   : telnet
 #
-#  PURPOSE: Tests the basic functionality of `telnet`. 
+#  PURPOSE: Tests the basic functionality of `telnet`.
 #
 #  SETUP: The program `/usr/bin/expect' MUST be installed.
-#	  The PASSWD and RHOST variables MUST be set prior to execution. 
+#	  The PASSWD and RHOST variables MUST be set prior to execution.
 #
 #  HISTORY:
 #    03/01 Robbie Williamson (robbiew@us.ibm.com)
 #      -Ported
 #
 #*********************************************************************
-# 
-# telnet perform a telnet session to each host in HOST_LIST with user 
+#
+# telnet perform a telnet session to each host in HOST_LIST with user
 #    RUSER for a count of LOOPCOUNT and does an ls -l /etc/hosts to
 #    verify that the telnet was established.
 #
@@ -47,21 +47,21 @@
    set RUSER $env(RUSER)
 } else {
    set RUSER root
-} 
+}
 
 if [info exists env(PASSWD)] {
    set PASSWD $env(PASSWD)
 } else {
    set PASSWD .pasroot
    send_user "PASSWD NOT SET:Using .pasroot as the PASSWD variable for $RUSER. \n"
-} 
+}
 
 if [info exists env(RHOST)] {
    set RHOST $env(RHOST)
 } else {
    send_user "Please set/export the RHOST variable. \n"
    exit 1
-} 
+}
 
 set timeout 90
 
@@ -78,7 +78,7 @@
 set count 0
 while {$count < $LOOPCOUNT} {
    set count [expr $count+1]
-   foreach HOST $RHOST { 
+   foreach HOST $RHOST {
       send_user "Host: $HOST\n"
 
       # telnet to the host
@@ -92,20 +92,20 @@
 
       send "PS1=\"$PROMPT\"\r"
       # Wait for shell prompt
-      expect "$PROMPT" 
+      expect "$PROMPT"
 
       # Run passwd command - and respond to its prompts
-      send "LC_ALL=C ls -l /etc/hosts | wc -w > $TESTLOG/$RUSER.$HOST \r" 
+      send "LC_ALL=C ls -l /etc/hosts | wc -w > $TESTLOG/$RUSER.$HOST \r"
       # When shell prompt comes back, logout
 
       expect "$PROMPT"
       exp_send "logout\r"
 
       send_user "CHECKING TELNET STATUS\n"
-      set nummatch [exec rsh -n -l $RUSER $HOST "cat $TESTLOG/$RUSER.$HOST|grep -c 9"] 
+      set nummatch [exec rsh -n -l $RUSER $HOST "cat $TESTLOG/$RUSER.$HOST|grep -c 9"]
       if {$nummatch==1} {
          send_user "$TC interactive Test Successful in LOOP $count\r"
-         exec rsh -n -l $RUSER $HOST "rm -f $TESTLOG/$RUSER.$HOST" 
+         exec rsh -n -l $RUSER $HOST "rm -f $TESTLOG/$RUSER.$HOST"
       } else {
          send_user "$TC interactive session failed\n"
          exit 1
diff --git a/testcases/network/traceroute/traceroute_tests.sh b/testcases/network/traceroute/traceroute_tests.sh
index e077636..2835f1d 100755
--- a/testcases/network/traceroute/traceroute_tests.sh
+++ b/testcases/network/traceroute/traceroute_tests.sh
@@ -35,7 +35,7 @@
 #
 # Input:        - $1 - calling test case.
 #               - $2 - command that needs to be checked.
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 chk_ifexists()
@@ -54,9 +54,9 @@
 # Function: init
 #
 # Description:  - Check if command required for this test exits.
-#               - Create temporary directories required for this test. 
+#               - Create temporary directories required for this test.
 #               - Initialize global variables.
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 init()
@@ -110,7 +110,7 @@
 
 # Function:     cleanup
 #
-# Description:  - remove temporaty files and directories. 
+# Description:  - remove temporaty files and directories.
 #
 # Return:       - zero on success.
 #               - non-zero on failure.
@@ -124,9 +124,9 @@
 
 # Function:     test01
 #
-# Description:  - Test that traceroute hostname will trace route of an IP 
+# Description:  - Test that traceroute hostname will trace route of an IP
 #                 packet to that host.
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 test01()
@@ -148,7 +148,7 @@
         return $RC
     fi
 
-    cat $LTPTMP/tst_traceroute.out | head -n 1 > $LTPTMP/tst_traceroute.out.1 2>&1    
+    cat $LTPTMP/tst_traceroute.out | head -n 1 > $LTPTMP/tst_traceroute.out.1 2>&1
     diff -iwB $LTPTMP/tst_traceroute.out.1 $LTPTMP/tst_traceroute.exp \
         > $LTPTMP/tst_traceroute.err 2>&1 || RC=$?
     if [ $RC -ne 0 ]
@@ -157,18 +157,18 @@
             "Test #1: unexpected output. Details:"
         return $RC
     else
-        # Only one hop is required to get to hostname. 
+        # Only one hop is required to get to hostname.
         nhops=$(cat $LTPTMP/tst_traceroute.out | tail -n 1 | awk '{print $1}')
         if [ $nhops -ne 1 ]
         then
-            tst_resm TFAIL "Test #1: $hops number of hops unexpected" 
+            tst_resm TFAIL "Test #1: $hops number of hops unexpected"
         else
             tst_resm TPASS \
                 "Test #1: traceroute $hostname traced route correctly"
         fi
     fi
 
-    return $RC    
+    return $RC
 }
 
 
@@ -176,7 +176,7 @@
 #
 # Description:    - Execute all tests and report results.
 #
-# Exit:            - zero on success 
+# Exit:            - zero on success
 #               - non-zero on failure.
 
 RC=0
diff --git a/testcases/network/xinetd/xinetd_tests.sh b/testcases/network/xinetd/xinetd_tests.sh
index 448ec3c..b38bb04 100755
--- a/testcases/network/xinetd/xinetd_tests.sh
+++ b/testcases/network/xinetd/xinetd_tests.sh
@@ -34,7 +34,7 @@
 #
 # Input:        - $1 - calling test case.
 #               - $2 - command that needs to be checked.
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 chk_ifexists()
@@ -53,9 +53,9 @@
 # Function: init
 #
 # Description:  - Check if command required for this test exits.
-#               - Create temporary directories required for this test. 
+#               - Create temporary directories required for this test.
 #               - Initialize global variables.
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 init()
@@ -90,7 +90,7 @@
     chk_ifexists INIT diff       || return $RC
     chk_ifexists INIT telnet     || return $RC
 
-	# Create custom xinetd.conf file. 
+	# Create custom xinetd.conf file.
 	# tst_xinetd.conf.1 config file has telnet service disabled.
 	cat > $LTPTMP/tst_xinetd.conf.1 <<-EOF || RC=$?
 	defaults
@@ -122,8 +122,8 @@
         user            = root
         server          = /usr/sbin/in.telnetd
         server_args     = -n
-        no_access       = 
-    }       
+        no_access       =
+    }
 	EOF
 
     # Create expected file with telnet disabled.
@@ -159,7 +159,7 @@
 
 # Function:     cleanup
 #
-# Description:  - remove temporaty files and directories. 
+# Description:  - remove temporaty files and directories.
 #
 # Return:       - zero on success.
 #               - non-zero on failure.
@@ -202,7 +202,7 @@
 #               - telnet to locahost should fail.
 #               - restart xinetd with configuration file with telnet enabled.
 #               - telnet to locahost should work.
-# 
+#
 # Return:       - zero on success.
 #               - non-zero on failure.
 test01()
@@ -213,7 +213,7 @@
     RC=0                # Return value from commands.
 
     tst_resm TINFO "Test #1: restart xinetd with telnet disabled."
-	
+
 	# create a backup of the original xinetd.conf file.
 	mv /etc/xinetd.conf /etc/xinetd.conf.orig > $LTPTMP/tst_xinetd.err 2>&1 \
 		|| RC=$?
@@ -246,7 +246,7 @@
        "Test #1: unable to restart service with telnet disabled. Details:"
         return $RC
 	else
-		# even if xinetd restart has zero exit value, 
+		# even if xinetd restart has zero exit value,
 		# make certain there was no failure.
 		grep -i "fail" $LTPTMP/tst_xinetd.out > $LTPTMP/tst_xinetd.err 2>&1 || RC=$?
 		if [ $RC -eq 0 ]
@@ -261,7 +261,7 @@
 		fi
 	fi
 
-	# Not checking for exit code from telnet command because telnet is 
+	# Not checking for exit code from telnet command because telnet is
 	# not terminated by the test gracefully.
 	echo "" | telnet localhost 2>$LTPTMP/tst_xinetd.out 1>/dev/null
 	diff -iwB $LTPTMP/tst_xinetd.out  $LTPTMP/tst_xinetd.exp.1 \
@@ -285,7 +285,7 @@
     fi
 
     tst_resm TINFO "Test #1: new xinetd.conf installed with telnet enabled."
-	
+
 	sleep 1s
 
 	# restart services.
@@ -310,9 +310,9 @@
 		fi
 	fi
 
-	# Not checking for exit code from telnet command because telnet is 
+	# Not checking for exit code from telnet command because telnet is
 	# not terminated by the test gracefully.
-	echo "" | telnet localhost > $LTPTMP/tst_xinetd.out 2>&1 
+	echo "" | telnet localhost > $LTPTMP/tst_xinetd.out 2>&1
 
 	diff -iwB $LTPTMP/tst_xinetd.out  $LTPTMP/tst_xinetd.exp.2 \
 		> $LTPTMP/tst_xinetd.err 2>&1 || RC=$?
@@ -326,7 +326,7 @@
 		"Test #1: xinetd reads the config file and starts or stops services."
     fi
 
-    return $RC    
+    return $RC
 }
 
 
@@ -334,7 +334,7 @@
 #
 # Description:    - Execute all tests and report results.
 #
-# Exit:            - zero on success 
+# Exit:            - zero on success
 #               - non-zero on failure.
 
 RC=0
diff --git a/testcases/open_posix_testsuite/BUILD b/testcases/open_posix_testsuite/BUILD
index c53db90..0921405 100644
--- a/testcases/open_posix_testsuite/BUILD
+++ b/testcases/open_posix_testsuite/BUILD
@@ -35,7 +35,7 @@
 ================
 POSIX message queues have been available in FreeBSD since 6.x. Please add:
 
-options		P1003_1B_MQUEUE 
+options		P1003_1B_MQUEUE
 
 to your kernel conf or build and install the mqueue module, and load it with:
 
@@ -67,9 +67,9 @@
 update this document.)
 
 Please refer to your linux distribution's manual for the kernel and
-library information. 
+library information.
 
-Notes for each test section are here. It is targeted for general linux 
+Notes for each test section are here. It is targeted for general linux
 kernel 2.6 and glibc-2.3.3.
 
 =======
@@ -105,7 +105,7 @@
 ==============
 Message Queues
 ==============
-POSIX Message Queue (Wronski/Benedyczak's implementation) has been 
+POSIX Message Queue (Wronski/Benedyczak's implementation) has been
 included into linux kernel since 2.6.4-rc1-mm1.
 But you still need to install a user library at the time of writing this
 document.
@@ -119,7 +119,7 @@
 ------------------
 To build against the Michal Wronski/Krzysztof Benedyczak message queues,
 install the kernel patches from http://www.mat.uni.torun.pl/~wrona/posix_ipc/
-and then build the user library from the same site.  Add '-lmqueue' to 
+and then build the user library from the same site.  Add '-lmqueue' to
 LDLIBS to run tests.
 To create the message queue file system, do:
 # mkdir /dev/mqueue
@@ -157,7 +157,7 @@
 Signals
 =======
 
-For the signals-related interfaces that start with "pthread_", refer to 
+For the signals-related interfaces that start with "pthread_", refer to
 the Threads section above to learn how to build those particular tests.
 
 Also, please note that if you using version of gcc older than version 3.2-7,
@@ -179,6 +179,6 @@
 		Majid Awad
 		Crystal Xiong
 		Adam Li
-Contributors:	Jerome Marchand 
+Contributors:	Jerome Marchand
 		Ulrich Drepper
 		Garrett Cooper
diff --git a/testcases/open_posix_testsuite/ChangeLog b/testcases/open_posix_testsuite/ChangeLog
index b3f47cc..e5a257b 100644
--- a/testcases/open_posix_testsuite/ChangeLog
+++ b/testcases/open_posix_testsuite/ChangeLog
@@ -9,7 +9,7 @@
 		 - A patch for sem_close_1_1 from Yi Xu
 		 - A patch from Randy.Dunlap for sem_lock to increase BUF_SIZE to prevent segment fault.
 06-03-2005	1.5.1 Release
-		 - conformance/interfaces/aio_* and 
+		 - conformance/interfaces/aio_* and
 		   conformance/interface/lio_listio: add new cases and bug
 		   fixes by Sebastien Dugue.
 		 - add execute.sh by B. Thangaraju.
@@ -20,28 +20,28 @@
 
 07-05-2004	adam.li@intel.com
 		 - functional/schedule/1-1.c 1-2.c: New case by Abhijeet Bisain.
-		 - stress/threads/pthread_cond_timedwait/stress1.c stress2.c: 
+		 - stress/threads/pthread_cond_timedwait/stress1.c stress2.c:
 		   New case by Sebastien Dugue.
 07-01-2004	adam.li@intel.com
 		 - pthread_attr_setschedparam/1-3.c 1-4.c:
-		   Add test cases by Abhijeet Bisain. 
-		 - stress/threads/assertions.xml, 
+		   Add test cases by Abhijeet Bisain.
+		 - stress/threads/assertions.xml,
 		   stress/threads/pthread_cond_timedwait/: New case by Sebastien Dugue
 06-29-2004	adam.li@intel.com
 		 - pthread_attr_setinheritsched/2-3.c, 2-4.c
 		 - functional/threads/condvar/, README:
-		   Add test cases by Abhijeet Bisain. 
+		   Add test cases by Abhijeet Bisain.
 06-28-2004	adam.li@intel.com
-		 - stress/threads/pthread_mutex_init/, pthread_mutex_lock/, 
+		 - stress/threads/pthread_mutex_init/, pthread_mutex_lock/,
 		   pthread_cond_init/: Add stress/scalability cases by Sebastien Dugue
 06-22-2004	adam.li@intel.com
 		 - pthread_cond_destroy/speculative/4-1.c, pthread_mutex_destroy/
-		   speculative/4-2.c, pthread_exit/3-1.c: 
+		   speculative/4-2.c, pthread_exit/3-1.c:
 		   Add new test case by Abhijeet Bisain
 06-15-2004	adam.li@intel.com
 		 - pthread_cond_init/1-2.c, 2-2.c,4-1.c 4-2.c: Add test case by
 		   Sebastien Dugue.
-		 - pthread_cancel/2-2.c, 2-3.c, 3-3.c: Add test case by 
+		 - pthread_cancel/2-2.c, 2-3.c, 3-3.c: Add test case by
 		   Abhijeet Bisain.
 06-11-2004	adam.li@intel.com
 		 - pthread_cond_signal: Add Sebastien DECUGIS's patch
@@ -49,10 +49,10 @@
 		 - locate-test: Remove -printf argument for 'find' for POSIX conformant.
 		 - Makefile: Remove --defined-only option for 'nm' for POSIX conformant.
 		 - sched_yield/1-1.c: Fix warning on 64-bit system.
-		 - pthread_attr_setstacksize/1-1.c, pthread_attr_getstacksize/1-1.c: 
+		 - pthread_attr_setstacksize/1-1.c, pthread_attr_getstacksize/1-1.c:
 		   Remove the output.
 06-04-2004	adam.li@intel.com
-		 - pthread_attr_getschedparam, pthread_attr_setschedparam: 
+		 - pthread_attr_getschedparam, pthread_attr_setschedparam:
 		   Add new case by Abhijeet Bisain.
                  - pthread_attr_s(g)etschedpolicy: Fix. Misuse perror.
 06-02-2004	adam.li@intel.com
@@ -60,7 +60,7 @@
 05-27-2004	adam.li@intel.com
 		 - sigaction/21-1.c: Fix. Add missing posixtest.h
 		 - pthread_rwlock_trylock/3-1.c: Moved to speculative.
-05-27-2004	1.4.2 Release		 
+05-27-2004	1.4.2 Release
 05-24-2004      adam.li@intel.com
                  - mmap/13-1.c: Fix. mmap() will update st_atime().
                  - sigaction/9-1.c: Fix. Select not block.
@@ -73,12 +73,12 @@
                    Dugue(sebastien.decugis@ext.bull.net)
                    pthread_mutex_unlock/5-1.c, 5-2.c
                  - pthread_mutexattr_settype/coverage.txt: Fix.
-                 - behavior/signal.h/18-1.c,19-1.c,20-1.c,21-1.c: Fix 
-                   struct stack_t, struct siginfo_t. 
+                 - behavior/signal.h/18-1.c,19-1.c,20-1.c,21-1.c: Fix
+                   struct stack_t, struct siginfo_t.
 05-13-2004	adam.li@intel.com
 		 - Add case pthread_mutex_init/5-1.c,
-		   pthread_mutex_init/speculative/5-2.c, 
-		   pthread_mutex_lock/3-1.c, 4-1.c, 5-1.c 
+		   pthread_mutex_init/speculative/5-2.c,
+		   pthread_mutex_lock/3-1.c, 4-1.c, 5-1.c
 		   by Sebastien Dugue(sebastien.decugis@ext.bull.net)
 		 - sem_post/8-1.c: Fix. Will leave Zombie process if fail.
 05-10-2004	adam.li@intel.com
@@ -88,13 +88,13 @@
 		   pthread_attr_setstack/2-1.c, pthread_attr_setstackaddr/2-1.c,
 		   pthread_attr_setstacksize/2-1.c: define _GNU_SOURCE correctly.
 05-09-2004	adam.li@intle.com
-		 - Add cases pthread_mutex_init/1-2.c, 3-2.c, 5-3.c 
+		 - Add cases pthread_mutex_init/1-2.c, 3-2.c, 5-3.c
 		   by Sebastien Dugue(sebastien.decugis@ext.bull.net)
 05-01-2004	1.4.1 Release
-04-30-2004	adam.li@intel.com 
+04-30-2004	adam.li@intel.com
 		 - sigqueue/12-1.c: Use setuid() instead of seteuid()
 		 - sigqueue/3-1.c: Same as above.
-		 - shm_open/40-1.c: Remove it. This case cannot exit cleanly, 
+		 - shm_open/40-1.c: Remove it. This case cannot exit cleanly,
 		   leaving zombie processes.
 		 - shm_open/33-1.c: Remove. Improper scenario.
 		 - shm_open/23-1.c: Rewrite the test scenario.
@@ -102,7 +102,7 @@
 		 - pthread_attr_setinheritsched/5-1.c: Remove. Not correct.
 		 - pthread_attr_setscope/5-1.c: Return PTS_UNTESTED
 		 - sched_setparam/23-6.c: Fix the case. It was untested before.
-		 - sched_setscheduler/17-5.c: make -1 as a invalid policy. 
+		 - sched_setscheduler/17-5.c: make -1 as a invalid policy.
 		 - sched_setscheduler/20-1.c: Fix. It was untested before.
 04-29-2004	adam.li@intel.com
 		 - add mq_timedsend/16-1.c: Use CLOCK_REALTIME
@@ -122,7 +122,7 @@
 		- Complete signals suite
 		- Complete <sched.h> process scheduling suite
 		- Snapshot of threads tests (most of the non-tag associated APIs)
-		- Bug fixes in all areas (including adding "_POSIX_C_SOURCE=200112L" to 
+		- Bug fixes in all areas (including adding "_POSIX_C_SOURCE=200112L" to
 		  the Makefile to make the actual test suite POSIX compliant)
 		- Added QUICK-START document to top-level dir
 		rolla.n.selbak REMOVE-THIS AT intel DOT com
@@ -133,7 +133,7 @@
 		- Complete message queues suite
 		- Snapshot of threads tests (most of the non-tag associated APIs)
 		- framework bug fixes.  Added the ./run_tests script.
-		rolla.n.selbak REMOVE-THIS AT intel DOT com 
+		rolla.n.selbak REMOVE-THIS AT intel DOT com
 02-10-2003	0.2.0 Release
 		- timers bug fixes
 		- snapshot of semaphores tests
@@ -144,4 +144,4 @@
 12-16-2002	0.1.0 Release
 		- timers tests for TMR and CS tags (for timers)
 		julie.n.fleischer REMOVE-THIS AT intel DOT com
-				
+
diff --git a/testcases/open_posix_testsuite/Documentation/COVERAGE.mqueues b/testcases/open_posix_testsuite/Documentation/COVERAGE.mqueues
index 4a1ff8d..68c6695 100644
--- a/testcases/open_posix_testsuite/Documentation/COVERAGE.mqueues
+++ b/testcases/open_posix_testsuite/Documentation/COVERAGE.mqueues
@@ -52,7 +52,7 @@
 	- Create the mqueue FS:
 		mkdir /dev/mqueue
 		mount -t mqueue none /dev/mqueue
-							
+
 */
 Maintainer: Julie Fleischer
 Contributor:  Crystal Xiong
diff --git a/testcases/open_posix_testsuite/Documentation/COVERAGE.semaphores b/testcases/open_posix_testsuite/Documentation/COVERAGE.semaphores
index 94f9c38..69208d8 100644
--- a/testcases/open_posix_testsuite/Documentation/COVERAGE.semaphores
+++ b/testcases/open_posix_testsuite/Documentation/COVERAGE.semaphores
@@ -44,7 +44,7 @@
 Clean up:
 =========
 file: cln.sh is a file to clean any open semaphores on the system if they remain
-open after running such test. 
+open after running such test.
 
 
 */
diff --git a/testcases/open_posix_testsuite/Documentation/COVERAGE.signals b/testcases/open_posix_testsuite/Documentation/COVERAGE.signals
index 1a1ff7b..a08e327 100644
--- a/testcases/open_posix_testsuite/Documentation/COVERAGE.signals
+++ b/testcases/open_posix_testsuite/Documentation/COVERAGE.signals
@@ -36,7 +36,7 @@
 //=============================================================================
 bsd_signal	WONT		LOW
 kill		YES		HIGH
-killpg		YES		HIGH		
+killpg		YES		HIGH
 pthread_kill	YES		MED
 pthread_sigmask	YES		MED
 raise		YES		HIGH
diff --git a/testcases/open_posix_testsuite/Documentation/COVERAGE.threads b/testcases/open_posix_testsuite/Documentation/COVERAGE.threads
index 63ae5f6..6c9eb46 100644
--- a/testcases/open_posix_testsuite/Documentation/COVERAGE.threads
+++ b/testcases/open_posix_testsuite/Documentation/COVERAGE.threads
@@ -58,7 +58,7 @@
 *For now, didn't include definitions that have specific tags attributed to them.
 (i.e. TPS, XSI, BAR, etc.)
 
-*See BUILD file in top-level dir for info on how to build and execute threads on 
+*See BUILD file in top-level dir for info on how to build and execute threads on
 different implementations on Linux.
 
 =============================
diff --git a/testcases/open_posix_testsuite/Documentation/COVERAGE.timers b/testcases/open_posix_testsuite/Documentation/COVERAGE.timers
index 8e655f4..bb03e84 100644
--- a/testcases/open_posix_testsuite/Documentation/COVERAGE.timers
+++ b/testcases/open_posix_testsuite/Documentation/COVERAGE.timers
@@ -44,7 +44,7 @@
 information on how to compile tests from within the framework.
 
 Some additional notes:
-If you want to get CLOCK_MONOTONIC, though, one option that worked 
+If you want to get CLOCK_MONOTONIC, though, one option that worked
 with HRT 2.5.54bk6 and below and RH7.3 was to include
 /usr/src/linux/Documentation/high-res-timers/lib/posix_time.h
 and turn on -D_POSIX_TIMERS.
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_Assertions b/testcases/open_posix_testsuite/Documentation/HOWTO_Assertions
index 58bc976..e875e4c 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_Assertions
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_Assertions
@@ -8,7 +8,7 @@
 ------
 The general format of an assertion is:
 <assertion id="<#>" tag="<string>">
-</assertion> 
+</assertion>
 
 ID
 --
@@ -39,9 +39,9 @@
                XSH#   - POSIX System Interfaces document
                XCU#   - POSIX Shell and Utilities document
                XRAT#  - POSIX Rationale document
-	       
+
 	       When dealing with Technical Corrigendums, append TC# where # refers to
-		the technical corrigendum document number.  
+		the technical corrigendum document number.
 
 		e.g.  XSH6TC1,  XBDTC2, etc.
 
@@ -49,19 +49,19 @@
                user defined - Ideally should be short (1-3 letters) to define the
                               source.
 
-start line/ - Refers to the first and last line in the source where the 
+start line/ - Refers to the first and last line in the source where the
 last line     assertion is taken from.  If the type is oth and there are no
-              line numbers, this should be the page number (or 0 if no 
+              line numbers, this should be the page number (or 0 if no
               page numbers).
 
               Note:  If you do not have access to the line numbers in
-                     the official POSIX Specs, then simply put in 
+                     the official POSIX Specs, then simply put in
                      brackets an unofficial reference
                      (ex. <section 3.4, third bullet>)
 
 pt:<POSIXtag> - If the assertion is taken from a POSIX specification and there
                 is a POSIX tag (pt) associated with it, the additional string
-                pt:<POSIXtag> can designate this.  <tag> is the three letter 
+                pt:<POSIXtag> can designate this.  <tag> is the three letter
                 POSIX tag.
 
 Contributors:  geoffrey.r.gustafson REMOVE-THIS AT intel DOT com
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_BoundaryTest b/testcases/open_posix_testsuite/Documentation/HOWTO_BoundaryTest
index 231afc0..f7df8f3 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_BoundaryTest
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_BoundaryTest
@@ -5,7 +5,7 @@
 would cause warnings (because warnings are treated as errors), so the following
 list of boundary values has been created for boundary testing.
 
-These boundary values are those values that the gcc compiler would set an 
+These boundary values are those values that the gcc compiler would set an
 invalid parameter to during compile time:
 
 INT32_MAX+1       -2147483647 (gcc compiler gave -2147483648)
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_BugReporting b/testcases/open_posix_testsuite/Documentation/HOWTO_BugReporting
index 33d7939..4af6338 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_BugReporting
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_BugReporting
@@ -23,7 +23,7 @@
 3.  Debug as much as possible.
     Some steps include:
     - Create a test case which clearly shows the bug.
-    - If possible, find the fault in the code under test causing the test case 
+    - If possible, find the fault in the code under test causing the test case
       failure.
     - If possible, create a patch to fix the fault.
 4.  If the code under test is compatible with another POSIX version (e.g.,
@@ -44,7 +44,7 @@
 
 *targeted implementation = an implementation which POSIX Test Suite will
 be run against; not yet formally defined
-**Process for tracing a test case to previous POSIX specifications not 
+**Process for tracing a test case to previous POSIX specifications not
 yet defined.
 
 Contributors:	geoffrey.r.gustafson REMOVE-THIS AT intel DOT com
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_ConformanceTest b/testcases/open_posix_testsuite/Documentation/HOWTO_ConformanceTest
index 9b77fde..0e78b89 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_ConformanceTest
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_ConformanceTest
@@ -20,14 +20,14 @@
 
 Within this directory, there are the following three subdirectories:
 
-definitions/ - This directory contains tests for each *.h file in the POSIX 
+definitions/ - This directory contains tests for each *.h file in the POSIX
 spec.  Tests are taken from the Base Definitions document.
 
-interfaces/ - This directory contains tests for each function listed in the 
+interfaces/ - This directory contains tests for each function listed in the
 POSIX spec.  Tests are taken from the System Interfaces document.
 
-behavior/ - This directory contains tests from any document that do not 
-directly correlate to functions (as in interfaces/) or header files 
+behavior/ - This directory contains tests from any document that do not
+directly correlate to functions (as in interfaces/) or header files
 (as in definitions/).
 
 The breakdown of these subdirectories is as follows:
@@ -52,7 +52,7 @@
 Writing Tests
 -------------
 
-Within each lowest level directory (definitions/*_h for definitions, 
+Within each lowest level directory (definitions/*_h for definitions,
 interfaces/<function> for interfaces, and behavior/<functional area> for
 behavior), an assertions.xml file is used to describe the tests, and tests
 have the structure M-N.c or M-N.sh.  More details are below.
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_Coverage b/testcases/open_posix_testsuite/Documentation/HOWTO_Coverage
index 8f4c0d8..e296181 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_Coverage
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_Coverage
@@ -69,7 +69,7 @@
 For example, only the clock_gettime line would be parsed below:
 
 // SAMPLE FILE: First Line
-   
+
 // The line above is whitespace only, and the line below is blank
 
 /*
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_FunctionalStressTest b/testcases/open_posix_testsuite/Documentation/HOWTO_FunctionalStressTest
index 8e15a30..6fba490 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_FunctionalStressTest
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_FunctionalStressTest
@@ -15,9 +15,9 @@
 Stress Test Definition
 ----------------------
 
-Stress tests are designed to monitor how the system behaves when it is 
+Stress tests are designed to monitor how the system behaves when it is
 taxed by excessively using the functional areas in the POSIX specification
-or monitoring how the functional areas in the POSIX specification behave 
+or monitoring how the functional areas in the POSIX specification behave
 when the system is taxed.
 
 Directory Structure
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_Release b/testcases/open_posix_testsuite/Documentation/HOWTO_Release
index 874a38b..a6970c8 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_Release
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_Release
@@ -12,7 +12,7 @@
 
 2.  Create a posixtestsuite-<major>.<minor>.<rev>.tar.gz file containing
     everything with the release tag.
-    Note:  Follow guidelines on:  
+    Note:  Follow guidelines on:
     http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/distpractice.html
 
 3.  Use the SF admin interface to add this file to the project.
diff --git a/testcases/open_posix_testsuite/Documentation/HOWTO_ResultCodes b/testcases/open_posix_testsuite/Documentation/HOWTO_ResultCodes
index 81a7397..65680f2 100644
--- a/testcases/open_posix_testsuite/Documentation/HOWTO_ResultCodes
+++ b/testcases/open_posix_testsuite/Documentation/HOWTO_ResultCodes
@@ -2,7 +2,7 @@
 ============
 
 POSIX Test Suite tests all return standard result codes for ease in
-interpreting the output.  The result code terms are taken from 
+interpreting the output.  The result code terms are taken from
 IEEE Test Methods for Measuring Conformance to POSIX (IEEE 1003.3-1991).
 These result codes are a subset of the LSB result codes and, for
 consistency with LSB, are given the same number.
@@ -31,9 +31,9 @@
 PTP_UNTESTED	Used when a feature does not have a test associated
 		with it because:
 		- The test is just a stub and doesn't do anything
-		- The test is only partially complete and can't really 
+		- The test is only partially complete and can't really
 		  finish the test
-		- The test is complete in some cases, but certain things 
+		- The test is complete in some cases, but certain things
 		  can happen that leave the test incomplete.  When these
 		  happen, it's PTP_UNTESTED.
 
diff --git a/testcases/open_posix_testsuite/Makefile b/testcases/open_posix_testsuite/Makefile
index 97ab8fd..9c61fa4 100644
--- a/testcases/open_posix_testsuite/Makefile
+++ b/testcases/open_posix_testsuite/Makefile
@@ -40,7 +40,7 @@
 
 all: conformance-all functional-all stress-all tools-all
 
-clean: $(CRITICAL_MAKEFILES) 
+clean: $(CRITICAL_MAKEFILES)
 	@rm -f $(LOGFILE)*
 	@for dir in $(SUBDIRS) tools; do \
 	    $(MAKE) -C $$dir clean >/dev/null; \
diff --git a/testcases/open_posix_testsuite/NEWS b/testcases/open_posix_testsuite/NEWS
index 8760f3c..576ad75 100644
--- a/testcases/open_posix_testsuite/NEWS
+++ b/testcases/open_posix_testsuite/NEWS
@@ -3,27 +3,27 @@
 
 -June 03, 2005 Version 1.5.1 Released
 PTS-1.5.1 has a plenty of AIO interface test additions and bug-fixes by Sebastien Decugis. Also there are a lot of bug fixes by other people. Thanks to Sebastien Decugis and other people for continued support and contributions.
-This release has been tested on glibc-2.3.3 and kernel 2.6.10 with libposix-aio-0.3. The test result for this release can be found here: http://posixtest.sourceforge.net/testpass/PTS_1.5.1-2.6.10-PAIO_ia32.htm 
+This release has been tested on glibc-2.3.3 and kernel 2.6.10 with libposix-aio-0.3. The test result for this release can be found here: http://posixtest.sourceforge.net/testpass/PTS_1.5.1-2.6.10-PAIO_ia32.htm
 
 
--December 17, 2004 Version 1.5.0 Released 
+-December 17, 2004 Version 1.5.0 Released
 A much anticipated release with plenty of interface test additions and bug-fixes. Added AIO test suite by Laurent Vivier. Special thanks to Sebastien Decugis and Ulrich Drepper for continued support and contributions. Also exciting news about OSDL and Bull integrating PTS into OSDL's Scalable Test Platform (STP).
 
 -July 06, 2004 Version 1.4.3 Released
 Here goes posixtest-1.3. Besides many bug fixes, this release includes new pthread test cases (conformance, functional, stress) by Sebastien Decugis and Abhijeet Bisain. Special thanks goes to people who made contributions. And we are glad that PTS is helping kernel, library and application developers and OSDs on their POSIX related work. Please see the release page for downloads and more information.
 
 -May 27, 2004 Version 1.4.2 Released
-Posixtestsuite-1.4.2 adds several pthread test cases by Sebastien Decugis. Also there are a lot of bug fixes by Ulrich Drepper and other people. This suite has been run on latest glibc and linux kernel 2.6.5. All the failed cases has been analyzed. Please see the release page for downloads and more information. 
+Posixtestsuite-1.4.2 adds several pthread test cases by Sebastien Decugis. Also there are a lot of bug fixes by Ulrich Drepper and other people. This suite has been run on latest glibc and linux kernel 2.6.5. All the failed cases has been analyzed. Please see the release page for downloads and more information.
 
 -May 01, 2004 Version 1.4.1 Released
-posixtestsuite-1.4.1 fixes a bunch of bugs in 1.4.0 version. This release has been tested on glibc-2004-04-29 cvs pull (NPTL enabled) and linux-2.6.5-mm6 kernel.It is noted that "POSIX Message Queues" has been integrated into linux kernel and glibc. Please see the release page for downloads and more information. The test result for this release can be found here: test results - PTS 1.4.1, Kernel 2.6.5-mm6, ia32 . 
+posixtestsuite-1.4.1 fixes a bunch of bugs in 1.4.0 version. This release has been tested on glibc-2004-04-29 cvs pull (NPTL enabled) and linux-2.6.5-mm6 kernel.It is noted that "POSIX Message Queues" has been integrated into linux kernel and glibc. Please see the release page for downloads and more information. The test result for this release can be found here: test results - PTS 1.4.1, Kernel 2.6.5-mm6, ia32 .
 
 -April 15, 2004 Version 1.4.0 Released
-POSIX Test Suite 1.4.0 includes more pthread conformance test cases. Now we have test cases covering almost all pthread APIs. Conformance test cases for options like CPT, TCT, TMR are also added. There are also a lot of bug fixes made from the previous 1.3.0 version (thanks for Ulrich Drepper's patches and to everyone who made contributions). Please see the release page for downloads and more information. 
+POSIX Test Suite 1.4.0 includes more pthread conformance test cases. Now we have test cases covering almost all pthread APIs. Conformance test cases for options like CPT, TCT, TMR are also added. There are also a lot of bug fixes made from the previous 1.3.0 version (thanks for Ulrich Drepper's patches and to everyone who made contributions). Please see the release page for downloads and more information.
 
 -March 11, 2004 Test Pass Results - (CVS pull 3-04-04)
-POSIX Test Suite test pass results available for [CVS pull 3-04-04, Kernel 2.6.1, libc-2004-02-15 and message queue 4.17 patch on IA64 platform]. The results can be found here: test results - cvs 3-04-04, Kernel 2.6.1, ia64 . 
+POSIX Test Suite test pass results available for [CVS pull 3-04-04, Kernel 2.6.1, libc-2004-02-15 and message queue 4.17 patch on IA64 platform]. The results can be found here: test results - cvs 3-04-04, Kernel 2.6.1, ia64 .
 
 -March 1, 2004 Test Pass Results - (CVS pull 2-20-04)
-POSIX Test Suite test pass results available for [CVS pull 2-20-04, Kernel 2.6.1, libc-2004-02-01 and message queue 4.17 patch on IA32 platform]. We are currently in the process of setting up a main test results page, but until then, the results can be found here: test results - cvs 2-20-04, Kernel 2.6.1 . 
+POSIX Test Suite test pass results available for [CVS pull 2-20-04, Kernel 2.6.1, libc-2004-02-01 and message queue 4.17 patch on IA32 platform]. We are currently in the process of setting up a main test results page, but until then, the results can be found here: test results - cvs 2-20-04, Kernel 2.6.1 .
 
diff --git a/testcases/open_posix_testsuite/QUICK-START b/testcases/open_posix_testsuite/QUICK-START
index 6afde74..6f5d881 100644
--- a/testcases/open_posix_testsuite/QUICK-START
+++ b/testcases/open_posix_testsuite/QUICK-START
@@ -2,7 +2,7 @@
 QUICK-START
 ***********
 
-So you're in a hurry and don't feel like reading all those docs in the Documentation section that we have worked so hard to write huh?  
+So you're in a hurry and don't feel like reading all those docs in the Documentation section that we have worked so hard to write huh?
 
 No worries! Here's a quick doc to help you around POSIX** Test Suite.
 
@@ -13,7 +13,7 @@
 * There is nothing to install, the suite is intended to be run directly.
 
 * See the "BUILD" file for info on how to set up the Makefile and your machine,
-  depending on what specific area you are concentrating on. 
+  depending on what specific area you are concentrating on.
 (Signals, Semaphores, Threads, Timers or Message Queues).
 
 ===================
diff --git a/testcases/open_posix_testsuite/README b/testcases/open_posix_testsuite/README
index d341df7..4afc326 100644
--- a/testcases/open_posix_testsuite/README
+++ b/testcases/open_posix_testsuite/README
@@ -36,7 +36,7 @@
   specifications.  We wanted to capture enough data to make deterministic
   statements about our coverage of the POSIX specification.
 
-- Give the ability to send test case source to bug reports to appropriate 
+- Give the ability to send test case source to bug reports to appropriate
   open source projects when our test cases revealed bugs in those projects.
   (Meaning we wanted fairly simple, self-contained test cases which
   illuminated a single failure.)
@@ -48,8 +48,8 @@
 
 This project will cover conformance, functional, stress, performance,
 and speculative testing.  Conformance, functional, and stress tests are
-the only tests formally documented and enabled by our framework, with our 
-focus mainly on conformance; however, the other types of testing will be 
+the only tests formally documented and enabled by our framework, with our
+focus mainly on conformance; however, the other types of testing will be
 added as the need arises.
 
 For more information on these types of testing, under 'Documenation' see:
@@ -86,7 +86,7 @@
 * When you create a new test, please fill out an assertion description
   if none is available. Create a simple C [.c] or shell script [.sh]
   snippet that exploits the assertion and returns 0 or !0
-  [passes/fails]. 
+  [passes/fails].
 
   Please name the file after the assertion it tests-dash-the number of
   the test [up to you, we can do the naming for you also].
diff --git a/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh b/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh
index 5ec6e6a..17f6e49 100755
--- a/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh
+++ b/testcases/open_posix_testsuite/bin/run-posix-option-group-test.sh
@@ -11,7 +11,7 @@
 
 usage()
 {
-    cat <<EOF 
+    cat <<EOF
 usage: $(basename "$0") [AIO|MEM|MSG|SEM|SIG|THR|TMR|TPS]
 
 Build and run the tests for POSIX area specified by the 3 letter tag
diff --git a/testcases/open_posix_testsuite/bin/run-tests.sh b/testcases/open_posix_testsuite/bin/run-tests.sh
index 293e175..bd8ca14 100755
--- a/testcases/open_posix_testsuite/bin/run-tests.sh
+++ b/testcases/open_posix_testsuite/bin/run-tests.sh
@@ -124,5 +124,5 @@
 	exit $NUM_FAIL
 
 else
-	exit $? 
+	exit $?
 fi
diff --git a/testcases/open_posix_testsuite/conformance/definitions/aio_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/aio_h/assertions.xml
index 3e1a195..6b3017b 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/aio_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/aio_h/assertions.xml
@@ -31,10 +31,10 @@
 		int aio_fsync(int, struct aiocb *);
 		int aio_read(struct aiocb *);
 		ssize_t aio_return(struct aiocb *);
-		int aio_suspend(const struct aiocb *const[], int, 
+		int aio_suspend(const struct aiocb *const[], int,
 				const struct timespec *);
 		int aio_write(struct aiocb *);
-		int lio_listio(int, struct aiocb *restrict const[restrict], 
+		int lio_listio(int, struct aiocb *restrict const[restrict],
 			       int, struct sigevent *restrict);
 	</assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/definitions/errno_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/errno_h/assertions.xml
index 08b7934..a6250cb 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/errno_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/errno_h/assertions.xml
@@ -3,11 +3,11 @@
     The errno.h header file exists.
   </assertion>
   <assertion id="2" tag="ref:BD:{Headers:error.h,DESCRIPTION}">
-    The errno.h header shall provide a declaration for errno 
+    The errno.h header shall provide a declaration for errno
   </assertion>
   <assertion id="3" tag="ref:SH:{Section 2.3}">
-   	All values listed in this section shall be unique integer constant 
-	expressions with type int suitable for 
+   	All values listed in this section shall be unique integer constant
+	expressions with type int suitable for
    	use in #if preprocessing directives.
     [E2BIG]
     [EACCES]
diff --git a/testcases/open_posix_testsuite/conformance/definitions/pthread_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/pthread_h/assertions.xml
index 492fa17..433e277 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/pthread_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/pthread_h/assertions.xml
@@ -4,9 +4,9 @@
   </assertion>
   <assertion id="2" tag="ref:XBD6:10179:10202">
   pthread.h header shall define the following symbols
-  
+
   PTHREAD_BARRIER_SERIAL_THREAD  BAR
-  PTHREAD_CANCEL_ASYNCHRONOUS  
+  PTHREAD_CANCEL_ASYNCHRONOUS
   PTHREAD_CANCEL_ENABLE
   PTHREAD_CANCEL_DEFERRED
   PTHREAD_CANCEL_DISABLE
diff --git a/testcases/open_posix_testsuite/conformance/definitions/pthread_h/coverage.txt b/testcases/open_posix_testsuite/conformance/definitions/pthread_h/coverage.txt
index 6832014..1761464 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/pthread_h/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/definitions/pthread_h/coverage.txt
@@ -5,7 +5,7 @@
 
 Assertion #	Covered?	Notes
 1		YES
-2		YES  		The symbols with tags associated with them 
+2		YES  		The symbols with tags associated with them
 				usually fail on my implementaion of linux (e.g.
  				BAR, XSI, etc.)
 3		YES		#2,3,10,11,12 fail on my implemention of linux
diff --git a/testcases/open_posix_testsuite/conformance/definitions/sched_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/sched_h/assertions.xml
index 0bea4ed..6525b84 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/sched_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/sched_h/assertions.xml
@@ -3,28 +3,28 @@
    The sched.h header file exists
   </assertion>
   <assertion id="2" tag="ref:XBD6:{Headers:sched.h:DESCRIPTION}">
-   The sched.h header defines the structure sched_param which includes 
+   The sched.h header defines the structure sched_param which includes
    the following, at a minimum:
      int     sched_priority
   </assertion>
   <assertion id="3" tag="ref:XBD6:{Headers:sched.h:DESCRIPTION} pt:SS">
-   When _POSIX_SPORADIC_SERVER is defined, the structure sched_param 
+   When _POSIX_SPORADIC_SERVER is defined, the structure sched_param
    shall also include the following:
-     int    sched_ss_low_priority 
-     struct timespec sched_ss_repl_period 
-     struct timespec sched_ss_init_budget 
-     int    sched_ss_max_repl     
-  </assertion>  
+     int    sched_ss_low_priority
+     struct timespec sched_ss_repl_period
+     struct timespec sched_ss_init_budget
+     int    sched_ss_max_repl
+  </assertion>
   <assertion id="4" tag="ref:XBD6:{Headers:sched.h:DESCRIPTION} pt:TSP">
-   When _POSIX_THREAD_SPORADIC_SERVER is defined, the structure 
+   When _POSIX_THREAD_SPORADIC_SERVER is defined, the structure
    sched_param shall also includes  the following:
-     int    sched_ss_low_priority 
-     struct timespec sched_ss_repl_period 
-     struct timespec sched_ss_init_budget 
-     int    sched_ss_max_repl     
+     int    sched_ss_low_priority
+     struct timespec sched_ss_repl_period
+     struct timespec sched_ss_init_budget
+     int    sched_ss_max_repl
   </assertion>
   <assertion id="5" tag="ref:XBD6:{Headers:sched.h:DESCRIPTION}">
-   Each process is controlled by an associated scheduling policy 
+   Each process is controlled by an associated scheduling policy
    and priority
   </assertion>
   <assertion id="6" tag="ref:XBD6:{Headers:sched.h:DESCRIPTION}">
@@ -84,7 +84,7 @@
    int    sched_yield(void);
   </assertion>
   <assertion id="19" tag="ref:XBD6:{Headers:sched.h:DESCRIPTION}">
-   Inclusion of the sched.h header may make visible all symbols from 
+   Inclusion of the sched.h header may make visible all symbols from
    the time.h header.
-  </assertion>  
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/definitions/signal_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/signal_h/assertions.xml
index 525e4ba..bbd6746 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/signal_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/signal_h/assertions.xml
@@ -17,11 +17,11 @@
   </assertion>
   <assertion id="6" tag="ref:XBD6:10735:10741 pt:RTS">
     The signal.h header defines a structure named sigevent which has at least:
-    int sigev_notify 
-    int sigev_signo 
-    union sigval sigev_value 
-    void(*)(union sigval) sigev_notify_function 
-    (pthread_attr_t *) sigev_notify_attributes 
+    int sigev_notify
+    int sigev_signo
+    union sigval sigev_value
+    void(*)(union sigval) sigev_notify_function
+    (pthread_attr_t *) sigev_notify_attributes
   </assertion>
   <assertion id="7" tag="ref:XBD6:10742:10747 pt:RTS">
     For sigev_notify (assertion 6), the following values are defined:
@@ -31,7 +31,7 @@
   </assertion>
   <assertion id="8" tag="ref:XBD6:10748:10750 pt:RTS">
     The sigval union (assertion 6) is defined as:
-    int sival_int 
+    int sival_int
     void *sival_ptr
   </assertion>
   <assertion id="9" tag="ref:XBD6:10751:10753 pt:RTS">
@@ -56,13 +56,13 @@
   </assertion>
   <assertion id="14" tag="ref:XBD6:10765:10797">
     The following signals are always (on all implementations) supported:
-    SIGABRT 
-    SIGALRM 
-    SIGBUS 
+    SIGABRT
+    SIGALRM
+    SIGBUS
     SIGCHLD
     SIGCONT
-    SIGFPE 
-    SIGHUP 
+    SIGFPE
+    SIGHUP
     SIGILL
     SIGINT
     SIGKILL
@@ -78,37 +78,37 @@
     SIGUSR2
     SIGPOLL
     SIGPROF
-    SIGSYS 
+    SIGSYS
     SIGTRAP
-    SIGURG 
+    SIGURG
     SIGVTALRM
-    SIGXCPU 
+    SIGXCPU
     SIGXFSZ
   </assertion>
   <assertion id="15" tag="ref:XBD6:10808:10817">
    The signal.h header declares the struct sigaction which has, at a minimum,
    the following members:
-    void (*sa_handler)(int) 
+    void (*sa_handler)(int)
     sigset_t sa_mask
-    int sa_flags 
+    int sa_flags
     void (*)(int, siginfo_t *, void *) sa_sigaction
   </assertion>
   <assertion id="16" tag="ref:XBD6:10820:10839">
    The constants below are declared:
    SA_NOCLDSTOP
    SIG_BLOCK
-   SIG_UNBLOCK 
+   SIG_UNBLOCK
    SIG_SETMASK
-   SA_ONSTACK 
+   SA_ONSTACK
    SA_RESETHAND
    SA_RESTART
    SA_SIGINFO
    SA_NOCLDWAIT
-   SA_NODEFER 
+   SA_NODEFER
    SS_ONSTACK
-   SS_DISABLE 
+   SS_DISABLE
    MINSIGSTKSZ
-   SIGSTKSZ 
+   SIGSTKSZ
   </assertion>
   <assertion id="17" tag="ref:XBD6:10840:10840">
     The ucontext.h header shall define ucontext_t.
@@ -118,28 +118,28 @@
   </assertion>
   <assertion id="19" tag="ref:XBD6:10842:10846">
    The signal.h header defines the structure stack_t which includes the
-   following, at a minimum: 
+   following, at a minimum:
    void   *ss_sp
    size_t ss_size
    int    ss_flags
   </assertion>
   <assertion id="20" tag="ref:XBD6:10847:10850">
    The signal.h header defines the structure sigstack which includes the
-   following, at a minimum: 
+   following, at a minimum:
    int  ss_onstack
    void *ss_sp
   </assertion>
   <assertion id="21" tag="ref:XBD6:10852:10864">
    The signal.h header defines the structure siginfo_t which includes the
-   following, at a minimum: 
+   following, at a minimum:
    int si_signo
-   int si_errno 
+   int si_errno
    int si_code
    pid_t si_pid
-   uid_t si_uid 
+   uid_t si_uid
    void *si_addr
-   int si_status 
-   long si_band 
+   int si_status
+   long si_band
    union sigval si_value
   </assertion>
   <assertion id="22" tag="ref:XBD6:10867:10910">
@@ -296,7 +296,7 @@
    int sigwaitinfo(const sigset_t *restrict, siginfo_t *restrict);
   </assertion>
   <assertion id="50" tag="ref:XBD6:10959:10959">
-   Inclusion of the signal.h header may make visible all symbols from 
+   Inclusion of the signal.h header may make visible all symbols from
    the time.h header.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/assertions.xml
index 8cb7495..ebd57ea 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/sys/mman_h/assertions.xml
@@ -40,24 +40,24 @@
   </assertion>
   <assertion id="7" tag="ref:XBD6:{Headers:sys/mman.h:DESCRIPTION} pt:ADV pt:MF pt:SHM">
    The header defines the following symbolic values:
-	POSIX_MADV_NORMAL 
-	POSIX_MADV_SEQUENTIAL 
-	POSIX_MADV_RANDOM 
-	POSIX_MADV_WILLNEED 
-	POSIX_MADV_DONTNEED 
+	POSIX_MADV_NORMAL
+	POSIX_MADV_SEQUENTIAL
+	POSIX_MADV_RANDOM
+	POSIX_MADV_WILLNEED
+	POSIX_MADV_DONTNEED
   </assertion>
   <assertion id="8" tag="ref:XBD6:{Headers:sys/mman.h:DESCRIPTION} pt:TYM">
    The header defines the following flags for posix_typed_mem_open():
-	POSIX_TYPED_MEM_ALLOCATE 
-	POSIX_TYPED_MEM_ALLOCATE_CONTIG 
-	POSIX_TYPED_MEM_MAP_ALLOCATABLE 
+	POSIX_TYPED_MEM_ALLOCATE
+	POSIX_TYPED_MEM_ALLOCATE_CONTIG
+	POSIX_TYPED_MEM_MAP_ALLOCATABLE
   </assertion>
   <assertion id="9" tag="ref:XBD6:{Headers:sys/mman.h:DESCRIPTION}">
-   The mode_t, off_t, and size_t types shall be defined as described in 
-   sys/types.h 
+   The mode_t, off_t, and size_t types shall be defined as described in
+   sys/types.h
   </assertion>
   <assertion id="10" tag="ref:XBD6:{Headers:sys/mman.h:DESCRIPTION}} pt:TYM">
-   The sys/mman.h header shall define the structure posix_typed_mem_info, 
+   The sys/mman.h header shall define the structure posix_typed_mem_info,
    which includes at least the following member:
 	size_t posix_tmi_length
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/definitions/time_h/assertions.xml b/testcases/open_posix_testsuite/conformance/definitions/time_h/assertions.xml
index 058bed1..3a47434 100644
--- a/testcases/open_posix_testsuite/conformance/definitions/time_h/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/definitions/time_h/assertions.xml
@@ -41,7 +41,7 @@
     CLOCK_MONOTONIC (@pt:MON)
   </assertion>
   <assertion id="7" tag="ref:XBD6:13690:13691">
-   sys/types.h shall define clock_t, size_t, time_t, clockid_t (@pt:TMR), 
+   sys/types.h shall define clock_t, size_t, time_t, clockid_t (@pt:TMR),
    and timer_t (@pt:TMR).
   </assertion>
   <assertion id="8" tag="ref:XBD6:13698:13698">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/aio_error/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/aio_error/assertions.xml
index 1790338..428c365 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_error/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_error/assertions.xml
@@ -9,7 +9,7 @@
 	</assertion>
 	<assertion id="3" tag="ref:XSH6TC2:4028:4029">
 	aio_error() may fail if:
-	[EINVAL] The aiocbp argument does not refer to an asynchronous 
+	[EINVAL] The aiocbp argument does not refer to an asynchronous
 	operation whose return status has not yet been retrieved.
 	</assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/assertions.xml
index 89484b2..b512701 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_fsync/assertions.xml
@@ -35,7 +35,7 @@
 	queued.
 	</assertion>
 	<assertion id="10" tag="ref:XSH6TC2:4084:4084">
-	aio_fsync() shall return the value -1 and set errno to indicate error 
+	aio_fsync() shall return the value -1 and set errno to indicate error
 	if the operation is not successfully queued.
 	</assertion>
 	<assertion id="11" tag="ref:XSH6TC2:4088:4089">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/assertions.xml
index e73748d..e23c6bc 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_read/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_read/assertions.xml
@@ -4,8 +4,8 @@
 	buffer aio_buf.
 	</assertion>
 	<assertion id="2" tag="ref:XSH6TC2:4129:4132">
-	If prioritized I/O is supported asynchronous operation shall be 
-	submitted at priority equal to a base schedulling priority minus 
+	If prioritized I/O is supported asynchronous operation shall be
+	submitted at priority equal to a base schedulling priority minus
 	aio_reqprio.
 	</assertion>
 	<assertion id="3" tag="ref:XSH6TC2:4133:4133">
@@ -20,7 +20,7 @@
 	<assertion id="6" tag="ref:XSH6TC2:4151:4152">
 	For regular files, no data transfer shall occur past the offset
 	maximum established in the open file description associated with
-	aio_fildes. 
+	aio_fildes.
 	</assertion>
 	<assertion id="7" tag="ref:XSH6TC2:4154:4154">
 	The aio_read() function shall return the value zero if operation is
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/assertions.xml
index 62568f4..2c3104e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/aio_return/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/aio_return/assertions.xml
@@ -11,7 +11,7 @@
 	</assertion>
 	<assertion id="4" tag="ref:XSH6TC2:4235:4236">
 	aio_return() may fail with EINVAL]:
-        if the aiocbp does not refer to an operation whose return status 
+        if the aiocbp does not refer to an operation whose return status
 	has not yet been retrieved.
 	</assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock/4-1.sh
index eb95a96..c156041 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_getcpuclockid/2-1.c b/testcases/open_posix_testsuite/conformance/interfaces/clock_getcpuclockid/2-1.c
index cef85a5..05f2596 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_getcpuclockid/2-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_getcpuclockid/2-1.c
@@ -61,7 +61,7 @@
 		printf("clock_gettime(clockid_2,) failed\n");
 		return PTS_FAIL;
 	}
-	
+
 	if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &t3) != 0) {
 		printf("clock_gettime(CLOCK_PROCESS_CPUTIME_ID,) failed\n");
 		return PTS_FAIL;
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/2-1.sh
index f1f22c1..bfa3700 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/4-1.sh
index cbbb2a1..862bc9d 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/assertions.xml
index e6e5dcd..2299014 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_getres/assertions.xml
@@ -19,26 +19,26 @@
    clock
   </assertion>
   <assertion id="7" tag="ref:XSH6:6633:6641">
-CPT If _POSIX_CPUTIME is defined, implementations shall support 
-clock ID values obtained by invoking clock_getcpuclockid( ), 
+CPT If _POSIX_CPUTIME is defined, implementations shall support
+clock ID values obtained by invoking clock_getcpuclockid( ),
 which represent the CPU-time clock of a given process.
 Implementations shall also support the special clockid_t value
-CLOCK_PROCESS_CPUTIME_ID, which represents the CPU-time clock of 
-the calling process when invoking one of the clock_*( ) or timer_*( ) 
-functions. For these clock IDs, the values returned by 
-clock_gettime( ) and specified by clock_settime( ) represent 
-the amount of execution time of the process associated with the clock. 
+CLOCK_PROCESS_CPUTIME_ID, which represents the CPU-time clock of
+the calling process when invoking one of the clock_*( ) or timer_*( )
+functions. For these clock IDs, the values returned by
+clock_gettime( ) and specified by clock_settime( ) represent
+the amount of execution time of the process associated with the clock.
   </assertion>
   <assertion id="8" tag="ref:XSH6:6642:6650">
-If _POSIX_THREAD_CPUTIME is defined, implementations shall support 
-clock ID values obtained by invoking pthread_getcpuclockid( ), 
+If _POSIX_THREAD_CPUTIME is defined, implementations shall support
+clock ID values obtained by invoking pthread_getcpuclockid( ),
 which represent the CPU-time clock of a given
 thread. Implementations shall also support the special clockid_t value
-CLOCK_THREAD_CPUTIME_ID, which represents the CPU-time clock of the 
-calling thread when invoking one of the clock_*( ) or timer_*( ) 
+CLOCK_THREAD_CPUTIME_ID, which represents the CPU-time clock of the
+calling thread when invoking one of the clock_*( ) or timer_*( )
 functions. For these clock IDs, the values
-returned by clock_gettime( ) and specified by clock_settime( ) 
+returned by clock_gettime( ) and specified by clock_settime( )
 shall represent the amount of
-execution time of the thread associated with the clock. 
+execution time of the thread associated with the clock.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/6-1.sh
index c20e2b6..22aff7e 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/6-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/rationale.txt b/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/rationale.txt
index 4a4c806..b82bc83 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/rationale.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_gettime/rationale.txt
@@ -4,8 +4,8 @@
 Assumptions:
 - Machines running these test cases also have access to the gettimeofday
   function.
-- Ideally, the gettimeofday() function has different internals than 
-  clock_gettime().  [Hopefully, clock_gettime() doesn't just _call_ 
+- Ideally, the gettimeofday() function has different internals than
+  clock_gettime().  [Hopefully, clock_gettime() doesn't just _call_
   gettimeofday(), for instance.]
   However, even if not, it's still a valid test to make sure clock_gettime()
   doesn't have an error somewhere else.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/1-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/1-2.sh
index 0b05f22..5d55be2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/1-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/1-2.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_nanosleep() causes the current thread to stop
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/15-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/15-1.sh
index 12b2ec5..26e9bec 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/15-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/15-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_nanosleep() with CLOCK_REALTIME == nanosleep().
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/4-1.sh
index 4efb3ec..aee7df3 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_nanosleep() always sleeps for at least the amount
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/5-1.sh
index e920669..546d42b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/5-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_nanosleep() always sleeps until at least the time
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/6-1.sh
index 8a48cf0..72f24a8 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/6-1.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_nanosleep() does not affect the action/blockage of
-# a signal. 
+# a signal.
 #
 # This is tested implicitly via assertions 1 and 2.
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/8-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/8-1.sh
index e62c821..ccc7e1d 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/8-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/8-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_nanosleep() returns 0 on success.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/assertions.xml
index a2fea3e..4cb9e04 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_nanosleep/assertions.xml
@@ -19,7 +19,7 @@
   <assertion id="3" tag="ref:XSH6:6722:6724 pt:CS">
    If TIMER_ABSTIME is set in flags, then if, when clock_nanosleep() is
    called, rqtp time value less than or equal to specified clock\'s time value,
-   clock_nanosleep() returns immediately and the calling process is *not* 
+   clock_nanosleep() returns immediately and the calling process is *not*
    suspended.
   </assertion>
   <assertion id="4" tag="ref:XSH6:6725:6730 pt:CS">
@@ -30,7 +30,7 @@
   </assertion>
   <assertion id="5" tag="ref:XSH6:6730:6733 pt:CS">
    For TIMER_ABSTIME set:
-   Syspension time is always at least until the corresponding clock 
+   Syspension time is always at least until the corresponding clock
    reaches time rqtp.
    Unless clock_nanosleep() is interrupted by a signal.
   </assertion>
@@ -46,8 +46,8 @@
    by rqtp has elapsed)
   </assertion>
   <assertion id="9" tag="ref:XSH6:6743:6747 pt:CS">
-   For relative clock_nanosleep(), if clock_nanosleep() is 
-   interrupted by a signal and rmtp is not-NULL, rmtp contains the 
+   For relative clock_nanosleep(), if clock_nanosleep() is
+   interrupted by a signal and rmtp is not-NULL, rmtp contains the
    amount of time remaining.  [If rmtp is NULL, no time is returned.]
    -- Absolute timers have no effect on rmtp.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/15-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/15-1.sh
index 326dc40..9290118 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/15-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/15-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/16-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/16-1.sh
index 392b9a8..476edbb 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/16-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/16-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/18-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/18-1.sh
index 32e7c1d..5a43446 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/18-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/18-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that clock_settime() sets errno=EINVAL if tp is outside the
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/3-1.sh
index 584790d..84434e2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 # Test that clock_settime() supports CLOCK_REALTIME.
 #
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/assertions.xml
index bd2a186..cc379ae 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/clock_settime/assertions.xml
@@ -50,8 +50,8 @@
    sporadic server scheduling policy is unaffected.
   </assertion>
   <assertion id="12" tag="ref:XSH6:6642:6648 pt:TCT">
-   If _POSIX_THREAD_CPUTIME is defined, clock_settime() supports clock_ids 
-   obtained via pthread_getcpuclockid().  The value set is the amount of 
+   If _POSIX_THREAD_CPUTIME is defined, clock_settime() supports clock_ids
+   obtained via pthread_getcpuclockid().  The value set is the amount of
    execution time of the thread associated with the clock.
   </assertion>
   <assertion id="13" tag="ref:XSH6:6644:6648 pt:TCT">
@@ -78,7 +78,7 @@
    clock_id
   </assertion>
   <assertion id="19" tag="ref:XSH6:6659:6660">
-   clock_settime() sets errno=EINVAL if tp has a nsec value below 0 or 
+   clock_settime() sets errno=EINVAL if tp has a nsec value below 0 or
    above (or equal to) 1000 million
   </assertion>
   <assertion id="20" tag="ref:XSH6:6661:6661 pt:MON">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/ctime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/ctime/assertions.xml
index 286f74e..828c578 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/ctime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/ctime/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
 	<assertion id="1" tag="ref:XSH6:7995:8020 pt:CX">
-The ctime function return value is not NULL after converting the time 
+The ctime function return value is not NULL after converting the time
 value to a date and time string.
 	</assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/difftime/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/difftime/2-1.sh
index 8fab940..fad4205 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/difftime/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/difftime/2-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/difftime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/difftime/assertions.xml
index 45ee008..52036c4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/difftime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/difftime/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:8201:8202 pt:CX">
-	The difftime ( ) function shall compute the difference between two calendar times 
+	The difftime ( ) function shall compute the difference between two calendar times
         (as returned by
 	time( )): time1. time0.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/fork/1-1.c b/testcases/open_posix_testsuite/conformance/interfaces/fork/1-1.c
index f409e2d..5cff4d8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/fork/1-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/fork/1-1.c
@@ -46,7 +46,7 @@
 #include "../testfrmw/testfrmw.h"
 #include "../testfrmw/testfrmw.c"
 
- /* 
+ /*
   * This header is responsible for defining the following macros:
   * UNRESOLVED(ret, descr);
   *    where descr is a description of the error and ret is an int (error code for example)
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/fork/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/fork/assertions.xml
index 34fba95..48abbfb 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/fork/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/fork/assertions.xml
@@ -3,11 +3,11 @@
     fork() creates a new process.
   </assertion>
   <assertion id="2" tag="ref:XSH6TC2:12992:12993">
-    The new process is a copy of the original process 
+    The new process is a copy of the original process
   -- unless specified otherwise below.
   </assertion>
   <assertion id="3" tag="ref:XSH6TC2:12994:12995">
-    The new process' ID does not match any existing 
+    The new process' ID does not match any existing
    process or group ID.
   </assertion>
   <assertion id="4" tag="ref:XSH6TC2:12996:12997">
@@ -24,10 +24,10 @@
    Positioning information may be shared between both processes.
   </assertion>
   <assertion id="7" tag="ref:XSH6TC2:13004:13004 pt:XSI">
-    The child process gets a copy of the parent message catalog descriptor. 
+    The child process gets a copy of the parent message catalog descriptor.
   </assertion>
   <assertion id="8" tag="ref:XSH6TC2:13005:13005">
-    tms_utime, tms_stime, tms_cutime, and tms_cstime values 
+    tms_utime, tms_stime, tms_cutime, and tms_cstime values
    are set to 0 in the child process.
   </assertion>
   <assertion id="9" tag="ref:XSH6TC2:13006:13007">
@@ -56,7 +56,7 @@
   <assertion id="16" tag="ref:XSH6TC2:13015:13021 pt:MF|SHM">
     Memory mappings created in the parent are retained in the
    child process. If the mapping is MAP_PRIVATE, any modification
-   done after the fork() is visible only to the process doing the 
+   done after the fork() is visible only to the process doing the
    modification.
   </assertion>
   <assertion id="17" tag="ref:XSH6TC2:13022:13024 pt:PS">
@@ -82,7 +82,7 @@
    are initialized to 0.
   </assertion>
   <assertion id="23" tag="ref:XSH6TC2:13060:13062">
-    fork() returns 0 to the child and the child PID to the parent process when 
+    fork() returns 0 to the child and the child PID to the parent process when
    succesful.
   </assertion>
   <assertion id="24" tag="ref:XSH6TC2:13063:13069">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/fsync/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/fsync/assertions.xml
index 70a65d7..d120772 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/fsync/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/fsync/assertions.xml
@@ -1,50 +1,50 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:14784:14786">
-  The fsync( ) function shall request that all data for the open file descriptor named by 
-  fildes is to be transferred to the storage device associated with the file described by 
-  fildes in an implementation-defined manner. 
+  The fsync( ) function shall request that all data for the open file descriptor named by
+  fildes is to be transferred to the storage device associated with the file described by
+  fildes in an implementation-defined manner.
   </assertion>
-  
+
    <assertion id="2" tag="ref:XSH6:14786:14787">
   The fsync( ) function shall not return until the system has
-  completed that action or until an error is detected. 
+  completed that action or until an error is detected.
     </assertion>
 
    <assertion id="3" tag="ref:XSH6:14788:14791">
-   SIO If _POSIX_SYNCHRONIZED_IO is defined, the fsync( ) function shall force all currently 
-   queuee I/O operations associated with the file indicated by file descriptor fildes to the 
-   synchronized I/O completion state. All I/O operations shall be completed as defined for 
+   SIO If _POSIX_SYNCHRONIZED_IO is defined, the fsync( ) function shall force all currently
+   queuee I/O operations associated with the file indicated by file descriptor fildes to the
+   synchronized I/O completion state. All I/O operations shall be completed as defined for
    synchronized I/O file integrity completion.
      </assertion>
-  
+
    <assertion id="4" tag="ref:XSH6:14793:14787">
-   Upon successful completion, fsync( ) shall return 0. Otherwise, .1 shall be returned and 
-   errno set to indicate the error. If the fsync( ) function fails, outstanding I/O operations 
+   Upon successful completion, fsync( ) shall return 0. Otherwise, .1 shall be returned and
+   errno set to indicate the error. If the fsync( ) function fails, outstanding I/O operations
    are not guaranteed to have been completed.
      </assertion>
-     
+
    <assertion id="5" tag="ref:XSH6:14797:14798">
    The fsync( ) function shall fail if:
    [EBADF] The fildes argument is not a valid descriptor.
      </assertion>
-     
+
    <assertion id="6" tag="ref:XSH6:14797:14799">
    The fsync( ) function shall fail if:
    [EINTR] The fsync( ) function was interrupted by a signal.
      </assertion>
-     
+
    <assertion id="7" tag="ref:XSH6:1497:14800">
     The fsync( ) function shall fail if:
-    [EINVAL] The fildes argument does not refer to a file on which this operation is possible.   
+    [EINVAL] The fildes argument does not refer to a file on which this operation is possible.
     </assertion>
-        
+
    <assertion id="8" tag="ref:XSH6:14797:14801">
    The fsync( ) function shall fail if:
    [EIO] An I/O error occurred while reading from or writing to the file system.
     </assertion>
- 
-    <assertion id="9" tag="ref:XSH6:14797:14803">   
-    In the event that any of the queued I/O operations fail, fsync( ) shall return the error 
+
+    <assertion id="9" tag="ref:XSH6:14797:14803">
+    In the event that any of the queued I/O operations fail, fsync( ) shall return the error
     conditions defined for read( ) and write( ).
    </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/fsync/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/fsync/coverage.txt
index 864b9f0..3db2993 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/fsync/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/fsync/coverage.txt
@@ -6,7 +6,7 @@
 3		NO ** Synchronized I/O
 4		YES
 5		YES
-6		NO 
+6		NO
 7		YES
 8		NO: ** Not sure how to generate an I/O error
 9		NO: ** Synchronized I/O
@@ -15,11 +15,11 @@
 
 Assertion 1 is hard to test. Here cited the specification:
 
-It is reasonable to assert that the key aspects of fsync( ) are unreasonable to test in a test 
+It is reasonable to assert that the key aspects of fsync( ) are unreasonable to test in a test
 suite.
 That does not make the function any less valuable, just more difficult to test. A formal
 conformance test should probably force a system crash (power shutdown) during the test for
-this condition, but it needs to be done in such a way that automated testing does not require 
+this condition, but it needs to be done in such a way that automated testing does not require
 this to be done except when a formal record of the results is being made. It would also not be
-unreasonable to omit testing for fsync( ), allowing it to be treated as a 
+unreasonable to omit testing for fsync( ), allowing it to be treated as a
 quality-of-implementation issue.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/killpg/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/killpg/assertions.xml
index e6cbd80..ea4866d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/killpg/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/killpg/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:22101:22101 pt:XSI">
-The killpg () function sends the signal sig to the process 
+The killpg () function sends the signal sig to the process
 group pgrp.
   </assertion>
   <assertion id="2" tag="ref:XSH6:22102:22102 pt:XSI">
@@ -10,23 +10,23 @@
 The behavior of killpg ( ) is undefined if pgrp is less than or equal to 1.
   </assertion>
   <assertion id="4" tag="ref:XSH6:22105:22105 pt:XSI">
-killpg returns 0 upon successful completion. 
+killpg returns 0 upon successful completion.
   </assertion>
   <assertion id="5" tag="ref:XSH6:22105:22106 pt:XSI">
 killpg returns -1, upon unsuccessful completion.
   </assertion>
   <assertion id="6" tag="ref:XSH6:22009:22009 pt:XSI">
-errno shall be set to EINVAL, when tThe value of the sig argument is an 
-invalid or unsupported signal 
+errno shall be set to EINVAL, when tThe value of the sig argument is an
+invalid or unsupported signal
 number.
   </assertion>
   <assertion id="7" tag="ref:XSH6:22010:22011 pt:XSI">
-errno shall be set to EPERM, when the process does not have permission to 
-send the signal to any 
+errno shall be set to EPERM, when the process does not have permission to
+send the signal to any
 receiving process.
   </assertion>
   <assertion id="8" tag="ref:XSH6:22012:22013 pt:XSI">
-errno shall be set to ESRCH, when no process or process group can be found 
+errno shall be set to ESRCH, when no process or process group can be found
 corresponding to that specified by pid.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/lio_listio/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/lio_listio/assertions.xml
index da03a15..8832fdd 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/lio_listio/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/lio_listio/assertions.xml
@@ -27,32 +27,32 @@
 	LIO_READ causes the entry to be submited as if by a call to aio_read().
 	</assertion>
 	<assertion id="9" tag="ref:XSH6TC2:23063:23065">
-	LIO_WRITE causes the entry to be submited as if by a call to 
+	LIO_WRITE causes the entry to be submited as if by a call to
 	aio_write().
 	</assertion>
 	<assertion id="10" tag="ref:XSH6TC2:23083:23084">
-	if mode is LIO_NOWAIT, lio_listio() shall return the value zero if 
+	if mode is LIO_NOWAIT, lio_listio() shall return the value zero if
 	operation is successfuly queued.
 	</assertion>
 	<assertion id="11" tag="ref:XSH6TC2:23084:23085">
-	if mode is LIO_NOWAIT, lio_listio() shall return the value -1 and set 
+	if mode is LIO_NOWAIT, lio_listio() shall return the value -1 and set
 	errno to indicate error if the operation is not succesfully queued.
 	</assertion>
 	<assertion id="12" tag="ref:XSH6TC2:23086:23087">
-	if mode is LIO_WAIT, lio_listio() shall return the value zero when 
+	if mode is LIO_WAIT, lio_listio() shall return the value zero when
 	all I/O has completed successfully.
 	</assertion>
 	<assertion id="13" tag="ref:XSH6TC2:23084:23085">
-	if mode is LIO_WAIT, lio_listio() shall return the value -1 and set 
+	if mode is LIO_WAIT, lio_listio() shall return the value -1 and set
 	errno to indicate error if all operation has not successfully
 	completed.
 	</assertion>
 	<assertion id="14" tag="ref:XSH6TC2:23091:23092">
-	Failure of an individual request does not prevend completion of any 
+	Failure of an individual request does not prevend completion of any
 	other individual request.
 	</assertion>
 	<assertion id="15" tag="ref:XSH6TC2:23093:23094">
-	The error statuses returned are identical to those returned as the 
+	The error statuses returned are identical to those returned as the
 	result of an aio_read() or aio_write().
 	</assertion>
 	<assertion id="16" tag="ref:XSH6TC2:23097:23094">
@@ -62,7 +62,7 @@
 	</assertion>
 	<assertion id="17" tag="ref:XSH6TC2:23100:23101">
 	lio_listio() shall fail if:
-	[EAGAIN] the number of entries indicated by nent would cause the 
+	[EAGAIN] the number of entries indicated by nent would cause the
 	system-wide limit {AIO_MAX} to be exceeded.
 	</assertion>
 	<assertion id="18" tag="ref:XSH6TC2:23102:23103">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mktime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mktime/assertions.xml
index c6f9c48..960599d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mktime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mktime/assertions.xml
@@ -1,7 +1,7 @@
 <assertions>
 	<assertion id="1" tag="ref:XSH6:24968:24999 pt:CX">
  This test case shall return PASS on converting the broken down July 4th 2001
- into a time since the Epoch, which is the same encoding as of the value 
+ into a time since the Epoch, which is the same encoding as of the value
  returned by time(), otherwise it fails with -1.
 	</assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mlock/assertions.xml
index 46d5442..4a601c0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mlock/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:mlock:DESCRIPTION}">
    The mlock() function shall cause those whole pages containing any part of
    the address space of the process starting at address addr and continuing for
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mlock/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/mlock/coverage.txt
index 5b09f61..c19ba6f 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mlock/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mlock/coverage.txt
@@ -12,7 +12,7 @@
 6	       NO
 7	       YES
 8	       YES
-9	       NO	   
+9	       NO
 10	       YES	   May assertion
 11	       NO	   May assertion
 12	       YES	   May assertion
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mlockall/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mlockall/assertions.xml
index 21849c4..c61dcf9 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mlockall/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mlockall/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:mlockall:DESCRIPTION}">
    The mlockall() function shall cause all of the pages mapped by the address
    space of a process to be memory-resident until unlocked or until the process
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/16-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mmap/16-1.sh
index 3bf999f..56486bb 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/16-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/16-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
-# Upon successful completion, the mmap( ) function shall return 
-# the address at which the mapping was placed (pa); 
+# Upon successful completion, the mmap( ) function shall return
+# the address at which the mapping was placed (pa);
 # otherwise, it shall return a value of MAP_FAILED and set errno to indicate the
 # error. The symbol MAP_FAILED is defined in the <sys/mman.h> header. No successful return
 # from mmap( ) shall return the value MAP_FAILED.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/17-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mmap/17-1.sh
index 11a4c9a..ef5a036 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/17-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/17-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # The mmap( ) function shall fail if:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/20-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mmap/20-1.sh
index 4f27917..6b85737 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/20-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/20-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # The mmap( ) function shall fail if:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mmap/assertions.xml
index de347b9..8dd66d6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/assertions.xml
@@ -1,10 +1,10 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:25180:25190">
-mmap( ) function shall establish a mapping between the address space of 
-the process at an address pa for len bytes to the memory object represented 
+mmap( ) function shall establish a mapping between the address space of
+the process at an address pa for len bytes to the memory object represented
 by the file descriptor fildes at offset off for len bytes.
   </assertion>
-  
+
   <assertion id="2" tag="ref:XSH6:25191:25196">
 If fildes represents a typed memory object opened with either the
 POSIX_TYPED_MEM_ALLOCATE flag or the POSIX_TYPED_MEM_ALLOCATE_CONTIG
@@ -12,7 +12,7 @@
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:25197:25199">
-mapping established by mmap( ) shall replace any previous mappings for 
+mapping established by mmap( ) shall replace any previous mappings for
 those whole pages containing any part of the address space.
   </assertion>
 
@@ -20,17 +20,17 @@
 TYM The mmap( ) function shall be supported for regular files, shared memory objects, and typed
 memory objects. Support for any other type of file is unspecified.
   </assertion>
-  
-  
+
+
 <assertion id="5" tag="ref:XSH6:25206:25216">
 The prot shall be either PROT_NONE or the bitwise-
 inclusive OR of one or more of the other flags in the following table
  PROT_READ Data can be read.
  PROT_WRITE Data can be written.
  PROT_EXEC Data can be executed.
- PROT_NONE Data cannot be accessed. 
+ PROT_NONE Data cannot be accessed.
 </assertion>
-  
+
     <assertion id="6" tag="ref:XSH6:25217:25226">
 An implementation may permit accesses other than those specified by prot; however, if the
 Memory Protection option is supported, the implementation shall not permit a write to succeed
@@ -43,7 +43,7 @@
 specified, the application shall ensure that it has opened the file descriptor fildes with write
 permission unless MAP_PRIVATE is specified in the flags parameter as described below.
   </assertion>
-  
+
     <assertion id="7" tag="ref:XSH6:25236:25244">
 It is implementation-defined whether MAP_FIXED shall be supported. MAP_FIXED shall be
 supported on XSI-conformant systems.
@@ -55,22 +55,22 @@
 established are visible through the MAP_PRIVATE mapping. Either MAP_SHARED or
 MAP_PRIVATE can be specified, but not both. The mapping type is retained across fork( ).
   </assertion>
-  
+
     <assertion id="8" tag="ref:XSH6:25245:25260">
 When fildes represents a typed memory object opened with either the
 POSIX_TYPED_MEM_ALLOCATE flag or the POSIX_TYPED_MEM_ALLOCATE_CONTIG
 flag, mmap( ) shall, if there are enough resources available, map len bytes allocated from the
 corresponding typed memory object which were not previously allocated to any process in any
-processor that may access that typed memory object. 
+processor that may access that typed memory object.
   </assertion>
-  
+
     <assertion id="9" tag="ref:XSH6:25261:25264">
 When MAP_FIXED is set in the flags argument, the implementation is informed that the value of
 pa shall be addr, exactly. If MAP_FIXED is set, mmap( ) may returnMAP_FAILED and set errno to
 [EINVAL]. If a MAP_FIXED request is successful, the mapping established by mmap( ) replaces
 any previous mappings for the process' pages in the range [pa,pa+len).
   </assertion>
-  
+
     <assertion id="10" tag="ref:XSH6:25265:25271">
 When MAP_FIXED is not set, the implementation uses addr in an implementation-defined
 manner to arrive at pa. The pa so chosen shall be an area of the address space that the
@@ -80,7 +80,7 @@
 process address near which the mapping should be placed. When the implementation selects a
 value for pa, it never places a mapping at address 0, nor does it replace any extant mapping.
   </assertion>
-  
+
     <assertion id="11" tag="ref:XSH6:25272:25281">
 The off argument is constrained to be aligned and sized according to the value returned by
 sysconf( ) when passed _SC_PAGESIZE or _SC_PAGE_SIZE. When MAP_FIXED is specified, the
@@ -93,59 +93,59 @@
 MPR end. References within the address range starting at pa and continuing for len bytes to whole
 pages following the end of an object shall result in delivery of a SIGBUS signal.
   </assertion>
-  
+
     <assertion id="12" tag="ref:XSH6:25284:25286">
 The mmap( ) function shall add an extra reference to the file associated with the file descriptor
 fildes which is not removed by a subsequent close( ) on that file descriptor. This reference shall be
 removed when there are no more mappings to the file.
   </assertion>
-  
+
       <assertion id="13" tag="ref:XSH6:25287:25290">
 The st_atime field of the mapped file may be marked for update at any time between the mmap( )
 call and the corresponding munmap( ) call. The initial read or write reference to a mapped region
 shall cause the file's st_atime field to be marked for update if it has not already been marked for
 update.
   </assertion>
-  
+
       <assertion id="14" tag="ref:XSH6:25291:25296">
 The st_ctime and st_mtime fields of a file that is mapped with MAP_SHARED and PROT_WRITE
 shall be marked for update at some point in the interval between a write reference to the
 mapped region and the next call to msync( ) with MS_ASYNC or MS_SYNC for that portion of
-the file by any process. 
+the file by any process.
   </assertion>
-  
+
       <assertion id="15" tag="ref:XSH6:25301:25303">
 If mmap( ) fails for reasons other than [EBADF], [EINVAL], or [ENOTSUP], some of the
 mappings in the address range starting at addr and continuing for len bytes may have been
 unmapped.
   </assertion>
 
-  
+
       <assertion id="16" tag="ref:XSH6:25305:25308">
 Upon successful completion, the mmap( ) function shall return the address at which the mapping
 was placed (pa); otherwise, it shall return a value of MAP_FAILED and set errno to indicate the
 error. The symbol MAP_FAILED is defined in the sys/mman.h header. No successful return
 from mmap( ) shall return the value MAP_FAILED.
       </assertion>
-  
+
       <assertion id="17" tag="ref:XSH6:25310:25342">
 The mmap( ) function shall fail if:
 [EACCES] The fildes argument is not open for read, regardless of the protection specified,
 or fildes is not open for write and PROT_WRITE was specified for a
 MAP_SHARED type mapping.
 	  </assertion>
-      
+
       <assertion id="18" tag="ref:XSH6:25310:25315">
 The mmap( ) function shall fail if:
 ML [EAGAIN] The mapping could not be locked in memory, if required by mlockall ( ), due to
 a lack of resources.
       </assertion>
-      
+
       <assertion id="19" tag="ref:XSH6:25310:25342">
 The mmap( ) function shall fail if:
 [EBADF] The fildes argument is not a valid open file descriptor.
       </assertion>
-      
+
       <assertion id="20" tag="ref:XSH6:25310:25342">
 The mmap( ) function shall fail if:
 [EINVAL] The addr argument (if MAP_FIXED was specified) or off is not a multiple of
@@ -182,7 +182,7 @@
  [ENOMEM] The mapping could not be locked in memory, if required by mlockall ( ),
 because it would require more space than the system is able to supply.
       </assertion>
-      
+
       <assertion id="26" tag="ref:XSH6:25310:25342">
 The mmap( ) function shall fail if:
  [ENOMEM] Not enough unallocated memory resources remain in the typed memory
@@ -201,7 +201,7 @@
  The mmap( ) function shall fail if:
  [ENXIO] Addresses in the range [off,off+len) are invalid for the object specified by fildes.
       </assertion>
-     
+
       <assertion id="29" tag="ref:XSH6:25310:25342">
  The mmap( ) function shall fail if:
  [ENXIO] MAP_FIXED was specified in flags and the combination of addr, len, and off is
@@ -213,7 +213,7 @@
  [ENXIO] The fildes argument refers to a typed memory object that is not accessible from
 the calling process.
       </assertion>
-      
+
       <assertion id="31" tag="ref:XSH6:25310:25342">
 The mmap( ) function shall fail if:
 [EOVERFLOW] The file is a regular file and the value of off plus len exceeds the offset
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mmap/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/mmap/coverage.txt
index 2c3b35d..037c7aa 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mmap/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mmap/coverage.txt
@@ -19,12 +19,12 @@
 15  		NO ** May assertion
 16		YES
 17		YES
-18  		YES 
+18  		YES
 19  		YES
 20		YES
 21		YES
-22  		NO ** Not sure how to get/set the limit of the number of mapped region 
-       		** for a process or system. 
+22  		NO ** Not sure how to get/set the limit of the number of mapped region
+       		** for a process or system.
 23		YES
 24  		YES
 25		YES
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_close/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_close/assertions.xml
index 599bf4e..57c8998 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_close/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_close/assertions.xml
@@ -3,13 +3,13 @@
 mq_close will return zero after successful completion.
   </assertion>
   <assertion id="2" tag="ref:XSH6:25611:25613 pt:MSG">
-All notification requests that have been successfully attached to 
+All notification requests that have been successfully attached to
 the message queue through the descriptor being closed will be removed,
 so another process will be able to set up notification.
   </assertion>
   <assertion id="3" tag="ref:XSH6:25616:25619 pt:MSG">
 Calling mq_close with an invalid descriptor will result in a
-mq_close returning -1 and errno being set to EBADF.  
+mq_close returning -1 and errno being set to EBADF.
   </assertion>
   <assertion id="4" tag="ref:XSH6:25607:25608 pt:MSG">
 mq_close removes the association between the descriptor being closed and
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/1-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/1-1.sh
index 7bbbc11..23e18b4 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/1-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/1-1.sh
@@ -1,11 +1,11 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
-# mq_getattr will get status infomation and attributes of message queue. 
+# mq_getattr will get status infomation and attributes of message queue.
 # The result will return in mqstat argument.
 
 # This is tested implicitly via assertion 2,3,4.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/5-1.sh
index 4b82fdc..de9f380 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/5-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # mq_getattr() return 0 on success.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/6-1.sh
index d491fdc..e6334b8 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/6-1.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# If mq_getattr() is not sucessful, the function will return -1 
+# If mq_getattr() is not sucessful, the function will return -1
 # and set errno to indicate the error.
 
 # This is tested implicitly via assertion 7.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/speculative/7-1.c b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/speculative/7-1.c
index 0bc0a83..f85924a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/speculative/7-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_getattr/speculative/7-1.c
@@ -38,12 +38,12 @@
 	sprintf(mqname, "/" FUNCTION "_" TEST "_%d", getpid());
 
 	mqdes = mq_open(mqname, O_CREAT | O_RDWR, S_IRUSR | S_IWUSR, 0);
-	
+
 	if (mqdes == (mqd_t)-1) {
 		perror("mq_open()");
 		return PTS_UNRESOLVED;
 	}
-	
+
 	mqdes_invalid = mqdes + 1;
 	memset(&mqstat, 0, sizeof(mqstat));
 
@@ -65,7 +65,7 @@
 		printf("Test FAILED\n");
 		return PTS_FAIL;
 	}
-		
+
 	if (saved_errno != EBADF) {
 		printf("mq_getattr() returned -1, but errno != EBADF (%s)\n",
 		       strerror(saved_errno));
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/6-1.sh
index 84c21e0..630ccef 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/6-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/7-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/7-1.sh
index 581a77b..6fa43ec 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/7-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/7-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/8-1.c b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/8-1.c
index b3bafda..b37a0a1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/8-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/8-1.c
@@ -49,7 +49,7 @@
 			printf("Test FAILED (errno != EBADF)\n");
 			return PTS_FAIL;
 		}
-	}	
+	}
 	printf("Test FAILED\n");
 	return PTS_FAIL;
 }
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/assertions.xml
index c9c6690..a0718b4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_notify/assertions.xml
@@ -1,42 +1,42 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:25688:25690 pt:MSG">
-If notification is not NULL, this function will register the calling proces to 
-be notified of message arrival. The notification will be sent to the process 
+If notification is not NULL, this function will register the calling proces to
+be notified of message arrival. The notification will be sent to the process
 when the message queue transit from empty to non-empty.
   </assertion>
   <assertion id="2" tag="ref:XSH6:25691:25694 pt:MSG">
-Only one process may be registerd for notification of message arrival at any 
+Only one process may be registerd for notification of message arrival at any
 time, other process attempts to register for that message queue shall fail.
   </assertion>
   <assertion id="3" tag="ref:XSH6:25695:25696 pt:MSG">
-If notification is NULL and the process is currently registered for 
-notification by the specified message queue, the existing registration shall 
+If notification is NULL and the process is currently registered for
+notification by the specified message queue, the existing registration shall
 be removed.
   </assertion>
   <assertion id="4" tag="ref:XSH6:25697:25698 pt:MSG">
-If the notification is sent to the registered process, its registration shall 
+If the notification is sent to the registered process, its registration shall
 be removed. The message queue shall be available for next registration.
   </assertion>
   <assertion id="5" tag="ref:XSH6:25699:225702 pt:MSG">
-If a process is registered for notification of message arrival at a message 
-queue and some thread is blocked in mq_receive() waiting to receive a 
-message, the arriving message shall satisfy the appropriate mq_receive(). 
-The resulting behavior is as if the message queue remains empty, no 
+If a process is registered for notification of message arrival at a message
+queue and some thread is blocked in mq_receive() waiting to receive a
+message, the arriving message shall satisfy the appropriate mq_receive().
+The resulting behavior is as if the message queue remains empty, no
 notification shall be sent.
   </assertion>
   <assertion id="6" tag="ref:XSH6:25704:25704 pt:MSG">
 If mq_notify is successful, it will return a value of zero.
   </assertion>
   <assertion id="7" tag="ref:XSH6:25705:25705 pt:MSG">
-If mq_notify is not successful, it will return a value of -1 and set errno 
+If mq_notify is not successful, it will return a value of -1 and set errno
 to indicate the error.
   </assertion>
   <assertion id="8" tag="ref:XSH6:25707:25708 pt:MSG">
-mq_notify will fail with EBADF if mqdes argument is not a valid messsage 
+mq_notify will fail with EBADF if mqdes argument is not a valid messsage
 queue descriptor.
   </assertion>
   <assertion id="9" tag="ref:XSH6:25709:25709 pt:MSG">
-mq_notify will fail with EBUSY if a process is already registered for 
+mq_notify will fail with EBUSY if a process is already registered for
 notification by the message queue.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/4-1.sh
index 71efe4e..14c3309 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/9-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/9-1.sh
index d0042ef..2426357 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/9-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/9-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/assertions.xml
index a208b3b..db5734d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:25852:25852 ref:XSH6:25855:25856 pt:MSG">
-mq_receive() receive the oldest of the highest priority message(s) from the message queue specified by mqdes. The selected message will be removed from the queue and copied to the buffer pointed to by the msg_ptr argument. 
+mq_receive() receive the oldest of the highest priority message(s) from the message queue specified by mqdes. The selected message will be removed from the queue and copied to the buffer pointed to by the msg_ptr argument.
   </assertion>
   <assertion id="2" tag="ref:XSH6:25853:25854 pt:MSG">
 mq_receive() will fail and return an error if the size of the buffer in bytes, specified by the msg_len argument, is less than the mq_msgsize attribute of the message queue.
@@ -15,7 +15,7 @@
 If the specified message queue is empty and O_NONBLOCK is not set, then mq_receive() will block until a message is enqueued on the message queue or until a signal interrupts mq_receive().
   </assertion>
   <assertion id="6" tag="ref:XSH6:25862:25865 pt:MSG">
-If there are more than one thread waiting to receive a message when a message arrives at an empty queue and the Priority Scheduling option is supported, then the thread with highest priority that has been waiting the longest will receive the message. If Priority Scheduling option is not supported, then it is unspecified which waiting thread is able to receive the message. 
+If there are more than one thread waiting to receive a message when a message arrives at an empty queue and the Priority Scheduling option is supported, then the thread with highest priority that has been waiting the longest will receive the message. If Priority Scheduling option is not supported, then it is unspecified which waiting thread is able to receive the message.
   </assertion>
   <assertion id="7" tag="ref:XSH6:25866:25868 pt:MSG">
 If the specified message queue is empty and O_NONBLOCK is set, no message will be removed from the queue, and mq_receive() will return an error.
@@ -30,7 +30,7 @@
 mq_receive() will return EAGAIN if O_NONBLOCK is set and the message queue is empty.
   </assertion>
   <assertion id="11" tag="ref:XSH6:25896:25896 pt:MSG">
-mq_receive() will return EBADF if mqdes is not a valid message queue descriptor open for reading. 
+mq_receive() will return EBADF if mqdes is not a valid message queue descriptor open for reading.
   </assertion>
   <assertion id="12" tag="ref:XSH6:25897:25898 pt:MSG">
 mq_receive() will return EMSGSIZE if the specified buffer size, msg_len, is less than the message size attribute of the message queue.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/coverage.txt
index 21c611b..ed57651 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_receive/coverage.txt
@@ -5,7 +5,7 @@
 2		YES
 3		NO - implementation-defined, won't test.
 4	 	YES
-5		YES 
+5		YES
 6		NO - won't test.
 7		YES
 8		YES
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_send/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_send/assertions.xml
index 7b7bafd..a3340a1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_send/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_send/assertions.xml
@@ -3,7 +3,7 @@
 mq_send() places the message msg_ptr points to into message queue mqdes
   </assertion>
   <assertion id="2" tag="ref:XSH6:25951:25953 pt:MSG">
-mq_send() will fail if msg_len, the message length, is not less than or 
+mq_send() will fail if msg_len, the message length, is not less than or
 equal to mq_attr->mq_msgsize.
   </assertion>
   <assertion id="3" tag="ref:XSH6:25954:25958 pt:MSG">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/3-1.sh
index 1ef4b6e..037b0f2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/4-1.sh
index acdf6fd..e7c559e 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_setattr/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/12-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/12-1.sh
index f634097..a3cf8e4 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/12-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/12-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/16-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/16-1.sh
index c528535..40a9961 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/16-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/16-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # mq_timedreceive() will fail with EINTR if mq_receive() is interrupted by a signal.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/4-1.sh
index 71efe4e..14c3309 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/assertions.xml
index 8cd60d1..bcb31c1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:25852:25852 ref:XSH6:25855:25856 pt:MSG">
-mq_timedreceive() receive the oldest of the highest priority message(s) from the message queue specified by mqdes. The selected message will be removed from the queue and copied to the buffer pointed to by the msg_ptr argument. 
+mq_timedreceive() receive the oldest of the highest priority message(s) from the message queue specified by mqdes. The selected message will be removed from the queue and copied to the buffer pointed to by the msg_ptr argument.
   </assertion>
   <assertion id="2" tag="ref:XSH6:25853:25854 pt:MSG">
 mq_timedreceive() will fail and return an error if the size of the buffer in bytes, specified by the msg_len argument, is less than the mq_msgsize attribute of the message queue.
@@ -17,7 +17,7 @@
 (current time meets or exceeds that time).
   </assertion>
   <assertion id="6" tag="ref:XSH6:25862:25865 pt:MSG">
-If there are more than one thread waiting to receive a message when a message arrives at an empty queue and the Priority Scheduling option is supported, then the thread with highest priority that has been waiting the longest will receive the message. If Priority Scheduling option is not supported, then it is unspecified which waiting thread is able to receive the message. 
+If there are more than one thread waiting to receive a message when a message arrives at an empty queue and the Priority Scheduling option is supported, then the thread with highest priority that has been waiting the longest will receive the message. If Priority Scheduling option is not supported, then it is unspecified which waiting thread is able to receive the message.
   </assertion>
   <assertion id="7" tag="ref:XSH6:25866:25868 pt:MSG">
 If the specified message queue is empty and O_NONBLOCK is set, no message will be removed from the queue, and mq_timedreceive() will return an error.
@@ -42,7 +42,7 @@
 mq_timedreceive() will return EAGAIN if O_NONBLOCK is set and the message queue is empty.
   </assertion>
   <assertion id="14" tag="ref:XSH6:25896:25896 pt:MSG">
-mq_timedreceive() will return EBADF if mqdes is not a valid message queue descriptor open for reading. 
+mq_timedreceive() will return EBADF if mqdes is not a valid message queue descriptor open for reading.
   </assertion>
   <assertion id="15" tag="ref:XSH6:25897:25898 pt:MSG">
 mq_timedreceive() will return EMSGSIZE if the specified buffer size, msg_len, is less than the message size attribute of the message queue.
@@ -54,7 +54,7 @@
 mq_timedreceive() will return EINVAL if the process or thread have blocked, and abs_timeout had a tv_nsec field less than zero or greater than or equal to 1000 million.
   </assertion>
   <assertion id="18" tag="ref:XSH6:25903:25904 ref:XSH6:25877:25878 pt:MSG pt:TMO">
-mq_timedreceive() will return ETIMEDOUT if O_NONBLOCK was not set when open the message queue, and no message arrived on the queue before the timeout expired. 
+mq_timedreceive() will return ETIMEDOUT if O_NONBLOCK was not set when open the message queue, and no message arrived on the queue before the timeout expired.
 If abs_timeout has already passed the time at the time mq_timedreceive() called, the timeout shall expire too.
   </assertion>
   <assertion id="19" tag="ref:XSH6:25906:25907 pt:MSG">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/coverage.txt
index dfad317..884a3c9 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedreceive/coverage.txt
@@ -15,8 +15,8 @@
 12		YES
 13		YES
 14		YES
-15	 	YES	
+15	 	YES
 16		YES
-17		YES	
+17		YES
 18		YES
 19		NO - won't test
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/assertions.xml
index 465101a..5165e3a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_timedsend/assertions.xml
@@ -3,7 +3,7 @@
 mq_timedsend() places the message msg_ptr points to into message queue mqdes
   </assertion>
   <assertion id="2" tag="ref:XSH6:25951:25953 ref:XSH6:25968:25969 pt:MSG pt:TMO">
-mq_timedsend() will fail if msg_len, the message length, is not less than or 
+mq_timedsend() will fail if msg_len, the message length, is not less than or
 equal to mq_attr->mq_msgsize.
   </assertion>
   <assertion id="3" tag="ref:XSH6:25954:25958 ref:XSH6:25968:25969 pt:MSG pt:TMO">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/3-1.sh
index e3db95c..4964fe1 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/4-1.sh
index 0c3972f..c29cea2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/4-1.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2003, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Test mq_unlink returns -1 on failure and set errno to indicate the 
+# Test mq_unlink returns -1 on failure and set errno to indicate the
 # error, named message queue will be unchanged.
 
 # This is tested implicitly via assertion 5, 6, 7.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/assertions.xml
index d5c3ddd..1338113 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/mq_unlink/assertions.xml
@@ -6,7 +6,7 @@
 Destruction of the message queue will be postponed until all references to the message queue have been closed. So calls to mq_open() to recreate the message queue may fail until all the message queue is actually removed. However, mq_unlink() call need not block untill all the references have been closed, it may return immediately.
   </assertion>
   <assertion id="3" tag="ref:XSH6:26108:26108 pt:MSG">
-If mq_unlink() is successful, it will return a value of zero. 
+If mq_unlink() is successful, it will return a value of zero.
   </assertion>
   <assertion id="4" tag="ref:XSH6:26109:26110 pt:MSG">
 If mq_unlink() is not successful, the named message queue will be unchanged by this function call, and the function will return a value of -1 and set errno to indicate the error.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/munlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/munlock/assertions.xml
index d72155d..da72c39 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/munlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/munlock/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:munlock:DESCRIPTION}">
    The munlock() function shall unlock those whole pages containing any part of
    the address space of the process starting at address addr and continuing for
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/munlockall/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/munlockall/assertions.xml
index edb6589..047ed56 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/munlockall/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/munlockall/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:munlockall:DESCRIPTION}">
    Any pages that become mapped into the address space of the process after a
    call to munlockall() shall not be locked, unless there is an intervening
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/munmap/10-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/munmap/10-1.sh
index f421d51..6d5fd8f 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/munmap/10-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/munmap/10-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # The munmap( ) function shall fail if:
-# [EINVAL] The addr argument is not a multiple of the page size 
+# [EINVAL] The addr argument is not a multiple of the page size
 # as returned by sysconf( ).
 
 # This is tested implicitly via assertion 3.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/munmap/7-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/munmap/7-1.sh
index 8bc356e..d8f8bd0 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/munmap/7-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/munmap/7-1.sh
@@ -2,10 +2,10 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
-# Upon successful completion, munmap( ) shall return 0; 
+# Upon successful completion, munmap( ) shall return 0;
 # otherwise, it shall return .1 and set errno to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/munmap/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/munmap/assertions.xml
index 6b465be..f3c6182 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/munmap/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/munmap/assertions.xml
@@ -1,29 +1,29 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:256578:26589">
   The munmap( ) function shall remove any mappings for those entire pages containing any part of
-  the address space of the process starting at addr and continuing for len bytes. Further 
+  the address space of the process starting at addr and continuing for len bytes. Further
   references to these pages shall result in the generation of a SIGSEGV signal to the process.
   </assertion>
-  
-  <assertion id="2" tag="ref:XSH6:256589:26590">  
+
+  <assertion id="2" tag="ref:XSH6:256589:26590">
   If there are no mappings in the specified address range, then munmap( ) has no effect.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:256591:26591">
   The implementation shall require that addr be a multiple of the page size {PAGESIZE}.
   </assertion>
- 
+
   <assertion id="4" tag="ref:XSH6:256592:26593">
   If a mapping to be removed was private, any modifications made in this address range shall be
   discarded.
   </assertion>
 
-  <assertion id="5" tag="ref:XSH6:256592:26593"> 
-  ML|MLR Any memory locks (see mlock( ) and mlockall ( )) associated with this address range 
+  <assertion id="5" tag="ref:XSH6:256592:26593">
+  ML|MLR Any memory locks (see mlock( ) and mlockall ( )) associated with this address range
   shall be removed, as if by an appropriate call to munlock( ).
 </assertion>
 
-  <assertion id="6" tag="ref:XSH6:256594:26604"> 
+  <assertion id="6" tag="ref:XSH6:256594:26604">
   TYM If a mapping removed from a typed memory object causes the corresponding address range of
   the memory pool to be inaccessible by any process in the system except through allocatable
   mappings (that is, mappings of typed memory objects opened with the
@@ -35,26 +35,26 @@
   that typed memory for allocation.
   </assertion>
 
-  <assertion id="7" tag="ref:XSH6:256608:26609">   
-  Upon successful completion, munmap( ) shall return 0; otherwise, it shall return .1 and set 
+  <assertion id="7" tag="ref:XSH6:256608:26609">
+  Upon successful completion, munmap( ) shall return 0; otherwise, it shall return .1 and set
   errno to indicate the error.
   </assertion>
-  
-  <assertion id="8" tag="ref:XSH6:256611:26613">  
+
+  <assertion id="8" tag="ref:XSH6:256611:26613">
   The munmap( ) function shall fail if:
   [EINVAL] Addresses in the range [addr,addr+len) are outside the valid range for the
   address space of a process.
   </assertion>
-  
-  <assertion id="9" tag="ref:XSH6:25611:26614">  
+
+  <assertion id="9" tag="ref:XSH6:25611:26614">
   The munmap( ) function shall fail if:
   [EINVAL] The len argument is 0.
   </assertion>
-  
-  <assertion id="10" tag="ref:XSH6:256611:26615">  
+
+  <assertion id="10" tag="ref:XSH6:256611:26615">
   The munmap( ) function shall fail if:
   [EINVAL] The addr argument is not a multiple of the page size as returned by sysconf( ).
  </assertion>
- 
+
 </assertions>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/4-1.sh
index 7a0f63f..ea1ab17 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/assertions.xml
index 592890e..34a95de 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/nanosleep/assertions.xml
@@ -7,9 +7,9 @@
   </assertion>
   <assertion id="2" tag="ref:XSH6:26696:26699">
    Unless nanosleep() is interrupted (as in 2) above), nanosleep() must always
-   suspend the process for _at least_ the time interval in rqtp - as 
+   suspend the process for _at least_ the time interval in rqtp - as
    measured by CLOCK_REALTIME.
-   [Occasionally, the time could be > rqtp interval because of 
+   [Occasionally, the time could be > rqtp interval because of
    scheduling/rounding.]
   </assertion>
   <assertion id="3" tag="ref:XSH6:26700:26700">
@@ -28,7 +28,7 @@
   </assertion>
   <assertion id="7" tag="ref:XSH6:26704:26708 XSH6:26712:26712">
    nanosleep() sets errno to EINTR if it is interrupted by a signal.
-   Also, if rmtp != NULL, rmtp will be set to the time remaining (i.e., 
+   Also, if rmtp != NULL, rmtp will be set to the time remaining (i.e.,
    requested time - time slept).  Otherwise, time remaining is not
    returned.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-1.sh
index fc7f4a0..f762a1f 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test int pthread_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void))
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/assertions.xml
index c777a48..55a246f 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/assertions.xml
@@ -3,10 +3,10 @@
    The function
 
    int pthread_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void))
- 
+
    shall declare fork handlers to be called before and after a fork() command, in the context
    of the thread that called the fork().  The 'prepare' fork handler shall be called before
-   fork() processing commences.  The 'parent' fork handle shall be called after fork() 
+   fork() processing commences.  The 'parent' fork handle shall be called after fork()
    processing completes in the parent process.  The 'child' fork shall be called after
    fork() processing completes in the child process.
   </assertion>
@@ -25,8 +25,8 @@
   The function shall not return an error code of [EINTR]
   </assertion>
   <assertion id="4" tag="ref:XSH6TC2:31696:31698">
-  When pthread_atfork is called several times, the prepare handlers are 
-executed in reversed order as they were registered, and child and parent 
+  When pthread_atfork is called several times, the prepare handlers are
+executed in reversed order as they were registered, and child and parent
 handlers are executed in the same order as they were registered.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_destroy/assertions.xml
index 9a1a990..fcb109a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_destroy/assertions.xml
@@ -3,10 +3,10 @@
    The function
 
    int pthread_attr_destroy(pthread_attr_t *attr)
-   
+
   destorys a thread attributes object.  An implementation may cause
   pthread_attr_destroy() to set 'attr' to an implementation-defined invalid
-  value.  
+  value.
   </assertion>
   <assertion id="2" tag="ref:XSH6:31114:31115">
   A destroyed 'attr' attributes object can be reinitialized using
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/2-1.sh
index 4b074af..963d40b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/assertions.xml
index 22c5fa38..82dc5ed 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getdetachstate/assertions.xml
@@ -3,11 +3,11 @@
    The function
 
    int pthread_attr_getdetachstate(const pthread_attr_t *attr, int *detachstate)
-  
+
   will get the detachstate attribute in the 'attr' object.  The detach state
-  can be either PTHREAD_CREATE_DETACHED or PTHEAD_CREATE_JOINABLE.  
+  can be either PTHREAD_CREATE_DETACHED or PTHEAD_CREATE_JOINABLE.
   </assertion>
   <assertion id="2" tag="ref:XSH6:31232:31233">
   If success, it returns 0.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getinheritsched/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getinheritsched/2-1.sh
index ce6aaa8..aefe843 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getinheritsched/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getinheritsched/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/2-1.sh
index 1ee5075..51416dc 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, QUALCOMM Inc. All rights reserved.
 # Created by:  abisain REMOVE-THIS AT qualcomm DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/assertions.xml
index 640abd9..0d7cfe5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedparam/assertions.xml
@@ -2,9 +2,9 @@
   <assertion id="1" tag="ref:XSH6:31388:31391">
    The function
 
-   int pthread_attr_getschedparam(const pthread_attr_t *restrict attr, 
+   int pthread_attr_getschedparam(const pthread_attr_t *restrict attr,
 	contst struct sched_param *restrict param);
- 
+
   gets the scheduling parameter attributes in the 'attr' argument.
   The contents of the 'param' structure are defined in sched.h.
   For the SCHED_FIFO and SCHED_RR policies, the only required member of
@@ -12,5 +12,5 @@
   </assertion>
   <assertion id="2" tag="ref:XSH6:31399:31400">
   If success, it returns 0;
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/1-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/1-1.sh
index 452c3e9..84caa05 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/1-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/1-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/3-1.sh
index 593bcec..8b313fc 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/3-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/assertions.xml
index 47c02d8..e81260b 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/assertions.xml
@@ -6,12 +6,12 @@
 
    gets the schedpolicy attribute in the 'attr' argument.
   </assertion>
-  
+
   <assertion id="2" tag="ref:XSH6:31439:31440">
-   The supported values of policy will include SCHED_FIFO, SCHED_RR, 
+   The supported values of policy will include SCHED_FIFO, SCHED_RR,
    and SCHED_OTHER.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:31443:31445">
    If success, the function returns zero;
    otherwise, an error number shall be returned indicating the error.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/coverage.txt
index 6986bbb..3445f57 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getschedpolicy/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES	
+2		YES
 3		YES
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/2-1.sh
index 33a4cf7..d7ab682 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/assertions.xml
index 0f1a263..c201c44 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getscope/assertions.xml
@@ -1,7 +1,7 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31485:31490">
 pthread_attr_getscope shall get the inheritsched attribute in the attr argument
-The contentionscope attribute may have the values PTHREAD_SCOPE_SYSTEM, signifying system scheduling contention scope, or PTHREAD_SCOPE_PROCESS, signifying process scheduling contention scope. 
+The contentionscope attribute may have the values PTHREAD_SCOPE_SYSTEM, signifying system scheduling contention scope, or PTHREAD_SCOPE_PROCESS, signifying process scheduling contention scope.
   </assertion>
   <assertion id="2" tag="ref:XSH6:31492:31492">
 If succesful, the pthread_attr_getscope shall return zero.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/2-1.sh
index ef0b5f7..0ce6a34 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/assertions.xml
index f3e49d6..4e90aa3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/assertions.xml
@@ -5,9 +5,9 @@
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:31541:31541">
-   If success, it returns zero. 
+   If success, it returns zero.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:31554:31554">
    Shall not return an error code of [EINTR]
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/coverage.txt
index 3cdaa1d..aca5613 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstack/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES  
+2		YES
 3		won't test
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstackaddr/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstackaddr/coverage.txt
index 66d53df..816d2cf 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstackaddr/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstackaddr/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES  
+2		YES
 3		won't test
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/2-1.sh
index ef0b5f7..0ce6a34 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/assertions.xml
index e00a566..ef3136f 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/assertions.xml
@@ -1,13 +1,13 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31532:31533">
-  The pthread_attr_getstacksize() shall get the thread creation stacksize 
+  The pthread_attr_getstacksize() shall get the thread creation stacksize
   attributes stacksize in the attr ojbect.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:31541:31541">
-   If success, it returns zero. 
+   If success, it returns zero.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:31554:31554">
    Shall not return an error code of [EINTR]
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/coverage.txt
index 8688d40..d7d1400 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_getstacksize/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES  
+2		YES
 3		won't test
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/assertions.xml
index 09a95c7..8b625c5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/assertions.xml
@@ -3,7 +3,7 @@
    The function
 
    int pthread_attr_init(pthread_attr_t *attr)
- 
+
    initializes a thread attributes object 'attr' with the default value
    for all the individual attributes accorinding to a given implementation.
 
@@ -12,14 +12,14 @@
    is defined in the spec. (default value:  PTHREAD_CREATE_JOINABLE)
   </assertion>
   <assertion id="2" tag="ref:XSH6:31118:31119">
-  The resulting attributes object (that can also be  modified by setting 
-  individual attribute values) when used by pthread_create() defines the 
+  The resulting attributes object (that can also be  modified by setting
+  individual attribute values) when used by pthread_create() defines the
   attributes of the thread created.
   </assertion>
   <assertion id="3" tag="ref:XSH6:31119:31120">
   A single attributes object can be used in multiple simultaneous calls to
-  pthread_create(). 
-  NOTE: Undefined results occur if pthread_attr_init() is called specifying an 
+  pthread_create().
+  NOTE: Undefined results occur if pthread_attr_init() is called specifying an
   already initialized 'attr' attributes object.
   </assertion>
   <assertion id="4" tag="ref:XSH6:31123:31124">
@@ -27,7 +27,7 @@
   </assertion>
   <assertion id="5" tag="ref:XSH6:31126:31128">
   If it fails, an error number will be returned to indicate the error:
-  [ENOMEM] - Not enough memory to initialize the thread attributes 
+  [ENOMEM] - Not enough memory to initialize the thread attributes
    	     object.
 
   It will not return [EINTR].
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/coverage.txt
index 8f79ebe..ed4ded4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_init/coverage.txt
@@ -8,4 +8,4 @@
 5		NO ** WON'T test since it is more of a stress test rather than
 		      conformance.
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/3-1.sh
index 30a8c55..b041959 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/assertions.xml
index 183ad81..894d8f0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setdetachstate/assertions.xml
@@ -3,20 +3,20 @@
    The function
 
    int pthread_attr_setdetachstate(const pthread_attr_t *attr, int *detachstate)
-  
-  sets the detachstate attribute in the 'attr' object.  
-  The detach state can be either PTHREAD_CREATE_DETACHED or 
-  PTHEAD_CREATE_JOINABLE.  
-  
-  A value of PTHREAD_CREATE_DETACHED causes all threads created with 'attr'  
+
+  sets the detachstate attribute in the 'attr' object.
+  The detach state can be either PTHREAD_CREATE_DETACHED or
+  PTHEAD_CREATE_JOINABLE.
+
+  A value of PTHREAD_CREATE_DETACHED causes all threads created with 'attr'
   to be in a detached state, and using a value of PTHREAD_CREATE_JOINABLE
   causes threads created with 'attr' to be in the joinable state.
   The default value of the detachstate attribute is
-  PTHREAD_CREATE_JOINABLE. 
+  PTHREAD_CREATE_JOINABLE.
   </assertion>
   <assertion id="2" tag="ref:XSH6:31219:31220">
-  If the thread is created detached, then use of the ID of the newly created 
-  thread by the pthread_detach() or pthread_join() function will producer an 
+  If the thread is created detached, then use of the ID of the newly created
+  thread by the pthread_detach() or pthread_join() function will producer an
   error.
   </assertion>
   <assertion id="3" tag="ref:XSH6:31232:31233">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/3-1.sh
index e3bbc03..9b4452d 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/3-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/assertions.xml
index ebdc46e..2c8991d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setinheritsched/assertions.xml
@@ -7,9 +7,9 @@
 PTHREAD_INHERIT_SCHED
    specifies that the thread scheduling attributes shall be inherited from the creating thread, and the scheduling attributes in this attr argument shall be ignored.
 PTHREAD_EXPLICIT_SCHED
-   specifies that the thread scheduling attributes shall be set to the corresponding values from this attributes object. 
+   specifies that the thread scheduling attributes shall be set to the corresponding values from this attributes object.
 The schedpolicy, schedparam, cotentionscope are affected by the inherisched attribute.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:31347:31347">
 If successful, pthread_attr_setinheritsched functions return zero.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/2-1.sh
index d597239..18612c8 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, QUALCOMM Inc. All rights reserved.
 # Created by:  abisain REMOVE-THIS AT qualcomm DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/assertions.xml
index dd73620..1ec963b 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/assertions.xml
@@ -2,9 +2,9 @@
   <assertion id="1" tag="ref:XSH6:31388:31391">
    The function
 
-   int pthread_attr_setschedparam(pthread_attr_t *restrict attr, 
+   int pthread_attr_setschedparam(pthread_attr_t *restrict attr,
 	contst struct sched_param *restrict param);
- 
+
   sets the scheduling parameter attributes in the 'attr' argument.
   The contents of the 'param' structure are defined in sched.h.
   For the SCHED_FIFO and SCHED_RR policies, the only required member of
@@ -12,13 +12,13 @@
   </assertion>
   <assertion id="2" tag="ref:XSH6:31399:31400">
   If success, it returns 0;
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:31402:31405">
   It may return an error number of:
 
   -[EINVAL]  The value of 'param' is invalid
   -[ENOTSUP] An attempt to set the attribute to an unsupported value
 
-  The function will not return [EINTR] 
-  </assertion> 
+  The function will not return [EINTR]
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/coverage.txt
index e5cb033..c558882 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedparam/coverage.txt
@@ -1,10 +1,10 @@
 This document defines the coverage for the pthread_attr_setschedparam function:
 
 Assertion	Tested?
-1	        YES	
+1	        YES
 2		YES
 3		YES ** Keeping in mind it 'may' fail and not 'shall' fail,
-		      so it will always return PASS, but will return a 
+		      so it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 		    ** EINTR NOT tested
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/2-1.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/2-1.c
index aab73d1..46b5cee 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/2-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/2-1.c
@@ -213,13 +213,13 @@
 	/* priorities must be high to low */
 	status = PTS_FAIL;
 	if (priorities[0] != PRIO_HIGH)
-		printf("Failed: first is prio: %u, should be: %u\n", 
+		printf("Failed: first is prio: %u, should be: %u\n",
 				priorities[0], PRIO_HIGH);
 	else if (priorities[1] != PRIO_MED)
-		printf("Failed: second is prio: %u, should be: %u\n", 
+		printf("Failed: second is prio: %u, should be: %u\n",
 				priorities[1], PRIO_MED);
 	else if (priorities[2] != PRIO_LOW)
-		printf("Failed: third is prio: %u, should be: %u\n", 
+		printf("Failed: third is prio: %u, should be: %u\n",
 				priorities[2], PRIO_LOW);
 	else
 		status = PTS_PASS;
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/3-1.sh
index 692f487..c8d977f 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/3-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/assertions.xml
index 2634138..09c4833 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/assertions.xml
@@ -5,18 +5,18 @@
 
    sets the schedpolicy attribute in the 'attr' argument.
   </assertion>
-  
+
   <assertion id="2" tag="ref:XSH6:31439:31442">
-   The supported values of 'policy' include SCHED_FIFO, SCHED_RR, 
+   The supported values of 'policy' include SCHED_FIFO, SCHED_RR,
    and SCHED_OTHER. When threads executing with the scheduling policy
-   are waiting on a mutex, they shall acquire the mutex in priority order 
+   are waiting on a mutex, they shall acquire the mutex in priority order
    when the mutex is unlocked.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:31443:31444">
    If success, it returns zero.
   </assertion>
-  
+
   <assertion id="4" tag="ref:XSH6:31445:31448">
    if fail, an error number shall be returned to indicate the error.
    The pthread_attr_setschedpolicy() function may fail if:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/coverage.txt
index 51e2b98..12a948d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setschedpolicy/coverage.txt
@@ -8,4 +8,4 @@
 5		YES
 6		won't test
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/3-1.sh
index ade19e9..174ddad 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/3-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/assertions.xml
index 2354e04..283be0c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setscope/assertions.xml
@@ -3,8 +3,8 @@
 pthread_attr_setscope shall set the contentionscope attribute in the attr object.
   </assertion>
   <assertion id="2" tag="ref:XSH6:31487:31489">
-The contentionscope attribute may have the values PTHREAD_SCOPE_SYSTEM, signifying system scheduling contention scope, or PTHREAD_SCOPE_PROCESS, signifying process scheduling contention scope. 
-  </assertion> 
+The contentionscope attribute may have the values PTHREAD_SCOPE_SYSTEM, signifying system scheduling contention scope, or PTHREAD_SCOPE_PROCESS, signifying process scheduling contention scope.
+  </assertion>
   <assertion id="3" tag="ref:XSH6:31492:31492">
 If successful, pthread_attr_setscope functions return zero.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/3-1.sh
index a680acc..871def2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/3-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/5-1.sh
index a680acc..871def2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/5-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/assertions.xml
index fb7fd58..0d72d05 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/assertions.xml
@@ -3,34 +3,34 @@
   The pthread_attr_setstack() shall set the thread creation stack attributes
   stackaddr and stacksize in the attr ojbect.
   The stack attributes specify the area of storage to be used for the created
-  thread's stack. 
+  thread's stack.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:31534:31534">
   The stack attributes specify the area of storage to be used for the created
-  thread's stack. 
+  thread's stack.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:31534:31538">
   The base of the storage shall be stackaddr, and the size of the storage
-  shall be stacksize bytes. The stacksize shall be at least 
-  {PTHREAD_STACK_MIN}.  The stackaddr shall be aligned appropriately to be 
-  used as a stack. 
+  shall be stacksize bytes. The stacksize shall be at least
+  {PTHREAD_STACK_MIN}.  The stackaddr shall be aligned appropriately to be
+  used as a stack.
   </assertion>
 
   <assertion id="4" tag="ref:XSH6:31538:31539">
   All pages within the stack described by stackaddr and stacksize shall be
   both readable and writable by the thread.
   </assertion>
-  
+
   <assertion id="5" tag="ref:XSH6:31541:31541">
-   If success, it returns zero. 
+   If success, it returns zero.
   </assertion>
-  
+
   <assertion id="6" tag="ref:XSH6:31541:31542 ref:XSH6:31547:31548">
    if fail, an error number shall be returned to indicate the error.
    The pthread_attr_setstack() function shall fail if:
-   [EINVAL] The value of stacksize is less than {PTHREAD_STACK_MIN} 
+   [EINVAL] The value of stacksize is less than {PTHREAD_STACK_MIN}
    or exceeds an implementation-defined limit.
   </assertion>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/coverage.txt
index 3c82b2e..f114f7d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstack/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES (The test uses a Non-POSIX-Compliant API 
+2		YES (The test uses a Non-POSIX-Compliant API
                      pthread_getattr_np to get attr in a created thread)
 3		YES
 4		YES
@@ -12,4 +12,4 @@
 8		NO
 9		won't test
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstackaddr/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstackaddr/coverage.txt
index 600dd93..dd17c02 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstackaddr/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstackaddr/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES (The test uses a Non-POSIX-Compliant API 
+2		YES (The test uses a Non-POSIX-Compliant API
                      pthread_getattr_np to get attr in a created thread)
 3		YES
 4		won't test
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/3-1.sh
index a680acc..871def2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/3-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/assertions.xml
index 7c0ba9e..f6dd3e7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31637:31638">
-  The pthread_attr_setstack() shall set the thread creation stack 
+  The pthread_attr_setstack() shall set the thread creation stack
   stacksize in the attr ojbect.
   </assertion>
 
@@ -8,16 +8,16 @@
   The stacksize attribute shall define the minimum stack size (in bytes)
   allocated for the created thread stack.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:31642:31643 ref:XSH6:31644:31645">
    If success, it returns zero and stores the stacksize attribute in
-   the stacksize if successful. 
+   the stacksize if successful.
   </assertion>
-  
+
   <assertion id="4" tag="ref:XSH6:31643:31643 ref:XSH6:31647:31649">
    if fail, an error number shall be returned to indicate the error.
    The pthread_attr_setstacksize() function shall fail if:
-   [EINVAL] The value of stacksize is less than {PTHREAD_STACK_MIN} 
+   [EINVAL] The value of stacksize is less than {PTHREAD_STACK_MIN}
    or exceeds an implementation-defined limit.
   </assertion>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/coverage.txt
index 0bf1c77..0d25f2a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_attr_setstacksize/coverage.txt
@@ -2,10 +2,10 @@
 
 Assertion	Tested?
 1		YES
-2		YES (The test uses a Non-POSIX-Compliant API 
+2		YES (The test uses a Non-POSIX-Compliant API
                      pthread_getattr_np to get attr in a created thread)
 3		YES
 4		YES
 5		won't test
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/3-1.sh
index 059da4c..a2c7d97 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/3-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, these functions shall return zero; 
+# Upon successful completion, these functions shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/assertions.xml
index f700a13..93c930a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/assertions.xml
@@ -1,6 +1,6 @@
  <assertions>
   <assertion id="1" tag="ref:XSH6:31763:31764">
-  The pthread_barrier_destroy( ) function shall destroy the barrier referenced by barrier and 
+  The pthread_barrier_destroy( ) function shall destroy the barrier referenced by barrier and
   release any resources used by the barrier.
   </assertion>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/coverage.txt
index 858d92b..6d1be90 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_destroy/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/2-1.sh
index 059da4c..a2c7d97 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/2-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, these functions shall return zero; 
+# Upon successful completion, these functions shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/assertions.xml
index e315f6f..94ac68a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/assertions.xml
@@ -1,8 +1,8 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31769:31772">
   The pthread_barrier_init( ) function shall allocate any resources required to use the barrier
-  referenced by barrier and shall initialize the barrier with attributes referenced by attr. If 
-  attr is NULL, the default barrier attributes shall be used; the effect is the same as passing 
+  referenced by barrier and shall initialize the barrier with attributes referenced by attr. If
+  attr is NULL, the default barrier attributes shall be used; the effect is the same as passing
   the address of a default barrier attributes object.
   </assertion>
 
@@ -17,14 +17,14 @@
    [EINVAL] The value specified by count is equal to zero.
    [ENOMEM] Insufficient memory exists to initialize the barrier.
   </assertion>
-  
+
   <assertion id="4" tag="ref:XSH6:31803:31803">
     The pthread_barrier_init( ) function may fail if:
     [EBUSY] The implementation has detected an attempt to reinitialize a barrier while it is
     in use (for example, while being used in a pthread_barrier_wait( ) call) by
     another thread.
    [EINVAL] The value specified by attr is invalid.
- 
+
    These functions shall not return an error code of [EINTR].
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/coverage.txt
index bd62580..f90fdd8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_init/coverage.txt
@@ -2,8 +2,8 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
-3		YES	
-4		YES 
+2		YES
+3		YES
+4		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/4-1.sh
index e132fec..9e8efd6 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/4-1.sh
@@ -2,12 +2,12 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# A thread that has blocked on a barrier shall not prevent any unblocked 
-# thread that is eligible to use the same processing resources from 
+# A thread that has blocked on a barrier shall not prevent any unblocked
+# thread that is eligible to use the same processing resources from
 # eventually making forward progress in its execution.
 # Eligibility for processing resources shall be determined by the scheduling policy.
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/5-1.sh
index 1133c2a..de1b46e 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/5-1.sh
@@ -2,13 +2,13 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
 # Upon successful completion, the pthread_barrier_wait( ) function shall return
 # PTHREAD_BARRIER_SERIAL_THREAD for a single (arbitrary) thread synchronized at the
-# barrier and zero for each of the other threads. Otherwise, 
+# barrier and zero for each of the other threads. Otherwise,
 # an error number shall be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/assertions.xml
index 0e5ba19..ba25fb8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/assertions.xml
@@ -1,5 +1,5 @@
 <assertions>
-  <assertion id="1" tag="ref:XSH6:31824:31826"> 
+  <assertion id="1" tag="ref:XSH6:31824:31826">
   The pthread_barrier_wait( ) function shall synchronize participating threads at the barrier
   referenced by barrier. The calling thread shall block until the required number of threads have
   called pthread_barrier_wait( ) specifying the barrier.
@@ -8,34 +8,34 @@
   <assertion id="2" tag="ref:XSH6:31827:31831">
   When the required number of threads have called pthread_barrier_wait( ) specifying the barrier,
   the constant PTHREAD_BARRIER_SERIAL_THREAD shall be returned to one unspecified
-  thread and zero shall be returned to each of the remaining threads. At this point, the 
-  barrier shall be reset to the state it had as a result of the most recent 
+  thread and zero shall be returned to each of the remaining threads. At this point, the
+  barrier shall be reset to the state it had as a result of the most recent
   pthread_barrier_init( ) function that referenced it.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:35496:35497">
-  If a signal is delivered to a thread blocked on a barrier, upon return from the signal 
-  handler the thread shall resume waiting at the barrier if the barrier wait has not completed 
-  (that is, if the required number of threads have not arrived at the barrier during the 
-  execution of the signal handler); otherwise, the thread shall continue as normal from the 
-  completed barrier wait. Until the thread in the signal handler returns from it, it is 
+  If a signal is delivered to a thread blocked on a barrier, upon return from the signal
+  handler the thread shall resume waiting at the barrier if the barrier wait has not completed
+  (that is, if the required number of threads have not arrived at the barrier during the
+  execution of the signal handler); otherwise, the thread shall continue as normal from the
+  completed barrier wait. Until the thread in the signal handler returns from it, it is
   unspecified whether other threads may proceed past the barrier once they have all reached it.
   </assertion>
-  
-  <assertion id="4" tag="ref:XSH6:31841:31843">  
+
+  <assertion id="4" tag="ref:XSH6:31841:31843">
   A thread that has blocked on a barrier shall not prevent any unblocked thread that is eligible
   to use the same processing resources from eventually making forward progress in its execution.
   Eligibility for processing resources shall be determined by the scheduling policy.
   </assertion>
-  
-  <assertion id="5" tag="ref:XSH6:31845:31848"> 
+
+  <assertion id="5" tag="ref:XSH6:31845:31848">
   Upon successful completion, the pthread_barrier_wait( ) function shall return
   PTHREAD_BARRIER_SERIAL_THREAD for a single (arbitrary) thread synchronized at the
   barrier and zero for each of the other threads. Otherwise, an error number shall be returned to
   indicate the error.
   </assertion>
-  
-  <assertion id="6" tag="ref:XSH6:31850:31852">  
+
+  <assertion id="6" tag="ref:XSH6:31850:31852">
   The pthread_barrier_wait( ) function may fail if:
   [EINVAL] The value specified by barrier does not refer to an initialized barrier object.
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/coverage.txt
index b2cb0d9..243c953 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrier_wait/coverage.txt
@@ -2,10 +2,10 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
-3		YES 
-4		YES 
-5		YES 
-6		YES 
+2		YES
+3		YES
+4		YES
+5		YES
+6		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/2-1.sh
index 4f8d432..1662bc5 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/2-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, this function shall return zero; 
+# Upon successful completion, this function shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/assertions.xml
index c842a58..a7d915a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31878:31879">
-  The pthread_barrierattr_destroy( ) function shall destroy a barrier attributes object. 
+  The pthread_barrierattr_destroy( ) function shall destroy a barrier attributes object.
   A destroyed attr attributes object can be reinitialized using pthread_barrierattr_init( );
   </assertion>
 
@@ -10,6 +10,6 @@
 
    These functions shall not return an error code of [EINTR].
   </assertion>
-  
+
 </assertions>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/coverage.txt
index 8a65198..d10fb95 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_destroy/coverage.txt
@@ -2,6 +2,6 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/3-1.sh
index 059da4c..a2c7d97 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/3-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, these functions shall return zero; 
+# Upon successful completion, these functions shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/assertions.xml
index 52ecb45..b67f9bf 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/assertions.xml
@@ -1,12 +1,12 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31924:31925">
-  The pthread_barrierattr_getpshared( ) function shall obtain the value of the process-shared 
+  The pthread_barrierattr_getpshared( ) function shall obtain the value of the process-shared
   attribute from the attributes object referenced by attr.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:31927:31934">
   The process-shared attribute is set to PTHREAD_PROCESS_SHARED to permit a barrier to be
-  operated upon by any thread that has access to the memory where the barrier is allocated. 
+  operated upon by any thread that has access to the memory where the barrier is allocated.
   If the process-shared attribute is PTHREAD_PROCESS_PRIVATE, the barrier shall only be operated
   upon by threads created within the same process as the thread that initialized the barrier; if
   threads of different processes attempt to operate on such a barrier, the behavior is undefined.
@@ -15,12 +15,12 @@
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:31938:31940">
-  If successful, the pthread_barrierattr_getpshared( ) function shall return zero and store the 
-  value of the process-shared attribute of attr into the object referenced by the pshared 
+  If successful, the pthread_barrierattr_getpshared( ) function shall return zero and store the
+  value of the process-shared attribute of attr into the object referenced by the pshared
   parameter. Otherwise, an error number shall be returned to indicate the error.
   </assertion>
-  
-  <assertion id="4" tag="ref:XSH6:31944:31945">  
+
+  <assertion id="4" tag="ref:XSH6:31944:31945">
   These functions may fail if:
   [EINVAL] The value specified by attr is invalid.
   These functions shall not return an error code of EINTR.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/coverage.txt
index c94f359..494c410 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_getpshared/coverage.txt
@@ -2,8 +2,8 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
-3		YES		 
+2		YES
+3		YES
 4		NO
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/3-1.sh
index 4f8d432..1662bc5 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/3-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, this function shall return zero; 
+# Upon successful completion, this function shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/assertions.xml
index 212a6a3..8e865e6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/assertions.xml
@@ -1,17 +1,17 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:31882:31883">
-  The pthread_barrierattr_init( ) function shall initialize a barrier attributes object attr 
+  The pthread_barrierattr_init( ) function shall initialize a barrier attributes object attr
   with the default value for all of the attributes defined by the implementation.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:31886:31888">
-  After a barrier attributes object has been used to initialize one or more barriers, any 
-  function affecting the attributes object (including destruction) shall not affect any 
+  After a barrier attributes object has been used to initialize one or more barriers, any
+  function affecting the attributes object (including destruction) shall not affect any
   previously initialized barrier.
   </assertion>
-  
- <assertion id="3" tag="ref:XSH6:31890:31897">  
-  If successful, 
+
+ <assertion id="3" tag="ref:XSH6:31890:31897">
+  If successful,
   it shall return zero; otherwise, an error number shall be returned to indicate the error.
   The pthread_barrierattr_init( ) function shall fail if:
 
@@ -20,6 +20,6 @@
   This function shall not return an error code of [EINTR].
 
   </assertion>
-  
+
 </assertions>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/coverage.txt
index 309e00d..f57ecd0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_init/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/3-1.sh
index 996af40..c6535a7 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/3-1.sh
@@ -3,11 +3,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, these functions shall return zero; 
+# Upon successful completion, these functions shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/assertions.xml
index cecbd6e..08f0bed 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/assertions.xml
@@ -1,5 +1,5 @@
 <assertions>
-  
+
   <assertion id="1" tag="ref:XSH6:31925:31926">
   The pthread_barrierattr_setpshared( ) function shall
   set the process-shared attribute in an initialized attributes object referenced by attr.
@@ -13,11 +13,11 @@
 
   These functions shall not return an error code of [EINTR].
   </assertion>
-  
-  <assertion id="3" tag="ref:XSH6:31941:31942">  
-  If successful, the pthread_barrierattr_setpshared( ) function shall return zero; otherwise, 
+
+  <assertion id="3" tag="ref:XSH6:31941:31942">
+  If successful, the pthread_barrierattr_setpshared( ) function shall return zero; otherwise,
   an error number shall be returned to indicate the error.
   </assertion>
-  
+
 </assertions>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/coverage.txt
index 995f14b..bed76c7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_barrierattr_setpshared/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/assertions.xml
index 2e8912b..61048ae 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/assertions.xml
@@ -2,9 +2,9 @@
   <assertion id="1" tag="ref:XSH6:31990:31991">
    The function
 
-   int pthread_cancel(pthread_t thread); 
-   
-   sends a request that 'thread' shall be canceled.  The target thread's 
+   int pthread_cancel(pthread_t thread);
+
+   sends a request that 'thread' shall be canceled.  The target thread's
    cancelability state and type determines when/if the cancelation takes
    effect.
   </assertion>
@@ -14,23 +14,23 @@
 
   When the last cancelation cleanup handler returns, the thread-specific
   data destructer functions will be called for 'thread'.
-  When the last destructer function returns, 'thread' then terminates. 
+  When the last destructer function returns, 'thread' then terminates.
 
-  NOTE: Still trying to find a good way to test the second paragraph of 
+  NOTE: Still trying to find a good way to test the second paragraph of
   assertion #2.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:31995:31996">
   The cancelation processing in the target thread will run asynchronously
   with respect to the calling thread returning from pthread_cancel();
-  </assertion> 
+  </assertion>
   <assertion id="4" tag="ref:XSH6:31998:31998">
   If success, it returns a 0;
-  </assertion> 
+  </assertion>
   <assertion id="5" tag="ref:XSH6:32001:32004">
   It may return an error number if:
 
-  -[ESRCH] No thread could be found corresponding to that thread ID  
+  -[ESRCH] No thread could be found corresponding to that thread ID
 
   It will not return [EINTR]
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/coverage.txt
index 73bce89..65b83db 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cancel/coverage.txt
@@ -7,7 +7,7 @@
 3		YES
 4		YES
 5		YES ** Keeping in mind it 'may' fail and not 'shall' fail,
-		       so it will always return PASS, but will return a 
+		       so it will always return PASS, but will return a
 		       PASS and print out a warning if it fails.
 
 NOTE: In a lot of these test, I didn't make use of semaphores or mutexes, but
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/2-1.sh
index 6cf261c..43e306f 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_cleanup_pop() does not return a value or an error code of [EINTR]
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/assertions.xml
index c6fae25..6fc7e48 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_pop/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:32048:32049">
    The function
 
-   void pthread_cleanup_pop(int execute); 
+   void pthread_cleanup_pop(int execute);
 
   Shall remove the routine at the top of the calling thread's cancelation cleanup stack and
   optionally invoke it (if execute is non-zero).
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/2-1.sh
index 87528e1..7c971b6 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_cleanup_push() does not return a value or an error code of [EINTR]
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/assertions.xml
index 43d682c..c732c73 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cleanup_push/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:32050:32055">
    The function
 
-   void pthread_cleanup_push(void (*routine) (void*), void *arg); 
+   void pthread_cleanup_push(void (*routine) (void*), void *arg);
 
   Shall push the specified cancelation cleanup handler routine onto the calling thread's
   cancelation cleanup stack.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/assertions.xml
index 34841ff..ee05585 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:32242:32243">
   The function
     int pthread_cond_broadcast(pthread_cond_t *cond);
-  shall unblock all threads currently blocked on the specified condition 
+  shall unblock all threads currently blocked on the specified condition
   variable cond.
   </assertion>
 
@@ -11,21 +11,21 @@
   pthread_cond_broadcast() returns from its call to pthread_cond_wait() or
   pthread_cond_timedwait(), the thread shall own the mutex with which it called
   pthread_cond_wait() or pthread_cond_timedwait().
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32258:32259">
   The pthread_cond_broadcast() functions shall have no effect if there are
   no threads currently blocked on cond.
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32261:32261">
   If successful, the pthread_cond_broadcast() function shall return zero;
-  </assertion> 
+  </assertion>
 
   <assertion id="5" tag="ref:XSH6:32264:32266">
   The pthread_cond_broadcast() function may fail if:
   [EINVAL] The value cond does not refer to an initialized condition variable.
   These functions shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/coverage.txt
index e2751ca..397e3b1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_broadcast/coverage.txt
@@ -3,9 +3,9 @@
 Assertion	Tested?
 1		YES
 2		YES
-3		NO  
+3		NO
 4		YES
 5		NO  * When it specifies it 'may' fail and not 'shall' fail,
-		      it will always return PASS, but will return a 
+		      it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/assertions.xml
index 2da4607..7d8ceac 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/assertions.xml
@@ -6,18 +6,18 @@
   the object becomes, in effect, uninitialized. An implementation may cause pthread_cond_destroy()
   to set the object referenced by cond to an invalid value. A destroyed condition variable object can
   be reinitialized using pthread_cond_init(); the results of otherwise referencing the object after it
-  has been destroyed are undefined.  
+  has been destroyed are undefined.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:32354:32356">
   It shall be safe to destroy an initialized condition variable upon which no threads are currently
   blocked. Attempting to destroy a condition variable upon which other threads are currently
-  blocked results in undefined behavior.  
-  </assertion> 
+  blocked results in undefined behavior.
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32370:32370">
   If successful, the pthread_cond_destroy() function shall return zero;
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32376:32380">
   The pthread_cond_destroy() function may fail if:
@@ -26,5 +26,5 @@
             pthread_cond_wait() or pthread_cond_timedwait( )) by another thread.
     [EINVAL] The value specified by cond is invalid.
   The function shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/coverage.txt
index 6e56bdd..9dae6f2 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_destroy/coverage.txt
@@ -5,7 +5,7 @@
 2		YES
 3		YES
 4		NO  * When it specifies it 'may' fail and not 'shall' fail,
-		      it will always return PASS, but will return a 
+		      it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
-		    * EBUSY is tested 
+		    * EBUSY is tested
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/assertions.xml
index 9706722..90b1e70 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/assertions.xml
@@ -6,19 +6,19 @@
   shall initialize the condition variable referenced by cond with
   attributes referenced by attr.If attr is NULL, the default condition variable attributes shall be
   used; the effect is the same as passing the address of a default condition variable attributes
-  object. Upon successful initialization, the state of the condition variable shall become initialized.  
+  object. Upon successful initialization, the state of the condition variable shall become initialized.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:32365:32368">
   In cases where default condition variable attributes are appropriate, the macro
   PTHREAD_COND_INITIALIZER can be used to initialize condition variables that are statically
   allocated. The effect shall be equivalent to dynamic initialization by a call to pthread_cond_init()
-  with parameter attr specified as NULL, except that no error checks are performed.  
-  </assertion> 
+  with parameter attr specified as NULL, except that no error checks are performed.
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32370:32370">
   If successful, the pthread_cond_init() function shall return zero;
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32381:32390">
   The pthread_cond_init() function shall fail if:
@@ -31,5 +31,5 @@
              variable.
     [EINVAL] The value specified by attr is invalid.
   The function shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/coverage.txt
index 6493158..fe45b2a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_init/coverage.txt
@@ -6,6 +6,6 @@
 3		YES
 4		NO  * Looking for a way to produce the error conditions
 		    * When it specifies it 'may' fail and not 'shall' fail,
-		      it will always return PASS, but will return a 
+		      it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/assertions.xml
index 0ea824b..d410d24 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:32244:32245">
   The function
    int pthread_cond_signal(pthread_cond_t *cond);
-  shall unblock at least one of the threads currently blocked on 
+  shall unblock at least one of the threads currently blocked on
   the specified condition variable cond.
   </assertion>
 
@@ -16,16 +16,16 @@
   <assertion id="3" tag="ref:XSH6:32258:32259">
   The pthread_cond_signal() functions shall have no effect if there are
   no threads currently blocked on cond.
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32261:32261">
   If successful, the pthread_cond_signal() function shall return zero;
-  </assertion> 
+  </assertion>
 
   <assertion id="5" tag="ref:XSH6:32264:32266">
   The pthread_cond_signal() function may fail if:
   [EINVAL] The value cond does not refer to an initialized condition variable.
   These functions shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/coverage.txt
index 4f0220d..025f1d3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_signal/coverage.txt
@@ -3,9 +3,9 @@
 Assertion	Tested?
 1		YES
 2		YES
-3		NO  
+3		NO
 4		YES
 5		NO  * When it specifies it 'may' fail and not 'shall' fail,
-		      it will always return PASS, but will return a 
+		      it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/assertions.xml
index de648ec..eb64006 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/assertions.xml
@@ -12,12 +12,12 @@
   The pthread_cond_timedwait() function shall be equivalent to pthread_cond_wait(), except that an
   error is returned if the absolute time specified by abstime passes (that is, system time equals or
   exceeds abstime) before the condition cond is signaled or broadcasted, or if the absolute time
-  specified by abstime has already been passed at the time of the call. 
-   </assertion> 
+  specified by abstime has already been passed at the time of the call.
+   </assertion>
 
   <assertion id="3" tag="ref:XSH6:32516:32516">
   Upon successful completion, a value of zero shall be returned;
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32521:32526">
   The pthread_cond_timedwait() function shall fail if:
@@ -28,6 +28,6 @@
              pthread_cond_wait() operations on the same condition variable.
     [EPERM] The mutex was not owned by the current thread at the time of the call.
   These functions shall not return an error code of [EINTR].
-  </assertion> 
-  
+  </assertion>
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/coverage.txt
index 86f41dd..2dbd867 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_timedwait/coverage.txt
@@ -5,7 +5,7 @@
 2		YES *2-2 and 2-3 seem to pass but hang on nptl 0.36
 3		YES
 4		YES * When it specifies it 'may' fail and not 'shall' fail,
-		      it will always return PASS, but will return a 
+		      it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 		    * Tested EINVAL when abs time spec is invalid
 		    * Tested EINTR
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/assertions.xml
index c6fc0f5..a026f89 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/assertions.xml
@@ -8,13 +8,13 @@
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:32476:32477">
-  Upon successful return, the mutex shall have been locked and shall be owned 
+  Upon successful return, the mutex shall have been locked and shall be owned
   by the calling thread.
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32516:32516">
   Upon successful completion, a value of zero shall be returned;
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32521:32526">
   The pthread_cond_wait() function may fail if:
@@ -23,6 +23,6 @@
              pthread_cond_wait() operations on the same condition variable.
     [EPERM] The mutex was not owned by the current thread at the time of the call.
   These functions shall not return an error code of [EINTR].
-  </assertion> 
-  
+  </assertion>
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/coverage.txt
index 4b23bf8..301fe14 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_cond_wait/coverage.txt
@@ -5,6 +5,6 @@
 2		YES
 3		YES
 4		NO   * When it specifies it 'may' fail and not 'shall' fail,
-		       it will always return PASS, but will return a 
+		       it will always return PASS, but will return a
 		       PASS and print out a warning if it fails.
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/assertions.xml
index 2de6ffb..7921d4b 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/assertions.xml
@@ -4,21 +4,21 @@
     int pthread_condattr_destroy(pthread_condattr_t *attr);
   shall destroy a condition variable attributes object; the object becomes,
   in effect, uninitialized. An implementation may cause pthread_condattr_destroy()
-  to set the object referenced by attr to an invalid value.  
+  to set the object referenced by attr to an invalid value.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:32667:32669">
-  A destroyed attr attributes object can be reinitialized using pthread_condattr_init(); 
+  A destroyed attr attributes object can be reinitialized using pthread_condattr_init();
   the results of otherwise referencing the object after it has been destroyed are undefined.
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32682:32683">
   If successful, it shall return zero;
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32685:32686">
   The pthread_condattr_destroy() function may fail if:
     [EINVAL] The value specified by attr is invalid.
-  </assertion> 
-  
+  </assertion>
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/coverage.txt
index b09125c..b578ce0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_destroy/coverage.txt
@@ -7,5 +7,5 @@
 4               YES ** Keeping in mind it 'may' fail and not 'shall' fail,
                        so it will always return PASS, but will return a
                        PASS and print out a warning if it fails.
-		    
+
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/2-1.sh
index a692411..22a45ba 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/2-1.sh
@@ -1,11 +1,11 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
-#  Test pthread_condattr_getclock() returns 0 upon success, and fails with an error number 
+#  Test pthread_condattr_getclock() returns 0 upon success, and fails with an error number
 #  is returned if:
 #  It may fail if:
 #  - [EINVAL]	The value specified by 'attr' is invalid.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/assertions.xml
index 6080b07..5332c73 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getclock/assertions.xml
@@ -1,9 +1,9 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:32718:32722">
    The function
-    int pthread_condattr_getclock(pthread_condattr_t *restrict attr, 
+    int pthread_condattr_getclock(pthread_condattr_t *restrict attr,
 	clockid_t *restrict clock_id);
-   shall get the 'clock' attribute from an attributes object referenced by 
+   shall get the 'clock' attribute from an attributes object referenced by
    'attr'. It will store the value of the clock attribute into clock_id and return 0.
   </assertion>
 
@@ -13,6 +13,6 @@
   It may fail if:
 
   [EINVAL] - the 'attr' value is invalid
-  
+
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/3-1.sh
index 99d9117..b753325 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_condattr_getpshared()
@@ -11,7 +11,7 @@
 #  into 'pshared'.
 #
 
-# This is tested implicitly via assertion 1 and 2. 
+# This is tested implicitly via assertion 1 and 2.
 
 echo "Tested implicitly via assertion 1 and 2.  See output for status"
 exit 0
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/assertions.xml
index 9e121d1..ade19ed 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_getpshared/assertions.xml
@@ -3,21 +3,21 @@
    The function
      int pthread_condattr_getpshared(const pthread_condattr_t *restrict attr,
                                      int *restrict pshared);
-  shall obtain the value of the process-shared attribute from the attributes 
+  shall obtain the value of the process-shared attribute from the attributes
   object referenced by attr.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:32773:32774">
-  The default value of the attribute is PTHREAD_PROCESS_PRIVATE.  
-  </assertion> 
+  The default value of the attribute is PTHREAD_PROCESS_PRIVATE.
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32778:32779">
-  If successful, the pthread_condattr_getpshared() function shall return zero and store the 
-  value of the process-shared attribute of attr into the object referenced by the pshared 
-  parameter. 
+  If successful, the pthread_condattr_getpshared() function shall return zero and store the
+  value of the process-shared attribute of attr into the object referenced by the pshared
+  parameter.
 
   The pthread_condattr_getpshared() function may fail if:
-  [EINVAL] The value specified by attr is invalid.  
-  </assertion> 
+  [EINVAL] The value specified by attr is invalid.
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_init/assertions.xml
index b324e8b..d98d1b6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_init/assertions.xml
@@ -3,22 +3,22 @@
    The function
     int pthread_condattr_init(pthread_condattr_t *attr);
   shall initialize a condition variable attributes object attr with
-  the default value for all of the attributes defined by the implementation.  
+  the default value for all of the attributes defined by the implementation.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:32674:32676">
   After a condition variable attributes object has been used to initialize one or more condition
   variables, any function affecting the attributes object (including destruction) shall not affect any
-  previously initialized condition variables.  
-  </assertion> 
+  previously initialized condition variables.
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:32682:32683">
   If successful, it shall return zero;
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:32687:32688">
   The pthread_condattr_init() function shall fail if:
-    [ENOMEM] Insufficient memory exists to initialize the condition variable attributes object. 
-  </assertion> 
-  
+    [ENOMEM] Insufficient memory exists to initialize the condition variable attributes object.
+  </assertion>
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setclock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setclock/assertions.xml
index b87d417..25d88e8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setclock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setclock/assertions.xml
@@ -2,8 +2,8 @@
   <assertion id="1" tag="ref:XSH6:32718:32722">
    The function
     int pthread_condattr_setclock(pthread_condattr_t *attr, clockid_t clock_id);
-   shall set the 'clock' attribute in an initialized attributes object referenced by 
-   'attr'. 
+   shall set the 'clock' attribute in an initialized attributes object referenced by
+   'attr'.
    If it is called with a clock_id argument that refers to a CPU-time clock, the call
    shall fail.
   </assertion>
@@ -15,6 +15,6 @@
 
   [EINVAL] - the 'attr' value is invalid
   [EINVAL] - 'clock_id' doesn't refer to a known clock or is a CPU-time clock.
-  
+
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setpshared/assertions.xml
index e4d7f19..3745466 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_condattr_setpshared/assertions.xml
@@ -3,16 +3,16 @@
    The function
      int pthread_condattr_setpshared(pthread_condattr_t *attr,
                                      int pshared);
-  shall set the process-shared attribute in an initialized attributes object 
+  shall set the process-shared attribute in an initialized attributes object
   referenced by attr.
 
-  The process-shared attribute is set to PTHREAD_PROCESS_SHARED to permit a condition 
+  The process-shared attribute is set to PTHREAD_PROCESS_SHARED to permit a condition
   variable to be operated upon by any thread that has access to the memory where the
   condition variable is allocated, even if the condition variale is allocated in memory
   that is shared by multiple processes.  If the process-shared attribute is set to
-  PTHREAD_PROCESS_PRIVATE, the condition variable shall only be operated upon by threads 
+  PTHREAD_PROCESS_PRIVATE, the condition variable shall only be operated upon by threads
   create within the same process as the thread that initialized the condition varible; if
-  threads of differing processes attempt to operate on such a condition variable, the 
+  threads of differing processes attempt to operate on such a condition variable, the
   behavior is undefined.
   </assertion>
 
@@ -21,7 +21,7 @@
   The pthread_condattr_setpshared() function may fail if:
     [EINVAL] The value specified by attr is invalid.
     [EINVAL] The new value specified for the attribute is outside the range of legal values
-             for that attribute.  
-  </assertion> 
+             for that attribute.
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/13.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/13.sh
index 3e3d2c9..585815a 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/13.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/13.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_create() fails and an error number is returned if:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/assertions.xml
index b010d2c..7a5e605 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/assertions.xml
@@ -1,10 +1,10 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:32840:32842">
-   The 
+   The
 
-   int pthread_create(pthread_t *restrict thread, const pthread_attr_t 
+   int pthread_create(pthread_t *restrict thread, const pthread_attr_t
   	*restrict attr, void *(*start_routine) (void*), void *restrict arg);
- 
+
    creates a new thread, with attributes specified
    by 'attr', within a process.
   </assertion>
@@ -15,10 +15,10 @@
 
    default: PTHREAD_CREATE_JOINABLE
    Other valid values: PTHREAD_CREATE_DETACHED
-   
+
   </assertion>
   <assertion id="3" tag="ref:XSH6:32842:32843">
-   If the attributes specified by 'attr' are modified later after the thread 
+   If the attributes specified by 'attr' are modified later after the thread
    is create, the thread's attributes should not be affected.
   </assertion>
   <assertion id="4" tag="ref:XSH6:32843:32844">
@@ -32,7 +32,7 @@
   <assertion id="6" tag="ref:XSH6:32845:32848">
   If the 'start_routine' returns, the effect shall be as if there was an
   implicit call to pthread_exit() using the return value of 'start_routine'
-  as the exit status.  
+  as the exit status.
   NOTE: that the thread in which main() was originally invoked is different
   from this
   </assertion>
@@ -58,7 +58,7 @@
   clock accessible, and the initial value of this clock shall be set to 0.
   </assertion>
   <assertion id="12" tag="ref:XSH6:32859:32859">
-  If success, pthread_create() returns zero.  
+  If success, pthread_create() returns zero.
   </assertion>
   <assertion id="13" tag="ref:XSH6:32859:32860">
   If pthread_create() fails, an error number is returned:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/coverage.txt
index e9035a4..d1a8e22 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_create/coverage.txt
@@ -15,4 +15,4 @@
 12		YES
 13		YES
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_detach/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_detach/assertions.xml
index 8b001ed..36d3c46 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_detach/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_detach/assertions.xml
@@ -2,24 +2,24 @@
   <assertion id="1" tag="ref:XSH6:32943:32944">
    The function
 
-   int pthread_detach(pthread_t thread); 
-  
-  detaches a thread. It shall indicate to the implementation that storage 
-  for 'thread' can be reclaimed when that thread terminates. 
+   int pthread_detach(pthread_t thread);
+
+  detaches a thread. It shall indicate to the implementation that storage
+  for 'thread' can be reclaimed when that thread terminates.
   </assertion>
   <assertion id="2" tag="ref:XSH6:32944:32946">
   If 'thread' has not terminated, pthread_detach() won't cause it to
   terminate.  The effect of multiple pthread_detach() calls on the same
   target thread is unspecified.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:32948:32948">
   If success, it returns 0;
-  </assertion> 
+  </assertion>
   <assertion id="4" tag="ref:XSH6:32951:32956">
   Upon failure, it returns an error number:
   -[EINVAL] 'thread' does not refer to a joinable thread.
   -[ESRCH] No thread could be found corresponding to that thread ID
 
   It shall not return [EINTR]
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_equal/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_equal/assertions.xml
index 3c98533..940e318 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_equal/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_equal/assertions.xml
@@ -3,9 +3,9 @@
    The function
 
    int pthread_equal(pthread_t t1, pthread_t t2)
-  
+
   compares the thread ids t1 and t2.  It returns a non-zero
-  value if t1 and t2 are equal, othersise it returns zero.  
+  value if t1 and t2 are equal, othersise it returns zero.
   No errors are defined.
   </assertion>
   <assertion id="2" tag="ref:XSH6TC2:33834:33834">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_exit/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_exit/assertions.xml
index 5375b25..f34f6a1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_exit/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_exit/assertions.xml
@@ -2,37 +2,37 @@
   <assertion id="1" tag="ref:XSH6:33023:33024">
    The function
 
-   void pthread_exit(void *value_ptr); 
-  
+   void pthread_exit(void *value_ptr);
+
   terminates the calling thread and makes the value 'value_ptr' available
-  to any successful join with the terminating thread. 
+  to any successful join with the terminating thread.
   </assertion>
-  <assertion id="2" tag="ref:XSH6:33024:33026">  
+  <assertion id="2" tag="ref:XSH6:33024:33026">
   Any cancelation cleanup handlers that have been pushed and not yet popped
   shall be popped and executed in the reverse order that they were pushed.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:33026:33028">
   After all cancelation cleanup handlers have been executed, if the thread
   has any thread-specific data, appriopriate destructor functions shall
-  be called in an unspecified order. 
-  </assertion> 
+  be called in an unspecified order.
+  </assertion>
   <assertion id="4" tag="ref:XSH6:33028:33030">
-  Thread termination does not release any application visible process 
+  Thread termination does not release any application visible process
   resources include, but not limited to, mutexes and file descriptors, nor
   does it perform any process-level cleanup actions, including but not
   limited to, calling any atexit() routines that may exist.
-  </assertion> 
+  </assertion>
   <assertion id="5" tag="ref:XSH6:33031:33033">
-  An implicit call to pthread_exit() is made when a thread other than the 
+  An implicit call to pthread_exit() is made when a thread other than the
   thread in which main() was first invoked returns from the start routine that
-  was used to create it.  The function's return value shall serve as the 
+  was used to create it.  The function's return value shall serve as the
   thread's exit status.
-  </assertion> 
-  <assertion id="6" tag="ref:XSH6:33040:33042">  
+  </assertion>
+  <assertion id="6" tag="ref:XSH6:33040:33042">
   The process shall exit with an exit status of 0 after the last thread has
   been terminated.  The behavior shall be as if the implemenation called exit()
   with a zero argument at thread termination time.
 
   The pthread_exit() function cannot return to its called.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/2-1.sh
index 7944a97..a3cf4dc 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/2-1.sh
@@ -1,9 +1,9 @@
 
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2004, Intel Corporation. All rights reserved.
 # Created by:  crystal.xiong REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/assertions.xml
index 036f8fc..28f733a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/assertions.xml
@@ -6,13 +6,13 @@
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:33141:33141">
-  If success, it returns zero. 
+  If success, it returns zero.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:33144:33145">
   If fails, an error number shall be returned to indicate the error.
   The pthread_getcpuclockid() may fail if:
-  [ESRCH] The value specified by thread_id does not refer to an existing 
-  thread. 
+  [ESRCH] The value specified by thread_id does not refer to an existing
+  thread.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/coverage.txt
index 28b6306..a23f14e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getcpuclockid/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES  
+2		YES
 3		YES
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/assertions.xml
index 109604a..fffff35 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/assertions.xml
@@ -1,39 +1,39 @@
 <assertions>
 
   <assertion id="1" tag="ref:XSH6:33172:33182">
-  The pthread_getschedparam( ) function shall retrieve the scheduling 
-  policy and scheduling parameters for the thread whose thread ID is 
+  The pthread_getschedparam( ) function shall retrieve the scheduling
+  policy and scheduling parameters for the thread whose thread ID is
   given by thread and shall store those values in
-  policy and param, respectively. The priority value returned from 
+  policy and param, respectively. The priority value returned from
   pthread_getschedparam( ) shall be
-  the value specified by the most recent pthread_setschedparam( ), 
-  pthread_setschedprio( ), or pthread_create( ) call affecting the 
+  the value specified by the most recent pthread_setschedparam( ),
+  pthread_setschedprio( ), or pthread_create( ) call affecting the
   target thread. It shall not reflect any temporary adjustments to
-  its priority as a result of any priority inheritance or ceiling functions. 
+  its priority as a result of any priority inheritance or ceiling functions.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:33189:33199">
   TSP If _POSIX_THREAD_SPORADIC_SERVER is defined, then the policy argument may have the
-  value SCHED_SPORADIC, with the exception for the pthread_setschedparam( ) function 
-  that if the scheduling policy was not SCHED_SPORADIC at the time of the call, 
-  it is implementation-defined whether the function is supported; in other words, 
-  the implementation need not allow the application to dynamically change the 
-  scheduling policy to SCHED_SPORADIC. The sporadic server scheduling policy 
-  has the associated parameters sched_ss_low_priority, sched_ss_repl_period, 
+  value SCHED_SPORADIC, with the exception for the pthread_setschedparam( ) function
+  that if the scheduling policy was not SCHED_SPORADIC at the time of the call,
+  it is implementation-defined whether the function is supported; in other words,
+  the implementation need not allow the application to dynamically change the
+  scheduling policy to SCHED_SPORADIC. The sporadic server scheduling policy
+  has the associated parameters sched_ss_low_priority, sched_ss_repl_period,
   sched_ss_init_budget, sched_priority, and sched_ss_max_repl. The specified
-  sched_ss_repl_period shall be greater than or equal to the specified 
-  sched_ss_init_budget for the function to succeed; if it is not, then the function 
-  shall fail. The value of sched_ss_max_repl shall be within the inclusive 
+  sched_ss_repl_period shall be greater than or equal to the specified
+  sched_ss_init_budget for the function to succeed; if it is not, then the function
+  shall fail. The value of sched_ss_max_repl shall be within the inclusive
   range [1,{SS_REPL_MAX}] for the function to succeed; if not, the function
   shall fail.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:33203:33204">
-  If successful, the pthread_getschedparam( ) and pthread_setschedparam( ) 
-  functions shall return zero; otherwise, an error number shall be returned 
+  If successful, the pthread_getschedparam( ) and pthread_setschedparam( )
+  functions shall return zero; otherwise, an error number shall be returned
   to indicate the error.
   </assertion>
-  
+
   <assertion id="4" tag="ref:XSH6TC2:34057:34057">
   The function never returns EINTR.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/coverage.txt
index 13aea14..5152b61 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getschedparam/coverage.txt
@@ -1,9 +1,9 @@
 This document defines the coverage for the pthread_getschedparam() function:
 
 Assertion	Tested?
-1		YES 
+1		YES
 2		NO
-3		YES *Tested implictly by 1-1 
+3		YES *Tested implictly by 1-1
 4		NO
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getspecific/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getspecific/assertions.xml
index 7e7866d..8c16241 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_getspecific/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_getspecific/assertions.xml
@@ -2,23 +2,23 @@
   <assertion id="1" tag="ref:XSH6:33250:33262">
    The function
     void *pthread_getspecific(pthread_key_t key)
-  
+
   shall return the value currently bound to the specified key on behalf of the calling thread.
   Calling pthread_getspecific() with a key value not obtained from pthread_key_create() or
-  after key has been deleted with pthread_key_delete() is undefined. 
+  after key has been deleted with pthread_key_delete() is undefined.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:33263:33266">
   pthread_getspecific can be called from a thread-specific data destructor function.
   A call to pthread_getspecific() for the thread-specific data key being destroyed shall
   return the value NULL, unless the value is changed (after the destructor starts) by a call
-  to pthread_setspecific(). 
+  to pthread_setspecific().
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:33271:33273">
   It shall return the thread-specific data value associated with the given 'key'.  If no
   thread-specific data value is associated with 'key, then the value NULL shall be returned.
-   
+
   It does not return any errors.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/assertions.xml
index 4872cc2..696f5f6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/assertions.xml
@@ -2,39 +2,39 @@
   <assertion id="1" tag="ref:XSH6:33309:33310">
    The function
 
-   int pthread_join(pthread_t thread, void **value_ptr); 
-  
+   int pthread_join(pthread_t thread, void **value_ptr);
+
   shall suspend the execution of the calling thread until the target
-  'thread' terminates, unless 'thread' has already terminated. 
+  'thread' terminates, unless 'thread' has already terminated.
   </assertion>
-  <assertion id="2" tag="ref:XSH6:33310:33312">  
+  <assertion id="2" tag="ref:XSH6:33310:33312">
   On return from a successful pthread_join() call with a non-NULL 'value_ptr'
   argument, the value passed to pthread_exit() by the terminating thread shall
   be made available in the location referenced by 'value_ptr'.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:33312:33313">
   When pthread_join() returns successfully, the target thread has been
   terminated.
-  </assertion> 
-  <assertion id="4" tag="ref:XSH6:33314:33315"> 
+  </assertion>
+  <assertion id="4" tag="ref:XSH6:33314:33315">
   If the thread calling pthread_join() is canceled, then the target thread
   shall not be detached.
-  </assertion> 
-  <assertion id="5" tag="ref:XSH6:33319:33320"> 
+  </assertion>
+  <assertion id="5" tag="ref:XSH6:33319:33320">
   Upon successful completion, it returns 0;
-  </assertion> 
+  </assertion>
   <assertion id="6" tag="ref:XSH6:33322:33329">
   pthread_join() SHALL fail if:
 
-  -[ESRCH] No thread could be found corresponding to that thread ID  
- 
+  -[ESRCH] No thread could be found corresponding to that thread ID
+
   pthread_join() MAY fail if:
 
   -[EINVAL] The implementation has detected that the value specified by
    'thread' does not refer to a joinable thread.
-  -[EDEADLK] A deadlock was detected or the value of 'thread' specifies the 
+  -[EDEADLK] A deadlock was detected or the value of 'thread' specifies the
    calling thread.
-  
+
   It shall not return an error code of [EINTR]
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/coverage.txt
index 9272ccd..f0125a9 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_join/coverage.txt
@@ -7,6 +7,6 @@
 4		NO ** Skipping for now.
 5		YES
 6		YES ** When it specifies 'may' fail and not 'shall' fail,
-		      it will always return PASS, but will return a 
+		      it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_create/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_create/assertions.xml
index 4d05f9e..d17abc1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_create/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_create/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:33401:33405">
    The function
    int pthread_key_create(pthread_key_t *key, void (*destructor(void*));
-  
+
    shall create a thread-specific data key visible to all threaads in the process.  Key values
    provided by pthread_key_create() are opaque objects used to locate thread-specific data.
    Although the same key value may be used by different threads, the values bound to the key
@@ -26,7 +26,7 @@
 
   <assertion id="4" tag="ref:XSH6:33414:33420">
   If, after all the destructors have been called for all non-NULL values with associated
-  destructors, there are still some non-NULL values with associated destructors, then the 
+  destructors, there are still some non-NULL values with associated destructors, then the
   process is repeated.  If, after at least (PTHREAD_DESTRUCTOR_ITERATIONS) iterations of
   destructor calls for outstanding non-NULL values, there are still some non-NULL values with
   associated destructors, implemenations may stop calling destructors or they may continue
@@ -36,10 +36,10 @@
 
   <assertion id="5" tag="ref:XSH6:33422:33423">
   If successful, the pthread_key_create() function shall store the newly created key value
-  at *key and shall return zero.  Otherwise, an error number shall be returned to indicate 
+  at *key and shall return zero.  Otherwise, an error number shall be returned to indicate
   an error:
 
-  It shall fail if: 
+  It shall fail if:
   [EAGAIN] - the system lacked the necessary resources to create another thread_specific
              data key, or the system imposed limit on the total number of keys per process
              [PTHREAD_KEYS_MAX] has been exceeded.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/3-1.sh
index e427779..4306fbd 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/assertions.xml
index 048ad2f..6c8116c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_key_delete/assertions.xml
@@ -2,14 +2,14 @@
   <assertion id="1" tag="ref:XSH6:33528:33534">
    The function
    int pthread_key_delete(pthread_key_t key);
-   
+
   Shall delete a thread-specific data key previously returned by pthread_key_create.  The
   thread-specific data values specified data values associated with 'key' need not be NULL at
   the time pthread_key_delete is called.  It is the responsibility of the application to free
-  any application storage or perform any cleanup actions for data structures related to the 
+  any application storage or perform any cleanup actions for data structures related to the
   deleted key or associated thread-specific data in any threads; this cleanup can be done
   either before or after pthread_key_delete is called.  Any attempt to use 'key' following
-  the call to pthread_key_delete results in undefined behavior. 
+  the call to pthread_key_delete results in undefined behavior.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:33535:33537">
@@ -21,7 +21,7 @@
   <assertion id="3" tag="ref:XSH6:33542:33544">
   If successful, it returns zero.  It may fail if:
   [EINVAL] - The 'key' value is invalid.
-  it shall not return [EINTR]  
+  it shall not return [EINTR]
   </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_kill/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_kill/assertions.xml
index 976a5a5..2289b9b 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_kill/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_kill/assertions.xml
@@ -1,31 +1,31 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:33591:33591 pt:THR">
-    The pthread_kill() function requests from the kernel to deliver a 
+    The pthread_kill() function requests from the kernel to deliver a
     specified signal be to a specified thread.
   </assertion>
   <assertion id="2" tag="ref:XSH6:33591:33591 pt:THR">
-    Just like in the kill() function, error checking shall be performed 
+    Just like in the kill() function, error checking shall be performed
     but no signal shall actually be sent, if sig is zero.
   </assertion>
   <assertion id="3" tag="ref:XSH6:33594:33594 pt:THR">
     The function shall return a value of zero, upon successful completion.
   </assertion>
   <assertion id="4" tag="ref:XSH6:33594:33595 pt:THR">
-    The function shall return an error number otherwise. 
+    The function shall return an error number otherwise.
   </assertion>
   <assertion id="5" tag="ref:XSH6:33594:33595 pt:THR">
     No signal shall be sent if the pthread_kill() function fails.
   </assertion>
   <assertion id="6" tag="ref:XSH6:33598:33599 pt:THR">
-    [ESRCH] No thread could be found corresponding to that specified by 
+    [ESRCH] No thread could be found corresponding to that specified by
     the given thread ID.
   </assertion>
   <assertion id="7" tag="ref:XSH6:33600:33600 pt:THR">
-    [EINVAL] The value of the sig argument is an invalid or unsupported 
+    [EINVAL] The value of the sig argument is an invalid or unsupported
     signal number.
   </assertion>
   <assertion id="8" tag="ref:XSH6:33601:33601 pt:THR">
-    The pthread_kill () function shall not return an error code of 
+    The pthread_kill () function shall not return an error code of
     [EINTR].
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/assertions.xml
index 235c1c0..76d3bf4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/assertions.xml
@@ -12,21 +12,21 @@
   A destroyed mutex object can be reinitialized using pthread_mutex_init();
   the results of referencing the object after it has been
   destroyed are undefined.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:33651:33651">
   Upon success, it returns a 0;
-  </assertion> 
+  </assertion>
   <assertion id="4" tag="ref:XSH6:33657:33661">
   pthread_mutex_destroy() may fail if:
 
   -[EBUSY] The implementation has detected an attempt to destory the
   object referenced by 'mutex' while it is locked or referenced.
   -[EINVAL] The value specified by 'mutex' is invalid.
- 
+
   It shall not return [EINTR]
-  </assertion> 
+  </assertion>
   <assertion id="5" tag="ref:XSH6:33636:33636">
   It shall be safe to destroy an initialized mutex that is unlocked.
-  </assertion> 
-  
+  </assertion>
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/coverage.txt
index eba046c..4a78eb6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_destroy/coverage.txt
@@ -5,7 +5,7 @@
 2		YES
 3		YES
 4		NO ** Keeping in mind it 'may' fail and not 'shall' fail,
-		      so it will always return PASS, but will return a 
+		      so it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 		   ** EBUSY is tested
 5		YES
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/assertions.xml
index 9e2fbac..47195ba 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_getprioceiling/assertions.xml
@@ -1,7 +1,7 @@
 <assertions>
   <assertion id="1" tag="ref:XSH7 ">
    The pthread_mutexattr_getprioceiling() function returns the current prioceiling of the mutex.
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH7 ">
    If successful, the pthread_mutex_getprioceiling() function shall return zero; otherwise, an error number shall be returned to indicate the error.
   </assertion>
@@ -10,7 +10,7 @@
     i.  [EINVAL]
       The protocol attribute of mutex is PTHREAD_PRIO_NONE.
     ii. [EPERM]
-      The implementation requires appropriate privileges to perform the operation and the caller does not have appropriate privileges. 
+      The implementation requires appropriate privileges to perform the operation and the caller does not have appropriate privileges.
   </assertion>
   <assertion id="5" tag="ref:XSH7 ">
     These functions shall not return an error code of [EINTR].
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_init/assertions.xml
index b295947..c92b12d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_init/assertions.xml
@@ -3,30 +3,30 @@
    The function
 
    int pthread_mutex_init(pthread_mutex_t *restrict mutex,
- 	const pthread_mutexattr_t *restrict attr); 
+ 	const pthread_mutexattr_t *restrict attr);
 
    pthread_mutex_t = PHTREAD_MUTEX_INITIALIZER
- 
+
   initializes a mutex referenced by 'mutex' with attributes specified by
-  'attr'.  If 'attr' is NULL, the default mutex attributes are used.  The 
+  'attr'.  If 'attr' is NULL, the default mutex attributes are used.  The
   effect shall be the same as passing the address of a default mutex attributes
-  object. 
+  object.
   </assertion>
   <assertion id="2" tag="ref:XSH6:33640:33645">
   Upon successful initialization, the state of the mutex becomes initialized
   and unlocked.  Attempting to initialize an already intialized mutex
   results in undefined behavior.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:33646:33649">
   In cases where default mutex attributes are appropriate, the macro
   PTHREAD_MUTEX_INITIALIZER can be used to intiailize mutexes that are
   statically allocated.  The effect shall be equivilant to dynamic
   intialization by a call to pthread_mutex_init() with paramter 'attr'
-  specified as NULL, except that no error checks are performed. 
-  </assertion> 
+  specified as NULL, except that no error checks are performed.
+  </assertion>
   <assertion id="4" tag="ref:XSH6:33651:33651">
   Upon success, it returns a 0;
-  </assertion> 
+  </assertion>
   <assertion id="5" tag="ref:XSH6:33662:33671">
   It SHALL fail if:
 
@@ -34,14 +34,14 @@
   to intialize another mutex.
   -[ENOMEM] Insufficient memory exists to initialize the mutex.
  -[EPERM] The caller does not have the privilage to perform the operation.
- 
+
   It MAY fail if:
-   
+
   -[EBUSY] The implementation has detected an attempt to reinitialize the
-   object referenced by 'mutex', a previously intialized, but not yet 
+   object referenced by 'mutex', a previously intialized, but not yet
    destroyed, mutex.
   -[EINVAL] The value specified by 'attr' is invalid.
 
   It shall not return [EINTR]
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_lock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_lock/assertions.xml
index c8c1421..53f5408 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_lock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_lock/assertions.xml
@@ -12,26 +12,26 @@
 
   <assertion id="2" tag="ref:XSH6:33945:33945">
   Upon success, it returns 0.
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:33950:33965">
   Upon failure, it shall return:
   -[EINVAL] The mutex was created with the protocol attribute
-            PTHREAD_PRIO_PROTECT and the calling thread's priority 
+            PTHREAD_PRIO_PROTECT and the calling thread's priority
             is higher than the mutex's current priority calling.
   It may fail if:
   -[EINVAL]  'mutex' does not refer to an initialized mutex object
   -[EDEADLK] The current thread already owns the mutex
   It shall not return [EINTR].
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:33950:33965">
-  If the mutex type is PTHREAD_MUTEX_RECURSIVE, 
+  If the mutex type is PTHREAD_MUTEX_RECURSIVE,
   the mutex shall maintain the concept of a lock count
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="5" tag="ref:XSH6:33950:33965">
-  If a signal is delivered to a thread waiting for a mutex, 
+  If a signal is delivered to a thread waiting for a mutex,
   when return from the signal handler the thread shall resume waiting.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_setprioceiling/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_setprioceiling/assertions.xml
index c6d516f..c92762f 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_setprioceiling/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_setprioceiling/assertions.xml
@@ -4,7 +4,7 @@
     ii.  The pthread_mutex_setprioceiling() function shall attempt to lock the mutex as if by a call to pthread_mutex_lock(), except that the process of locking the mutex need not adhere to the priority protect protocol.
     iii. On acquiring the mutex it shall change the mutex's priority ceiling and then release the mutex as if by a call to pthread_mutex_unlock().
     iv.  When the change is successful, the previous value of the priority ceiling shall be returned in old_ceiling.
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH7 ">
     Upon success, it returns 0, and stores the value of the prioceiling in 'prioceiling'.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_timedlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_timedlock/assertions.xml
index 47c0bf0..1763df6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_timedlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_timedlock/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:34022:34029">
    The function
 
-   int pthread_mutex_timedlock(pthread_mutex_t *restrict mutex, 
+   int pthread_mutex_timedlock(pthread_mutex_t *restrict mutex,
 	const struct timespec *restrict abs_timeout);
 
   locks the mutex object referenced by 'mutex'.  If the mutex is
@@ -16,19 +16,19 @@
   <assertion id="2" tag="ref:XSH6:34030:34032">
   If the Timers option (TMR) is supported, the timeout will be based on the CLOCK_REALTIME
   clock. Otherwise, it will be based on the system clock as returned by time()
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:34038:34041">
   For mutexes initialized with the PRIO_INHERIT protocol, if a timed mutex wait is
-  terminated because its timeout expired, the priority of the owner of the mutex shall be 
+  terminated because its timeout expired, the priority of the owner of the mutex shall be
   adjusted to show the fact that this thread no longer is among those that are waiting for
   the mutex.
-  </assertion> 
+  </assertion>
   <assertion id="4" tag="ref:XSH6:34043:34044">
   Upon success, it returns 0.
   </assertion>
   <assertion id="5" tag="ref:XSH6:34046:34059">
   It SHALL fail if:
- 
+
   [EINVAL] - The mutex was created with the protocol attribute of
              PTHREAD_PRIO_PROTECT and the calling thread's priority is higher than
    	     the mutex's current priority ceiling.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/assertions.xml
index e0118f7..ae1b1e4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/assertions.xml
@@ -4,7 +4,7 @@
 
    int pthread_mutex_trylock(pthread_mutex_t *mutex);
 
-  is equivalent to pthread_mutex_lock() except that if the mutex object 
+  is equivalent to pthread_mutex_lock() except that if the mutex object
   referenced by 'mutex' is currently locked (by any thread, including the
   current thread), the call returns immediately.
   </assertion>
@@ -13,15 +13,15 @@
   owned by the calling thread, the mutex lock count shall be incremented
   by one and the pthread_mutex_trylock() function immediately returns
   success.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:33947:33948">
   It returns 0 if a lock on the mutex object referenced by 'mutex' is
   acquired.
-  </assertion> 
+  </assertion>
   <assertion id="4" tag="ref:XSH6:33950:33965">
   Upon failure, it shall return:
   -[EINVAL]  The mutex was created with the protocol attribute
-   	     PTHREAD_PRIO_PROTECT and the calling thread's priority is higher 
+   	     PTHREAD_PRIO_PROTECT and the calling thread's priority is higher
    	     than the mutex's current priority calling.
   -[EBUSY]   The mutex could not be acquired because it was already locked.
 
@@ -29,5 +29,5 @@
   -[EINVAL] 'mutex' does not refer to an initialized mutex object
 
   It shall not return [EINTR].
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/coverage.txt
index a7d3a3b..873fc85 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_trylock/coverage.txt
@@ -2,12 +2,12 @@
 
 Assertion	Tested?
 1		YES
-2		NO   * PTHREAD_MUTEX_RECURSIVE is a new XSI feature, which may not  
+2		NO   * PTHREAD_MUTEX_RECURSIVE is a new XSI feature, which may not
 		       be available in pthread implementations
 3		YES
-4		YES  * EINVAL and EAGAIN are relevant to low-priority mutex 
+4		YES  * EINVAL and EAGAIN are relevant to low-priority mutex
 		       attributes, which cannot be tested by now
 		     * When it specifies it 'may' fail and not 'shall' fail,
-		       it will always return PASS, but will return a 
+		       it will always return PASS, but will return a
 		       PASS and print out a warning if it fails.
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/assertions.xml
index fd3db8e..5c30d98 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/assertions.xml
@@ -5,28 +5,28 @@
 
   releases the mutex object 'mutex'.
   </assertion>
-  
+
   <assertion id="2" tag="ref:XSH6:33936:33939">
   If there are threads blocked on the mutex object referenced by 'mutex' when
   pthread_mutex_unlock() is called, resulting in the mutex becoming available,
   the scheduling policy shall determine which thread shall acquire the mutex.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:33945:33945">
   Upon success, it returns 0.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="4" tag="ref:XSH6:33950:33965">
   Upon failure, it may return:
   -[EINVAL] 'mutex' does not refer to an initialized mutex object
   -[EPERM]  The current thread does not own 'mutex'
 
   It shall not return [EINTR].
-  </assertion> 
+  </assertion>
   <assertion id="5" tag="ref:XSH6:33919:33929">
   If the mutex type is PTHREAD_MUTEX_RECURSIVE:
      1. If a thread attempts to unlock a mutex that it does not own
-     2. or an unlocked mutex, 
+     2. or an unlocked mutex,
   an error is returned.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/coverage.txt
index f05b07f..9087acc 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutex_unlock/coverage.txt
@@ -2,13 +2,13 @@
 
 Assertion	Tested?
 1		YES
-2		YES * Because the default scheduling policy is implementation 
-		      dependent, the case only will only demo the scheduling 
+2		YES * Because the default scheduling policy is implementation
+		      dependent, the case only will only demo the scheduling
 		      sequence instead of testing it.
 3		YES
 4		NO  * The related error codes are all implementation dependent
 		    * Keeping in mind it 'may' fail and not 'shall' fail,
-		      so it will always return PASS, but will return a 
+		      so it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 5               YES
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/assertions.xml
index 0c7a268..c8b94f4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/assertions.xml
@@ -3,16 +3,16 @@
   The function
     int pthread_mutexattr_destroy(pthread_mutexattr_t *attr)
 
-  destroys a mutex attributes object; the object becomes, in effect, 
+  destroys a mutex attributes object; the object becomes, in effect,
   uninitialized. An implementation may cause pthread_mutexattr_destroy()
   to set the object referenced by 'attr' to an invalid value.
-  
-  *NOTE: What the last sentence states is implementation specific, thus 
+
+  *NOTE: What the last sentence states is implementation specific, thus
   it will not be covered.
   </assertion>
   <assertion id="2" tag="ref:XSH6:34094:34096">
-  A destroyed 'attr' attributes object can be reinitialized using 
-  pthread_mutexattr_init(); the results of referencing an 'attr'  object 
+  A destroyed 'attr' attributes object can be reinitialized using
+  pthread_mutexattr_init(); the results of referencing an 'attr'  object
   after it has been destroyed are undefined.
   </assertion>
   <assertion id="3" tag="ref:XSH6:34105:34105">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/coverage.txt
index cf790be..06a08b0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_destroy/coverage.txt
@@ -5,6 +5,6 @@
 2		YES
 3		YES
 4		YES ** Keeping in mind it 'may' fail and not 'shall' fail,
-		       so it will always return PASS, but will return a 
+		       so it will always return PASS, but will return a
 		       PASS and print out a warning if it fails.
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/2-1.sh
index 9297340..84883cd 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Upon success, it returns 0, and stores the value of the prioceiling in 'prioceiling'.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/assertions.xml
index 8dc9bf4..a2bda1c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprioceiling/assertions.xml
@@ -2,12 +2,12 @@
   <assertion id="1" tag="ref:XSH6:34307:34308">
    The function
 
-   int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *restrict attr, 
+   int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *restrict attr,
 	int *restrict prioceiling);
 
   Gets the priority ceiling attribute of a mutexattr object (which was prev. created
   by the function pthread_mutexattr_init()).
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34323:34326">
   Upon success, it returns 0, and stores the value of the prioceiling in 'prioceiling'.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprotocol/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprotocol/assertions.xml
index f7aa453..6f769a0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprotocol/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getprotocol/assertions.xml
@@ -2,12 +2,12 @@
   <assertion id="1" tag="ref:XSH6:34360:34361">
    The function
 
-   int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict attr, 
+   int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict attr,
 	int *restrict protocol);
 
   Gets the protocol attribute of a mutexattr object (which was prev. created
   by the function pthread_mutexattr_init()).
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34402:34405">
   Upon success, it returns 0.
   </assertion>
@@ -21,55 +21,55 @@
   </assertion>
 
   <assertion id="4" tag="ref:XSH6:34376:34377">
-	When a thread owns a mutex with the PTHREAD_PRIO_NONE protocol attribute, 
+	When a thread owns a mutex with the PTHREAD_PRIO_NONE protocol attribute,
 	its priority and scheduling shall not be affected by its mutex ownership.
   </assertion>
 
   <assertion id="5" tag="ref:XSH6:34378:34381">
-	When a thread is blocking higher priority threads because of owning one or 
-	more mutexes with the PTHREAD_PRIO_INHERIT protocol attribute, it shall 
-	execute at the higher of its priority or the priority of the highest priority 
-	thread waiting on any of the mutexes owned by this thread and initialized 
+	When a thread is blocking higher priority threads because of owning one or
+	more mutexes with the PTHREAD_PRIO_INHERIT protocol attribute, it shall
+	execute at the higher of its priority or the priority of the highest priority
+	thread waiting on any of the mutexes owned by this thread and initialized
 	with this protocol.
   </assertion>
 
   <assertion id="6" tag="ref:XSH6:34382:34385">
 	When a thread owns one or more mutexes initialized with the PTHREAD_PRIO_PROTECT
-	protocol, it shall execute at the higher of its priority or the highest of the 
-	priority ceilings of all the mutexes owned by this thread and initialized with 
-	this attribute, regardless of whether other threads are blocked on any of these 
+	protocol, it shall execute at the higher of its priority or the highest of the
+	priority ceilings of all the mutexes owned by this thread and initialized with
+	this attribute, regardless of whether other threads are blocked on any of these
 	mutexes or not.
   </assertion>
-	
- 
+
+
   <assertion id="7" tag="ref:XSH6:34386:34392">
 	While a thread is holding a mutex which has been initialized with the
-	PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol attributes, it shall 
-	not be	subject to being moved to the tail of the scheduling queue at its 
-	priority in the event that its original priority is changed, such as by a call 
-	to sched_setparam( ). Likewise, when a thread unlocks a mutex that has been 
-	initialized with the PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol 
-	attributes, it shall not be subject to being moved to the tail of the scheduling 
-	queue at its priority in the event that its original priority is changed. 
+	PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol attributes, it shall
+	not be	subject to being moved to the tail of the scheduling queue at its
+	priority in the event that its original priority is changed, such as by a call
+	to sched_setparam( ). Likewise, when a thread unlocks a mutex that has been
+	initialized with the PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT protocol
+	attributes, it shall not be subject to being moved to the tail of the scheduling
+	queue at its priority in the event that its original priority is changed.
   </assertion>
-	
+
 
   <assertion id="8" tag="ref:XSH6:34393:34394">
-	If a thread simultaneously owns several mutexes initialized with different 
-	protocols, it shall execute at the highest of the priorities that it would 
+	If a thread simultaneously owns several mutexes initialized with different
+	protocols, it shall execute at the highest of the priorities that it would
 	have obtained by each of these protocols.
   </assertion>
 
-  
+
   <assertion id="9" tag="ref:XSH6:34395:34401">
-	When a thread makes a call to pthread_mutex_lock( ), the mutex was initialized 
-	with the protocol attribute having the value PTHREAD_PRIO_INHERIT, when the 
-	calling thread is blocked because the mutex is owned by another thread, that 
-	owner thread shall inherit the priority level of the calling thread as long as 
-	it continues to own the mutex. The implementation shall update its execution 
+	When a thread makes a call to pthread_mutex_lock( ), the mutex was initialized
+	with the protocol attribute having the value PTHREAD_PRIO_INHERIT, when the
+	calling thread is blocked because the mutex is owned by another thread, that
+	owner thread shall inherit the priority level of the calling thread as long as
+	it continues to own the mutex. The implementation shall update its execution
 	priority to the maximum of its assigned priority and all its inherited priorities.
-	Furthermore, if this owner thread itself becomes blocked on another mutex, 
-	the same priority inheritance effect shall be propagated to this other owner 
+	Furthermore, if this owner thread itself becomes blocked on another mutex,
+	the same priority inheritance effect shall be propagated to this other owner
 	thread, in a recursive manner
  </assertion>
-</assertions> 
+</assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/2-1.sh
index c8e7a76..1af7fe1 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_mutexattr_getpshared() fails and an error number is returned if:
@@ -11,7 +11,7 @@
 #  into 'pshared'.
 #
 
-# This is tested implicitly via assertion 1. 
+# This is tested implicitly via assertion 1.
 
 echo "Tested implicitly via assertion 1.  See output for status"
 exit 0
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/assertions.xml
index 0fc5fe3..53b7838 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_getpshared/assertions.xml
@@ -2,11 +2,11 @@
   <assertion id="1" tag="ref:XSH6:34447:34449">
    The function
 
-   int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict attr, 
+   int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict attr,
 	int *restrict pshared);
 
    It shall obtain the value of the process-shared attribute from 'attr'.
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34460:34462">
   Upon success, it returns 0, and stores the value of the process-shared attribute of 'attr'
   into 'pshared'.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/2.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/2.sh
index e25c725..3fb1d70 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/2.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_mutexattr_gettype()
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/assertions.xml
index 075e2f9..c416fe4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_gettype/assertions.xml
@@ -4,10 +4,10 @@
 
    int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *restrict type);
 
-  Gets the mutex 'type' attribute.  This attribute is set in the 'type' parameter to 
+  Gets the mutex 'type' attribute.  This attribute is set in the 'type' parameter to
   these functions.  The default value is PTHREAD_MUTEX_DEFAULT.
 
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34526:34529">
   It returns 0 upon success and stores the value of the type of the attribute object 'attr'
   into the reference of the 'type' parameter.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/assertions.xml
index fe97876..db6cb9d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/assertions.xml
@@ -3,7 +3,7 @@
    The function
 
    int pthread_mutexattr_init(pthread_mutexattr_t *attr)
- 
+
    initializes a mutex attributes object 'attr' with the default
    value for all of the attributes defined by the implementation.  Results
    are undefined if it is called specifying an already initialized 'attr'
@@ -19,7 +19,7 @@
   </assertion>
   <assertion id="4" tag="ref:XSH6:34108:34109">
   If it fails, an error number shall be returned:
-  [ENOMEM] - Insufficient memory exists to initialize the mutex attributes 
+  [ENOMEM] - Insufficient memory exists to initialize the mutex attributes
   object.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/coverage.txt
index c2f5063..1c240d1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_init/coverage.txt
@@ -2,12 +2,12 @@
 
 Assertion	Tested?
 1		YES
-2		NO  *Looking for indicators to judge if initialized mutexes 
+2		NO  *Looking for indicators to judge if initialized mutexes
 		     are affected. The prioceiling or protocol attributes may
-		     be relied on, but they belong to REALTIME_THREADS scope, 
+		     be relied on, but they belong to REALTIME_THREADS scope,
 		     which is low priority in the schedule.
 3		YES
 4		NO  *Looking for a way to use up the memory without screwing
  		     up the machine.
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/2-1.sh
index 9297340..84883cd 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Upon success, it returns 0, and stores the value of the prioceiling in 'prioceiling'.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/assertions.xml
index 6f60e9a..7605800 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprioceiling/assertions.xml
@@ -2,7 +2,7 @@
   <assertion id="1" tag="ref:XSH6:34307:34317">
    The function
 
-   int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr, 
+   int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *attr,
 	int prioceiling);
 
   sets the priority ceiling attribute of a mutexattr object (which was prev. created
@@ -10,7 +10,7 @@
 
   'Prioceiling' contains the priority ceiling of initialized mutexes.  The values of
   'prioceiling' are within the maximum range of priorites defined by SCHED_FIFO.
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34323:34326">
   Upon success, it returns 0.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/2-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/2-2.sh
index 9297340..84883cd 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/2-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/2-2.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Upon success, it returns 0, and stores the value of the prioceiling in 'prioceiling'.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/assertions.xml
index 5293604..3403d17 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/assertions.xml
@@ -2,12 +2,12 @@
   <assertion id="1" tag="ref:XSH6:34360:34368">
    The function
 
-   int pthread_mutexattr_setprotocol(const pthread_mutexattr_t *restrict attr, 
+   int pthread_mutexattr_setprotocol(const pthread_mutexattr_t *restrict attr,
 	int protocol);
 
   Sets the protocol attribute of a mutex attribute object which was prev. created
   by the function pthread_mutexattr_init().
-  </assertion>  
+  </assertion>
 
   <assertion id="2" tag="ref:XSH6:34402:34405">
   Upon success, it returns 0.
@@ -22,4 +22,4 @@
 
   Shall not return error code of [EINTR].
   </assertion>
-</assertions> 
+</assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/coverage.txt
index 97cd859..828dd34 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setprotocol/coverage.txt
@@ -3,5 +3,5 @@
 Assertion	Tested?
 1		YES
 2		YES
-3		YES	
+3		YES
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setpshared/assertions.xml
index 792fd22..c796329 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_setpshared/assertions.xml
@@ -10,13 +10,13 @@
   operated upon by any thread that has access to the memory where the mutex is allocated,
   even if the mutex is allocated in memory that is shared by multiple processes.
 
-  If the process-shared attribute is PTHREAD_PROCESS_PRIVATE, the mutex shall only be 
+  If the process-shared attribute is PTHREAD_PROCESS_PRIVATE, the mutex shall only be
   operated upon by threads created within the same process as the thread that initialized
   the mutex; if threads of differing processes attempt to operate on such a mutex,
   the behavior is undefined.
 
   The default value of the attribute is PTHREAD_PROCESS_PRIVATE.
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34458:34459">
   Upon success, it returns 0.
   </assertion>
@@ -25,7 +25,7 @@
 
   [EINVAL] - 'attr' is invalid.
 
-  [EINVAL] - the new value pshared value is outside the range of legal values for that 
+  [EINVAL] - the new value pshared value is outside the range of legal values for that
              attribute.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/6-1.sh
index eece606..e8f19c2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/6-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #   Test pthread_mutexattr_settype()
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/assertions.xml
index d51b796..d4abeb8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_mutexattr_settype/assertions.xml
@@ -4,22 +4,22 @@
 
    int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
 
-  Sets the mutex 'type' attribute.  This attribute is set in the 'type' parameter to 
+  Sets the mutex 'type' attribute.  This attribute is set in the 'type' parameter to
   these functions.  The default value is PTHREAD_MUTEX_DEFAULT.
 
-  </assertion>  
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34503:34506">
   PTHREAD_MUTEX_NORMAL
 
   This type of mutex doesn't detect deadlock.  So a thread attempting to relock this mutex
   without unlocking it first will deadllock.  Attempting to unlock a mutex locked by a
   different thread results in undefined behavior.  Attemping to unlock an unlocked mutex
-  results in undefined behavior. 
+  results in undefined behavior.
   </assertion>
   <assertion id="3" tag="ref:XSH6:34507:i34511">
   PTHREAD_MUTEX_ERRORCHECK
 
-  Provides errorchecking.  A thread attempting to relock this mutex without unlocking it 
+  Provides errorchecking.  A thread attempting to relock this mutex without unlocking it
   first will return with an error.  A thread attempting to unlock a mutex which another
   thread has locked will return with an error.  A thread attempting to unlock an unlocked
   mutex will return with an error.
@@ -29,8 +29,8 @@
 
   Attempting to recursively lock a mutex of this type will result in undefined behavior.
   Attempting to unlock a mutex of this type which was not locked by the calling thread
-  results in undefined behavior.  Attempting to unlock a mutex of this type which is 
-  locked results in undefined behavior.  An implementation may map this mutex to one of 
+  results in undefined behavior.  Attempting to unlock a mutex of this type which is
+  locked results in undefined behavior.  An implementation may map this mutex to one of
   the other mutex types.
   </assertion>
   <assertion id="6" tag="ref:XSH6:34526:34529">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/assertions.xml
index f5cf4ab..d52113d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/assertions.xml
@@ -2,10 +2,10 @@
   <assertion id="1" tag="ref:XSH6:34613:34617">
    The function
 
-   int pthread_once(pthread_once_t *once_control, void (*init_routine) (void)); 
-   
+   int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));
+
    The first call to pthread_once() by any
-   thread in a process, with a given 'once_control', shall call the 
+   thread in a process, with a given 'once_control', shall call the
    'init_routine' with no arguments.  Subsequent calls of pthread_once()
    with the same once_control shall not call the 'init_routine'.  The
    'once_control' paramter shall determine whether the associated initialization
@@ -13,24 +13,24 @@
   </assertion>
   <assertion id="2" tag="ref:XSH6:34615:34615">
   On return from pthread_once(), 'init_routine' shall have completed.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:34618:34619">
   The pthread_once() function is not a cancelation point.  But if
-  'init_routine' is a cancelation point and is canceled, the effect on 
+  'init_routine' is a cancelation point and is canceled, the effect on
   'once_control' shall be as if pthread_once() was never called.
-  </assertion> 
+  </assertion>
   <assertion id="4" tag="ref:XSH6:34620:34622">
   The constant PTHREAD_ONCE_INIT is defined in the pthread.h header.  The
   behavior of pthread_once() is undefined if 'once_control' has automatic
   storage duration or is not initialized by PTHREAD_ONCE_INIT.
-  </assertion> 
+  </assertion>
   <assertion id="5" tag="ref:XSH6:34624:34624">
   Upon success, it returns a 0;
-  </assertion> 
+  </assertion>
   <assertion id="6" tag="ref:XSH6:34627:34629">
   Upon failure, it may return an error number:
   -[EINVAL] If either 'once_control' or 'init_routine' is invalid
 
   It shall not return [EINTR]
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/coverage.txt
index 51c4a58..87c0cb5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_once/coverage.txt
@@ -7,7 +7,7 @@
 4		YES
 5		NO
 6		NO ** Keeping in mind it 'may' fail and not 'shall' fail,
-		      so it will always return PASS, but will return a 
+		      so it will always return PASS, but will return a
 		      PASS and print out a warning if it fails.
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/2-1.sh
index 35c34ec..048da5c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/2-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/assertions.xml
index ba0984d..9064f1f 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_destroy/assertions.xml
@@ -1,21 +1,21 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34688:34689">
-  	pthread_rwlock_destroy( ) function shall destroy the read-write lock object 
-  	referenced by rwlock and release any resources used by the lock. 
-  </assertion> 
+  	pthread_rwlock_destroy( ) function shall destroy the read-write lock object
+  	referenced by rwlock and release any resources used by the lock.
+  </assertion>
 
   <assertion id="2" tag="ref:XSH6:34708:34709">
 	If successful, the pthread_rwlock_destroy( ) return zero;
 	otherwise, an error number shall be returned to indicate the error.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="3" tag="ref:XSH6:34714:34717">
 	If not successful, pthread_rwlock_destroy( ) function may fail if:
 	[EBUSY] The implementation has detected an attempt to destroy the object referenced
 	by rwlock while it is locked.
-	[EINVAL] The value specified by rwlock is invalid. 
+	[EINVAL] The value specified by rwlock is invalid.
 
 	Shall not return an error code of [EINTR]
-  </assertion> 
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/4-1.sh
index 92ce112..a8ccbc1 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/4-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/assertions.xml
index 610aa66..ea6fbe8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_init/assertions.xml
@@ -1,27 +1,27 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34694:34695">
-	pthread_rwlock_init(pthread_rwlock_t *restrict rwlock, 
+	pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,
 	const pthread_rwlockattr_t *restrict attr);
-	
-	pthread_rwlock_init( ) function shall allocate any resources 
-	required to use the read-write lock referenced by rwlock and 
+
+	pthread_rwlock_init( ) function shall allocate any resources
+	required to use the read-write lock referenced by rwlock and
 	initializes the lock to an unlocked state with attributes referenced
 	by attr.
-  </assertion> 
+  </assertion>
   <assertion id="2" tag="ref:XSH6:34696:34697">
-	If attr is NULL, the default read-write lock attributes shall be used; 
-	the effect is the same as passing the address of a default read-write 
+	If attr is NULL, the default read-write lock attributes shall be used;
+	the effect is the same as passing the address of a default read-write
 	lock attributes object.
   </assertion>
   <assertion id="3" tag="ref:XSH6:34697:34698">
-	Once initialized, the lock can be used any number of times without being 
+	Once initialized, the lock can be used any number of times without being
 	reinitialized.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="4" tag="ref:XSH6:34708:34709">
 	If successful, the pthread_rwlock_init( ) function shall return zero;
 	otherwise, an error number shall be returned to indicate the error.
-  </assertion> 
+  </assertion>
 
   <assertion id="5" tag="ref:XSH6:34718:34722">
   ptread_rwlock_init( ) function shall fail if:
@@ -29,7 +29,7 @@
   another read-write lock.
   [ENOMEM] Insufficient memory exists to initialize the read-write lock.
   [EPERM] The caller does not have the privilege to perform the operation.
-  </assertion> 
+  </assertion>
   <assertion id="6" tag="ref:XSH6:34723:34728">
   pthread_rwlock_init( ) may fail if:
 	[EBUSY] The implementation has detected an attempt to reinitialize the object
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/6-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/6-2.sh
index 10aa89a..eee66f6 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/6-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/6-2.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #If successful, the pthread_rwlock_rdlock( ) function shall return zero; otherwise, an error number
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/assertions.xml
index fa5c85e..07263b3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_rdlock/assertions.xml
@@ -1,41 +1,41 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34765:34767">
-	pthread_rwlock_rdlock( ) function shall apply a read lock to the 
-	read-write lock referenced by rwlock. The calling thread acquires 
+	pthread_rwlock_rdlock( ) function shall apply a read lock to the
+	read-write lock referenced by rwlock. The calling thread acquires
 	the read lock if a writer does not hold the lock and there are
 	no writers blocked on the lock.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:34768:34771">
- 	If the Thread Execution Scheduling option is supported, 
-	and the threads involved in the lock are executing with the 
+ 	If the Thread Execution Scheduling option is supported,
+	and the threads involved in the lock are executing with the
 	scheduling policies SCHED_FIFO or SCHED_RR, the calling thread shall not
-	acquire the lock if a writer holds the lock or if writers of 
-	higher or equal priority are blocked on the lock; 
+	acquire the lock if a writer holds the lock or if writers of
+	higher or equal priority are blocked on the lock;
 	otherwise, the calling thread shall acquire the lock.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:34772:34775">
-   	If the Threads Execution Scheduling option is supported, and the threads 
-	involved in the lock are executing with the SCHED_SPORADIC scheduling policy, 
-	the calling thread shall not acquire the lock if a writer holds the lock or 
+   	If the Threads Execution Scheduling option is supported, and the threads
+	involved in the lock are executing with the SCHED_SPORADIC scheduling policy,
+	the calling thread shall not acquire the lock if a writer holds the lock or
 	if writers of higher or equal priority are blocked on
 	the lock; otherwise, the calling thread shall acquire the lock.
   </assertion>
-  
+
   <assertion id="4" tag="ref:XSH6:34792:34794">
-  	If a signal is delivered to a thread waiting for a read-write lock for reading, 
-	upon return from the signal handler the thread resumes waiting for the read-write 
+  	If a signal is delivered to a thread waiting for a read-write lock for reading,
+	upon return from the signal handler the thread resumes waiting for the read-write
 	lock for reading as if it was not interrupted.
   </assertion>
-  
+
 <assertion id="5" tag="ref:XSH6:34781:34783">
 	A thread may hold multiple concurrent read locks on 'rwlock' and the application shall
 	ensure that the thread will perform matching unlocks for each read lock.
 </assertion>
 
   <assertion id="6" tag="ref:XSH6:34796:34797">
-  	If successful, the pthread_rwlock_rdlock( ) function shall return zero; 
+  	If successful, the pthread_rwlock_rdlock( ) function shall return zero;
 	otherwise, an error number shall be returned to indicate the error.
 	These functions shall not return an error code of [EINTR].
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/4-1.sh
index f66d617..2e38617 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/4-1.sh
@@ -2,14 +2,14 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Test pthread_rwlock_timedwrlock()
 
-#	If the Timers option is not supported, the timeout shall be based on the 
-#	system clock as returned by the time( ) function. The resolution of the timeout 
-#	shall be the resolution of the clock on which it is based. The timespec data type 
+#	If the Timers option is not supported, the timeout shall be based on the
+#	system clock as returned by the time( ) function. The resolution of the timeout
+#	shall be the resolution of the clock on which it is based. The timespec data type
 #	is defined in the <time.h> header.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/7-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/7-1.sh
index bfc70e8..39d96b6 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/7-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/7-1.sh
@@ -2,12 +2,12 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Test pthread_rwlock_timedrdlock()
 
-#	Shall return zero if the lock for writing on the read-write lock object 
+#	Shall return zero if the lock for writing on the read-write lock object
 #	referenced by rwlock is acquired. Otherwise, an error number shall be returned
 #	to indicate the error
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/assertions.xml
index 323f205..e541170 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedrdlock/assertions.xml
@@ -4,47 +4,47 @@
    	rwlock as in the pthread_rwlock_rdlock(). However, if the lock cannot be
    	acquired wither out waiting for other threads to unlock the lock, this wait
    	shall be terminated when the specified timeout expires.
-  </assertion> 
+  </assertion>
 
   <assertion id="2" tag="ref:XSH6:34852:34855">
-	The timeout shall expire when the absolute time specified by abs_timeout passes, 
+	The timeout shall expire when the absolute time specified by abs_timeout passes,
 	as measured by the clock on which timeouts are based (that is, when the
-	value of that clock equals or exceeds abs_timeout), or if the absolute time 
+	value of that clock equals or exceeds abs_timeout), or if the absolute time
 	specified by abs_timeout has already been passed at the time of the call.
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:34856:34856">
- 	If the Timers option is supported, the timeout shall be based on the 
+ 	If the Timers option is supported, the timeout shall be based on the
 	CLOCK_REALTIME clock.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="4" tag="ref:XSH6:34856:34859">
-	If the Timers option is not supported, the timeout shall be based on the 
-	system clock as returned by the time( ) function. The resolution of the timeout 
-	shall be the resolution of the clock on which it is based. The timespec data type 
+	If the Timers option is not supported, the timeout shall be based on the
+	system clock as returned by the time( ) function. The resolution of the timeout
+	shall be the resolution of the clock on which it is based. The timespec data type
 	is defined in the 'time.h' header.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="5" tag="ref:XSH6:34859:34861">
-	Under no circumstances shall the function fail with a timeout if the lock can be 
-	acquired immediately. The abs_timeout parameter need not be checked if the lock 
+	Under no circumstances shall the function fail with a timeout if the lock can be
+	acquired immediately. The abs_timeout parameter need not be checked if the lock
 	can be immediately acquired.
   </assertion>
- 
+
   <assertion id="6" tag="ref:XSH6:34862:34864">
-	If a signal that causes a signal handler to be executed is delivered to 
+	If a signal that causes a signal handler to be executed is delivered to
 	a thread blocked on a read-write lock via a call to pthread_rwlock_timedwrlock( ),
-	upon return from the signal handler the thread shall resume waiting for the lock 
+	upon return from the signal handler the thread shall resume waiting for the lock
 	as if it was not interrupted.
-  </assertion> 
+  </assertion>
 
   <assertion id="7" tag="ref:XSH6:34868:34870">
-	Shall return zero if the lock for writing on the read-write lock object 
+	Shall return zero if the lock for writing on the read-write lock object
 	referenced by rwlock is acquired. Otherwise, an error number shall be returned
 	to indicate the error
 	pthread_rwlock_timedwrlock( ) function shall fail if:
 	[ETIMEDOUT] The lock could not be acquired before the specified timeout expired.
 	The function shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/2-1.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/2-1.c
index 45a206b..cd315a4 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/2-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/2-1.c
@@ -58,7 +58,7 @@
 		exit(PTS_UNRESOLVED);
 	}
 
-	/* 
+	/*
 	 * The CLOCK_REALTIME represents time passed since the Epoch
 	 * so we may expect that tv_sec is > TIMEOUT (1 sec)
 	 */
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/4-1.sh
index f66d617..2e38617 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/4-1.sh
@@ -2,14 +2,14 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Test pthread_rwlock_timedwrlock()
 
-#	If the Timers option is not supported, the timeout shall be based on the 
-#	system clock as returned by the time( ) function. The resolution of the timeout 
-#	shall be the resolution of the clock on which it is based. The timespec data type 
+#	If the Timers option is not supported, the timeout shall be based on the
+#	system clock as returned by the time( ) function. The resolution of the timeout
+#	shall be the resolution of the clock on which it is based. The timespec data type
 #	is defined in the <time.h> header.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/7-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/7-1.sh
index 1c1a1dc..5ba39a2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/7-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/7-1.sh
@@ -2,12 +2,12 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 # Test pthread_rwlock_timedwrlock()
 
-#	Shall return zero if the lock for writing on the read-write lock object 
+#	Shall return zero if the lock for writing on the read-write lock object
 #	referenced by rwlock is acquired. Otherwise, an error number shall be returned
 #	to indicate the error
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/assertions.xml
index ba66e77..c78d560 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_timedwrlock/assertions.xml
@@ -1,50 +1,50 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34909:34912">
-	pthread_rwlock_timedwrlock( ) function shall apply a write lock to the 
-	read-write lock referenced by rwlock as in the pthread_rwlock_wrlock( ) function. 
-	However, if the lock cannot be acquired without waiting for other threads to 
-	unlock the lock, this wait shall be terminate when the specified timeout expires. 
-  </assertion> 
+	pthread_rwlock_timedwrlock( ) function shall apply a write lock to the
+	read-write lock referenced by rwlock as in the pthread_rwlock_wrlock( ) function.
+	However, if the lock cannot be acquired without waiting for other threads to
+	unlock the lock, this wait shall be terminate when the specified timeout expires.
+  </assertion>
 
   <assertion id="2" tag="ref:XSH6:34912:34915">
-	The timeout shall expire when the absolute time specified by abs_timeout passes, 
+	The timeout shall expire when the absolute time specified by abs_timeout passes,
 	as measured by the clock on which timeouts are based (that is, when the
-	value of that clock equals or exceeds abs_timeout), or if the absolute time 
+	value of that clock equals or exceeds abs_timeout), or if the absolute time
 	specified by abs_timeout has already been passed at the time of the call.
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:34916:34916">
- 	If the Timers option is supported, the timeout shall be based on the 
+ 	If the Timers option is supported, the timeout shall be based on the
 	CLOCK_REALTIME clock.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="4" tag="ref:XSH6:34917:34920">
-	If the Timers option is not supported, the timeout shall be based on the 
-	system clock as returned by the time( ) function. The resolution of the timeout 
-	shall be the resolution of the clock on which it is based. The timespec data type 
+	If the Timers option is not supported, the timeout shall be based on the
+	system clock as returned by the time( ) function. The resolution of the timeout
+	shall be the resolution of the clock on which it is based. The timespec data type
 	is defined in the time.h header.
-  </assertion> 
-  
+  </assertion>
+
   <assertion id="5" tag="ref:XSH6:34920:34921">
-	Under no circumstances shall the function fail with a timeout if the lock can be 
-	acquired immediately. The abs_timeout parameter need not be checked if the lock 
+	Under no circumstances shall the function fail with a timeout if the lock can be
+	acquired immediately. The abs_timeout parameter need not be checked if the lock
 	can be immediately acquired.
   </assertion>
- 
+
   <assertion id="6" tag="ref:XSH6:34922:34924">
-	If a signal that causes a signal handler to be executed is delivered to 
+	If a signal that causes a signal handler to be executed is delivered to
 	a thread blocked on a read-write lock via a call to pthread_rwlock_timedwrlock( ),
-	upon return from the signal handler the thread shall resume waiting for the lock 
+	upon return from the signal handler the thread shall resume waiting for the lock
 	as if it was not interrupted.
-  </assertion> 
+  </assertion>
 
   <assertion id="7" tag="ref:XSH6:34928:34930">
-	Shall return zero if the lock for writing on the read-write lock object 
+	Shall return zero if the lock for writing on the read-write lock object
 	referenced by rwlock is acquired. Otherwise, an error number shall be returned
 	to indicate the error
 	pthread_rwlock_timedwrlock( ) function shall fail if:
 	[ETIMEDOUT] The lock could not be acquired before the specified timeout expired.
 	The function shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/2-1.sh
index 3011d18..2b1f58d 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/2-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/3-1.sh
index 16aea0d..9748a4d 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/3-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/assertions.xml
index d9a8a9d..6c51136 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_tryrdlock/assertions.xml
@@ -1,23 +1,23 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34787:34790">
-	The pthread_rwlock_tryrdlock( ) function shall apply a read lock as in the 
-	pthread_rwlock_rdlock( ) function, with the exception that the function shall fail 
-	if the equivalent pthread_rwlock_rdlock( ) call would have blocked the calling thread. 
-	In no case shall the pthread_rwlock_tryrdlock( ) function ever block; it always either 
+	The pthread_rwlock_tryrdlock( ) function shall apply a read lock as in the
+	pthread_rwlock_rdlock( ) function, with the exception that the function shall fail
+	if the equivalent pthread_rwlock_rdlock( ) call would have blocked the calling thread.
+	In no case shall the pthread_rwlock_tryrdlock( ) function ever block; it always either
 	acquires the lock or fails and returns immediately.
   </assertion>
-  
+
   <assertion id="2" tag="ref:XSH6:34798:34800">
-	The pthread_rwlock_tryrdlock( ) function shall return zero if the lock for reading on 
-	the read-write lock object referenced by rwlock is acquired. Otherwise, an error number 
-	shall be returned to indicate the error.  
+	The pthread_rwlock_tryrdlock( ) function shall return zero if the lock for reading on
+	the read-write lock object referenced by rwlock is acquired. Otherwise, an error number
+	shall be returned to indicate the error.
   </assertion>
-  
-  <assertion id="3" tag="ref:XSH6:34802:34804">  
+
+  <assertion id="3" tag="ref:XSH6:34802:34804">
 	The pthread_rwlock_tryrdlock( ) function shall fail if:
 	[EBUSY] The read-write lock could not be acquired for reading because a writer holds
 	the lock or a writer with the appropriate priority was blocked on it.
 	The function shall not return an error code of [EINTR].
    </assertion>
-    
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/2-1.sh
index 2097dd7..f56b397 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/2-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/assertions.xml
index 7ce5530..4ab3d57 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_trywrlock/assertions.xml
@@ -1,28 +1,28 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34974:34976">
-	pthread_rwlock_trywrlock( ) function shall apply a write lock like the 
-	pthread_rwlock_wrlock( ) function, with the exception that the function 
+	pthread_rwlock_trywrlock( ) function shall apply a write lock like the
+	pthread_rwlock_wrlock( ) function, with the exception that the function
 	shall fail if any thread currently holds rwlock (for reading or writing)
   </assertion>
-  
+
   <assertion id="2" tag="ref:XSH6:34798:34800">
-	The pthread_rwlock_trywrlock( ) function shall return zero if the lock for writing on 
-	the read-write lock object referenced by rwlock is acquired. Otherwise, an error number 
-	shall be returned to indicate the error.  
+	The pthread_rwlock_trywrlock( ) function shall return zero if the lock for writing on
+	the read-write lock object referenced by rwlock is acquired. Otherwise, an error number
+	shall be returned to indicate the error.
   </assertion>
-  
-  <assertion id="3" tag="ref:XSH6:34802:34804">  
+
+  <assertion id="3" tag="ref:XSH6:34802:34804">
 	The pthread_rwlock_trywrlock( ) function shall fail if:
-	
+
 	[EBUSY] The read-write lock could not be acquired for writing because a writer holds
 	the lock or a writer with the appropriate priority was blocked on it.
-	
+
 	It may fail if:
 	[EINVAL] rwlock does not refer to an intialized read-write lock object
-	
+
 	It shall not return EINTR.
    </assertion>
-    
+
 </assertions>
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_unlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_unlock/assertions.xml
index cf176ce..36f181c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_unlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_unlock/assertions.xml
@@ -1,31 +1,31 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35032:35033">
-  	pthread_rwlock_unlock( ) function shall release a lock held on the 
+  	pthread_rwlock_unlock( ) function shall release a lock held on the
 	read-write lock objectreferenced by rwlock
-	If this function is called to release a read lock from the read-write lock object 
-	and there are other read locks currently held on this read-write lock object, 
-	the read-write lock object remains in the read locked state. 
-	If this function releases the last read lock for this read-write lock object, 
+	If this function is called to release a read lock from the read-write lock object
+	and there are other read locks currently held on this read-write lock object,
+	the read-write lock object remains in the read locked state.
+	If this function releases the last read lock for this read-write lock object,
 	the read-write lock object shall be put in the unlocked state with no owners.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:35039:35040">
-	If this function is called to release a write lock for this read-write 
+	If this function is called to release a write lock for this read-write
 	lock object, the read-write lock object shall be put in the unlocked state.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:35041:35046 pt:TPS">
-  	If there are threads blocked on the lock when it becomes available, 
-	the scheduling policy shall determine which thread(s) shall acquire the lock. 
-	If the Thread Execution Scheduling option is supported, when threads executing 
-	with the scheduling policies SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC are waiting 
-	on the lock, they shall acquire the lock in priority order when the lock 
-	becomes available. For equal priority threads, write locks shall take precedence 
+  	If there are threads blocked on the lock when it becomes available,
+	the scheduling policy shall determine which thread(s) shall acquire the lock.
+	If the Thread Execution Scheduling option is supported, when threads executing
+	with the scheduling policies SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC are waiting
+	on the lock, they shall acquire the lock in priority order when the lock
+	becomes available. For equal priority threads, write locks shall take precedence
 	over read locks.
   </assertion>
 
   <assertion id="4" tag="ref:XSH6:35050:35051">
-	If successful, the pthread_rwlock_unlock( ) function shall return zero; 
+	If successful, the pthread_rwlock_unlock( ) function shall return zero;
 	otherwise, an error number shall be returned to indicate the error.
 
 	[EINVAL]  rwlock doesn't refer to an intialized read-write lock
@@ -33,5 +33,5 @@
 
 	The pthread_rwlock_unlock( ) function shall not return an error code of [EINTR].
   </assertion>
-	
+
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_wrlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_wrlock/assertions.xml
index 018aa7f..c2c45ab 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_wrlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlock_wrlock/assertions.xml
@@ -1,19 +1,19 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:34977:34979">
-	pthread_rwlock_wrlock( ) function shall apply a write lock to the read-write 
-	lock referenced by rwlock. The calling thread acquires the write lock 
-	if no other thread (reader or writer) holds the read-write lock rwlock. 
+	pthread_rwlock_wrlock( ) function shall apply a write lock to the read-write
+	lock referenced by rwlock. The calling thread acquires the write lock
+	if no other thread (reader or writer) holds the read-write lock rwlock.
 	Otherwise, the thread shall block until it can acquire the lock
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:34984:34986">
-	If a signal is delivered to a thread waiting for a read-write lock for writing, 
-	upon return from the signal handler the thread resumes waiting for the 
+	If a signal is delivered to a thread waiting for a read-write lock for writing,
+	upon return from the signal handler the thread resumes waiting for the
 	read-write lock for writing as if it was not interrupted.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:34991:34992">
-	If successful, the pthread_rwlock_wrlock( ) function shall return zero; 
+	If successful, the pthread_rwlock_wrlock( ) function shall return zero;
 	otherwise, an error number shall be returned to indicate the error.
 	It may fail if:
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/3-1.sh
index 0fc7f78..4fc3e83 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/3-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/assertions.xml
index 86d739d..9db0ee5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/assertions.xml
@@ -5,7 +5,7 @@
   destroys a read write attributes objects.
   </assertion>
   <assertion id="2" tag="ref:XSH6:35098:35099">
-  A destroyed 'attr' attributes object can be reinitialized using 
+  A destroyed 'attr' attributes object can be reinitialized using
   pthread_rwlockattr_init();
   </assertion>
   <assertion id="3" tag="ref:XSH6:35110:35111">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/coverage.txt
index 41c3bed..14aca90 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_destroy/coverage.txt
@@ -5,4 +5,4 @@
 2		YES
 3		YES
 4		NO
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/5-1.sh
index bef3abb..7a5649f 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/5-1.sh
@@ -1,7 +1,7 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test pthread_rwlockattr_getpshared() fails and an error number is returned if:
@@ -10,7 +10,7 @@
 #  into 'pshared'.
 #
 
-# This is tested implicitly via assertion 1. 
+# This is tested implicitly via assertion 1.
 
 echo "Tested implicitly via assertion 1.  See output for status"
 exit 0
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/assertions.xml
index ceda552..acfe86d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_getpshared/assertions.xml
@@ -2,33 +2,33 @@
   <assertion id="1" tag="ref:XSH6:35138:35139">
    The function
 
-   int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict attr, 
+   int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict attr,
 	int *restrict pshared);
 
    It shall obtain the value of the process-shared attribute from 'attr'.
-  </assertion>  
+  </assertion>
 
   <assertion id="2" tag="ref:XSH6:35151:35158">
-	The process-shared attribute shall be set to PTHREAD_PROCESS_SHARED 
-	to permit a read-write lock to be operated upon by any thread 
-	that has access to the memory where the read-write lock is allocated, 
+	The process-shared attribute shall be set to PTHREAD_PROCESS_SHARED
+	to permit a read-write lock to be operated upon by any thread
+	that has access to the memory where the read-write lock is allocated,
 	even if the read-write lock is allocated in memory that is shared by
-	multiple processes. 
+	multiple processes.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:35154:35158">
-	If the process-shared attribute is PTHREAD_PROCESS_PRIVATE, 
-	the read-write lock shall only be operated upon by threads created 
-	within the same process as the thread that initialized the read-write lock; 
-	if threads of different processes attempt to operate on such a read-write lock, 
-	the behavior is undefined. 
+	If the process-shared attribute is PTHREAD_PROCESS_PRIVATE,
+	the read-write lock shall only be operated upon by threads created
+	within the same process as the thread that initialized the read-write lock;
+	if threads of different processes attempt to operate on such a read-write lock,
+	the behavior is undefined.
   </assertion>
   <assertion id="4" tag="ref:XSH6:35157:35158">
 	The default value of the process-shared attribute shall be PTHREAD_PROCESS_PRIVATE.
   </assertion>
 
   <assertion id="5" tag="ref:XSH6:35162:35164">
-  	Upon success, it returns 0, and stores the value of the process-shared 
+  	Upon success, it returns 0, and stores the value of the process-shared
 	attribute of 'attr' into 'pshared'.
   </assertion>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/3-1.sh
index 191ee5a..7e2cbc2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/3-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/assertions.xml
index 2b3b637..dbf181c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/assertions.xml
@@ -1,27 +1,27 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35102:35103">
- 	pthread_rwlockattr_init( ) function shall initialize a read-write lock attributes 
-	object attr with the default value for all of the attributes defined by the 
+ 	pthread_rwlockattr_init( ) function shall initialize a read-write lock attributes
+	object attr with the default value for all of the attributes defined by the
 	implementation.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:35106:35108">
-	After a read-write lock attributes object has been used to initialize 
-	one or more read-write locks, any function affecting the attributes object 
-	(including destruction) shall not affect any previously 
+	After a read-write lock attributes object has been used to initialize
+	one or more read-write locks, any function affecting the attributes object
+	(including destruction) shall not affect any previously
 	initialized read-write locks.
-  </assertion> 
+  </assertion>
 
   <assertion id="3" tag="ref:XSH6:35110:35111">
-	If successful, the pthread_rwlockattr_init( ) functions shall return zero; 
+	If successful, the pthread_rwlockattr_init( ) functions shall return zero;
 	otherwise, an error number shall be returned to indicate the error.
-  </assertion> 
+  </assertion>
 
   <assertion id="4" tag="ref:XSH6:35115:35117">
 	pthread_rwlockattr_init( ) function shall fail if:
-		[ENOMEM] Insufficient memory exists to initialize the read-write 
+		[ENOMEM] Insufficient memory exists to initialize the read-write
 		lock attributes object.
 	This function shall not return an error code of [EINTR].
-  </assertion> 
+  </assertion>
 
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/coverage.txt
index ba3f6b8..5d193aa 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_init/coverage.txt
@@ -7,4 +7,4 @@
 4		NO  *Looking for a way to use up the memory without screwing
  		     up the machine.
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/2-1.sh
index 9767ae4..8793c65 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/2-1.sh
@@ -1,15 +1,15 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
-#	If successful, the pthread_rwlockattr_setpshared( ) function shall 
-#	return zero; otherwise, an error number shall be returned to indicate 
+#	If successful, the pthread_rwlockattr_setpshared( ) function shall
+#	return zero; otherwise, an error number shall be returned to indicate
 #	the error.
 #
 
-# This is tested implicitly via assertion 1. 
+# This is tested implicitly via assertion 1.
 
 echo "Tested implicitly via assertion 1.  See output for status"
 exit 0
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/assertions.xml
index 71ab08e..e6dd084 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/assertions.xml
@@ -1,13 +1,13 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35149:35150">
 	pthread_rwlockattr_setpshared( )
-	function shall set the process-shared attribute in an initialized 
+	function shall set the process-shared attribute in an initialized
 	attributes object referenced by attr.
   </assertion>
-	
+
   <assertion id="2" tag="ref:XSH6:35165:35166">
-	If successful, the pthread_rwlockattr_setpshared( ) function shall 
-	return zero; otherwise, an error number shall be returned to indicate 
+	If successful, the pthread_rwlockattr_setpshared( ) function shall
+	return zero; otherwise, an error number shall be returned to indicate
 	the error.
   </assertion>
   <assertion id="3" tag="ref:XSH6:35170:35173">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/coverage.txt
index c41cca8..98207b5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_rwlockattr_setpshared/coverage.txt
@@ -4,4 +4,4 @@
 1		YES
 2		YES
 3		NO
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_self/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_self/assertions.xml
index 32f7594..9c3c08a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_self/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_self/assertions.xml
@@ -3,7 +3,7 @@
    The function
 
    pthread_t pthread_self(void)
- 
+
   returns the thread ID of the calling thread.  No errors are defined.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcancelstate/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcancelstate/assertions.xml
index 007d915..382f1cd 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcancelstate/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcancelstate/assertions.xml
@@ -2,8 +2,8 @@
   <assertion id="1" tag="ref:XSH6:35253:35256">
    The function
 
-   int pthread_setcancelstate(int state, int* oldstate); 
-  
+   int pthread_setcancelstate(int state, int* oldstate);
+
   Atomically sets the cancelability state to 'state' and returns the old
   cancelability state in the location referenced by 'oldstate'.
 
@@ -11,7 +11,7 @@
   </assertion>
   <assertion id="2" tag="ref:XSH6:35261:35263">
   The cancelability state of a newly created thread is PTHREAD_CANCEL_ENABLE.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:35267:35276">
   It returns a 0 on success.  It may return an error code of:
 
@@ -19,5 +19,5 @@
   PTHREAD_CANCEL_DISABLE.
 
   It will not return EINTR.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcanceltype/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcanceltype/assertions.xml
index e4f9307..366ca3e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcanceltype/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setcanceltype/assertions.xml
@@ -2,8 +2,8 @@
   <assertion id="1" tag="ref:XSH6:35257:35259">
    The function
 
-   int pthread_setcanceltype(int type, int* oldtype); 
-  
+   int pthread_setcanceltype(int type, int* oldtype);
+
   Atomically sets the cancelability type to 'type' and returns the old
   cancelability type in the location referenced by 'oldtype'.
 
@@ -11,7 +11,7 @@
   </assertion>
   <assertion id="2" tag="ref:XSH6:35261:35263">
   The cancelability type of a newly created thread is PTHREAD_CANCEL_DEFERRED.
-  </assertion> 
+  </assertion>
   <assertion id="3" tag="ref:XSH6:35267:35276">
   It returns a 0 on success.  It may return an error code of:
 
@@ -19,5 +19,5 @@
   PTHREAD_CANCEL_ASYNCHRONOUS.
 
   It will not return EINTR.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/assertions.xml
index 9dd9e77..82b5621 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/assertions.xml
@@ -2,31 +2,31 @@
 
   <assertion id="1" tag="ref:XSH6:33182:33185">
   The pthread_setschedparam( )
-  function shall set the scheduling policy and associated scheduling parameters 
-  for the thread whose thread ID is given by thread to the policy and 
+  function shall set the scheduling policy and associated scheduling parameters
+  for the thread whose thread ID is given by thread to the policy and
   associated parameters provided in policy
   and param, respectively.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:33189:33199">
   TSP If _POSIX_THREAD_SPORADIC_SERVER is defined, then the policy argument may have the
-  value SCHED_SPORADIC, with the exception for the pthread_setschedparam( ) function 
-  that if the scheduling policy was not SCHED_SPORADIC at the time of the call, 
-  it is implementation-defined whether the function is supported; in other words, 
-  the implementation need not allow the application to dynamically change the 
-  scheduling policy to SCHED_SPORADIC. The sporadic server scheduling policy 
-  has the associated parameters sched_ss_low_priority, sched_ss_repl_period, 
+  value SCHED_SPORADIC, with the exception for the pthread_setschedparam( ) function
+  that if the scheduling policy was not SCHED_SPORADIC at the time of the call,
+  it is implementation-defined whether the function is supported; in other words,
+  the implementation need not allow the application to dynamically change the
+  scheduling policy to SCHED_SPORADIC. The sporadic server scheduling policy
+  has the associated parameters sched_ss_low_priority, sched_ss_repl_period,
   sched_ss_init_budget, sched_priority, and sched_ss_max_repl. The specified
-  sched_ss_repl_period shall be greater than or equal to the specified 
-  sched_ss_init_budget for the function to succeed; if it is not, then the function 
-  shall fail. The value of sched_ss_max_repl shall be within the inclusive 
+  sched_ss_repl_period shall be greater than or equal to the specified
+  sched_ss_init_budget for the function to succeed; if it is not, then the function
+  shall fail. The value of sched_ss_max_repl shall be within the inclusive
   range [1,{SS_REPL_MAX}] for the function to succeed; if not, the function
   shall fail.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:33203:33204">
-  If successful, the pthread_setschedparam( ) 
-  functions shall return zero; otherwise, an error number shall be returned 
+  If successful, the pthread_setschedparam( )
+  functions shall return zero; otherwise, an error number shall be returned
   to indicate the error.
   </assertion>
   <assertion id="4" tag="ref:XSH6TC2:34037:34038">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/coverage.txt
index f858a60..31a3421 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedparam/coverage.txt
@@ -1,8 +1,8 @@
 This document defines the coverage for the pthread_setschedparam() function:
 
 Assertion	Tested?
-1		YES 
+1		YES
 2		NO
-3		YES *Tested implictly by 1-1 
+3		YES *Tested implictly by 1-1
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/assertions.xml
index 70535c3..0286d19 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/assertions.xml
@@ -1,29 +1,29 @@
 <assertions>
 
   <assertion id="1" tag="ref:XSH6:35336:35338">
-  pthread_setschedprio( ) function shall set the scheduling priority 
-  for the thread whose thread ID is given by thread to the value given by prio. 
-  See Scheduling Policies (on page 44) for a description on how this function 
+  pthread_setschedprio( ) function shall set the scheduling priority
+  for the thread whose thread ID is given by thread to the value given by prio.
+  See Scheduling Policies (on page 44) for a description on how this function
   call affects the ordering of the thread in the thread list for its
   new priority.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:35339:34340">
-  If the pthread_setschedprio( ) function fails, the scheduling priority 
-  of the target thread shall not be changed. 
+  If the pthread_setschedprio( ) function fails, the scheduling priority
+  of the target thread shall not be changed.
   </assertion>
-  
+
   <assertion id="3" tag="ref:XSH6:33343:33344">
-  If successful, the pthread_setschedprio( ) function shall return zero; 
+  If successful, the pthread_setschedprio( ) function shall return zero;
   otherwise, an error number shall be returned to indicate the error.
   </assertion>
-  
+
   <assertion id="4" tag="ref:XSH6:1885:1890">
-  If a thread whose policy or priority has been modified by pthread_setschedprio( ) 
-  is a running thread or is runnable, the effect on its position in the thread list 
+  If a thread whose policy or priority has been modified by pthread_setschedprio( )
+  is a running thread or is runnable, the effect on its position in the thread list
   depends on the direction of the modification, as follows:
 	a. If the priority is raised, the thread becomes the tail of the thread list.
-	b. If the priority is unchanged, the thread does not change position in the 
+	b. If the priority is unchanged, the thread does not change position in the
 	thread list.
 	c. If the priority is lowered, the thread becomes the head of the thread list.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/coverage.txt
index 487d505..81fe259 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setschedprio/coverage.txt
@@ -1,9 +1,9 @@
 This document defines the coverage for the pthread_setschedprio() function:
 
 Assertion	Tested?
-1		YES 
+1		YES
 2		NO
-3		YES *Tested implictly by 1-1 
+3		YES *Tested implictly by 1-1
 4		NO
 
-Note: 
+Note:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/3-1.sh
index 95e3ba9..03220fa 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  rolla.n.selbak REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #  Test void *pthread_setspecific(pthread_key_t key)
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/assertions.xml
index 47201af..c47afe3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_setspecific/assertions.xml
@@ -2,8 +2,8 @@
   <assertion id="1" tag="ref:XSH6:33250:33262">
    The function
     void *pthread_setspecific(pthread_key_t key)
-  shall acssociate a thread-specific value with a key obtained via a previouse call to 
-  pthread_key_create.  Different threads may bind different values to the same key.  
+  shall acssociate a thread-specific value with a key obtained via a previouse call to
+  pthread_key_create.  Different threads may bind different values to the same key.
   Calling pthread_setspecific with a key value not obtiained from pthread_key_create of after
   the key has been deleted with pthread_key_delete is undefined.
   </assertion>
@@ -20,6 +20,6 @@
   Shall fail if:
   [ENOMEM] - Insufficient memory exists to associate the value with the key
   May fail if:
-  [EINVAL] - The key value is invalid 
+  [EINVAL] - The key value is invalid
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/8-3.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/8-3.c
index cf2e9dd..5c6f64d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/8-3.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/8-3.c
@@ -29,7 +29,7 @@
 		SIGPIPE, SIGQUIT, SIGSEGV,
 		SIGTERM, SIGTSTP, SIGTTIN, SIGTTOU,
 		SIGUSR1, SIGUSR2,
-#ifdef SIGPOLL 
+#ifdef SIGPOLL
 		SIGPOLL,
 #endif
 #ifdef SIGPROF
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/assertions.xml
index 5f34cd8..a140ea3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/assertions.xml
@@ -1,36 +1,36 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35397:35399 pt:CX pt:THR">
      pthread_sigmask( ) function is used to examine or change (or both) the calling thread's signal
-     mask, independent of the number of threads the process contains. The function shall be 
-equivalent to sigprocmask( ), but with the ability to be used in a thread of a multi-threaded 
+     mask, independent of the number of threads the process contains. The function shall be
+equivalent to sigprocmask( ), but with the ability to be used in a thread of a multi-threaded
 process.
   </assertion>
   <assertion id="2" tag="ref:XSH6:35400:35401 pt:CX">
-	The sigprocmask( ) function is used to examine or change (or both) the signal mask of the calling 
+	The sigprocmask( ) function is used to examine or change (or both) the signal mask of the calling
 thread of a single-threaded process.
   </assertion>
   <assertion id="3" tag="ref:XSH6:35402:35403 pt:CX pt:THR">
-The argument set points to a set of signals to be used to change the currently blocked set, unless the  
+The argument set points to a set of signals to be used to change the currently blocked set, unless the
 argument is a null pointer.
   </assertion>
   <assertion id="4" tag="ref:XSH6:35406:35407 pt:CX pt:THR">
- The resulting set shall be the union of the current set and the signal set pointed to by set, if the value 
+ The resulting set shall be the union of the current set and the signal set pointed to by set, if the value
 of the argument how is SIG_BLOCK.
   </assertion>
   <assertion id="5" tag="ref:XSH6:35408:35408 pt:CX pt:THR">
- The resulting set shall be the signal set pointed to by set, if the value of the argument how is SIG_SETMASK 
+ The resulting set shall be the signal set pointed to by set, if the value of the argument how is SIG_SETMASK
   </assertion>
   <assertion id="6" tag="ref:XSH6:35409:35410 pt:CX pt:THR">
- The resulting set shall be the intersection of the current set and the complement of the signal set 
-pointed to by set, if the value of the argument how is SIG_UNBLOCK 
+ The resulting set shall be the intersection of the current set and the complement of the signal set
+pointed to by set, if the value of the argument how is SIG_UNBLOCK
   </assertion>
   <assertion id="7" tag="ref:XSH6:35411:35412 pt:CX pt:THR">
-  The previous mask shall be stored in the location pointed to by oset, if the argument oset is not a null 
+  The previous mask shall be stored in the location pointed to by oset, if the argument oset is not a null
 pointer.
   </assertion>
   <assertion id="8" tag="ref:XSH6:35412:35414 pt:CX pt:THR">
-  The value of the argument how is not significant and the process's signal mask shall be unchanged, and 
-thus the call can be used to enquire about currently blocked signals, if the argument set is a null 
+  The value of the argument how is not significant and the process's signal mask shall be unchanged, and
+thus the call can be used to enquire about currently blocked signals, if the argument set is a null
 pointer.
   </assertion>
   <assertion id="9" tag="ref:XSH6:35415:35416 pt:CX pt:THR">
@@ -38,11 +38,11 @@
 signals shall be delivered before the call to sigprocmask() returns.
   </assertion>
   <assertion id="10" tag="ref:XSH6:35417:35418 pt:CX pt:THR">
-The system shall not allow the blocking of signals which cannot be ignored, and shall not cause an error 
+The system shall not allow the blocking of signals which cannot be ignored, and shall not cause an error
 to be indicated.
   </assertion>
   <assertion id="11" tag="ref:XSH6:35419:35421 pt:CX pt:THR">
-If any of the SIGFPE, SIGILL, SIGSEGV, or SIGBUS signals are generated while they are blocked, and the 
+If any of the SIGFPE, SIGILL, SIGSEGV, or SIGBUS signals are generated while they are blocked, and the
 signal was not generated by the kill(), sigqueue() or raise()functions, the result is undefined.
   </assertion>
   <assertion id="12" tag="ref:XSH6:35422:35422 pt:CX pt:THR">
@@ -52,7 +52,7 @@
 In a multi-threaded process, the use of the sigprocmask( ) function is unspecified.
   </assertion>
   <assertion id="14" tag="ref:XSH6:35425:35426 pt:THR">
-pthread_sigmask( ) shall return 0, Upon successful completion; otherwise, it shall return the corresponding 
+pthread_sigmask( ) shall return 0, Upon successful completion; otherwise, it shall return the corresponding
 error number.
   </assertion>
   <assertion id="15" tag="ref:XSH6:35427:35428 pt:CX pt:THR">
@@ -60,12 +60,12 @@
 and errno shall be set to indicate the error, and the process' signal mask shall be unchanged.
   </assertion>
   <assertion id="16" tag="ref:XSH6:35430:35431 pt:THR">
-   An errno value of [EINVAL] shall be returned and the pthreadsigmask() function shall fail, if the 
-value of 
+   An errno value of [EINVAL] shall be returned and the pthreadsigmask() function shall fail, if the
+value of
 the how argument is not equal to one of the defined values.
   </assertion>
   <assertion id="17" tag="ref:XSH6:35430:35431 pt:CX pt:THR">
-   An errno value of [EINVAL] shall be returned and the sigprocmask() function shall fail, if the value of 
+   An errno value of [EINVAL] shall be returned and the sigprocmask() function shall fail, if the value of
 the how argument is not equal to one of the defined values.
   </assertion>
   <assertion id="18" tag="ref:XSH6:35432:35432 pt:THR">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/coverage.txt
index 3c4ff77..a9b4058 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_sigmask/coverage.txt
@@ -1,7 +1,7 @@
-This document defines the coverage for function pthread_sigmask(). The functions pthread_sigmask() 
+This document defines the coverage for function pthread_sigmask(). The functions pthread_sigmask()
 and sigprocmask() are equivalent functions, but pthread_sigmask() should also work in a
 multi-threaded process. The tests in this section are similar in n nature to the tests for the
-sigprocmask() function, but calls will be made from threads that belong to multi-threaded processes 
+sigprocmask() function, but calls will be made from threads that belong to multi-threaded processes
 instead of single-threaded processes.
 
 Assertion	Covered?
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/2-1.sh
index 059da4c..a2c7d97 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/2-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, these functions shall return zero; 
+# Upon successful completion, these functions shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/assertions.xml
index 8d9b97b..d78bef8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_destroy/assertions.xml
@@ -1,22 +1,22 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35472:35473">
-	pthread_spin_destroy( ) function shall destroy the spin lock 
+	pthread_spin_destroy( ) function shall destroy the spin lock
 	referenced by lock and release any resources used by the lock.
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:35496:35507">
-	Upon successful completion, these functions shall return zero; 
+	Upon successful completion, these functions shall return zero;
 	otherwise, an error number shall be returned to indicate the error.
   </assertion>
 
   <assertion id="3" tag="ref:XSH6:35496:35507">
 
 	The functions may fail if:
-	[EBUSY] The implementation has detected an attempt to 
-	initialize or destroy a spin lock while it is in use 
+	[EBUSY] The implementation has detected an attempt to
+	initialize or destroy a spin lock while it is in use
 	(for example, while being used in a pthread_spin_lock( )
 	call) by another thread.
-	
+
 	[EINVAL] The value specified by lock is invalid.
 
   	These functions shall not return an error code of EINTR.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/3-1.sh
index c2af6be..a6797a5 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/3-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, pthread_spin_init() shall return zero; 
+# Upon successful completion, pthread_spin_init() shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/assertions.xml
index 0f82273..3ed9ade 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/assertions.xml
@@ -1,9 +1,9 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35477:35478">
-  The function  
+  The function
 
   int pthread_spin_init(pthread_spinlock_t *lock, int pshared);
- 
+
   shall allocate any resources required to use the spin lock
   referenced by lock and initialize the lock to an unlocked state.
   </assertion>
@@ -11,12 +11,12 @@
   <assertion id="2" tag="ref:XSH6:35479:35487 pt:TSH">
   If the Thread Process-Shared Synchronization option is supported and the value of pshared is
   PTHREAD_PROCESS_SHARED, the implementation shall permit the spin lock to be operated
-  upon by any thread that has access to the memory where the spin lock is allocated, even if it 
+  upon by any thread that has access to the memory where the spin lock is allocated, even if it
   is allocated in memory that is shared by multiple processes.
   If the Thread Process-Shared Synchronization option is supported and the value of pshared is
   PTHREAD_PROCESS_PRIVATE, or if the option is not supported, the spin lock shall only be
-  operated upon by threads created within the same process as the thread that initialized the 
-  spinlock. If threads of differing processes attempt to operate on such a spin lock, the 
+  operated upon by threads created within the same process as the thread that initialized the
+  spinlock. If threads of differing processes attempt to operate on such a spin lock, the
   behavior is undefined.
   </assertion>
 
@@ -24,8 +24,8 @@
   Upon successful completion, these functions shall return zero; otherwise, an error number shall
   be returned to indicate the error.
   </assertion>
-  
-  <assertion id="4" tag="ref:XSH6:35499:35502">  
+
+  <assertion id="4" tag="ref:XSH6:35499:35502">
   This function may fail if:
   -[EBUSY] The implementation has detected an attempt to initialize or destroy a spin
   lock while it is in use (for example, while being used in a pthread_spin_lock( )
@@ -38,6 +38,6 @@
 
   These functions shall not return an error code of EINTR.
  </assertion>
- 
+
 </assertions>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/coverage.txt
index 1576966..feab536 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_init/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES
 4		YES
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/2-1.sh
index 059da4c..a2c7d97 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/2-1.sh
@@ -2,11 +2,11 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
-# Upon successful completion, these functions shall return zero; 
+# Upon successful completion, these functions shall return zero;
 # otherwise, an error number shall  be returned to indicate the error.
 
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/assertions.xml
index 4c829bc..7ad328d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/assertions.xml
@@ -7,7 +7,7 @@
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:35540:35541">
-   Upon successful completion, these functions shall return zero; otherwise, an error number 
+   Upon successful completion, these functions shall return zero; otherwise, an error number
    shall be returned to indicate the error.
   </assertion>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/coverage.txt
index 7aeb561..c6c8337 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/2-1.sh
index efa9be1..80b46b8 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/2-1.sh
@@ -2,10 +2,10 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
-#If successful, the pthread_spin_trylock( ) function shall return zero; otherwise, an error 
+#If successful, the pthread_spin_trylock( ) function shall return zero; otherwise, an error
 #number shall be returned to indicate the error.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/3-1.sh
index 8b4989d..21b46f2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/3-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #The pthread_spin_trylock( ) function shall fail if:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/assertions.xml
index 56e2d49..017bb53 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35536:355575">
-  pthread_spin_trylock( ) function shall lock the spin lock referenced by lock if it is not 
+  pthread_spin_trylock( ) function shall lock the spin lock referenced by lock if it is not
   held by any thread. Otherwise, the function shall fail.
   </assertion>
 
@@ -13,11 +13,11 @@
   The pthread_spin_trylock( ) function shall fail if:
   [EBUSY] A thread currently holds the lock.
   </assertion>
-  
-  <assertion id="4" tag="ref:XSH6:35543:35544">  
+
+  <assertion id="4" tag="ref:XSH6:35543:35544">
   These functions may fail if:
   [EINVAL] The value specified by lock does not refer to an initialized spin lock object.
-  
+
   These functions shall not return an error code of EINTR.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/coverage.txt
index b6c8ef4..c50ea90 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_trylock/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES
 4		YES
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/2-1.sh
index cc03fff..76cbf54 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/2-1.sh
@@ -2,7 +2,7 @@
 
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 #If successful, the pthread_spin_unlock( ) function shall return zero; otherwise, an error number
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/assertions.xml
index e965b01..1eb2511 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/assertions.xml
@@ -5,7 +5,7 @@
   </assertion>
 
   <assertion id="2" tag="ref:XSH6:35581:35582">
-  Upon successful completion, the pthread_spin_unlock( ) function shall return zero; otherwise, 
+  Upon successful completion, the pthread_spin_unlock( ) function shall return zero; otherwise,
   an error number shall be returned to indicate the error.
   </assertion>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/coverage.txt
index 1d2df59..db7731a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_unlock/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Tested?
 1		YES
-2		YES 
+2		YES
 3		YES "May" assertion, always pass
 
 NOTE:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_testcancel/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/pthread_testcancel/assertions.xml
index 51ef3ea..38dbb61 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_testcancel/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_testcancel/assertions.xml
@@ -2,11 +2,11 @@
   <assertion id="1" tag="ref:XSH6:35264:35265">
    The function
 
-   void pthread_testcancel(void); 
-  
+   void pthread_testcancel(void);
+
   It will create a cancelation point in the calling thread.
   </assertion>
   <assertion id="2" tag="ref:XSH6:35264:35265">
   It will have no affect on the calling thread if cancelability is disabled.
-  </assertion> 
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/raise/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/raise/assertions.xml
index aa47b7c..03de578 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/raise/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/raise/assertions.xml
@@ -24,7 +24,7 @@
   </assertion>
   <assertion id="7" tag="ref:XSH6:36093:36096">
    Upon unsuccessful completion, raise() sets errno to indicate the
-   error.  The only defined value of errno for raise() is EINVAL if the 
+   error.  The only defined value of errno for raise() is EINVAL if the
    value of the sig argument is an invalid signal number.
   </assertion>
   <assertion id="10000" tag="ref:XSH6:36082:36096">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/3-1.sh
index b312f4e..7df5f01 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/3-1.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Test that sched_get_priority_max() sets errno == EINVAL if policy is not a 
+# Test that sched_get_priority_max() sets errno == EINVAL if policy is not a
 # valid policy.
 # This is tested implicitly via assertion 2.
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/assertions.xml
index e73f1af..8553fcf 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_max/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:sched_get_priority_max:DESCRIPTION}">
    sched_get_priority_max() returns the maximum priority value on success
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/3-1.sh
index 16a31ee..999445b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/3-1.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Test that sched_get_priority_min() sets errno == EINVAL if policy is not a 
+# Test that sched_get_priority_min() sets errno == EINVAL if policy is not a
 # valid policy
 # This is tested implicitly via assertion 2.
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/assertions.xml
index f141652..95b3c7c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_get_priority_min/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:sched_get_priority_min:DESCRIPTION}">
    sched_get_priority_min() returns the minimum priority value on success
   </assertion>
@@ -6,7 +6,7 @@
    sched_get_priority_min() returns -1 on failure
   </assertion>
   <assertion id="3" tag="ref:XSH6:{System Interfaces:sched_get_priority_min:ERRORS}">
-   sched_get_priority_min() sets errno == EINVAL if policy is not a valid 
+   sched_get_priority_min() sets errno == EINVAL if policy is not a valid
    policy
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/assertions.xml
index aca1085..6d137d0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/assertions.xml
@@ -1,6 +1,6 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:sched_getparam:DESCRIPTION}">
-   The sched_getparam() function shall return the scheduling parameters of a 
+   The sched_getparam() function shall return the scheduling parameters of a
    process specified by pid in the sched_param structure pointed to by param.
   </assertion>
   <assertion id="2" tag="ref:XSH6:{System Interfaces:sched_getparam:DESCRIPTION}">
@@ -14,12 +14,12 @@
   </assertion>
   <assertion id="5" tag="ref:XSH6:{System Interfaces:sched_getparam:ERRORS}">
    sched_getparam() sets errno == ESRCH if the pid cannot be found
-  </assertion>		
+  </assertion>
   <assertion id="6" tag="ref:XSH6:{System Interfaces:sched_getparam:ERRORS}">
-   sched_getparam() sets errno == EPERM if the requesting process does not 
+   sched_getparam() sets errno == EPERM if the requesting process does not
    have permission
-  </assertion>	
+  </assertion>
   <assertion id="7" tag="oth:">
    sched_getparam() sets errno == EFAULT or EINVAL if param points to NULL
-  </assertion>	
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/coverage.txt
index 85c3720..b3de39e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_getparam/coverage.txt
@@ -5,10 +5,10 @@
 
 Assertions     Tested ?	   Remarks
 1	       YES	   Can priority be negative ?
-2	       YES	   
-3	       YES	   
+2	       YES
+3	       YES
 4	       YES	   Assume that a pid is not reatributed immediately
-5	       YES	   
-6	       YES	   (Has root always uid 0 ? Process pid 1 always 
+5	       YES
+6	       YES	   (Has root always uid 0 ? Process pid 1 always
 			   belongs to root ?)
 7	       YES	   speculative test, not in the spec !
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/6-1.sh
index 5d13949..6be3589 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/6-1.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Test that sched_getscheduler() sets errno == ESRCH if the pid cannot be 
+# Test that sched_getscheduler() sets errno == ESRCH if the pid cannot be
 # found.
 # This is tested implicitly via assertion 5.
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/assertions.xml
index 6071c07..99c7dce 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/assertions.xml
@@ -1,12 +1,12 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:sched_getscheduler:DESCRIPTION}">
    When pid = 0, the scheduling policy is returned for the calling process
-  </assertion>	
+  </assertion>
   <assertion id="2" tag="ref:XSH6:{System Interfaces:sched_getscheduler:DESCRIPTION}">
    If pid is negative, the behavior is unspecified
   </assertion>
   <assertion id="3" tag="ref:XSH6:{System Interfaces:sched_getscheduler:DESCRIPTION}">
-   The values that can be returned by sched_getscheduler() are defined in the 
+   The values that can be returned by sched_getscheduler() are defined in the
    sched.h header
   </assertion>
   <assertion id="4" tag="ref:XSH6:{System Interfaces:sched_getscheduler:RETURN VALUE}">
@@ -18,9 +18,9 @@
   </assertion>
   <assertion id="6" tag="ref:XSH6:{System Interfaces:sched_getscheduler:ERRORS}">
    sched_getscheduler() sets errno == ESRCH if the pid cannot be found
-  </assertion>		
+  </assertion>
   <assertion id="7" tag="ref:XSH6:{System Interfaces:sched_getscheduler:ERRORS}">
    sched_getscheduler() sets errno == EPERM if the requesting process does not
    have permission
-  </assertion>			
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/coverage.txt
index 6669dfc..97266d5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_getscheduler/coverage.txt
@@ -4,10 +4,10 @@
 
 
 Assertions     Tested ?	   Remarks
-1	       YES	   
+1	       YES
 2	       YES	   Behavior is unspecified
 3	       YES	   Can not test the implementation defined policies
-4	       YES	   Don't test that the result is right.	   
+4	       YES	   Don't test that the result is right.
 5	       YES	   Assume that a pid is not reatributed immediately
 6	       YES
 7	       YES
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/assertions.xml
index 193b2e5..f138e59 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/assertions.xml
@@ -1,7 +1,7 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:sched_rr_get_interval:DESCRIPTION}">
    When pid = 0, the current execution time limit is returned for the calling process
-  </assertion>	
+  </assertion>
   <assertion id="2" tag="ref:XSH6:{System Interfaces:sched_rr_get_interval:RETURN VALUE}">
    sched_rr_get_interval() returns 0 on success
   </assertion>
@@ -13,5 +13,5 @@
   </assertion>
   <assertion id="5" tag="oth:">
    sched_rr_get_interval() returns an error if *interval argument points to NULL
-  </assertion>		
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/coverage.txt
index 3f1cc8d..eff96e7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_rr_get_interval/coverage.txt
@@ -4,8 +4,8 @@
 
 
 Assertions     Tested ?	   Remarks
-1	       YES	   
-2	       YES	   
+1	       YES
+2	       YES
 3	       YES	   Assume that a pid is not reatributed immediately
 4	       YES
 5	       YES	   speculative test
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/10-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/10-1.c
index 245d1e0..fc4332a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/10-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/10-1.c
@@ -102,7 +102,7 @@
 	key_t key;
 
 	nb_cpu = get_ncpu();
-	
+
 	if (nb_cpu == -1) {
 		printf("Can not get the number of CPUs of your machines.\n");
 		return PTS_UNRESOLVED;
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/assertions.xml
index 27e80df..333f276 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/assertions.xml
@@ -4,7 +4,7 @@
    in the sched_param structure pointed to by param
   </assertion>
   <assertion id="2" tag="ref:XSH6:{System Interfaces:sched_setparam:DESCRIPTION}">
-   Higher numerical values for the priority represent higher priorities  
+   Higher numerical values for the priority represent higher priorities
   </assertion>
   <assertion id="3" tag="ref:XSH6:{System Interfaces:sched_setparam:DESCRIPTION}">
    If pid is negative, the behavior of sched_setparam() is unspecified
@@ -49,7 +49,7 @@
   <assertion id="12" tag="ref:XSH6:{System Interfaces:sched_setparam:DESCRIPTION} pt:SS">
    The sched_ss_repl_period and sched_ss_init_budget members of the param
    argument shall represent the time parameters to be used by the sporadic
-   server scheduling policy for the target process 
+   server scheduling policy for the target process
   </assertion>
   <assertion id="13" tag="ref:XSH6:{System Interfaces:sched_setparam:DESCRIPTION} pt:SS">
    The sched_ss_max_repl member of the param argument shall represent the
@@ -95,7 +95,7 @@
   <assertion id="22" tag="ref:XSH6:{System Interfaces:sched_setparam:RETURN VALUE}">
    If successful, the sched_setparam() function shall return zero
   </assertion>
-  <assertion id="23" tag="ref:XSH6:{System Interfaces:sched_setparam:RETURN VALUE}">   
+  <assertion id="23" tag="ref:XSH6:{System Interfaces:sched_setparam:RETURN VALUE}">
    If the call to sched_setparam() is unsuccessful, the priority shall remain
    unchanged
   </assertion>
@@ -106,7 +106,7 @@
   <assertion id="25" tag="ref:XSH6:{System Interfaces:sched_setparam:ERRORS}">
    sched_setparam() sets errno == EINVAL when one or more of the requested
    scheduling parameters is outside the range defined for the scheduling policy
-   of the specified pid 
+   of the specified pid
   </assertion>
   <assertion id="26" tag="ref:XSH6:{System Interfaces:sched_setparam:ERRORS}">
    sched_setparam() sets errno == EPERM when the requesting process does not
@@ -115,6 +115,6 @@
   </assertion>
   <assertion id="27" tag="ref:XSH6:{System Interfaces:sched_setparam:ERRORS}">
    sched_setparam() sets errno == ESRCH when no process can be found
-   corresponding to that specified by pid 
+   corresponding to that specified by pid
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/coverage.txt
index a52f24b..fd9ea71 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_setparam/coverage.txt
@@ -9,13 +9,13 @@
 3	       YES	   Behavior unspecified
 4	       YES
 5	       YES
-6	       YES	   Implementation-defined	   
+6	       YES	   Implementation-defined
 7	       YES	   may assertion
 8	       YES	   Only a stub.
 9	       YES
 10	       YES
 11	       YES
-12	       YES	
+12	       YES
 13	       YES
 14	       YES
 15	       YES	   Implementation-defined
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/3-1.sh
index f7fbadc..227a1d9 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/3-1.sh
@@ -1,7 +1,7 @@
 #! /bin/sh
 #
 # Test that the scheduling policy and scheduling parameters are set for the
-# process whose process ID is equal to pid when such a process exists and the 
+# process whose process ID is equal to pid when such a process exists and the
 # the calling process has permission.
 #
 # This is tested implicitly via assertion 1.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/assertions.xml
index 6434130..00fb779 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_setscheduler/assertions.xml
@@ -10,7 +10,7 @@
   <assertion id="3" tag="ref:XSH6:{System Interfaces:sched_setscheduler:DESCRIPTION}">
    If a process specified by pid exists, and if the calling process has
    permission, the scheduling policy and scheduling parameters shall be set for
-   the process whose process ID is equal to pid  
+   the process whose process ID is equal to pid
   </assertion>
   <assertion id="4" tag="ref:XSH6:{System Interfaces:sched_setscheduler:DESCRIPTION}">
    If pid is zero, the scheduling policy and scheduling parameters shall be set
@@ -39,7 +39,7 @@
   <assertion id="9" tag="ref:XSH6:{System Interfaces:sched_setscheduler:DESCRIPTION} pt:SS">
    The sched_ss_repl_period and sched_ss_init_budget members of the param
    argument shall represent the time parameters used by the sporadic server
-   scheduling policy for the target process 
+   scheduling policy for the target process
   </assertion>
   <assertion id="10" tag="ref:XSH6:{System Interfaces:sched_setscheduler:DESCRIPTION} pt:SS">
    The sched_ss_max_repl member of the param argument shall represent the
@@ -50,7 +50,7 @@
    If the scheduling policy specified by policy is either SCHED_FIFO or
    SCHED_RR, the sched_ss_low_priority, sched_ss_repl_period, and
    sched_ss_init_budget members of the param argument shall have no effect on
-   the scheduling behavior 
+   the scheduling behavior
   </assertion>
   <assertion id="12" tag="ref:XSH6:{System Interfaces:sched_setscheduler:DESCRIPTION}">
    For threads with system scheduling contention scope, this function shall
@@ -73,18 +73,18 @@
   <assertion id="16" tag="ref:XSH6:{System Interfaces:sched_setscheduler:RETURN VALUE}">
    Upon successful completion, the function shall return the former scheduling policy of the specified process
   </assertion>
-  <assertion id="17" tag="ref:XSH6:{System Interfaces:sched_setscheduler:RETURN VALUE}">   
+  <assertion id="17" tag="ref:XSH6:{System Interfaces:sched_setscheduler:RETURN VALUE}">
    If the sched_setscheduler() function fails to complete successfully, the
    policy and scheduling parameters shall remain unchanged
   </assertion>
-  <assertion id="18" tag="ref:XSH6:{System Interfaces:sched_setscheduler:RETURN VALUE}"> 
+  <assertion id="18" tag="ref:XSH6:{System Interfaces:sched_setscheduler:RETURN VALUE}">
    If the sched_setscheduler() function fails to complete successfully, the
    function shall return a value of -1
   </assertion>
   <assertion id="19" tag="ref:XSH6:{System Interfaces:sched_setscheduler:ERRORS}">
    The sched_setscheduler() function shall return EINVAL if the value of the
    policy parameter is invalid, or one or more of the parameters contained in
-   param is outside the valid range for the specified scheduling policy  
+   param is outside the valid range for the specified scheduling policy
   </assertion>
   <assertion id="20" tag="ref:XSH6:{System Interfaces:sched_setscheduler:ERRORS}">
    The sched_setscheduler() function shall return EPERM if the requesting
@@ -93,12 +93,12 @@
   </assertion>
   <assertion id="21" tag="ref:XSH6:{System Interfaces:sched_setscheduler:ERRORS}">
    The sched_setscheduler() function shall return ESRCH if no process can be
-   found corresponding to that specified by pid 
+   found corresponding to that specified by pid
   </assertion>
 
   <assertion id="22" tag="ref:XSH6:{System Interfaces:sched_setscheduler:DESCRIPTION}">
    Kernel-scheduled entities for use by process contention scope threads that
    are created after this call completes shall inherit their scheduling policy
    and associated scheduling parameters from the process
-  </assertion>  
+  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/1-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/1-1.c
index fc0fe43..6e03972 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/1-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/1-1.c
@@ -47,7 +47,7 @@
 
 	/* Tell the parent we're ready */
 	write(fd, "go", 2);
-	
+
 	for (;;) {
 		rc = sched_yield();
 		if (rc) {
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/assertions.xml
index b773cce..59fdcbd 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sched_yield/assertions.xml
@@ -1,7 +1,7 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:sched_yield:DESCRIPTION}">
    The sched_yield() function shall force the running thread to relinquish the
-   processor until it again becomes the head of its thread list. 
+   processor until it again becomes the head of its thread list.
   </assertion>
   <assertion id="2" tag="ref:XSH6:{System Interfaces:sched_yield:RETURN VALUE}">
    sched_yield() returns 0 on success
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_close/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_close/cln.sh
index 7d9df9e..5a22cf4 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_close/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_close/cln.sh
@@ -4,5 +4,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/assertions.xml
index 77acfef..cda6189 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/assertions.xml
@@ -7,7 +7,7 @@
 are currently blocked.
   </assertion>
   <assertion id="4" tag="ref:XSH6:38720:38721">
-sem_destroy return 0 on successful completion, otherwise, -1 returned 
+sem_destroy return 0 on successful completion, otherwise, -1 returned
 with errno set.
   </assertion>
   <assertion id="5" tag="ref:XSH6:38723:38724">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/cln.sh
index 8808385..0e1691c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/cln.sh
@@ -5,5 +5,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/coverage.txt
index 87c6a48..3132d7d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_destroy/coverage.txt
@@ -1,6 +1,6 @@
 -- assertion 5: not tested.
 
--- assertion 6: ERROR EBUSY: is not tested.  Please contribute 
+-- assertion 6: ERROR EBUSY: is not tested.  Please contribute
 your help for this test case.
 
 -- assertion 7: Won't be tested. (Undefined).
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/assertions.xml
index af34745..69565aa 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/assertions.xml
@@ -1,7 +1,7 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:38752:38756">
 sem_getvalue will update the location referenced by sval to have the value
-of the semaphore referenced by sem without effecting the state of the 
+of the semaphore referenced by sem without effecting the state of the
 semaphore.  The updated value represents an actual semaphore value that
 occured at some unspecifed time during the call.
   </assertion>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/cln.sh
index 8808385..0e1691c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_getvalue/cln.sh
@@ -5,5 +5,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_init/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_init/assertions.xml
index 04f457b..0fc3a88 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_init/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_init/assertions.xml
@@ -1,18 +1,18 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:38795:38796">
-sem_init test case make sure that it establish initialize the unnamed 
-semaphore referred by sem.  
+sem_init test case make sure that it establish initialize the unnamed
+semaphore referred by sem.
   </assertion>
   <assertion id="2" tag="ref:XSH6:38797:38798">
-sem_init is used in subsequence of sem_wait, sem_trywait, sem_post, 
+sem_init is used in subsequence of sem_wait, sem_trywait, sem_post,
 sem_destroy, and the semaphore should be usable until the its destroyed.
   </assertion>
   <assertion id="3" tag="ref:XSH6:38799:38801">
 The semaphore is shared between processes when the pshared value is non-zero.
   </assertion>
   <assertion id="4" tag="ref:XSH6:38795:38798">
-The semaphore is shared between threads of process when the pshared value 
-is zero. any thread in this process can us sem for performing sem_wait, 
+The semaphore is shared between threads of process when the pshared value
+is zero. any thread in this process can us sem for performing sem_wait,
 sem_trywait, ...
   </assertion>
   <assertion id="5" tag="ref:XSH6:38810:38811">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_init/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sem_init/coverage.txt
index 51e1e6b..4c066e1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_init/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_init/coverage.txt
@@ -2,12 +2,12 @@
 
 -- assertion 4: Not tested.  Help needed!
 
--- assertion 7: Not tested.  I couldn't find a way to exhaust 
+-- assertion 7: Not tested.  I couldn't find a way to exhaust
 the system in order to satisfy this test case.
 
--- assertion 8: Not tested.  I couldn't figure out how to make 
-this test case to happen.  In NPTL, the semaphore creator has to 
-be root, and the semaphore is  created in /dev/shm file system.  
+-- assertion 8: Not tested.  I couldn't figure out how to make
+this test case to happen.  In NPTL, the semaphore creator has to
+be root, and the semaphore is  created in /dev/shm file system.
 Any other user can't create under that file system.
 
 -- assertion 9: Won't test.  Undefined.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_open/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_open/assertions.xml
index a631385..6cbb2c9 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_open/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_open/assertions.xml
@@ -1,12 +1,12 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:38847:38852">
-   sem_open test cases make sure that it establish connection between the 
-   Semaphore and the process.  There are checks for return values of the 
+   sem_open test cases make sure that it establish connection between the
+   Semaphore and the process.  There are checks for return values of the
    address, increament, decrement, and close.
   </assertion>
   <assertion id="2" tag="ref:XSH6:38855:38874">
    sem_open attempts to open an existing semaphore,
-   which it should fail when both O_CREAT and O_EXCL name exist during the 
+   which it should fail when both O_CREAT and O_EXCL name exist during the
    opening of a Semaphore.
   </assertion>
   <assertion id="3" tag="ref:XSH6:38897:38899">
@@ -43,7 +43,7 @@
   of the semaphore.
   </assertion>
   <assertion id="12" tag="ref:XSH6:38860:38861">
-  The initial value for the semaphore should be less than or equal to 
+  The initial value for the semaphore should be less than or equal to
   SEM_VALUE_MAX.  Any other initial value is invalid.
   </assertion>
   <assertion id="13" tag="ref:XSH6:38862:38864">
@@ -57,7 +57,7 @@
   </assertion>
   <assertion id="15" tag="ref:XSH6TC2:39883:39886">
 If a process calls sem_open several times with the same name, the same adress
-must be returned as long as the semaphore has not been unlinked or closed as 
+must be returned as long as the semaphore has not been unlinked or closed as
 many times as opened.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_open/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_open/cln.sh
index d49d89a..93b4cc0 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_open/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_open/cln.sh
@@ -5,5 +5,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_open/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sem_open/coverage.txt
index 29b6163..3511a17 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_open/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_open/coverage.txt
@@ -1,12 +1,12 @@
 
 
-Will not test the following error values of the semaphores because it is 
+Will not test the following error values of the semaphores because it is
 unknown to me of how to return these values.
 
--- EMFILE: Too many semaphore descriptors or file descriptors are 
+-- EMFILE: Too many semaphore descriptors or file descriptors are
 	currently in use by this process.
 -- ENFILE: Too many semaphores are currently open in the system.
--- ENOSPC: Threis insufficient space for the creation of the new names 
+-- ENOSPC: Threis insufficient space for the creation of the new names
 	semaphore.
 
 -- assertion 7:  not tested.
@@ -19,7 +19,7 @@
 -- assertion 11: is all covered in many area's of the semaphore suite, that
 permission bits is set and checked, and the value is also set and checked.
 
--- assertion 12: is mainly tests in sem_open as the maximum value and the 
+-- assertion 12: is mainly tests in sem_open as the maximum value and the
 minimum value has been tested, but not the greater than SEM_VALUE_MAX.
 
 -- assertion 13: Not tested.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
index e9bb13d..1528cb6 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/8-1.c
@@ -4,7 +4,7 @@
  * of this license, see the COPYING file at the top level of this
  * source tree.
  * adam.li@intel.com 2004-03
- * 
+ *
  * Cleaned up the code and uncommented the lock synchronization.
  * Cyril Hrubis <chrubis@suse.cz> 2011
  */
@@ -66,7 +66,7 @@
 int get_my_prio(void)
 {
 	struct sched_param sp;
-	
+
 	if (sched_getparam(0, &sp) == -1) {
 		perror("sched_getparam()");
 		return -1;
@@ -78,22 +78,22 @@
 int child_fn(int priority, int id)
 {
 	sem_t *sem, *sem_1;
-	
+
 	if (set_my_prio(priority))
 		exit(-1);
-	
+
 	sem = sem_open(semname, 0);
 	if (sem == SEM_FAILED) {
 		perror("sem_open(semname)");
 		exit(-1);
 	}
-	
+
 	sem_1 = sem_open(semname_1, 0);
 	if (sem_1 == SEM_FAILED) {
 		perror("sem_open(semname_1)");
 		exit(-1);
 	}
-	
+
 	fprintf(stderr, "child %d try to get lock, prio: %d\n",
 			id, get_my_prio());
 
@@ -104,7 +104,7 @@
 		fprintf(stderr, "Child %d: Cannot get lock", id);
 		exit(-1);
 	}
-	
+
 	fprintf(stderr, "child %d got lock\n", id);
 	exit(0);
 }
@@ -123,7 +123,7 @@
 	int status;
 
 	snprintf(semname, sizeof(semname), "/" TEST "_%d", getpid());
-	
+
 	sem = sem_open(semname, O_CREAT | O_EXCL, 0777, 1);
 	if (sem == SEM_FAILED) {
 		perror("sem_open(semname)");
@@ -131,14 +131,14 @@
 	}
 
 	snprintf(semname_1, sizeof(semname_1), "/" TEST "_%d_1", getpid());
-	
+
 	sem_1 = sem_open(semname_1, O_CREAT | O_EXCL, 0777, 3);
 	if (sem_1 == SEM_FAILED) {
 		perror("sem_open(semname_1)");
 		sem_unlink(semname);
 		return PTS_UNRESOLVED;
 	}
-	
+
 	/* The parent has highest priority */
 	priority = sched_get_priority_min(SCHED_FIFO) + 3;
 	if (set_my_prio(priority) == -1) {
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/assertions.xml
index 01defa0..da27b67 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/assertions.xml
@@ -4,7 +4,7 @@
 the semaphore when the value is positive.
   </assertion>
   <assertion id="2" tag="ref:XSH6:38945:38946">
-sem_post will return a value of 0 on successful calls when it unlock a 
+sem_post will return a value of 0 on successful calls when it unlock a
 semaphore.
   </assertion>
   <assertion id="3" tag="ref:XSH6:38941:38942">
@@ -20,8 +20,8 @@
 sem_post cam be called from within a signal catching function
   </assertion>
   <assertion id="8" tag="ref:XSH6:38947:38953">
-If Process Scheduling extension is supported, and scheduler is SCHED_FIFO or 
-SCHED_RR, the highest priority thread is awaken first. If several threads 
+If Process Scheduling extension is supported, and scheduler is SCHED_FIFO or
+SCHED_RR, the highest priority thread is awaken first. If several threads
 with equal priority are waiting, the threads are awaken in FIFO order.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/cln.sh
index 8808385..0e1691c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_post/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_post/cln.sh
@@ -5,5 +5,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/assertions.xml
index b2efa81..86d1a5d 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/assertions.xml
@@ -3,7 +3,7 @@
 sem_timedwait will lock the unlocked semaphore.
   </assertion>
   <assertion id="2" tag="ref:XSH6:38996:38998">
-if the sempahore can't be locked without waiting for another process 
+if the sempahore can't be locked without waiting for another process
 or thread to unlock the semaphore by performing sem_post function.  This
 wait shall be terminated when the specified timout expires.
   </assertion>
@@ -25,12 +25,12 @@
   <assertion id="6" tag="ref:XSH6:39018:39020">
 The sem_timedout function shall fail with:
 EINVAL Error: The process or thread would have blocked, and the abs_timeout
-parameter specified a nanoseconds field value less than zero or greater than 
+parameter specified a nanoseconds field value less than zero or greater than
 or equal to 1000 million.
   </assertion>
   <assertion id="7" tag="ref:XSH6:39017:39017">
 The sem_timedout function shall fail with:
-ETIMEDOUT Error: The semaphore could not be locked before the specified 
+ETIMEDOUT Error: The semaphore could not be locked before the specified
 timeout expired.
   </assertion>
   <assertion id="8" tag="ref:XSH6:39017:39017">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/coverage.txt
index 5b4c861..7b6d995 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_timedwait/coverage.txt
@@ -11,9 +11,9 @@
 7		YES
 8		WON'T  -- couldn't figure out away of doing it.
 9		YES
-10		YES	
+10		YES
 11		YES
 
 
 
-~      
+~
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/assertions.xml
index fae3c94..6086295 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/assertions.xml
@@ -7,14 +7,14 @@
 Destruction of the semaphore is postponed until all process which were using the semaphore have called sem_close, _exit or exec.
 </assertion>
 <assertion id="3" tag="ref:XSH6TC2:40126:40126">
-The function returns -1 and sets errno to EACCESS when the process has 
+The function returns -1 and sets errno to EACCESS when the process has
 insufficient priviledge to unlink the semaphore.
 </assertion>
   <assertion id="4" tag="ref:XSH6TC2:40130:40130">
-ERROR: ENOENT: Trying to unlink a named semaphore which doesn't exist. 
+ERROR: ENOENT: Trying to unlink a named semaphore which doesn't exist.
   </assertion>
   <assertion id="5" tag="ref:XSH6TC2:40127:40129">
-ERROR: ENAMETOOLONG: The semaphore name length is greater than PATH_MAX or 
+ERROR: ENAMETOOLONG: The semaphore name length is greater than PATH_MAX or
 a patch component length is greater than NAME_MAX.
   </assertion>
   <assertion id="6" tag="ref:XSH6:39105:39106">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/cln.sh
index 8808385..0e1691c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_unlink/cln.sh
@@ -5,5 +5,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/13-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/13-1.c
index c5ce20b..a6cbe43 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/13-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/13-1.c
@@ -96,7 +96,7 @@
 		UNRESOLVED(errno, "Unable to read clock");
 	}
 
-	/* 
+	/*
 	 * POSIX allows for alarm to quite unprecise, so we ask for 2 seconds
 	 * and check for at least one.
 	 */
@@ -120,7 +120,7 @@
                        ts_fin.tv_sec, ts_fin.tv_nsec);
 		FAILED("The sem_wait call did not block");
 	}
-	
+
 	ret = sem_destroy(&sem);
 
 	if (ret != 0) {
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/assertions.xml
index 13c3314..e851041 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/assertions.xml
@@ -4,7 +4,7 @@
 value by one.
   </assertion>
   <assertion id="3" tag="ref:XSH6:39056:39057">
-sem_wait: This test case verifies that the semaphore shall remain 
+sem_wait: This test case verifies that the semaphore shall remain
 locked until the sem_post is executed and return successfully.
   </assertion>
   <assertion id="4" tag="ref:XSH6:33058:39058">
@@ -12,7 +12,7 @@
 by sending a kill signal (SIGKILL).
   </assertion>
   <assertion id="5" tag="ref:XSH6:39066:39067">
-errno return EAGAIN: The semaphore can't be immediately locked by 
+errno return EAGAIN: The semaphore can't be immediately locked by
 sem_trywait when its already locked.
   </assertion>
   <assertion id="6" tag="ref:XSH6:39068:39068">
@@ -23,22 +23,22 @@
 errno return EINTR: a signal interrupted the waiting semaphore.
   </assertion>
   <assertion id="8" tag="ref:XSH6:39070:39070">
-errno return EDEADLK: sem_wait/trywait will fail if a deadlock condition is 
+errno return EDEADLK: sem_wait/trywait will fail if a deadlock condition is
 detected.
   </assertion>
   <assertion id="9" tag="ref:XSH6:39059:39063">
 sem_wait/trywait return 0 on success and -1 of failure.
   </assertion>
   <assertion id="11" tag="ref:XSH6:39049:39050">
-sem_trywait shall try to lock the unlocked semaphore and decrement 
+sem_trywait shall try to lock the unlocked semaphore and decrement
 the semaphore value by one.
   </assertion>
   <assertion id="12" tag="ref:XSH6:39050:39051">
-sem_trywait shall fail to lock a locked semaphore and try to decrement 
+sem_trywait shall fail to lock a locked semaphore and try to decrement
 the semaphore value by one.
   </assertion>
   <assertion id="13" tag="ref:XSH6TC2:40062:40064">
-If the semaphore count is 0, the call blocks until the semphore can be locked 
-or the operation is interrupted by a signal. 
+If the semaphore count is 0, the call blocks until the semphore can be locked
+or the operation is interrupted by a signal.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/cln.sh b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/cln.sh
index 8808385..0e1691c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/cln.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/cln.sh
@@ -5,5 +5,5 @@
 
 for sem_id in `ipcs -s | awk '{print $2}'` ; do
     ipcrm sem $sem_id > /dev/null 2>&1
-done 
+done
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/coverage.txt
index b955d0b..69e4ce7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sem_wait/coverage.txt
@@ -1,5 +1,5 @@
 
-Will not test the following error values of the semaphores because it is 
+Will not test the following error values of the semaphores because it is
 unknown to me of how to return these values.
 
 -- EDEADLK:  A deadlock condition was detected.
@@ -11,4 +11,4 @@
 TODO: Help create a test case for the EDEADLK ERROR code.
 
 
-~      
+~
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/shm_open/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/shm_open/assertions.xml
index 4185bbf..be721a5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/shm_open/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/shm_open/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:shm_open:DESCRIPTION}">
    The shm_open() function shall establish a connection between a shared memory
    object and a file descriptor
@@ -47,8 +47,8 @@
   <assertion id="12" tag="ref:XSH6:{System Interfaces:shm_open:DESCRIPTION}">
    Applications specify exactly one of the first two values (access modes)
    below in the value of oflag:
-       O_RDONLY 
-       O_RDWR 
+       O_RDONLY
+       O_RDWR
   </assertion>
   <assertion id="13" tag="ref:XSH6:{System Interfaces:shm_open:DESCRIPTION}">
    When the applications specify the value of O_RDONLY, the file is open for
@@ -84,12 +84,12 @@
    unspecified
   </assertion>
   <assertion id="20" tag="ref:XSH6:{System Interfaces:shm_open:DESCRIPTION}">
-   If the shared memory object does not exists and the O_CREAT flags is set, 
+   If the shared memory object does not exists and the O_CREAT flags is set,
    the mode argument does not affect whether the shared memory object is opened
    for reading, for writing, or for both
   </assertion>
   <assertion id="21" tag="ref:XSH6:{System Interfaces:shm_open:DESCRIPTION}">
-   When created, the shared memory object has a size of zero. 
+   When created, the shared memory object has a size of zero.
   </assertion>
   <assertion id="22" tag="ref:XSH6:{System Interfaces:shm_open:DESCRIPTION}">
    If O_EXCL and O_CREAT are set, shm_open() fails if the shared memory object
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/shm_open/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/shm_open/coverage.txt
index 7fe143c..3cf7f21 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/shm_open/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/shm_open/coverage.txt
@@ -25,12 +25,12 @@
 19	       YES	   Unspecified.
 20	       YES
 21	       YES
-22	       YES	
+22	       YES
 23	       YES	   The test never pass. For a conforming
 			   implementation, the test is unresolved.
 24	       YES	   Undefined.
 25	       YES
-26	       YES	   
+26	       YES
 27	       YES	   Undefined.
 28	       YES
 29	       YES	   Unspecified, need to reboot.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/shm_unlink/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/shm_unlink/assertions.xml
index 41adaf8..6036a5c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/shm_unlink/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/shm_unlink/assertions.xml
@@ -1,4 +1,4 @@
-<assertions> 
+<assertions>
   <assertion id="1" tag="ref:XSH6:{System Interfaces:shm_unlink:DESCRIPTION}">
    The shm_unlink() function shall remove the name of the shared memory object
    named by the string pointed to by name
@@ -34,7 +34,7 @@
   </assertion>
   <assertion id="9" tag="ref:XSH6:{System Interfaces:shm_unlink:ERRORS}">
    The shm_unlink() function sets errno = EACCES if permission is denied to
-   unlink the named shared memory object 
+   unlink the named shared memory object
   </assertion>
   <assertion id="10" tag="ref:XSH6:{System Interfaces:shm_unlink:ERRORS}">
    The shm_unlink() function sets errno = ENAMETOOLONG if the length of the
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/16-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/16-1.c
index a1e47c1..9b8f601 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/16-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/16-1.c
@@ -126,7 +126,7 @@
 	rc = pthread_setschedparam(pthread_self(), SCHED_FIFO, &sp);
 	if (rc) {
 		printf("Failed: pthread_setschedparam(SCHED_FIFO), root?\n");
-		
+
 		if (rc == EPERM)
 			exit(PTS_UNTESTED);
 		else
@@ -200,7 +200,7 @@
 	sem_destroy(&sem);
 
 	status = ((long) thread_status) & 0xFFFFFFFF;
-	
+
 	return status;
 
 done:
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/README b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/README
index 3ec09ff..62ddec3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/README
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/README
@@ -4,12 +4,12 @@
 I have added a cheezy perl script for generating a bunch of test cases
 where I want to do the same simple operation on each signal.
 
-Templates are in the templates directory, and are of the form 
+Templates are in the templates directory, and are of the form
 template_ASSERTIONID-count.in
 
 gentest.pl will generate a ASSERTIONID-COUNT.c for each signal specified
-in the POSIX definition of required signals where %%MYSIG%% is replaced 
-with the signal name. 
+in the POSIX definition of required signals where %%MYSIG%% is replaced
+with the signal name.
 
 << Misc thoughts >>
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/assertions.xml
index ab36d7f..bcad093 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/assertions.xml
@@ -4,8 +4,8 @@
 specifying the action to be associated with the specified signal.
   </assertion>
   <assertion id="2" tag="ref:XSH6:41443:41444 pt:CX">
-If the argument "oact" is not a null pointer, the action previously 
-associated with the signal is stored in the location pointed to by 
+If the argument "oact" is not a null pointer, the action previously
+associated with the signal is stored in the location pointed to by
 the argument "oact".
   </assertion>
   <assertion id="3" tag="ref:XSH6:41444:41445 pt:CX">
@@ -16,12 +16,12 @@
 using sigaction(), but will not result in sigaction reporting a failure.
   </assertion>
   <assertion id="5" tag="ref:XSH6:41449:41450 pt:CX">
-If the SA_SIGINFO flag is cleared in the sa_flags field of the sigaction 
+If the SA_SIGINFO flag is cleared in the sa_flags field of the sigaction
 structure, the sa_handler field indentifies the action to be associated
 with the specified signal.
   </assertion>
   <assertion id="6" tag="ref:XSH6:41450:41453 pt:XSI,RTS">
-If the SA_SIGINFO flag is set in the sa_flags field, and the implementation 
+If the SA_SIGINFO flag is set in the sa_flags field, and the implementation
 supports the Realtime Signals Extension option or the XSI Extension option,
 the sa_sigaction field specifies a signal catching function.
   </assertion>
@@ -38,7 +38,7 @@
   </assertion>
   <assertion id="9" tag="ref:XSH6:41461:41462 pt:CX">
 If the SA_NOCLDSTOP bit is set in the sa_flags field when calling sigaction
-on SIGCHLD, then the SIGCHLD signal will not be generated when children stop 
+on SIGCHLD, then the SIGCHLD signal will not be generated when children stop
 or stopped children continue.
   </assertion>
   <assertion id="10" tag="ref:XSH6:41463:41466 pt:CX">
@@ -48,14 +48,14 @@
 stop.
   </assertion>
   <assertion id="11" tag="ref:XSH6:41463:41465 pt:XSI">
-Not setting the SA_NOCLDSTOP flag on the SIGCHLD signal will result in a 
-SIGCHLD signal being generated for the parent process whenever any of it's 
+Not setting the SA_NOCLDSTOP flag on the SIGCHLD signal will result in a
+SIGCHLD signal being generated for the parent process whenever any of it's
 stopped children are continued.
   </assertion>
   <assertion id="12" tag="ref:XSH6:41470:41471 pt:XSI">
-If the SA_ONSTACK flag is set in sa_flags, and an alternate signal stack has 
-been declared with sigaltstack(), the signal shall be delivered to the calling 
-process on the stack.  Otherwise, the signal shall be delivered on the current 
+If the SA_ONSTACK flag is set in sa_flags, and an alternate signal stack has
+been declared with sigaltstack(), the signal shall be delivered to the calling
+process on the stack.  Otherwise, the signal shall be delivered on the current
 stack.
   </assertion>
   <assertion id="13" tag="ref:XSH6:41471:41472 pt:XSI">
@@ -64,7 +64,7 @@
   </assertion>
   <assertion id="14" tag="ref:XSH6TC2:42543:42550 pt:XSI">
 If the SA_RESETHAND flag is set in sa_flags, then the disposition of the signal
-shall be reset to SIG_DFL and the SA_SIGINFO flag shall be cleared on entry 
+shall be reset to SIG_DFL and the SA_SIGINFO flag shall be cleared on entry
 to the signal handler. The routine behaves as if SA_NODEFER was also set.
   </assertion>
   <assertion id="15" tag="ref:XSH6:41477:41480 pt:XSI">
@@ -72,13 +72,13 @@
 shall not be modified on entry to the signal handler.
   </assertion>
   <assertion id="16" tag="ref:XSH6:41481:41486 pt:XSI">
-Interruptable functions (functions specified to fail with errno set to [EINTR] 
-when interrupted by a signal) shall restart and shall not fail with [EINTR] 
+Interruptable functions (functions specified to fail with errno set to [EINTR]
+when interrupted by a signal) shall restart and shall not fail with [EINTR]
 if the SA_RESTART flag is set in sa_flags.
   </assertion>
   <assertion id="17" tag="ref:XSH6:41481:41486 pt:CX">
 If the SA_RESTART flag is not set in sa_flags, then interruptable functions
-will fail with with errno set to [EINTR]. 
+will fail with with errno set to [EINTR].
   </assertion>
   <assertion id="18" tag="ref:XSH6:41494:41495 pt:XSI">
 If the SA_SIGINFO flag is not set for a signal and the signal is caught then
@@ -86,19 +86,19 @@
   </assertion>
   <assertion id="19" tag="ref:XSH6:41487:41488 pt:CX">
 If the SA_SIGINFO flag is set for a signal and the signal is caught then
-the signal -catching function shall be entered as 
+the signal -catching function shall be entered as
 "void func(int signo, siginfo_t *info, void *context);"
   </assertion>
   <assertion id="20" tag="ref:XSH6:41515:41522 pt:XSI">
 If the SA_NOCLDWAIT flag is set and sig equals SIGCHLD, then child processes
 of the calling process shall not be trasformed into zombie processes when
-they terminate.  
+they terminate.
   </assertion>
   <assertion id="21" tag="ref:XSH6:41515:41522 pt:XSI">
-If a process has set the SA_NOCLDWAIT flag on SIGCHLD and subseqeunetly waits 
-for a its children, and the process has not unwaited-for children that were 
-trasformed into zombie processes, it shall block until all of its children 
-terminate, and wait(), waitid(), and waitpid() shall fail and set errno to 
+If a process has set the SA_NOCLDWAIT flag on SIGCHLD and subseqeunetly waits
+for a its children, and the process has not unwaited-for children that were
+trasformed into zombie processes, it shall block until all of its children
+terminate, and wait(), waitid(), and waitpid() shall fail and set errno to
 [ECHILD].
   </assertion>
   <assertion id="22" tag="ref:XSH6:41523:41526 pt:XSI">
@@ -112,7 +112,7 @@
 handler.
   </assertion>
   <assertion id="24" tag="ref:XSH6:41527:41529 pt:CX">
-When a signal-catching function installed by sigaction() is entered, a new 
+When a signal-catching function installed by sigaction() is entered, a new
 signal mask is calculated and installed for the duration of the signal-catching
 function (or until a call to either sigprocmask() or sigsuspend() is made.)
   </assertion>
@@ -123,7 +123,7 @@
 or SA_RESETHAND is set) and then including the signal being delivered.
   </assertion>
   <assertion id="26" tag="ref:XSH6:41527:41532 pt:CX">
-If and when the user's signal handler returns normally, the original signal 
+If and when the user's signal handler returns normally, the original signal
 mask is restored.
   </assertion>
   <assertion id="27" tag="ref:XSH6:41541:41541 pt:CX">
@@ -135,11 +135,11 @@
   </assertion>
   <assertion id="29" tag="ref:XSH6TC2:42616:42622 pt:RTS">
 If SA_SIGINFO is set and realtime signals extension is supported, queueable
-signals generated by sigqueue or some other functions are delivered in FIFO 
+signals generated by sigqueue or some other functions are delivered in FIFO
 order.
   </assertion>
   <assertion id="30" tag="ref:XSH6TC2:42630:42631 pt:CX">
-sigaction returns -1 and errno is set to EINVAL if signal number is invalid 
+sigaction returns -1 and errno is set to EINVAL if signal number is invalid
 or an attempt to do an operation which is not allowed is made.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/gentests.pl b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/gentests.pl
index d76c247..d8495f4 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/gentests.pl
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/gentests.pl
@@ -3,12 +3,12 @@
 # Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
 # Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
 
-my (@signals) = ("SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCONT", 
+my (@signals) = ("SIGABRT", "SIGALRM", "SIGBUS", "SIGCHLD", "SIGCONT",
 		 "SIGFPE", "SIGHUP", "SIGILL", "SIGINT", "SIGPIPE",
 		 "SIGQUIT", "SIGSEGV", "SIGTERM", "SIGTSTP", "SIGTTIN",
 		 "SIGTTOU", "SIGUSR1", "SIGUSR2", "SIGPOLL", "SIGPROF",
@@ -36,7 +36,7 @@
 	    my ($signal) = $_;
 
 	    $testcases{$assertion}++;
-	    open (OUT, ">$assertion-" . $testcases{$assertion} . ".c") 
+	    open (OUT, ">$assertion-" . $testcases{$assertion} . ".c")
 		or die "Could not open source file";
 	    foreach (@t) {
 		my ($line) = $_;
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_1-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_1-1.in
index 40d15aa..89046e5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_1-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_1-1.in
@@ -2,7 +2,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  Rusty.Lnch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #1 of the sigaction system call that shows
@@ -11,9 +11,9 @@
 
   Steps:
   1. Initialize a global variable to indicate the signal
-     handler has not been called. (A signal handler of the 
+     handler has not been called. (A signal handler of the
      prototype "void func(int signo);" will set the global
-     variable to indicate otherwise. 
+     variable to indicate otherwise.
   2. Use sigaction to setup a signal handler for %%MYSIG%%
   3. Raise %%MYSIG%%.
   4. Verify the global indicates the signal was called.
@@ -33,7 +33,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
@@ -42,7 +42,7 @@
 		       "pre-conditions");
 		return PTS_UNRESOLVED;
 	}
-	
+
 	if (raise(%%MYSIG%%) == -1) {
 		perror("Unexpected error while attempting to setup test "
 		       "pre-conditions");
@@ -55,6 +55,6 @@
 	}
 
 	printf("Test FAILED\n");
-	return PTS_FAIL;	
+	return PTS_FAIL;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-1.in
index fbfad8b..7959d58 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-1.in
@@ -3,13 +3,13 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #12 of the sigaction system call that verifies
   signal-catching functions are executed on the alternate stack if the
   SA_ONSTACK flag is set in the sigaction.sa_flags parameter to the
-  sigaction function call, and an alternate stack has been setup with 
+  sigaction function call, and an alternate stack has been setup with
   sigaltstack().
 
   NOTE: This test case does not attempt to verify the proper operation
@@ -36,7 +36,7 @@
 		       "pre-conditions");
 		exit(-1);
 	}
-	
+
 	if (ss.ss_sp != alt_ss.ss_sp || ss.ss_size != alt_ss.ss_size) {
 		printf("Test FAILED\n");
 		exit(-1);
@@ -46,7 +46,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = SA_ONSTACK;
 	sigemptyset(&act.sa_mask);
@@ -63,7 +63,7 @@
 	}
 	alt_ss.ss_size = SIGSTKSZ;
 	alt_ss.ss_flags = 0;
-	
+
 	if (sigaltstack(&alt_ss, (stack_t *)0) == -1) {
 		perror("Unexpected error while attempting to setup test "
 		       "pre-conditions");
@@ -77,6 +77,6 @@
 	}
 
 	printf("Test PASSED\n");
-	return PTS_PASS;	
+	return PTS_PASS;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-2.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-2.in
index 58141a8..da0e12b 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-2.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_12-2.in
@@ -3,7 +3,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #12 of the sigaction system call that verifies
@@ -34,7 +34,7 @@
 		       "pre-conditions");
 		exit(-1);
 	}
-	
+
 	if (oss.ss_sp != current.ss_sp || oss.ss_size != current.ss_size) {
 		printf("Test FAILED\n");
 		exit(-1);
@@ -44,7 +44,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = SA_ONSTACK;
 	sigemptyset(&act.sa_mask);
@@ -53,7 +53,7 @@
 		       "pre-conditions");
 		return PTS_UNRESOLVED;
 	}
-	
+
 	if (sigaltstack((stack_t *)0, &current) == -1) {
 		perror("Unexpected error while attempting to setup test "
 		       "pre-conditions");
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_13-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_13-1.in
index f739cc7..97f2c1b 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_13-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_13-1.in
@@ -3,7 +3,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #13 of the sigaction system call that verifies
@@ -35,7 +35,7 @@
 		       "pre-conditions");
 		exit(-1);
 	}
-	
+
 	if (oss.ss_sp != current.ss_sp || oss.ss_size != current.ss_size) {
 		printf("Test FAILED\n");
 		exit(-1);
@@ -45,7 +45,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
@@ -54,7 +54,7 @@
 		       "pre-conditions");
 		return PTS_UNRESOLVED;
 	}
-	
+
 	if (sigaltstack((stack_t *)0, &current) == -1) {
 		perror("Unexpected error while attempting to setup test "
 		       "pre-conditions");
@@ -68,6 +68,6 @@
 	}
 
 	printf("Test PASSED\n");
-	return PTS_PASS;	
+	return PTS_PASS;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_16-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_16-1.in
index a57b760..271498e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_16-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_16-1.in
@@ -21,7 +21,7 @@
 * shall restart silently.
 
 * The steps are:
-* -> create a child thread 
+* -> create a child thread
 * -> child registers a handler for %%MYSIG%% with SA_RESTART, then waits for the semaphore
 * -> parent kills the child with %%MYSIG%%, then post the semaphore.
 
@@ -59,23 +59,23 @@
 /***************************   Test framework   *******************************/
 /******************************************************************************/
 #include "testfrmw.h"
-#include "testfrmw.c" 
+#include "testfrmw.c"
 /* This header is responsible for defining the following macros:
- * UNRESOLVED(ret, descr);  
- *    where descr is a description of the error and ret is an int 
+ * UNRESOLVED(ret, descr);
+ *    where descr is a description of the error and ret is an int
  *   (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
+ *
  * Both three macros shall terminate the calling process.
  * The testcase shall not terminate in any other maneer.
- * 
+ *
  * The other file defines the functions
  * void output_init()
  * void output(char * string, ...)
- * 
+ *
  * Those may be used to output information.
  */
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_17-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_17-1.in
index 5fb8266..acb75d1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_17-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_17-1.in
@@ -3,10 +3,10 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
-  Test assertion #17 by verifying that select returns -1 with 
+  Test assertion #17 by verifying that select returns -1 with
   errno set to EINTR if a handler for the %%MYSIG%% signal is setup with
   the SA_RESTART flag cleared.
  * 12/18/02 - Adding in include of sys/time.h per
@@ -41,37 +41,37 @@
 	if ((pid = fork()) == 0) {
 		/* child */
 		struct sigaction act;
-		
+
 		act.sa_handler = handler;
 		act.sa_flags = 0;
 		sigemptyset(&act.sa_mask);
-		sigaction(%%MYSIG%%,  &act, 0);     
+		sigaction(%%MYSIG%%,  &act, 0);
 
 		while(wakeup == 1) {
 			tv.tv_sec = 3;
 			tv.tv_usec = 0;
-			if (select(0, NULL, NULL, NULL, &tv)== -1 && 
+			if (select(0, NULL, NULL, NULL, &tv)== -1 &&
 			    errno == EINTR) {
 				perror("select");
 				return PTS_PASS;
 			}
 		}
-		
+
 		return PTS_FAIL;
 	} else {
 		/* parent */
-		int s; 		
+		int s;
 
-		/* 
-		   There is a race condition between the parent 
-		   process sending the %%MYSIG%% signal, and the 
+		/*
+		   There is a race condition between the parent
+		   process sending the %%MYSIG%% signal, and the
 		   child process being inside the 'select' function
 		   call.
 
 		   I could not find a pure POSIX method for determining
 		   the state of the child process, so I just added a delay
-		   so that the test is valid in most conditions.  (The 
-		   problem is that it would be perfectly legal for a 
+		   so that the test is valid in most conditions.  (The
+		   problem is that it would be perfectly legal for a
 		   POSIX conformant OS to not schedule the child process
 		   for a long time.)
 		*/
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_18-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_18-1.in
index 4d77ae4..eba75be 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_18-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_18-1.in
@@ -17,7 +17,7 @@
 
 * This sample test aims to check the following assertions:
 *
-* If SA_SIGINFO is not set in sa_flags, sa_handler is used as the signal 
+* If SA_SIGINFO is not set in sa_flags, sa_handler is used as the signal
 * handling function.
 
 * The steps are:
@@ -49,23 +49,23 @@
 /***************************   Test framework   *******************************/
 /******************************************************************************/
 #include "testfrmw.h"
-#include "testfrmw.c" 
+#include "testfrmw.c"
 /* This header is responsible for defining the following macros:
- * UNRESOLVED(ret, descr);  
- *    where descr is a description of the error and ret is an int 
+ * UNRESOLVED(ret, descr);
+ *    where descr is a description of the error and ret is an int
  *   (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
+ *
  * Both three macros shall terminate the calling process.
  * The testcase shall not terminate in any other maneer.
- * 
+ *
  * The other file defines the functions
  * void output_init()
  * void output(char * string, ...)
- * 
+ *
  * Those may be used to output information.
  */
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_19-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_19-1.in
index 648553e..6547da8 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_19-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_19-1.in
@@ -50,23 +50,23 @@
 /***************************   Test framework   *******************************/
 /******************************************************************************/
 #include "testfrmw.h"
-#include "testfrmw.c" 
+#include "testfrmw.c"
 /* This header is responsible for defining the following macros:
- * UNRESOLVED(ret, descr);  
- *    where descr is a description of the error and ret is an int 
+ * UNRESOLVED(ret, descr);
+ *    where descr is a description of the error and ret is an int
  *   (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
+ *
  * Both three macros shall terminate the calling process.
  * The testcase shall not terminate in any other maneer.
- * 
+ *
  * The other file defines the functions
  * void output_init()
  * void output(char * string, ...)
- * 
+ *
  * Those may be used to output information.
  */
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_2-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_2-1.in
index 969b1b8..62e4c89 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_2-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_2-1.in
@@ -3,7 +3,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #2 of the sigaction system call that shows
@@ -13,7 +13,7 @@
   Steps:
   1. Call sigaction to set handler for %%MYSIG%% to use handler1
   2. Call sigaction again to set handler for %%MYSIG%% to use handler2,
-     but this time use a non-null oarg and verify the sa_handler for 
+     but this time use a non-null oarg and verify the sa_handler for
      oarg is set for handler1.
 */
 
@@ -35,7 +35,7 @@
 {
 	struct sigaction act;
 	struct sigaction oact;
-	
+
 	act.sa_handler = handler1;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
@@ -44,7 +44,7 @@
 		       "pre-conditions");
 		return PTS_UNRESOLVED;
 	}
-	
+
 	act.sa_handler = handler2;
 	sigemptyset(&act.sa_mask);
 	if (sigaction(%%MYSIG%%,  &act, &oact) == -1) {
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_22-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_22-1.in
index 4f2be4c..8fc668a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_22-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_22-1.in
@@ -3,15 +3,15 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
-  Test case for assertion #22 of the sigaction system call that verifies 
-  that if the SA_NODEFER flag is set for a given signal, then when the 
-  sa_sigaction signal-catching function is entered, then the signal that 
-  was caught is not added to the signal mask by raising that signal in the 
+  Test case for assertion #22 of the sigaction system call that verifies
+  that if the SA_NODEFER flag is set for a given signal, then when the
+  sa_sigaction signal-catching function is entered, then the signal that
+  was caught is not added to the signal mask by raising that signal in the
   signal handler and verifying that the handler is reentered.
-  
+
   Steps:
   1. Fork a new process
   2. (parent) wait for child
@@ -74,7 +74,7 @@
 			       "setup test pre-conditions");
 			return PTS_UNRESOLVED;
 		}
-		
+
 		if (raise(%%MYSIG%%) == -1) {
 			perror("Unexpected error while attempting to "
 			       "setup test pre-conditions");
@@ -83,7 +83,7 @@
 
 		return PTS_FAIL;
 	} else {
-		int s; 
+		int s;
 
 		/* parent */
 		if (wait(&s) == -1) {
@@ -99,6 +99,6 @@
 	}
 
 	printf("Test FAILED\n");
-	return PTS_FAIL;	
+	return PTS_FAIL;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_23-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_23-1.in
index b501d9f..695113f 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_23-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_23-1.in
@@ -17,7 +17,7 @@
 
 * This sample test aims to check the following assertions:
 *
-* If SA_NODEFER is not set in sa_flags, the caught signal is added to the 
+* If SA_NODEFER is not set in sa_flags, the caught signal is added to the
 * thread's signal mask during the handler execution.
 
 * The steps are:
@@ -49,23 +49,23 @@
 /***************************   Test framework   *******************************/
 /******************************************************************************/
 #include "testfrmw.h"
-#include "testfrmw.c" 
+#include "testfrmw.c"
 /* This header is responsible for defining the following macros:
- * UNRESOLVED(ret, descr);  
- *    where descr is a description of the error and ret is an int 
+ * UNRESOLVED(ret, descr);
+ *    where descr is a description of the error and ret is an int
  *   (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
+ *
  * Both three macros shall terminate the calling process.
  * The testcase shall not terminate in any other maneer.
- * 
+ *
  * The other file defines the functions
  * void output_init()
  * void output(char * string, ...)
- * 
+ *
  * Those may be used to output information.
  */
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_25-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_25-1.in
index 8253666..fd1c5db 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_25-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_25-1.in
@@ -2,15 +2,15 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
-  Test case for assertion #25 of the sigaction system call that verifies 
+  Test case for assertion #25 of the sigaction system call that verifies
   that when the sa_sigaction signal-catching function is entered, then
   the signal that was caught is added to the signal mask by raising that
   signal in the signal handler and verifying that the handler is not
   reentered.
-  
+
   Steps:
   1. Fork a new process
   2. (parent) wait for child
@@ -72,7 +72,7 @@
 			       "setup test pre-conditions");
 			return PTS_UNRESOLVED;
 		}
-		
+
 		if (raise(%%MYSIG%%) == -1) {
 			perror("Unexpected error while attempting to "
 			       "setup test pre-conditions");
@@ -84,7 +84,7 @@
 
 		return PTS_PASS;
 	} else {
-		int s; 
+		int s;
 
 		/* parent */
 		if (wait(&s) == -1) {
@@ -100,6 +100,6 @@
 	}
 
 	printf("Test FAILED\n");
-	return PTS_FAIL;	
+	return PTS_FAIL;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_28-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_28-1.in
index e25c71b..52c0ecc 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_28-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_28-1.in
@@ -51,21 +51,21 @@
 /***************************   Test framework   *******************************/
 /******************************************************************************/
 /* This header is responsible for defining the following macros:
- * UNRESOLVED(ret, descr);  
- *    where descr is a description of the error and ret is an int 
+ * UNRESOLVED(ret, descr);
+ *    where descr is a description of the error and ret is an int
  *   (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
+ *
  * Both three macros shall terminate the calling process.
  * The testcase shall not terminate in any other maneer.
- * 
+ *
  * The other file defines the functions
  * void output_init()
  * void output(char * string, ...)
- * 
+ *
  * Those may be used to output information.
  */
 #include "posixtest.h"
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_3-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_3-1.in
index 91d8cc4..b98c7ce 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_3-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_3-1.in
@@ -3,18 +3,18 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #3 of the sigaction system call that shows
-  calling sigaction with a null act argument does not change the 
+  calling sigaction with a null act argument does not change the
   signal handler.
 
   Steps:
   1. Initialize global variable to indicate handler has not been called
   2. Set the signal handler for %%MYSIG%% to handler
   3. Call sigaction with a null act
-  4. raise %%MYSIG%% 
+  4. raise %%MYSIG%%
   5. Verify handler was called.
 */
 
@@ -33,7 +33,7 @@
 {
 	struct sigaction act;
 	struct sigaction oact;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
@@ -42,7 +42,7 @@
 		       "pre-conditions");
 		return PTS_UNRESOLVED;
 	}
-	
+
 	if (sigaction(%%MYSIG%%,  0, &oact) == -1) {
 		perror("Unexpected error while attempting to setup test "
 		       "pre-conditions");
@@ -62,6 +62,6 @@
 	}
 
 	printf("Test FAILED\n");
-	return PTS_FAIL;	
+	return PTS_FAIL;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-1.in
index ec9e2e2..50c2065 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-1.in
@@ -3,7 +3,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #4 of the sigaction system call that shows
@@ -13,7 +13,7 @@
   Steps:
   1. Fork a new process
   2. (parent) wait for child
-  3. (child) Setup a signal handler for %%MYSIG%% with SIGKILL added to 
+  3. (child) Setup a signal handler for %%MYSIG%% with SIGKILL added to
              the signal mask
   4. (child) raise %%MYSIG%%
   5. (child, signal handler) raise SIGKILL
@@ -40,13 +40,13 @@
 	if (fork() == 0) {
 		/* child */
 
-		/* 
+		/*
 		 * NOTE: This block of code will return 0 for error
 		 *       and anything else for success.
 		 */
 
 		struct sigaction act;
-	
+
 		act.sa_handler = handler;
 		act.sa_flags = 0;
 		sigemptyset(&act.sa_mask);
@@ -56,7 +56,7 @@
 			       "setup test pre-conditions");
 			return PTS_PASS;
 		}
-		
+
 		if (raise(%%MYSIG%%) == -1) {
 			perror("Unexpected error while attempting to "
 			       "setup test pre-conditions");
@@ -64,7 +64,7 @@
 
 		return PTS_PASS;
 	} else {
-		int s; 
+		int s;
 
 		/* parent */
 		if (wait(&s) == -1) {
@@ -80,6 +80,6 @@
 	}
 
 	printf("Test FAILED\n");
-	return PTS_FAIL;	
+	return PTS_FAIL;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-2.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-2.in
index dd68fd2..0046226 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-2.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-2.in
@@ -3,7 +3,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #4 of the sigaction system call that shows
@@ -13,12 +13,12 @@
   Steps:
   1. Fork a new process
   2. (parent) wait for child
-  3. (child) Setup a signal handler for %%MYSIG%% with SIGSTOP added to 
+  3. (child) Setup a signal handler for %%MYSIG%% with SIGSTOP added to
              the signal mask
   4. (child) raise %%MYSIG%%
   5. (child, signal handler) raise SIGSTOP
   5. (child) If still around then return -1
-  6. (parent - returning from wait) If child was stopped then return 
+  6. (parent - returning from wait) If child was stopped then return
      kill the child and return success, otherwise fail.
 */
 
@@ -45,7 +45,7 @@
 		/* child */
 
 		struct sigaction act;
-	
+
 		act.sa_handler = handler;
 		act.sa_flags = 0;
 		sigemptyset(&act.sa_mask);
@@ -55,7 +55,7 @@
 			       "setup test pre-conditions");
 			return PTS_UNRESOLVED;
 		}
-		
+
 		if (raise(%%MYSIG%%) == -1) {
 			perror("Unexpected error while attempting to "
 			       "setup test pre-conditions");
@@ -63,7 +63,7 @@
 
 		return PTS_UNRESOLVED;
 	} else {
-		int s; 
+		int s;
 
 		/* parent */
 		if (waitpid(pid, &s, WUNTRACED) == -1) {
@@ -80,6 +80,6 @@
 	}
 
 	printf("Test FAILED\n");
-	return PTS_FAIL;	
+	return PTS_FAIL;
 }
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-3.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-3.in
index 601b67c..ff5e03e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-3.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-3.in
@@ -3,11 +3,11 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #4 of the sigaction system call that shows
-  that attempting to add SIGKILL to the signal mask of %%MYSIG%% will 
+  that attempting to add SIGKILL to the signal mask of %%MYSIG%% will
   not result in sigaction returning -1
 */
 
@@ -25,7 +25,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-4.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-4.in
index 0d8fa0e..be0c2b3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-4.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_4-4.in
@@ -3,11 +3,11 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #4 of the sigaction system call that shows
-  that attempting to add SIGSTOP to the signal mask of %%MYSIG%% will 
+  that attempting to add SIGSTOP to the signal mask of %%MYSIG%% will
   not result in sigaction returning -1
 */
 
@@ -25,7 +25,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = handler;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_6-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_6-1.in
index 38dd7be..1909f25 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_6-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_6-1.in
@@ -2,7 +2,7 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
   Test case for assertion #5 of the sigaction system call that verifies
@@ -29,7 +29,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_sigaction = handler;
 	act.sa_flags = SA_SIGINFO;
 	sigemptyset(&act.sa_mask);
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_8-1.in b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_8-1.in
index 6724f76..ab06599 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_8-1.in
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaction/templates/template_8-1.in
@@ -2,11 +2,11 @@
  * Copyright (c) 2002-2003, Intel Corporation. All rights reserved.
  * Created by:  rusty.lynch REMOVE-THIS AT intel DOT com
  * This file is licensed under the GPL license.  For the full content
- * of this license, see the COPYING file at the top level of this 
+ * of this license, see the COPYING file at the top level of this
  * source tree.
 
-  Test case for assertion #8 of the sigaction system call that verifies 
-  that if signals in the sa_mask (passed in the sigaction struct of the 
+  Test case for assertion #8 of the sigaction system call that verifies
+  that if signals in the sa_mask (passed in the sigaction struct of the
   sigaction function call) are added to the process signal mask during
   execution of the signal-catching function.
 */
@@ -39,7 +39,7 @@
 int main()
 {
 	struct sigaction act;
-	
+
 	act.sa_handler = %%MYSIG%%_handler;
 	act.sa_flags = 0;
 	sigemptyset(&act.sa_mask);
@@ -58,7 +58,7 @@
 		       "setup test pre-conditions");
 		return PTS_UNRESOLVED;
 	}
-	
+
 
 	if (raise(%%MYSIG%%) == -1) {
 		perror("Unexpected error while attempting to "
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-1.sh
index 5d0c3aa..5078b0b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-1.sh
@@ -1,9 +1,9 @@
 #!/bin/sh
-#   
+#
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 
@@ -13,7 +13,7 @@
 #   1)  Initialize an empty signal set.
 #   2)  Add the SIGALRM signal to the empty signal set.
 #   3)  Verify that SIGALRM is a member of the signal set.
-# 
+#
 
 # Calling 1-core with a 0 parameter initializes to an
 # empty set.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-2.sh
index d8d8ff1..e415624 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/1-2.sh
@@ -11,7 +11,7 @@
 #   1)  Initialize an full signal set.
 #   2)  Add the SIGALRM signal to the full signal set.
 #   3)  Verify that SIGALRM is a member of the signal set.
-# 
+#
 
 # Calling 1-core with a 1 parameter initializes to an
 # full set.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-1.sh
index 32dc8a9..4ba1478 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-1.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of adding invalid signals to sigaddset().
-# 
+#
 
 ./4-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-2.sh
index 708fe1a..1d20217 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-2.sh
@@ -8,6 +8,6 @@
 
 #
 #   Test various methods of adding invalid signals to sigaddset().
-# 
+#
 
 ./4-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-3.sh
index ad4fee1..12feaf6 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-3.sh
@@ -7,6 +7,6 @@
 #
 #
 #   Test various methods of adding invalid signals to sigaddset().
-# 
+#
 
 ./4-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-4.sh
index c33d8fb..8f1614b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaddset/4-4.sh
@@ -7,6 +7,6 @@
 #
 #
 #   Test various methods of adding invalid signals to sigaddset().
-# 
+#
 
 ./4-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigaltstack/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigaltstack/assertions.xml
index b57b154..69fc2fc 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigaltstack/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigaltstack/assertions.xml
@@ -1,9 +1,9 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:41734:41738 pt:XSI">
 	The sigaltstack ( ) function allows
-	A process is able to define and examine the state of an alternate stack for signal handlers using 
-	sigaltstack(). Signals shall be delivered on the alternate stack if they have been explicitly declared to 
-	execute on the alternate stack. Unless it is a null pointer, ss points to a stack_t structure that 
+	A process is able to define and examine the state of an alternate stack for signal handlers using
+	sigaltstack(). Signals shall be delivered on the alternate stack if they have been explicitly declared to
+	execute on the alternate stack. Unless it is a null pointer, ss points to a stack_t structure that
 	specifies the alternate signal stack that shall take effect upon return from sigaltstack ( ).
   </assertion>
   <assertion id="2" tag="ref:XSH6:41738:41739 pt:XSI">
@@ -15,11 +15,11 @@
   </assertion>
   <assertion id="4" tag="ref:XSH6:41742:41743 pt:XSI">
 	The area of memory starting at ss_sp up to but not including ss_sp+ss_size is available to the
-	implementation for use as the stack. 
+	implementation for use as the stack.
   </assertion>
   <assertion id="5" tag="ref:XSH6:41745:41747 pt:XSI">
 	On successful completion, oss shall point to a stack_t structure that if it's is not a null pointer.
-	It specifies the alternate signal stack that was in effect prior to the call to sigaltstack ( ). 
+	It specifies the alternate signal stack that was in effect prior to the call to sigaltstack ( ).
 	The address and size of that stack are respectively the ss_sp and ss_size members.
   </assertion>
   <assertion id="6" tag="ref:XSH6:41747:41749 pt:XSI">
@@ -32,18 +32,18 @@
 	When ss_flags is set to SS_DISABLE, the alternate signal stack is currently disabled.
   </assertion>
   <assertion id="9" tag="ref:XSH6:41759:41760 pt:XSI">
-	There are no alternate signal stacks in the new process image, after a successful call to one of the 
+	There are no alternate signal stacks in the new process image, after a successful call to one of the
 	exec functions.
   </assertion>
   <assertion id="10" tag="ref:XSH6:41766:41767 pt:XSI">
-	sigaltstack ( ) shall return 0 upon successful completion, 
+	sigaltstack ( ) shall return 0 upon successful completion,
   </assertion>
   <assertion id="11" tag="ref:XSH6:41770:41772 pt:XSI">
-	sigaltstack shall return -1 and set errno to [EINVAL] if the ss argument is not a null pointer, and 
+	sigaltstack shall return -1 and set errno to [EINVAL] if the ss argument is not a null pointer, and
 	the ss_flags member pointed to by ss contains flags other than SS_DISABLE.
   </assertion>
   <assertion id="12" tag="ref:XSH6:41773:41773 pt:XSI">
-	sigaltstack shall return -1 and set errno to [ENOMEM] if The size of the alternate stack area is 
+	sigaltstack shall return -1 and set errno to [ENOMEM] if The size of the alternate stack area is
 	less than MINSIGSTKSZ.
   </assertion>
   <assertion id="13" tag="ref:XSH6:41774:41774 pt:XSI">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-1.sh
index 506c4bb..7b58c44 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-1.sh
@@ -9,7 +9,7 @@
 #
 #   Test that sigdelset() will remove signo from the set signal set.
 #   This test initializes an empty signal set first.
-# 
+#
 
 # Calling 1-core with a 0 parameter initializes to an
 # empty set.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-2.sh
index 87ce070..17b5a33 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/1-2.sh
@@ -9,7 +9,7 @@
 #
 #   Test that sigdelset() will remove signo from the set signal set.
 #   This test initializes a full signal set first.
-# 
+#
 
 # Calling 1-core with a 1 parameter initializes to an
 # full set.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-1.sh
index 5393c2a..2013544 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-1.sh
@@ -8,6 +8,6 @@
 
 #
 #   Test various methods of removing invalid signals to sigaddset().
-# 
+#
 
 ./4-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-2.sh
index c84a149..d73b908 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-2.sh
@@ -8,6 +8,6 @@
 
 #
 #   Test various methods of removing invalid signals to sigaddset().
-# 
+#
 
 ./4-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-3.sh
index dda9a50..07ea086 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-3.sh
@@ -8,6 +8,6 @@
 
 #
 #   Test various methods of removing invalid signals to sigaddset().
-# 
+#
 
 ./4-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-4.sh
index ae58de6..e9daf3c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/4-4.sh
@@ -8,6 +8,6 @@
 
 #
 #   Test various methods of removing invalid signals to sigaddset().
-# 
+#
 
 ./4-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/assertions.xml
index edaa535..9c09cfc 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigdelset/assertions.xml
@@ -3,7 +3,7 @@
 sigdelset() deletes signal signo from signal set set.
   </assertion>
   <assertion id="2" tag="ref:XSH6:41816:41820">
-The results are undefined if an object does not call sigemptyset() or sigfillset() 
+The results are undefined if an object does not call sigemptyset() or sigfillset()
 before calling sigdelset().
   </assertion>
   <assertion id="3" tag="ref:XSH6:41822:41822">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-1.sh
index 853ffb1..7cd8eae 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-1.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of adding invalid signals to sighold().
-# 
+#
 
 ./3-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-2.sh
index 0104dcc..395bd4e 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-2.sh
@@ -8,6 +8,6 @@
 
 #
 #   Test various methods of passing invalid signals to sighold().
-# 
+#
 
 ./3-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-3.sh
index b9b39de..8b22746 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-3.sh
@@ -7,6 +7,6 @@
 #
 #
 #   Test various methods of passing invalid signals to sighold().
-# 
+#
 
 ./3-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-4.sh
index 239fd1d..e017443 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sighold/3-4.sh
@@ -7,6 +7,6 @@
 #
 #
 #   Test various methods of passing invalid signals to sighold().
-# 
+#
 
 ./3-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sighold/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sighold/assertions.xml
index cb9bb29..d565afc 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sighold/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sighold/assertions.xml
@@ -6,7 +6,7 @@
 sighold will return 0 upon successful completion.
   </assertion>
   <assertion id="3" tag="ref:XSH6:41973:41974 pt:XSI">
-If the function is passed an illegal signal number, then errno will be set to [EINVAL], and sighold() will 
+If the function is passed an illegal signal number, then errno will be set to [EINVAL], and sighold() will
 return -1.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-1.sh
index e23363b..a9bf498 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-1.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./5-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-2.sh
index 8b491ea..8fa60dc 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-2.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./5-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-3.sh
index c96f707..c5075d2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-3.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./5-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-4.sh
index fddb139..5eb028e 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/5-4.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./5-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/assertions.xml
index 480b88a..edefded 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigignore/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigignore/assertions.xml
@@ -1,28 +1,28 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:41955:41955 pt:XSI">
-The sigignore() function sets the disposition of the signal sig to 
+The sigignore() function sets the disposition of the signal sig to
 SIG_IGN.
   </assertion>
   <assertion id="2" tag="ref:XSH6:41959:41960 pt:XSI">
-Child processes of the calling processes shall not be transformed into zombie processes when they 
+Child processes of the calling processes shall not be transformed into zombie processes when they
 terminate, if the action for the SIGCHLD signal is set to SIG_IGN.
   </assertion>
   <assertion id="3" tag="ref:XSH6:41960:41963 pt:XSI">
 The calling process shall block until all of its children terminate, and wait(),
-waitid ( ), and waitpid ( ) shall fail and set errno to [ECHILD], if that calling process  
+waitid ( ), and waitpid ( ) shall fail and set errno to [ECHILD], if that calling process
 waits for its children, and has no unwaited-for children that were transformed into zombie processes.
   </assertion>
   <assertion id="4" tag="ref:XSH6:41970:41971 pt:XSI">
 sigignore will return 0 upon successful completion.
   </assertion>
   <assertion id="5" tag="ref:XSH6:41973:41974 pt:XSI">
-If the function is passed an illegal signal number, then errno will be set 
-to [EINVAL], and sigrelse() will 
+If the function is passed an illegal signal number, then errno will be set
+to [EINVAL], and sigrelse() will
 return -1.
   </assertion>
   <assertion id="6" tag="ref:XSH6:41975:41977 pt:XSI">
-If an attempt is made to ignore a signal that cannot be ignored, or catch 
-a signal that cannot be caught, sigignore() shall fail, and set the value 
+If an attempt is made to ignore a signal that cannot be ignored, or catch
+a signal that cannot be caught, sigignore() shall fail, and set the value
 of errno to [EINVAL]
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-1.sh
index b47a7a0..420182c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-1.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  salwan.searty REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 #
 #   Test various methods of checking for invalid signals using sigismember().
-# 
+#
 
 ./5-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-2.sh
index 413f023..f34514f 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-2.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  salwan.searty REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 #
 #   Test various methods of checking for invalid signals using sigismember().
-# 
+#
 
 ./5-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-3.sh
index 4b87989..5529c20 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-3.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  salwan.searty REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 #
 #   Test various methods of checking for invalid signals using sigismember().
-# 
+#
 
 ./5-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-4.sh
index 945e7ef..ab5ba0b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/5-4.sh
@@ -1,12 +1,12 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  salwan.searty REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 #
 #   Test various methods of checking for invalid signals using sigismember().
-# 
+#
 
 ./5-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/assertions.xml
index 45bbf67..ee9280a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/assertions.xml
@@ -1,18 +1,18 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:42056:42057">
-sigismember() tests whether the specified signal signo is in the 
+sigismember() tests whether the specified signal signo is in the
 specified set.
   </assertion>
   <assertion id="2" tag="ref:XSH6:42059:42062">
-If an object is not initialized by sigemptyset() or sigfillset() before 
-being supplied to sigismember(), then the result of sigismember is 
+If an object is not initialized by sigemptyset() or sigfillset() before
+being supplied to sigismember(), then the result of sigismember is
 undefined.
   </assertion>
   <assertion id="3" tag="ref:XSH6:42064:42065">
 sigismember() returns 1 if specified member exists in specified set
   </assertion>
   <assertion id="4" tag="ref:XSH6:42064:42065">
-sigismember() returns 0 if specified member does not exist in specified 
+sigismember() returns 0 if specified member does not exist in specified
 set
   </assertion>
   <assertion id="5" tag="ref:XSH6:42064:42065">
@@ -20,7 +20,7 @@
 unsuccessful completion.
   </assertion>
   <assertion id="6" tag="ref:XSH6:42067:42069">
-sigismember() sets errno to [EINVAL] incase the signo 
+sigismember() sets errno to [EINVAL] incase the signo
 argument is not a valid signal number.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/coverage.txt
index 5c631ee..94618a7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigismember/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigismember/coverage.txt
@@ -2,7 +2,7 @@
 
 Assertion	Covered?
 1		IMPLICITLY tested by assertions 3 and 4.
-2		WON'T test because spec doesn't define behaviour of sigismember() function if neither of sigempyset() or sigfillset() is called. 
+2		WON'T test because spec doesn't define behaviour of sigismember() function if neither of sigempyset() or sigfillset() is called.
 3		YES
 4		YES
 5		YES
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/signal/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/signal/assertions.xml
index 6060eb0..b7eb7b1 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/signal/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/signal/assertions.xml
@@ -14,8 +14,8 @@
     point it was interrupted.
   </assertion>
   <assertion id="5" tag="ref:XSH6:42166:42167">
-    If the handler is called, signal() shall return the value of 
-    func of the last call to signal() that pertains to the 
+    If the handler is called, signal() shall return the value of
+    func of the last call to signal() that pertains to the
     specified signal sig.
   </assertion>
   <assertion id="6" tag="ref:XSH6:42170:42172 pt:CX">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigpause/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigpause/assertions.xml
index 62a114f..2f77046 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigpause/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigpause/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:41956:41957 pt:XSI">
-    The sigpause() function shall remove sig from the signal mask of 
+    The sigpause() function shall remove sig from the signal mask of
     the calling process and suspend the calling process until it
     receives a signal
   </assertion>
@@ -9,8 +9,8 @@
     mask of the calling process to its original state before it returns.
   </assertion>
   <assertion id="3" tag="ref:XSH6:41968:41969 pt:XSI">
-    Execution shall be suspended by sigpause() function until 
-    a signal is received, after which it shall return -1 and set errno to 
+    Execution shall be suspended by sigpause() function until
+    a signal is received, after which it shall return -1 and set errno to
     [EINTR].
   </assertion>
   <assertion id="4" tag="ref:XSH6:41974:41974 pt:XSI">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-1.sh
index c93ac2d..b3cf7eb 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-1.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./17-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-2.sh
index fcd2fac..e4dbd01 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-2.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./17-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-3.sh
index e1b3c0f..de3080c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-3.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./17-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-4.sh
index 8355996..79e72c9 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/17-4.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of passing invalid signals to sigignore().
-# 
+#
 
 ./17-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/assertions.xml
index 5f34cd8..a140ea3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/assertions.xml
@@ -1,36 +1,36 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:35397:35399 pt:CX pt:THR">
      pthread_sigmask( ) function is used to examine or change (or both) the calling thread's signal
-     mask, independent of the number of threads the process contains. The function shall be 
-equivalent to sigprocmask( ), but with the ability to be used in a thread of a multi-threaded 
+     mask, independent of the number of threads the process contains. The function shall be
+equivalent to sigprocmask( ), but with the ability to be used in a thread of a multi-threaded
 process.
   </assertion>
   <assertion id="2" tag="ref:XSH6:35400:35401 pt:CX">
-	The sigprocmask( ) function is used to examine or change (or both) the signal mask of the calling 
+	The sigprocmask( ) function is used to examine or change (or both) the signal mask of the calling
 thread of a single-threaded process.
   </assertion>
   <assertion id="3" tag="ref:XSH6:35402:35403 pt:CX pt:THR">
-The argument set points to a set of signals to be used to change the currently blocked set, unless the  
+The argument set points to a set of signals to be used to change the currently blocked set, unless the
 argument is a null pointer.
   </assertion>
   <assertion id="4" tag="ref:XSH6:35406:35407 pt:CX pt:THR">
- The resulting set shall be the union of the current set and the signal set pointed to by set, if the value 
+ The resulting set shall be the union of the current set and the signal set pointed to by set, if the value
 of the argument how is SIG_BLOCK.
   </assertion>
   <assertion id="5" tag="ref:XSH6:35408:35408 pt:CX pt:THR">
- The resulting set shall be the signal set pointed to by set, if the value of the argument how is SIG_SETMASK 
+ The resulting set shall be the signal set pointed to by set, if the value of the argument how is SIG_SETMASK
   </assertion>
   <assertion id="6" tag="ref:XSH6:35409:35410 pt:CX pt:THR">
- The resulting set shall be the intersection of the current set and the complement of the signal set 
-pointed to by set, if the value of the argument how is SIG_UNBLOCK 
+ The resulting set shall be the intersection of the current set and the complement of the signal set
+pointed to by set, if the value of the argument how is SIG_UNBLOCK
   </assertion>
   <assertion id="7" tag="ref:XSH6:35411:35412 pt:CX pt:THR">
-  The previous mask shall be stored in the location pointed to by oset, if the argument oset is not a null 
+  The previous mask shall be stored in the location pointed to by oset, if the argument oset is not a null
 pointer.
   </assertion>
   <assertion id="8" tag="ref:XSH6:35412:35414 pt:CX pt:THR">
-  The value of the argument how is not significant and the process's signal mask shall be unchanged, and 
-thus the call can be used to enquire about currently blocked signals, if the argument set is a null 
+  The value of the argument how is not significant and the process's signal mask shall be unchanged, and
+thus the call can be used to enquire about currently blocked signals, if the argument set is a null
 pointer.
   </assertion>
   <assertion id="9" tag="ref:XSH6:35415:35416 pt:CX pt:THR">
@@ -38,11 +38,11 @@
 signals shall be delivered before the call to sigprocmask() returns.
   </assertion>
   <assertion id="10" tag="ref:XSH6:35417:35418 pt:CX pt:THR">
-The system shall not allow the blocking of signals which cannot be ignored, and shall not cause an error 
+The system shall not allow the blocking of signals which cannot be ignored, and shall not cause an error
 to be indicated.
   </assertion>
   <assertion id="11" tag="ref:XSH6:35419:35421 pt:CX pt:THR">
-If any of the SIGFPE, SIGILL, SIGSEGV, or SIGBUS signals are generated while they are blocked, and the 
+If any of the SIGFPE, SIGILL, SIGSEGV, or SIGBUS signals are generated while they are blocked, and the
 signal was not generated by the kill(), sigqueue() or raise()functions, the result is undefined.
   </assertion>
   <assertion id="12" tag="ref:XSH6:35422:35422 pt:CX pt:THR">
@@ -52,7 +52,7 @@
 In a multi-threaded process, the use of the sigprocmask( ) function is unspecified.
   </assertion>
   <assertion id="14" tag="ref:XSH6:35425:35426 pt:THR">
-pthread_sigmask( ) shall return 0, Upon successful completion; otherwise, it shall return the corresponding 
+pthread_sigmask( ) shall return 0, Upon successful completion; otherwise, it shall return the corresponding
 error number.
   </assertion>
   <assertion id="15" tag="ref:XSH6:35427:35428 pt:CX pt:THR">
@@ -60,12 +60,12 @@
 and errno shall be set to indicate the error, and the process' signal mask shall be unchanged.
   </assertion>
   <assertion id="16" tag="ref:XSH6:35430:35431 pt:THR">
-   An errno value of [EINVAL] shall be returned and the pthreadsigmask() function shall fail, if the 
-value of 
+   An errno value of [EINVAL] shall be returned and the pthreadsigmask() function shall fail, if the
+value of
 the how argument is not equal to one of the defined values.
   </assertion>
   <assertion id="17" tag="ref:XSH6:35430:35431 pt:CX pt:THR">
-   An errno value of [EINVAL] shall be returned and the sigprocmask() function shall fail, if the value of 
+   An errno value of [EINVAL] shall be returned and the sigprocmask() function shall fail, if the value of
 the how argument is not equal to one of the defined values.
   </assertion>
   <assertion id="18" tag="ref:XSH6:35432:35432 pt:THR">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/coverage.txt
index 253f086..edd3665 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigprocmask/coverage.txt
@@ -12,7 +12,7 @@
 9		YES
 10		YES
 11		WON'T test, because POSIX does not define behavior in this case.
-12		YES		
+12		YES
 13		WON'T test, because POSIX does not define behavior in this case.
 14		WON'T test, bacause it is pthread_sigmask() specific and tested in there.
 15		YES
@@ -20,4 +20,4 @@
 17		YES
 18		WON'T test, bacause it is pthread_sigmask() specific and tested in there.
 
-		
+
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/assertions.xml
index fce858f..37b9664 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/assertions.xml
@@ -42,7 +42,7 @@
         argument is an invalid or unsupported signal number.
   </assertion>
   <assertion id="12" tag="ref:XSH6:42318:42319 pt:RTS">
-	sigqueue() shall return a value of -1 and set errno to [EPERM] if the process does not have the 
+	sigqueue() shall return a value of -1 and set errno to [EPERM] if the process does not have the
         appropriate privilege to send the signal to the receiving process.
   </assertion>
   <assertion id="11" tag="ref:XSH6:42320:42320 pt:RTS">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-1.sh
index c207f75..20bfbd3 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-1.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of adding invalid signals to sigrelse().
-# 
+#
 
 ./3-core 1
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-2.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-2.sh
index 1858dcb..bf1dcfc 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-2.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-2.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of adding invalid signals to sigrelse().
-# 
+#
 
 ./3-core 2
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-3.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-3.sh
index c2e050d..8b8cf46 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-3.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-3.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of adding invalid signals to sigrelse().
-# 
+#
 
 ./3-core 3
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-4.sh b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-4.sh
index 07f7414..9edafb7 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-4.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/3-4.sh
@@ -7,6 +7,6 @@
 
 #
 #   Test various methods of adding invalid signals to sigrelse().
-# 
+#
 
 ./3-core 4
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/assertions.xml
index 4a88ea1..ba9ae18 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigrelse/assertions.xml
@@ -1,14 +1,14 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:41954:41954 pt:XSI">
-The sigrelse () function removes a signal sig from the signal mask of 
+The sigrelse () function removes a signal sig from the signal mask of
 the calling process.
   </assertion>
   <assertion id="2" tag="ref:XSH6:41970:41971 pt:XSI">
 sigrelse will return 0 upon successful completion.
   </assertion>
   <assertion id="3" tag="ref:XSH6:41973:41974 pt:XSI">
-If the function is passed an illegal signal number, then errno will be set 
-to [EINVAL], and sigrelse() will 
+If the function is passed an illegal signal number, then errno will be set
+to [EINVAL], and sigrelse() will
 return -1.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigset/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigset/assertions.xml
index ccbcfbd..3c5e714 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigset/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigset/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:41944:41946 pt:XSI">
-	If sigset() is used and disp is SIG_DFL, then the default action associated with that process will be taken when the 
+	If sigset() is used and disp is SIG_DFL, then the default action associated with that process will be taken when the
         signal occurs.
   </assertion>
   <assertion id="2" tag="ref:XSH6:41944:41946 pt:XSI">
@@ -8,7 +8,7 @@
         signal occurs.
   </assertion>
   <assertion id="3" tag="ref:XSH6:41944:41946 pt:XSI">
-	If sigset() is used and disp is the address of a signal handler, then the signal handler will be executed 
+	If sigset() is used and disp is the address of a signal handler, then the signal handler will be executed
         when the signal is generated.
   </assertion>
   <assertion id="4" tag="ref:XSH6:41946:41948 pt:XSI">
@@ -16,14 +16,14 @@
 	signal mask before executing the signal handler
   </assertion>
   <assertion id="5" tag="ref:XSH6:41948:41949 pt:XSI">
-	The calling process's signal mask shall be restored to its state prior to the delivery of the signal, 
+	The calling process's signal mask shall be restored to its state prior to the delivery of the signal,
 	when the signal handler returns.
   </assertion>
   <assertion id="6" tag="ref:XSH6:41950:41951 pt:XSI">
 	If disp is equal to SIG_HOLD, sig shall be added to the calling process' signal mask.
   </assertion>
   <assertion id="7" tag="ref:XSH6:41950:41951 pt:XSI">
-	If disp is equal to SIG_HOLD, sig's disposition shall remain unchanged. 
+	If disp is equal to SIG_HOLD, sig's disposition shall remain unchanged.
   </assertion>
   <assertion id="8" tag="ref:XSH6:41965:41966 pt:XSI">
 	If the signal had been blocked, upon successful completion, sigset( ) shall return SIG_HOLD
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/assertions.xml
index 787ba67..a7584ab 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/assertions.xml
@@ -2,12 +2,12 @@
   <assertion id="1" tag="ref:XSH6:42431:42432 pt:CX">
 The current signal mask of the calling thread shall be replaced
 with the set of signals pointed to by sigmask, the calling thread
-will then be suspended until delivery of a signal whose action 
+will then be suspended until delivery of a signal whose action
 is either to execute a signal-catching function or to terminate
 the process.
   </assertion>
   <assertion id="2" tag="ref:XSH6:42433:42435 pt:CX">
-Any other signals that may have been 
+Any other signals that may have been
 pending on the process shall not become pending on the thread.
   </assertion>
   <assertion id="3" tag="ref:XSH6:42436:42436 pt:CX">
@@ -15,22 +15,22 @@
   </assertion>
   <assertion id="4" tag="ref:XSH6:42436:42439 pt:CX">
 sigsuspend( ) shall return after the signal-catching
-function returns, with the signal mask restored 
+function returns, with the signal mask restored
 to the set that existed prior to the sigsuspend()
 call, if the action is to execute a signal-catching function.
   </assertion>
   <assertion id="5" tag="ref:XSH6:42440:42441 pt:CX">
 The system shall enforce, without an error being indicated,
-not being able to block signals that cannot be ignored. 
+not being able to block signals that cannot be ignored.
   </assertion>
   <assertion id="6" tag="ref:XSH6:42443:42444 pt:CX">
-sigsuspend() suspends thread execution indefinitely, and therefore there is no 
-successful completion return value. The value of -1 shall be 
+sigsuspend() suspends thread execution indefinitely, and therefore there is no
+successful completion return value. The value of -1 shall be
 returned and errno set to indicate the error in case of unsuccessful completion.
   </assertion>
   <assertion id="7" tag="ref:XSH6:42446:42448 pt:CX">
-If a signal is caught by the calling process 
-and control is returned from the signal-catching function, 
+If a signal is caught by the calling process
+and control is returned from the signal-catching function,
 the sigsuspend( ) function shall fail if and set errno to EINTR.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/coverage.txt
index cea1964..afa0c77 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigsuspend/coverage.txt
@@ -8,4 +8,4 @@
 5		Already tested in sigignore.
 6		YES
 7		YES
-		
+
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigtimedwait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigtimedwait/assertions.xml
index 9c69a9e..64b521e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigtimedwait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigtimedwait/assertions.xml
@@ -12,7 +12,7 @@
 	the timeout argument, if the Monotonic Clock option is supported.
   </assertion>
   <assertion id="4" tag="ref:XSH6:424506:42508 pt:RTS">
-	sigtimedwait( ) shall return the selected signal number, upon successful completion 
+	sigtimedwait( ) shall return the selected signal number, upon successful completion
   </assertion>
   <assertion id="5" tag="ref:XSH6:42508:42509 pt:RTS">
 	sigtimedwait() shall return a value of -1 upon unsuccessful completion.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigwait/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigwait/assertions.xml
index 82db686..b2cb7de 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigwait/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigwait/assertions.xml
@@ -1,18 +1,18 @@
 <assertions>
   <assertion id="1" tag="def:S:42626:42627 pt:CX">
 The sigwait() function shall select a pending signal from 'set', automatically
-clear it from the system's pending signals, and return that signal number in 
+clear it from the system's pending signals, and return that signal number in
 the location represendted by 'sig'.
   </assertion>
   <assertion id="2" tag="def:S:42627:42632 pt:CX">
-If prior to the call to sigwait() there are multiple pending instances of a 
-single signal number (and it is implementation-defined that the signal number 
-supports queued signals), then the first such queued signal shall cause a 
+If prior to the call to sigwait() there are multiple pending instances of a
+single signal number (and it is implementation-defined that the signal number
+supports queued signals), then the first such queued signal shall cause a
 return from sigwait() and the remainder shall remain queued.
   </assertion>
   <assertion id="3" tag="def:S:42627:42632 pt:CX">
-If prior to the call to sigwait() there are multiple pending instances of a 
-single signal number (and it is implementation-defined that the signal number 
+If prior to the call to sigwait() there are multiple pending instances of a
+single signal number (and it is implementation-defined that the signal number
 DOES NOT support queued signals), then there should be no remaining pending
 signals for that signal number.
   </assertion>
@@ -22,14 +22,14 @@
   </assertion>
   <assertion id="5" tag="def:S:42633:42635 pt:CX">
 The signals defined by 'set' should have been blocked at the time of the call
-to sigwait(); otherwise the behavior is undefined.  The effect of sigwait() on 
+to sigwait(); otherwise the behavior is undefined.  The effect of sigwait() on
 the signal actions for the signals in 'set' is unspecified.
   </assertion>
   <assertion id="6" tag="def:S:42636:42638 pt:CX">
 If more than one thread is using sigwait() to wait for the same signal, no more
 than one of these threads shall return from sigwait() with the signal number.
-Which thread returns from sigwait() is unspecified if the signal is generated 
-for the process; otherwise only the target thread of the signal can receive the 
+Which thread returns from sigwait() is unspecified if the signal is generated
+for the process; otherwise only the target thread of the signal can receive the
 signal.
   </assertion>
   <assertion id="7" tag="def:S:42639:42641 pt:RTS">
@@ -38,11 +38,11 @@
 time and non-realtime signals, or between multiple pending non-realtime signals is unspecified.
   </assertion>
   <assertion id="8" tag="def:S:42642:42645 pt:CX">
-Upon successful completion, sigwait() shall store the signal number of the 
+Upon successful completion, sigwait() shall store the signal number of the
 received signal at the location referenced by 'sig' and return zero.
   </assertion>
   <assertion id="9" tag="def:S:42642:42645 pt:CX">
-Upon unsuccess, sigwait() will return with a non-zero error number to indicate 
+Upon unsuccess, sigwait() will return with a non-zero error number to indicate
 the error.
   </assertion>
   <assertion id="10" tag="def:S:42646:42648 pt:CX">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigwaitinfo/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/sigwaitinfo/assertions.xml
index 61a9613..c142357 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigwaitinfo/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigwaitinfo/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:42491:42491 pt:RTS">
-	The sigwaitinfo ( ) function selects the pending signal from the set specified by set. 
+	The sigwaitinfo ( ) function selects the pending signal from the set specified by set.
   </assertion>
   <assertion id="2" tag="ref:XSH6:42492:42493 pt:RTS">
 	The lowest pending signal should be selected first numbered one, if it is one of multiple
@@ -21,7 +21,7 @@
   </assertion>
   <assertion id="6" tag="ref:XSH6:42498:42500 pt:RTS">
 	If the something other than NULL is specified by the info argument, the sigwaitinfo ( ) function
-	shall be equivalent to sigwait( ), except that the cause of the signal shall be stored in the si_code member. 
+	shall be equivalent to sigwait( ), except that the cause of the signal shall be stored in the si_code member.
   </assertion>
   <assertion id="7" tag="ref:XSH6:42500:42502 pt:RTS">
 	If the info argument is non-NULL, the selected signal's queued value - if any - shall be
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/strftime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/strftime/assertions.xml
index 1fd51b5..c535236 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/strftime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/strftime/assertions.xml
@@ -4,8 +4,8 @@
 in strftime().
 	</assertion>
 	<assertion id="2" tag="ref:XSH6:44060:44102 pt:CX">
-It covers the conversions specifiers that can be modified by the E or O 
-indicate that an alternative format or specification should be used rather 
+It covers the conversions specifiers that can be modified by the E or O
+indicate that an alternative format or specification should be used rather
 than the one normally used by the unmodified conversion specifier (1-1.c).
 	</assertion>
 	<assertion id="3" tag="ref:XSH6:44103:44107 pt:CX">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/strftime/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/strftime/coverage.txt
index 8744b3c..5c2a219 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/strftime/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/strftime/coverage.txt
@@ -2,7 +2,7 @@
 I have commented some of the conversions specifications because there is a bug
 in gcc that complains about them.  Here is a log file of the output:
 
-conformance/interfaces/strftime/1-1: build: FAILED: Compiler output: 
+conformance/interfaces/strftime/1-1: build: FAILED: Compiler output:
 cc1: warnings being treated as errors
 conformance/interfaces/strftime/1-1.c: In function `main':
 conformance/interfaces/strftime/1-1.c:67: warning: `%c' yields only last 2 digits of year in some locales
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/time/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/time/assertions.xml
index 11454c3..579e43e 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/time/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/time/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
 	<assertion id="1" tag="ref:XSH6:46648:46662 pt:CX">
-	time() shall return the value of time in seconds since the 
+	time() shall return the value of time in seconds since the
 	Epoch.  Otherwise shall return -1.
 	</assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/13-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/13-1.sh
index e308865..43fb8d8 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/13-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/13-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/14-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/14-1.sh
index 3125951..6380fd4 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/14-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/14-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/4-1.sh
index c643b7c..f765d3c 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/6-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/6-1.sh
index 9b69d38..c8d8167 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_create/6-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_create/6-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/2-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/2-1.sh
index be425d0..125d7c7 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/2-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/2-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_delete() appears as if it disarms armed timers before
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/3-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/3-1.sh
index 594cb8f..717a20b 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/3-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/3-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_delete() returns 0 on success.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/4-1.sh
index 9fa474c..44d4a57 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_delete() returns -1 on failure.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/assertions.xml
index 23a4b79..7c391e0 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_delete/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="ref:XSH6:46851:46852 pt:TMR">
-   timer_delete() deletes timer, timerid.  [timerid is created by 
+   timer_delete() deletes timer, timerid.  [timerid is created by
    timer_create().]
   </assertion>
   <assertion id="2" tag="ref:XSH6:46852:46854 pt:TMR">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/4-1.sh
index 69d5fc5..ff7eea2 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_getoverrun() returns the overrun count on success.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/5-1.sh
index a9e7b5a..892a972 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/5-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_getoverrun() returns -1 on failure.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/assertions.xml
index b4cad04..829c7ea 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_getoverrun/assertions.xml
@@ -15,7 +15,7 @@
   </assertion>
   <assertion id="3" tag="ref:XSH6:46926:46928 pt:RTS">
    timer_getoverrun() can only return a value up to but not including
-   {DELAYTIMER_MAX}.  If the number of overruns > {DELAYTIMER_MAX}, 
+   {DELAYTIMER_MAX}.  If the number of overruns > {DELAYTIMER_MAX},
    timer_getoverrun() returns {DELAYTIMER_MAX}.
   </assertion>
   <assertion id="4" tag="ref:XSH6:46933:46934">
@@ -25,7 +25,7 @@
    timer_getoverrun() returns -1 on failure
   </assertion>
   <assertion id="6" tag="ref:XSH6TC2:46940:46941">
-   if timerid is not a valid timer ID, timer_getoverrun() may sets 
+   if timerid is not a valid timer ID, timer_getoverrun() may sets
    errno == EINVAL
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/1-3.c b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/1-3.c
index 332aedb..3f416d5 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/1-3.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/1-3.c
@@ -83,7 +83,7 @@
 					itsget.it_value.tv_nsec;
 
 	if (deltans < 0 || deltans > ACCEPTABLEDELTA) {
-		printf("FAIL:  timer_gettime() deltans: %d allowed: %u\n", 
+		printf("FAIL:  timer_gettime() deltans: %d allowed: %u\n",
 			deltans, ACCEPTABLEDELTA);
 		return PTS_FAIL;
 	}
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/4-1.sh
index 06253b2..eeaf1fe 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_gettime() returns 0 on success.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/5-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/5-1.sh
index 473f72a..f3df919 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/5-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/5-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_gettime() returns -1 on failure.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/assertions.xml
index 469b108..b53ccf3 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_gettime/assertions.xml
@@ -18,8 +18,8 @@
    timer_gettime() returns -1 on failure
   </assertion>
   <assertion id="6" tag="ref:XSH6TC2:46940:46941 pt:TMR">
-   If timer ID does not correspond to a valid timer ID (i.e., one created 
-   using timer_create() but not yet deleted with timer_delete()), 
+   If timer ID does not correspond to a valid timer ID (i.e., one created
+   using timer_create() but not yet deleted with timer_delete()),
    timer_gettime() may return errno==EINVAL.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/10-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/10-1.sh
index 9df309e..8818f22 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/10-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/10-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_settime() returns 0 on success.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/11-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/11-1.sh
index 692fc96..d8c0c90 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/11-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/11-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 #
 # Test that timer_settime() returns -1 on failure.
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/4-1.sh b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/4-1.sh
index 3c06015..6591298 100755
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/4-1.sh
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/4-1.sh
@@ -1,8 +1,8 @@
-#!/bin/sh   
+#!/bin/sh
 # Copyright (c) 2002, Intel Corporation. All rights reserved.
 # Created by:  julie.n.fleischer REMOVE-THIS AT intel DOT com
 # This file is licensed under the GPL license.  For the full content
-# of this license, see the COPYING file at the top level of this 
+# of this license, see the COPYING file at the top level of this
 # source tree.
 
 
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/assertions.xml b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/assertions.xml
index fa0dccb..026c8e7 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/assertions.xml
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/assertions.xml
@@ -37,7 +37,7 @@
    - 0, if the timer was previously disarmed
    - previous amount of time before the timer would have expired, if the
      timer was previously armed
-   ovalue.it_interval = 
+   ovalue.it_interval =
    - 0, if the timer was previously disarmed
    - previous timer reload value, if the timer was previously armed
   </assertion>
@@ -51,7 +51,7 @@
    timer_settime() returns -1 on failure
   </assertion>
   <assertion id="12" tag="ref:XSH6TC2:46940:46941">
-   if timerid doesn't = a timer ID created via timer_create() and not yet 
+   if timerid doesn't = a timer ID created via timer_create() and not yet
    deleted by timer_delete(), timer_settime() may set errno=EINVAL
   </assertion>
   <assertion id="13" tag="ref:XSH6:46943:46945">
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/coverage.txt b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/coverage.txt
index 89c02ef..8e6034a 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/coverage.txt
+++ b/testcases/open_posix_testsuite/conformance/interfaces/timer_settime/coverage.txt
@@ -19,7 +19,7 @@
 to get an accurate test.
 
 Possible other items to test:
-assertion 6 - What happens if it_interval < it_value? - Would be easy to 
+assertion 6 - What happens if it_interval < it_value? - Would be easy to
 use code from 6-1 and replace numbers to test this.
 
 May also want to run canned boundary tests on tid values.
diff --git a/testcases/open_posix_testsuite/functional/mqueues/assertions.xml b/testcases/open_posix_testsuite/functional/mqueues/assertions.xml
index 748d915..b062f5d 100644
--- a/testcases/open_posix_testsuite/functional/mqueues/assertions.xml
+++ b/testcases/open_posix_testsuite/functional/mqueues/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="2" tag="pt:MSG" files="mqueues/notify.c">
-   When a message is available on a Queue, process can be notified that and 
+   When a message is available on a Queue, process can be notified that and
    prepare to receive the message.
   </assertion>
   <assertion id="1" tag="pt:MSG" files="mqueues/send_rev_1.c">
@@ -8,7 +8,7 @@
   </assertion>
   <assertion id="3" tag="pt:MSG" files="mqueues/send_rev_2.c">
    Two threads sending/receiving on different message queue, and
-   set different Priority to the messages in the message queue, to 
+   set different Priority to the messages in the message queue, to
    see whether the highest priority is received first.
  </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/functional/mqueues/coverage.txt b/testcases/open_posix_testsuite/functional/mqueues/coverage.txt
index 026d396..acc97e3 100644
--- a/testcases/open_posix_testsuite/functional/mqueues/coverage.txt
+++ b/testcases/open_posix_testsuite/functional/mqueues/coverage.txt
@@ -1,4 +1,4 @@
-This file defines the coverage for Message Queue functional tests.  
+This file defines the coverage for Message Queue functional tests.
 
 Assertion	Covered?
 1		YES
diff --git a/testcases/open_posix_testsuite/functional/mqueues/plan.txt b/testcases/open_posix_testsuite/functional/mqueues/plan.txt
index d67b5fa..892255c 100644
--- a/testcases/open_posix_testsuite/functional/mqueues/plan.txt
+++ b/testcases/open_posix_testsuite/functional/mqueues/plan.txt
@@ -1 +1 @@
-This document defines the plan for functional testing of POSIX message queue. 
+This document defines the plan for functional testing of POSIX message queue.
diff --git a/testcases/open_posix_testsuite/functional/semaphores/assertions.xml b/testcases/open_posix_testsuite/functional/semaphores/assertions.xml
index 8a82510..b47831c 100644
--- a/testcases/open_posix_testsuite/functional/semaphores/assertions.xml
+++ b/testcases/open_posix_testsuite/functional/semaphores/assertions.xml
@@ -9,9 +9,9 @@
 Using semaphore to implement reader and writer problem
   </assertion>
   <assertion id="4" tag="pt:SEM">
-Using semaphore to implement philosopher problem 
+Using semaphore to implement philosopher problem
   </assertion>
   <assertion id="5" tag="pt:SEM">
-Using semaphore to implement sleeping Barber problem 
+Using semaphore to implement sleeping Barber problem
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/functional/semaphores/coverage.txt b/testcases/open_posix_testsuite/functional/semaphores/coverage.txt
index 3205ea3..1b5a08d 100644
--- a/testcases/open_posix_testsuite/functional/semaphores/coverage.txt
+++ b/testcases/open_posix_testsuite/functional/semaphores/coverage.txt
@@ -1,8 +1,8 @@
-This file defines the coverage for Semaphore functional tests.  
+This file defines the coverage for Semaphore functional tests.
 
 Assertion	Covered?
 1		YES
 2		YES
-3		YES	
-4	        YES	
-5		YES	
+3		YES
+4	        YES
+5		YES
diff --git a/testcases/open_posix_testsuite/functional/semaphores/plan.txt b/testcases/open_posix_testsuite/functional/semaphores/plan.txt
index 718a392..3ca746a 100644
--- a/testcases/open_posix_testsuite/functional/semaphores/plan.txt
+++ b/testcases/open_posix_testsuite/functional/semaphores/plan.txt
@@ -1,2 +1,2 @@
-This document defines the plan for functional testing of POSIX Semaphores. 
+This document defines the plan for functional testing of POSIX Semaphores.
 
diff --git a/testcases/open_posix_testsuite/functional/threads/README b/testcases/open_posix_testsuite/functional/threads/README
index 279dbda..a97351c 100644
--- a/testcases/open_posix_testsuite/functional/threads/README
+++ b/testcases/open_posix_testsuite/functional/threads/README
@@ -1,8 +1,8 @@
-Revision History: 
+Revision History:
 2004-06-29	Adam Li.
 
 This sub-directory contains test cases testing functional
-area defined by POSIX. 
+area defined by POSIX.
 It is still open WRT how to organize the test cases clearly.
 For the first steps, we will organize the test cases by
 funtional area (somewhat like POSIX options), or by APIs.
diff --git a/testcases/open_posix_testsuite/functional/threads/include/pitest.h b/testcases/open_posix_testsuite/functional/threads/include/pitest.h
index d8099c6..dd7a48f 100644
--- a/testcases/open_posix_testsuite/functional/threads/include/pitest.h
+++ b/testcases/open_posix_testsuite/functional/threads/include/pitest.h
@@ -29,7 +29,7 @@
 	sched_param.sched_priority = prio;
 	if (pthread_setschedparam(pid, policy, &sched_param) == -1)
 	{
-		EPRINTF("UNRESOLVED: Can't set policy to %d and prio to %d", 
+		EPRINTF("UNRESOLVED: Can't set policy to %d and prio to %d",
 		  	policy, prio);
   	  	exit(UNRESOLVED);
   	}
@@ -60,7 +60,7 @@
 int mutex_init(pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
 {
 	unsigned rc;
-	
+
 	rc = pthread_mutex_init(mutex, attr);
         if (rc != 0) {
                 EPRINTF("UNRESOLVED: pthread_mutex_init: %d %s",
@@ -70,7 +70,7 @@
 	return 0;
 }
 
-static inline 
+static inline
 int threadattr_init(pthread_attr_t *threadattr)
 {
 	unsigned rc;
@@ -82,4 +82,4 @@
         }
 	return 0;
 }
-		
+
diff --git a/testcases/open_posix_testsuite/functional/threads/pi_test/README b/testcases/open_posix_testsuite/functional/threads/pi_test/README
index f831bfc..7dfec9d 100644
--- a/testcases/open_posix_testsuite/functional/threads/pi_test/README
+++ b/testcases/open_posix_testsuite/functional/threads/pi_test/README
@@ -14,8 +14,8 @@
 Building the tests
 -------------------
 If you use the build method outlined in INSTALL-rtnptl, then just
-change the top Makefile and the two Makefile under pi_test and 
-robust_test to include the Makefile.inc generated by INSTALL-rtnptl. 
+change the top Makefile and the two Makefile under pi_test and
+robust_test to include the Makefile.inc generated by INSTALL-rtnptl.
 
 Otherwise, you need to set the CFLAGS and LDFLAGS of the Makefile to
 point to where your copy of glibc+RTNPTL is built.
@@ -64,12 +64,12 @@
 run the pi mutex tests, they need to analyze the output to get the
 PASS or FAIL test result manually. After executing run.sh, the output
 files will be generated with the name output.<testcasename>, such as
-output.pitest-1. 
+output.pitest-1.
 
-If users use run.sh from ssh, to avoid the priority inversion 
-problem happened occasionally, users can use "chrt -p -f $PRIORITY 
-$$PPID" to increase the priority of sshd, if use run.sh from console, 
-users can use "chrt -p -f $PRIORITY $$" to increase the shell priority 
+If users use run.sh from ssh, to avoid the priority inversion
+problem happened occasionally, users can use "chrt -p -f $PRIORITY
+$$PPID" to increase the priority of sshd, if use run.sh from console,
+users can use "chrt -p -f $PRIORITY $$" to increase the shell priority
 before executing run.sh.
 
 A sampling thread will sample the progress of working threads (TL, TPs
@@ -98,7 +98,7 @@
 
 2. Under X term, run:
 	do-plot output.pitest-1
-	
+
 do-plot will invoke 'gnuplot' to generate a diagram showing the
 progress of TL and TP. ('gnuplot has to be installed in the system').
 
diff --git a/testcases/open_posix_testsuite/functional/timers/assertions.xml b/testcases/open_posix_testsuite/functional/timers/assertions.xml
index b2ebc94..5791f6f 100644
--- a/testcases/open_posix_testsuite/functional/timers/assertions.xml
+++ b/testcases/open_posix_testsuite/functional/timers/assertions.xml
@@ -46,7 +46,7 @@
    All possible events can be sent on timer expirations.
   </assertion>
   <assertion id="12" tag="pt:TMR" files="timers/twoevtimers.c">
-   Two timers in one process can expire at the same time, but with 
+   Two timers in one process can expire at the same time, but with
    different events.
   </assertion>
   <assertion id="13" tag="pt:TMR" files="timers/twoptimers.c">
diff --git a/testcases/open_posix_testsuite/include/affinity.h b/testcases/open_posix_testsuite/include/affinity.h
index a078172..2e81ed2 100644
--- a/testcases/open_posix_testsuite/include/affinity.h
+++ b/testcases/open_posix_testsuite/include/affinity.h
@@ -20,7 +20,7 @@
  */
 
 /*
- * Must be ported to OS's other than Linux 
+ * Must be ported to OS's other than Linux
  */
 
 #ifdef __linux__
diff --git a/testcases/open_posix_testsuite/include/mem_pattern.h b/testcases/open_posix_testsuite/include/mem_pattern.h
index f675f8b..9b4de9f 100644
--- a/testcases/open_posix_testsuite/include/mem_pattern.h
+++ b/testcases/open_posix_testsuite/include/mem_pattern.h
@@ -24,7 +24,7 @@
 static int check_mem(void *src, size_t size)
 {
 	unsigned char *ptr = src;
-	
+
 	while (--size > 0) {
 		if (*ptr != ((size % 256) ^ 0x42))
 			return 1;
diff --git a/testcases/open_posix_testsuite/scripts/generate-makefiles.sh b/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
index cf6b76b..9eb3294 100755
--- a/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
+++ b/testcases/open_posix_testsuite/scripts/generate-makefiles.sh
@@ -44,7 +44,7 @@
 	prereq_cache=$*
 
 	# Add all source files to $make_target_prereq_cache.
-	for prereq in $prereq_cache; do 
+	for prereq in $prereq_cache; do
 		# Stuff that needs to be tested.
 		if echo "$prereq" | grep -Eq '\.(run-test|sh)'; then
 			if [ "$tests" != "" ]; then
diff --git a/testcases/open_posix_testsuite/scripts/locate-test b/testcases/open_posix_testsuite/scripts/locate-test
index 723f0a1..27f0bb5 100755
--- a/testcases/open_posix_testsuite/scripts/locate-test
+++ b/testcases/open_posix_testsuite/scripts/locate-test
@@ -7,7 +7,7 @@
 
 usage()
 {
-    cat <<EOF 
+    cat <<EOF
 Usage: $(basename "$0") [OPTIONs] DIRECTORY
 
 Lists the tests (source/binary) available from the DIRECTORY directory
diff --git a/testcases/open_posix_testsuite/stress/mqueues/assertions.xml b/testcases/open_posix_testsuite/stress/mqueues/assertions.xml
index 0b6926e..fdca7d7 100644
--- a/testcases/open_posix_testsuite/stress/mqueues/assertions.xml
+++ b/testcases/open_posix_testsuite/stress/mqueues/assertions.xml
@@ -1,10 +1,10 @@
 <assertions>
   <assertion id="1" tag="pt:MSG" files="mqueues/multi_send_rev_1.c">
-  Test whether message queue can work correctly under lots of usage. 
+  Test whether message queue can work correctly under lots of usage.
   Many threads sending/receiving on different message queues.
   </assertion>
   <assertion id="2" tag="pt:MSG" files="mqueues/multi_send_rev_2.c">
-  Test whether message queue can work correctly under lots of usage. 
+  Test whether message queue can work correctly under lots of usage.
   Many threads sending/receiving on the same message queue.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/stress/mqueues/coverage.txt b/testcases/open_posix_testsuite/stress/mqueues/coverage.txt
index f6ed575..066e585 100644
--- a/testcases/open_posix_testsuite/stress/mqueues/coverage.txt
+++ b/testcases/open_posix_testsuite/stress/mqueues/coverage.txt
@@ -1,4 +1,4 @@
-This file defines the coverage for Message Queue stress tests.  
+This file defines the coverage for Message Queue stress tests.
 
 Assertion	Covered?
 1		YES
diff --git a/testcases/open_posix_testsuite/stress/semaphores/assertions.xml b/testcases/open_posix_testsuite/stress/semaphores/assertions.xml
index 432dee6..3457176 100644
--- a/testcases/open_posix_testsuite/stress/semaphores/assertions.xml
+++ b/testcases/open_posix_testsuite/stress/semaphores/assertions.xml
@@ -1,6 +1,6 @@
 <assertions>
   <assertion id="1" tag="pt:SEM">
-  This is a test about multiple producers and consumers. Producers send data 
+  This is a test about multiple producers and consumers. Producers send data
   to a buffer. Consumers keeps reading data from the buffer.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/stress/semaphores/coverage.txt b/testcases/open_posix_testsuite/stress/semaphores/coverage.txt
index 81d059a..11be8fc 100644
--- a/testcases/open_posix_testsuite/stress/semaphores/coverage.txt
+++ b/testcases/open_posix_testsuite/stress/semaphores/coverage.txt
@@ -1,4 +1,4 @@
-This file defines the coverage for Semaphore stress tests.  
+This file defines the coverage for Semaphore stress tests.
 
 Assertion	Covered?
 1		YES
diff --git a/testcases/open_posix_testsuite/stress/semaphores/plan.txt b/testcases/open_posix_testsuite/stress/semaphores/plan.txt
index 6436699..8749251 100644
--- a/testcases/open_posix_testsuite/stress/semaphores/plan.txt
+++ b/testcases/open_posix_testsuite/stress/semaphores/plan.txt
@@ -1,2 +1,2 @@
-This document defines the plan for stress testing of POSIX Semaphores. 
+This document defines the plan for stress testing of POSIX Semaphores.
 
diff --git a/testcases/open_posix_testsuite/stress/threads/assertions.xml b/testcases/open_posix_testsuite/stress/threads/assertions.xml
index bf64e0c..1647389 100644
--- a/testcases/open_posix_testsuite/stress/threads/assertions.xml
+++ b/testcases/open_posix_testsuite/stress/threads/assertions.xml
@@ -1,24 +1,24 @@
 <assertions>
   <assertion id="1" files="pthread_mutex_init/stress.c" tag="pt:THR">
-Mutex initialization and destruction duration does not depend on the number of mutex in use in the system -- for any type of mutex. 
+Mutex initialization and destruction duration does not depend on the number of mutex in use in the system -- for any type of mutex.
   </assertion>
   <assertion id="2" files="pthread_mutex_init/s-c.c" tag="pt:THR">
-Mutex initialization then destruction does not consume any system resource (memory leak, ...) -- for any type of mutex. 
+Mutex initialization then destruction does not consume any system resource (memory leak, ...) -- for any type of mutex.
   </assertion>
   <assertion id="3" files="pthread_mutex_lock/stress.c" tag="pt:THR">
-With a large amount of threads contending for some mutexes (of several types) with pthread_mutex_lock, pthread_mutex_trylock and pthread_mutex_timedlock, there is never more than one thread owning the same mutex at the same time. 
+With a large amount of threads contending for some mutexes (of several types) with pthread_mutex_lock, pthread_mutex_trylock and pthread_mutex_timedlock, there is never more than one thread owning the same mutex at the same time.
   </assertion>
   <assertion id="4" files="pthread_mutex_lock/s-c1.c" tag="pt:THR">
-There is no limit on the number of threads waiting to own the same mutex. 
+There is no limit on the number of threads waiting to own the same mutex.
   </assertion>
   <assertion id="5" files="pthread_mutex_lock/s-c1.c" tag="pt:THR">
-There is no limit on the number of different mutex having threads contending, at the same time. 
+There is no limit on the number of different mutex having threads contending, at the same time.
   </assertion>
   <assertion id="6" files="pthread_cond_init/s-c.c" tag="pt:THR">
-Condvar initialization then destruction does not consume any system resource -- for any kind of condvar. 
+Condvar initialization then destruction does not consume any system resource -- for any kind of condvar.
   </assertion>
   <assertion id="7" files="pthread_cond_init/stress.c" tag="pt:THR">
-Condvar Initialization and destruction duration does not depend on the number of condvars in use in the system -- for any kind of condvar. 
+Condvar Initialization and destruction duration does not depend on the number of condvars in use in the system -- for any kind of condvar.
   </assertion>
   <assertion id="8" files="pthread_cond_timedwait/s-c.c" tag="pt:THR">
 Latency between pthread_cond_timedwait timeout parameter and function actual return does not depend on the number of threads waiting on the condvar -- whatever kind of condvar.
@@ -48,7 +48,7 @@
 The process creation time in a fork() does not depend on the number of processes already created in the system.
   </assertion>
   <assertion id="16" files="pthread_once/stress.c" tag="pt:THR">
-The init_routine argument of pthread_once is never called 
+The init_routine argument of pthread_once is never called
 more or less than once.
   </assertion>
   <assertion id="17" files="pthread_getschedparam/stress.c" tag="pt:THR">
@@ -58,7 +58,7 @@
 Heavy signal delivery with pthread_kill() does not break the system, and no unpending signal get lost.
   </assertion>
   <assertion id="19" files="pthread_cancel/stress.c" tag="pt:THR">
-Heavy cancelation does not break the system or the application. 
+Heavy cancelation does not break the system or the application.
   </assertion>
   <assertion id="20" files="sem_open/s-c1.c" tag="pt:SEM">
 The sem_open and sem_close duration does not depend on the number of opened
@@ -69,7 +69,7 @@
 unnamed semaphores.
   </assertion>
   <assertion id="22" files="sem_getvalue/stress.c" tag="pt:SEM">
-The sem_getvalue always returns the value of the semaphore at a given time 
+The sem_getvalue always returns the value of the semaphore at a given time
 during the call into the sval argument.
   </assertion>
 </assertions>
diff --git a/testcases/open_posix_testsuite/stress/threads/fork/NOTES b/testcases/open_posix_testsuite/stress/threads/fork/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/fork/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/fork/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/fork/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/fork/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/fork/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/fork/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cancel/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_cancel/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cancel/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cancel/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cancel/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_cancel/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cancel/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cancel/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/NOTES
index 28ddbed..d65460c 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/testfrmw.h
index 3de6c02..15ab516 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cond_init/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -42,34 +42,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/NOTES
index 873ae72..05de1c5 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/NOTES
@@ -33,16 +33,16 @@
 c. ./do-plot data
 This script will use gnuplot to create a png file named scalable.png.
 
-(If your gnuplot does not support png terminal, just remove 
+(If your gnuplot does not support png terminal, just remove
 set term png
 set output "scalable.png"
 from the do-plot script).
 
 Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/testfrmw.h
index 3de6c02..15ab516 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cond_timedwait/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -42,34 +42,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_cond_wait/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_cond_wait/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_cond_wait/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_cond_wait/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_create/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_create/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_create/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_create/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_create/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_create/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_create/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_create/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_exit/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_exit/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_exit/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_exit/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_exit/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_exit/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_exit/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_exit/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_getschedparam/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_kill/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_kill/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_kill/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_kill/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_kill/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_kill/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_kill/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_kill/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/NOTES
index 28ddbed..d65460c 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/testfrmw.h
index 3de6c02..15ab516 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_init/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -42,34 +42,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/NOTES
index 28ddbed..d65460c 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/testfrmw.h
index 3de6c02..15ab516 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_lock/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -42,34 +42,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/NOTES
index 28ddbed..d65460c 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_mutex_trylock/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_once/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_once/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_once/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_once/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_once/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_once/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_once/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_once/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_self/NOTES b/testcases/open_posix_testsuite/stress/threads/pthread_self/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_self/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_self/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/pthread_self/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/pthread_self/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/pthread_self/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/pthread_self/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/sem_getvalue/NOTES b/testcases/open_posix_testsuite/stress/threads/sem_getvalue/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/sem_getvalue/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/sem_getvalue/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/sem_getvalue/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/sem_getvalue/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/sem_getvalue/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/sem_getvalue/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/sem_init/NOTES b/testcases/open_posix_testsuite/stress/threads/sem_init/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/sem_init/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/sem_init/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/sem_init/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/sem_init/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/sem_init/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/sem_init/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/threads/sem_open/NOTES b/testcases/open_posix_testsuite/stress/threads/sem_open/NOTES
index 8bee2e8..98f9639 100644
--- a/testcases/open_posix_testsuite/stress/threads/sem_open/NOTES
+++ b/testcases/open_posix_testsuite/stress/threads/sem_open/NOTES
@@ -27,7 +27,7 @@
 Compilation under AIX5L
 cc -o <bin> -lpthread <source>
   same comment as above
-  
+
 Compilation under Solaris 9 (gcc: http://www.sunfreeware.com)
 gcc -std=gnu99 -lpthread -lrt  -o <bin> <source>
   same comment as above.
@@ -42,10 +42,10 @@
 etc... according to each case.
 
 -> Stress tests will run until they are killed with SIGUSR1 (or they
-fail). Currently, I do 
+fail). Currently, I do
 $> ./stress &
 and then after a while
-$> kill -USR1 <pid> 
+$> kill -USR1 <pid>
 or
 $> for PR in `ps o pid --no-headers -Cstress`; \
    do echo Sending SIGUSR1 to pid $PR...; \
diff --git a/testcases/open_posix_testsuite/stress/threads/sem_open/testfrmw.h b/testcases/open_posix_testsuite/stress/threads/sem_open/testfrmw.h
index 2d17f1d..8963cf8 100644
--- a/testcases/open_posix_testsuite/stress/threads/sem_open/testfrmw.h
+++ b/testcases/open_posix_testsuite/stress/threads/sem_open/testfrmw.h
@@ -14,25 +14,25 @@
  * with this program; if not, write the Free Software Foundation, Inc., 59
  * Temple Place - Suite 330, Boston MA 02111-1307, USA.
  *
- 
- 
+
+
  * This file is a wrapper to use the tests from the NPTL Test & Trace Project
  * with either the Linux Test Project or the Open POSIX Test Suite.
- 
+
  * The following macros are defined here:
- * UNRESOLVED(ret, descr);  
+ * UNRESOLVED(ret, descr);
  *    where descr is a description of the error and ret is an int (error code for example)
  * FAILED(descr);
  *    where descr is a short text saying why the test has failed.
  * PASSED();
  *    No parameter.
- * 
- * Both three macros shall terminate the calling process. 
+ *
+ * Both three macros shall terminate the calling process.
  * The testcase shall not terminate without calling one of those macros.
- * 
- * 
+ *
+ *
  */
- 
+
 #include "posixtest.h"
 #include <string.h> /* for the strerror() routine */
 
@@ -43,34 +43,34 @@
  { output("Test %s unresolved: got %i (%s) on line %i (%s)\n", __FILE__, x, strerror(x), __LINE__, s); \
  	output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test %s FAILED: %s\n", __FILE__, s); \
  	output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
-  
+
  #define UNTESTED(s) \
 {	output("File %s cannot test: %s\n", __FILE__, s); \
 	  output_fini(); \
   exit(PTS_UNTESTED); \
 }
-  
+
 #else /* not using GCC */
 
   #define UNRESOLVED(x, s) \
  { output("Test unresolved: got %i (%s) on line %i (%s)\n", x, strerror(x), __LINE__, s); \
   output_fini(); \
  	exit(PTS_UNRESOLVED); }
- 	
+
  #define FAILED(s) \
  { output("Test FAILED: %s\n", s); \
   output_fini(); \
  	exit(PTS_FAIL); }
- 	
+
  #define PASSED \
   output_fini(); \
   exit(PTS_PASS);
diff --git a/testcases/open_posix_testsuite/stress/timers/keytests.sh b/testcases/open_posix_testsuite/stress/timers/keytests.sh
index b90e91d..80af246 100755
--- a/testcases/open_posix_testsuite/stress/timers/keytests.sh
+++ b/testcases/open_posix_testsuite/stress/timers/keytests.sh
@@ -28,7 +28,7 @@
 		timer_settime/9-1.test \
 		timer_settime/9-2.test \
 		timer_settime/13-1.test"
-		#timer_getoverrun/2-3.test 
+		#timer_getoverrun/2-3.test
 
 currdir=`pwd`
 basedir=$currdir/../../
diff --git a/testcases/open_posix_testsuite/tools/t0.c b/testcases/open_posix_testsuite/tools/t0.c
index d8ac328..bd1016c 100644
--- a/testcases/open_posix_testsuite/tools/t0.c
+++ b/testcases/open_posix_testsuite/tools/t0.c
@@ -122,7 +122,7 @@
 		else if (WIFSIGNALED(status))
 			exit(WTERMSIG(status) + 128);
 
-	}	
+	}
 
 	exit(1);
 }
diff --git a/testcases/realtime/README b/testcases/realtime/README
index 269a75f..5f4c72a 100644
--- a/testcases/realtime/README
+++ b/testcases/realtime/README
@@ -30,8 +30,8 @@
 
 DEPENDENCIES
 ============
-The testsuite expects glibc ("C" library) (version 2.4 onwards) and 
-the underlying kernel (version 2.6.18 onwards) to support 
+The testsuite expects glibc ("C" library) (version 2.4 onwards) and
+the underlying kernel (version 2.6.18 onwards) to support
 Robust and Priority Inheritance (PI) Mutexes.
 
 Most of the tests need the user to have a privileges that allow
diff --git a/testcases/realtime/func/gtod_latency/gtod_infinite.c b/testcases/realtime/func/gtod_latency/gtod_infinite.c
index 7615d97..eee8a79 100644
--- a/testcases/realtime/func/gtod_latency/gtod_infinite.c
+++ b/testcases/realtime/func/gtod_latency/gtod_infinite.c
@@ -193,6 +193,6 @@
 
 		}
 	}
-	
+
 	return 0;
 }
diff --git a/testcases/realtime/func/pi-tests/run_auto.sh b/testcases/realtime/func/pi-tests/run_auto.sh
index fcc243c..d130260 100755
--- a/testcases/realtime/func/pi-tests/run_auto.sh
+++ b/testcases/realtime/func/pi-tests/run_auto.sh
@@ -23,7 +23,7 @@
 
 export LOG_FILE="$LOG_DIR/$LOG_FORMAT-testpi-4.log"
 $SCRIPTS_DIR/run_c_files.sh $profile testpi-4
-PYTHONPATH=../../  python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE 
+PYTHONPATH=../../  python parse-testpi1.py $LOG_FILE 2>&1 | tee -a $LOG_FILE
 
 
 export LOG_FILE=""
diff --git a/testcases/realtime/include/librttest.h b/testcases/realtime/include/librttest.h
index 6410e86..f6fd6b8 100644
--- a/testcases/realtime/include/librttest.h
+++ b/testcases/realtime/include/librttest.h
@@ -65,7 +65,7 @@
 extern char *optarg;
 
 #define _MAXTHREADS 256
-#define CALIBRATE_LOOPS 100000 
+#define CALIBRATE_LOOPS 100000
 unsigned long iters_per_us;
 
 #define NS_PER_MS 1000000
@@ -218,7 +218,7 @@
  *                        handled = 0;
  *                }
  *                return handled;
- *            }           
+ *            }
  * argc: passed from main
  * argv: passed from main
  */
@@ -250,7 +250,7 @@
 
 /* create_other_thread: spawn a SCHED_OTHER thread
  * func as the thread function with arg as it's parameter.
- * func: 
+ * func:
  * arg: argument to func
  */
 int create_other_thread(void*(*func)(void*), void *arg);
@@ -294,7 +294,7 @@
  */
 void ts_normalize(struct timespec *ts);
 
-/* convert nanoseconds to a timespec 
+/* convert nanoseconds to a timespec
  * ts must not be null
  */
 void nsec_to_ts(nsec_t ns, struct timespec *ts);
diff --git a/testcases/realtime/profiles/default b/testcases/realtime/profiles/default
index 0c1061a..7613500 100644
--- a/testcases/realtime/profiles/default
+++ b/testcases/realtime/profiles/default
@@ -16,7 +16,7 @@
 # for local or global runs (<RT_TESTS_ROOT>/run.sh or <TESTDIR>/run_auto.sh)
 #
 
-# Pass if maximum time for signaled thread to be scheduled is less 
+# Pass if maximum time for signaled thread to be scheduled is less
 # than threshold (us).
 # Default threshold=100 us
 func/async_handler		async_handler -c 100
diff --git a/testcases/realtime/run.sh b/testcases/realtime/run.sh
index f3b7d06..abef809 100755
--- a/testcases/realtime/run.sh
+++ b/testcases/realtime/run.sh
@@ -107,7 +107,7 @@
 		usage
 		exit 1
 	fi
-}	
+}
 
 make_clean()
 {
@@ -208,10 +208,10 @@
 		tests[$index]="$OPTARG"
 		: $((index += 1 ))
 		TESTCASE="$OPTARG"
-		ISLOOP=1		
+		ISLOOP=1
 		;;
 
-	l ) 
+	l )
 		ISLOOP=0
 		tests[$index]="$OPTARG"
 		LOOP="$OPTARG"
@@ -221,7 +221,7 @@
 		profile=$OPTARG
 		;;
 	h )
-		usage	
+		usage
 		;;
 	* ) echo "Unrecognized option specified"
 		usage
diff --git a/testcases/realtime/scripts/run_c_files.sh b/testcases/realtime/scripts/run_c_files.sh
index 04604ae..3ab52ec 100755
--- a/testcases/realtime/scripts/run_c_files.sh
+++ b/testcases/realtime/scripts/run_c_files.sh
@@ -41,7 +41,7 @@
 			fi
 			[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
 
-			( 
+			(
 				echo "--- Running testcase $cmd $params ---"
 				date
 				echo "Logging to $LOG_FILE"
diff --git a/testscripts/Readme_ROBind b/testscripts/Readme_ROBind
index 757c3ad..2f961d4 100644
--- a/testscripts/Readme_ROBind
+++ b/testscripts/Readme_ROBind
@@ -1,4 +1,4 @@
-The ReadOnly Bind mount tests, uses the filesystems tests from 
+The ReadOnly Bind mount tests, uses the filesystems tests from
 the {LTPROOT}/testcases/kernel/fs .
 
 EXECUTING TESTS
@@ -11,7 +11,7 @@
 
 IOGEN & DOIO
    |
-    ----- iogen 
+    ----- iogen
    |
     ----- doio
    |
@@ -42,20 +42,20 @@
 Growfiles
 --------
 Growfiles will create and truncate files in gradual steps using write and lseek.
-The system calls are checked for proper returns. 
+The system calls are checked for proper returns.
 
 FS_INOD
 ============
 
 File system stress - inode allocation/deallocation.
-Rapidly creates and deletes files through multiple processes running in the 
-background.  
+Rapidly creates and deletes files through multiple processes running in the
+background.
 
 
 LINKTEST
 ===========
 
-Linktest.pl is a simple test that attempts to create a given number of hard 
+Linktest.pl is a simple test that attempts to create a given number of hard
 links and symbolic links to a single file.
 
 
@@ -69,7 +69,7 @@
 
 Does the File system managment and I/O functions work.
 This Construct a directory tree, create files in it, and verify
-that this was done as expected. It uses the syscalls mkdir, stat, open 
+that this was done as expected. It uses the syscalls mkdir, stat, open
 
 
 STREAM
@@ -81,8 +81,8 @@
 
 FTEST
 =========
-Tests the file I/O, Inodes. 
-Uses the syscalls 
+Tests the file I/O, Inodes.
+Uses the syscalls
  * lseek, read, write,  truncate, ftruncate, fsync, sync, fstat
  * open, close, unlink, chdir, readv, writev, lseek64, llseek
 
@@ -98,7 +98,7 @@
 =============
 
 This test verifies that writes to disk occur without corruption.
-Once done , the file is re-opened, the random number generator 
+Once done , the file is re-opened, the random number generator
 is re-seeded, and the file is verified.
 
 IOCTL
diff --git a/testscripts/adp.sh b/testscripts/adp.sh
index c206729..d22bf8f 100755
--- a/testscripts/adp.sh
+++ b/testscripts/adp.sh
@@ -13,7 +13,7 @@
 
   OPTIONS
     -h    display this message and exit
-    -d    delay for top, in seconds 
+    -d    delay for top, in seconds
     -n    number of iterations for top
 EOF
 }
@@ -75,7 +75,7 @@
 	./adp_test.sh &
 done
 
-echo "Starting 'top', redirecting output to 'adp.log'..." 
+echo "Starting 'top', redirecting output to 'adp.log'..."
 top -b -d $delay -n $iterations > adp.log &
 
 echo "LTP ADP Test done. Killing processes..."
diff --git a/testscripts/autofs1.sh b/testscripts/autofs1.sh
index 9fa2fa0..ac4ffe1 100755
--- a/testscripts/autofs1.sh
+++ b/testscripts/autofs1.sh
@@ -73,17 +73,17 @@
 		echo "FAILED: Usage $0 <block special disk_partition>"
 		exit 1
 	fi
-	mkfs -t ext2 $disk_partition 
+	mkfs -t ext2 $disk_partition
 fi
 
-rpm -q -a | grep autofs 
+rpm -q -a | grep autofs
 if [ $? != 0 ]
 then
 	echo "FAILED: autofs package is not installed"
 	exit 1
 fi
 
-grep autofs /proc/filesystems 
+grep autofs /proc/filesystems
 if [ $? != 0 ]
 then
 	echo "FAILED: autofs module is not built into the kernel or loaded"
@@ -107,12 +107,12 @@
 
 if [ $floppy_dev != "" ]
 then
-	/sbin/mkfs -t ext2 $floppy_dev 
+	/sbin/mkfs -t ext2 $floppy_dev
 	if [ $? != 0 ]
 	then
 		echo "FAILED: mkfs -t ext2 $floppy_dev failed"
 		echo "Insert a disk into the floppy drive"
-		exit 1 
+		exit 1
 	fi
 fi
 
@@ -134,7 +134,7 @@
 #
 ##############################################################
 
-/etc/init.d/autofs start 
+/etc/init.d/autofs start
 if [ $? != 0 ]
 then
 	rm -rf /etc/auto.master /etc/auto.media /AUTOFS
@@ -144,22 +144,22 @@
 echo "Resuming test, please wait..."
 sleep 15
 
-/etc/init.d/autofs stop 
+/etc/init.d/autofs stop
 if [ $? != 0 ]
 then
 	rm -rf /etc/auto.master /etc/auto.media /AUTOFS
 	echo "FAILED: "/etc/init.d/autofs stop""
 	exit 1
 else
-	/etc/init.d/autofs start 
+	/etc/init.d/autofs start
 fi
 echo "Resuming test, please wait..."
 sleep 15
 
-/etc/init.d/autofs restart 
+/etc/init.d/autofs restart
 if [ $? != 0 ]
 then
-	/etc/init.d/autofs stop 
+	/etc/init.d/autofs stop
 	rm -rf /etc/auto.master /etc/auto.media /AUTOFS
 	echo "FAILED: "/etc/init.d/autofs restart""
 	exit 1
@@ -167,19 +167,19 @@
 echo "Resuming test, please wait..."
 sleep 15
 
-/etc/init.d/autofs status 
+/etc/init.d/autofs status
 if [ $? != 0 ]
 then
-	/etc/init.d/autofs stop 
+	/etc/init.d/autofs stop
 	rm -rf /etc/auto.master /etc/auto.media /AUTOFS
 	echo "FAILED: "/etc/init.d/autofs status""
 	exit 1
 fi
 
-/etc/init.d/autofs reload 
+/etc/init.d/autofs reload
 if [ $? != 0 ]
 then
-	/etc/init.d/autofs stop 
+	/etc/init.d/autofs stop
 	rm -rf /etc/auto.master /etc/auto.media /AUTOFS
 	echo "FAILED: "/etc/init.d/autofs reload""
 	exit 1
@@ -199,16 +199,16 @@
 
 echo "forcing error paths and conditions..."
 
-mkdir /AUTOFS/MEDIA/mydir 2>&1 > /dev/null 
-rm -rf /AUTOFS 2>&1 > /dev/null 
+mkdir /AUTOFS/MEDIA/mydir 2>&1 > /dev/null
+rm -rf /AUTOFS 2>&1 > /dev/null
 
 mkdir /AUTOFS/MEDIA/floppy/test
 cp /etc/auto.master /etc/auto.media /AUTOFS/MEDIA/floppy/test
 sync; sync
 echo "Resuming test, please wait..."
 sleep 60
-mkdir /AUTOFS/MEDIA/mydir 2>&1 > /dev/null  
-rm -rf /AUTOFS            2>&1 > /dev/null  
+mkdir /AUTOFS/MEDIA/mydir 2>&1 > /dev/null
+rm -rf /AUTOFS            2>&1 > /dev/null
 
 
 ##############################################################
@@ -219,7 +219,7 @@
 
 echo "/AUTOFS/DISK	/etc/auto.disk" >> /etc/auto.master
 echo "disk		-fstype=auto,rw,sync	:$disk_partition " > /etc/auto.disk
-/etc/init.d/autofs reload 
+/etc/init.d/autofs reload
 echo "Resuming test, please wait..."
 sleep 30
 
@@ -233,20 +233,20 @@
 
 
 if [ -e  /AUTOFS/DISK/disk/test ]; then
-  cd /AUTOFS/DISK/disk/test 
+  cd /AUTOFS/DISK/disk/test
   umount /AUTOFS/DISK/disk/ 2>&1 > /dev/null
   if [ $? = 0 ]
     then
-	/etc/init.d/autofs stop 
+	/etc/init.d/autofs stop
 	rm -rf /etc/auto.master /etc/auto.media /etc/auto.disk /AUTOFS
 	echo "FAILED: unmounted a busy file system!"
 	exit 1
   fi
-  cd 
-  umount /AUTOFS/DISK/disk/ 
+  cd
+  umount /AUTOFS/DISK/disk/
 if [ $? != 0 ]
   then
-	/etc/init.d/autofs stop 
+	/etc/init.d/autofs stop
 	rm -rf /etc/auto.master /etc/auto.media /etc/auto.disk /AUTOFS
 	echo "FAILED: Could not unmount automounted file system"
 	exit 1
@@ -267,7 +267,7 @@
 #
 #######################################################
 
-/etc/init.d/autofs stop 
+/etc/init.d/autofs stop
 rm -rf /etc/auto.master /etc/auto.media /etc/auto.disk /AUTOFS
 echo "PASSED: $0 passed!"
 exit 0
diff --git a/testscripts/autofs4.sh b/testscripts/autofs4.sh
index 0527db2..3249325 100755
--- a/testscripts/autofs4.sh
+++ b/testscripts/autofs4.sh
@@ -218,7 +218,7 @@
 echo "Resuming test, please wait..."
 sleep 60
 
-cd /AUTOFS/DISK/disk/test 
+cd /AUTOFS/DISK/disk/test
 umount /AUTOFS/DISK/disk/ 2>&1 > /dev/null
 if [ $? = 0 ]
 then
@@ -227,7 +227,7 @@
 	echo "FAILED: unmounted a busy file system!"
 	exit 1
 fi
-cd 
+cd
 
 umount /AUTOFS/DISK/disk/ 2>&1 > /dev/null
 if [ $? != 0 ]
diff --git a/testscripts/build/test_out_of_build_tree.sh b/testscripts/build/test_out_of_build_tree.sh
index 50057db..275a68a 100755
--- a/testscripts/build/test_out_of_build_tree.sh
+++ b/testscripts/build/test_out_of_build_tree.sh
@@ -47,5 +47,5 @@
 # i.   Is srcdir still there (should be)?
 # ii.  Is builddir there (shouldn't be)?
 # iii. Is $DESTDIR/$prefix there (shouldn't be)?
-clean_is_sane "$srcdir" "$tmp_builddir" "$("$abspath" "$tmp_destdir/$tmp_prefix")" 
+clean_is_sane "$srcdir" "$tmp_builddir" "$("$abspath" "$tmp_destdir/$tmp_prefix")"
 [ -d "$srcdir" -a ! -d "$tmp_builddir" -a ! -d "$tmp_destdir/$tmp_prefix" ]
diff --git a/testscripts/diskio.sh b/testscripts/diskio.sh
index 48a8b6e..5d25030 100755
--- a/testscripts/diskio.sh
+++ b/testscripts/diskio.sh
@@ -8,7 +8,7 @@
 # NOTE: The stress_floppy test is easily modifiable for use on any
 #       write device, i.e. tape drive, zip drive....etc
 #
-    
+
 cd `dirname $0`
 
 export LTPROOT=${PWD}
@@ -24,7 +24,7 @@
 cd /tmp/diskiopan-$$
 
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
- 
+
 ${LTPROOT}/ver_linux
 
 ${LTPROOT}/bin/ltp-pan -e -l /tmp/diskiopan.log -S -a ltpdiskio -n ltpdiskio -f ${LTPROOT}/runtest/io_floppy -f ${LTPROOT}/runtest/io_cd
diff --git a/testscripts/isofs.sh b/testscripts/isofs.sh
index 0162f88..f85258d 100755
--- a/testscripts/isofs.sh
+++ b/testscripts/isofs.sh
@@ -32,7 +32,7 @@
 #      06/27/2003 Prakash Narayana (prakashn@us.ibm.com)
 #      07/28/2005 Michael Reed (mreed10@us.ibm.com)
 #      - Changed the directory where the filesytems were being created
-#        from /etc to copying /etc to /tmp/for_isofs_test/etc and 
+#        from /etc to copying /etc to /tmp/for_isofs_test/etc and
 #        creating the file systems there
 #      - Added the -n option to not remove the directories created for
 #        debugging purposes
@@ -130,7 +130,7 @@
 	"-allow-lowercase -allow-multidot -iso-level 3 -f -l -D -J -L -R"
 do
         echo "Running mkisofs -o isofs.iso -quiet $mkisofs_opt $MAKE_FILE_SYS_DIR  Command"
-	mkisofs -o isofs.iso -quiet $mkisofs_opt $MAKE_FILE_SYS_DIR 
+	mkisofs -o isofs.iso -quiet $mkisofs_opt $MAKE_FILE_SYS_DIR
 	if [ $? != 0 ]
 	then
 		rm -rf isofs.iso $MNT_POINT
diff --git a/testscripts/ltp-aiodio.sh b/testscripts/ltp-aiodio.sh
index 103b291..2bd5dbf 100755
--- a/testscripts/ltp-aiodio.sh
+++ b/testscripts/ltp-aiodio.sh
@@ -3,9 +3,9 @@
 # A valid large file should be passed to the test.
 # These tests will only run correctly if the kernel and libaio has been compiled
 # with at least a 3.3.X GCC. Older versions of the compiler will seg fault.
-# 
-# 02/08/04 mridge@us.ibm.com 
-# 
+#
+# 02/08/04 mridge@us.ibm.com
+#
 # 04/12/06 a Forth scenerio file has been added ltp-aiodio.part4
 #
 
@@ -25,7 +25,7 @@
 runExtendedStress=0
 
 export TMPBASE="/tmp"
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -f large_filename -b partition] [-o optional partition] [-e 1] [-t 1] [-j 1] [-x 1] or [-a 1]
@@ -53,8 +53,8 @@
           but there is not a default filesystem. ReiserFS does not support AIO so these tests will not support ReiserFS.
 
         - WARNING !! The partition you pass will be overwritten. This is a destructive test so only pass a partition where data can be destroyed.
-          
-        
+
+
 
 	END
 exit
@@ -70,7 +70,7 @@
 		x)	xfs=$OPTARG;;
 		j)	jfs=$OPTARG;;
 		a)	allfs=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
@@ -131,9 +131,9 @@
   usage;
 fi
 
-mkdir $TMP  > /dev/null 2>&1 
-mkdir $TMP/aiodio > /dev/null  2>&1 
-mkdir $TMP/aiodio2 > /dev/null  2>&1 
+mkdir $TMP  > /dev/null 2>&1
+mkdir $TMP/aiodio > /dev/null  2>&1
+mkdir $TMP/aiodio2 > /dev/null  2>&1
 
 while [ "$runTest" -lt "$run0" ]
 do
@@ -142,7 +142,7 @@
 
 if [ -n "$ext2" -a $nextTest -eq 0 ]; then
   echo "***************************"
-  echo "* Testing ext2 filesystem *" 
+  echo "* Testing ext2 filesystem *"
   echo "***************************"
   mkfs -t ext2 $part1
   mount -t ext2 $part1 $TMP/aiodio
@@ -227,7 +227,7 @@
 dd if=$file1 of=$TMP/aiodio/junkfile bs=8192 conv=block,sync
 
 date
-echo "************ Running aio-stress tests " 
+echo "************ Running aio-stress tests "
 echo "current working dir = ${PWD}"
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltp-aio-stress.part1 > ${TMPBASE}/ltp-aio-stress.part1
 
@@ -240,7 +240,7 @@
 echo ""
 
 if [ "$runExtendedStress" -eq 1 ];then
-echo "************ Running EXTENDED aio-stress tests " 
+echo "************ Running EXTENDED aio-stress tests "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltp-aio-stress.part2 > ${TMPBASE}/ltp-aio-stress.part2
 
 ${LTPROOT}/bin/ltp-pan -e -S -a ltpaiostresspart2 -n ltp-aiostresspart2 -l ltpaiostress.logfile -o ltpaiostress.outfile -p -f ${TMPBASE}/ltp-aio-stress.part2 &
@@ -255,7 +255,7 @@
 dd if=$file1 of=$TMP/aiodio/ff2      bs=1024 conv=block,sync
 dd if=$file1 of=$TMP/aiodio/ff3      bs=512  conv=block,sync
 
-echo "************ Running aiocp tests " 
+echo "************ Running aiocp tests "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltp-aiodio.part1 > ${TMPBASE}/ltp-aiodio.part1
 
 ${LTPROOT}/bin/ltp-pan -e -S -a ltpaiodiopart1 -n ltp-aiodiopart1 -l ltpaiodio1.logfile -o ltpaiodio1.outfile -p -f ${TMPBASE}/ltp-aiodio.part1 &
@@ -265,7 +265,7 @@
 echo "************ End Running aiocp tests "
 echo ""
 
-echo "************ Running aiodio_sparse tests " 
+echo "************ Running aiodio_sparse tests "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltp-aiodio.part2 > ${TMPBASE}/ltp-aiodio.part2
 
 ${LTPROOT}/bin/ltp-pan -e -S -a ltpaiodiopart2 -n ltp-aiodiopart2 -l ltpaiodio2.logfile -o ltpaiodio2.outfile -p -f ${TMPBASE}/ltp-aiodio.part2 &
@@ -295,7 +295,7 @@
 
 
 
- 
+
 echo "************ Running dio_sparse & miscellaneous tests "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/ltp-aiodio.part4 > ${TMPBASE}/ltp-aiodio.part4
 ${LTPROOT}/bin/ltp-pan -e -S -a ltpaiodiopart4 -n ltp-aiodiopart4 -l ltpaiodio4.logfile -o ltpaiodio4.outfile -p -f ${TMPBASE}/ltp-aiodio.part4 &
@@ -305,7 +305,7 @@
 echo "************ End Running dio_sparse & miscellaneous tests "
 echo ""
 
-echo "************ Cleaning/Umounting" 
+echo "************ Cleaning/Umounting"
 
 rm -f $TMP/aiodio/fff
 rm -f $TMP/aiodio/ff1
diff --git a/testscripts/ltp-scsi_debug.sh b/testscripts/ltp-scsi_debug.sh
index 67b2780..fc3cec3 100755
--- a/testscripts/ltp-scsi_debug.sh
+++ b/testscripts/ltp-scsi_debug.sh
@@ -47,7 +47,7 @@
 fi
 
 
-echo "Remove the scsi_debug device..." 
+echo "Remove the scsi_debug device..."
 dev_name=$(ls /proc/scsi/scsi_debug)
 # echo $dev_name
 rm_dev=$dev_name:0:0:0
@@ -79,7 +79,7 @@
 if [ $num_host -ne 2 ];
 then
 	echo "The new host was not added - add host error"
-else 
+else
 	echo "The new host was added successfully"
 fi
 
@@ -104,7 +104,7 @@
 fi
 
 echo "Load scsi_debug with multiple hosts..."
-modprobe scsi_debug max_luns=2 num_tgts=2 add_host=2 dev_size_mb=20 
+modprobe scsi_debug max_luns=2 num_tgts=2 add_host=2 dev_size_mb=20
 lsmod | grep scsi_debug > /dev/null 2>&1
 if [ $? -eq 0 ];
 then
@@ -158,7 +158,7 @@
 
 export TMPBASE="/tmp"
 
-# check if the newly created scsi_debug partitions are in /proc/partitions file 
+# check if the newly created scsi_debug partitions are in /proc/partitions file
 check_count=$(cat /proc/partitions | wc -l)
 save_count=$(( $check_count - $orig_count ))
 if [ $save_count -lt 4 ]; then
@@ -180,33 +180,33 @@
 
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
 
-mkdir /test                   >/dev/null 2>&1 
-mkdir /test/growfiles         >/dev/null 2>&1  
-mkdir /test/growfiles/ext2    >/dev/null 2>&1  
+mkdir /test                   >/dev/null 2>&1
+mkdir /test/growfiles         >/dev/null 2>&1
+mkdir /test/growfiles/ext2    >/dev/null 2>&1
 mkdir /test/growfiles/ext3    >/dev/null 2>&1
-mkdir /test/growfiles/reiser  >/dev/null 2>&1  
-mkdir /test/growfiles/msdos     >/dev/null 2>&1  
+mkdir /test/growfiles/reiser  >/dev/null 2>&1
+mkdir /test/growfiles/msdos     >/dev/null 2>&1
 
 echo "----- make ext3 fs -----"
 mkfs -V -t ext3     /dev/$part1
 echo "----- make ext2 fs -----"
 mkfs -V -t ext2	    /dev/$part2
 echo "----- make reiserfs fs -----"
-mkreiserfs -f          /dev/$part3 
+mkreiserfs -f          /dev/$part3
 echo "----- make msdos fs -----"
 mkfs -V -t msdos -I     /dev/$part4
 
 echo "----- Mount partitions -----"
-mount /dev/$part1 /test/growfiles/ext3                              
+mount /dev/$part1 /test/growfiles/ext3
 mount /dev/$part2 /test/growfiles/ext2
-mount /dev/$part3 /test/growfiles/reiser                            
+mount /dev/$part3 /test/growfiles/reiser
 mount /dev/$part4 /test/growfiles/msdos
 
-echo "----- Running tests ----- " 
+echo "----- Running tests ----- "
 echo "The test may take about 2 hours to finish..."
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/scsi_debug.part1 > ${TMPBASE}/scsi_debug
- 
-${LTPROOT}/bin/ltp-pan -e -S -a scsi_debug -n scsi_debug -l ${TMPBASE}/fs-scsi_debug.log -o ${TMPBASE}/fs-scsi_debug.out -f ${TMPBASE}/scsi_debug 
+
+${LTPROOT}/bin/ltp-pan -e -S -a scsi_debug -n scsi_debug -l ${TMPBASE}/fs-scsi_debug.log -o ${TMPBASE}/fs-scsi_debug.out -f ${TMPBASE}/scsi_debug
 
 wait $!
 
diff --git a/testscripts/ltpdmmapper.sh b/testscripts/ltpdmmapper.sh
index 92e70bc..f49e596 100755
--- a/testscripts/ltpdmmapper.sh
+++ b/testscripts/ltpdmmapper.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # This script should be run prior to running executing the filesystem tests.
 # valid devices need to be passed for Device Mapper to work correctly
-# 03/14/03 mridge@us.ibm.com added instance and time command line options 
+# 03/14/03 mridge@us.ibm.com added instance and time command line options
 
 cd `dirname $0`
 export LTPROOT=${PWD}
@@ -14,7 +14,7 @@
 export TMPBASE="/tmp"
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -a part1 ] [ -b part2 ]
@@ -26,14 +26,14 @@
         package. You can download it from http://www.sistina.com. Follow
         the README/INSTALL file within the package to install it.
 
-             
+
 	defaults:
 	part1=$part1
 	part2=$part2
 	ltproot=$LTPROOT
 	tmpdir=$TMPBASE
 
-	example: ${0##*/} -a hdc1 -b hdc2 
+	example: ${0##*/} -a hdc1 -b hdc2
 
 
 	END
@@ -44,7 +44,7 @@
 do      case $arg in
 		a)	part1=$OPTARG;;
                 b)      part2=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
diff --git a/testscripts/ltpfslvm.sh b/testscripts/ltpfslvm.sh
index 53ca66d..0712322 100755
--- a/testscripts/ltpfslvm.sh
+++ b/testscripts/ltpfslvm.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # This script should be run prior to running executing the filesystem tests.
 # valid devices need to be passed for Device Mapper to work correctly
-# 03/14/03 mridge@us.ibm.com added instance and time command line options 
+# 03/14/03 mridge@us.ibm.com added instance and time command line options
 # 05/16/03 changed script paths
 # 05/20/03 Added instructions on setup and warnings
 # 05/03/2004 hien1@us.ibm.com  Added resize2fs and resize_reiserfs after extend and reduce LVs
@@ -19,7 +19,7 @@
 export TMPBASE="/tmp"
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -a part1 ] [ -b part2 ] [ -c part3 ]
@@ -33,7 +33,7 @@
 	ltproot=$TPROOT
 	tmpdir=$TMPBASE
 
-	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir 
+	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir
 
         fdisk needs to be run and the 4 HD partitions marked as 0x8e -- Linux LVM
 
@@ -55,7 +55,7 @@
                 d)      part4=$OPTARG;;
                 n)      nfsmount=$OPTARG;;
                 v)      verb=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
@@ -94,21 +94,21 @@
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
 
 
-mkdir /test                   >/dev/null 2>&1 
-mkdir /test/growfiles         >/dev/null 2>&1  
-mkdir /test/growfiles/ext2    >/dev/null 2>&1  
-mkdir /test/growfiles/msdos   >/dev/null 2>&1  
-mkdir /test/growfiles/reiser  >/dev/null 2>&1  
-mkdir /test/growfiles/minix   >/dev/null 2>&1  
-mkdir /test/growfiles/nfs     >/dev/null 2>&1  
-mkdir /test/growfiles/jfs     >/dev/null 2>&1  
-mkdir /test/growfiles/ramdisk >/dev/null 2>&1  
+mkdir /test                   >/dev/null 2>&1
+mkdir /test/growfiles         >/dev/null 2>&1
+mkdir /test/growfiles/ext2    >/dev/null 2>&1
+mkdir /test/growfiles/msdos   >/dev/null 2>&1
+mkdir /test/growfiles/reiser  >/dev/null 2>&1
+mkdir /test/growfiles/minix   >/dev/null 2>&1
+mkdir /test/growfiles/nfs     >/dev/null 2>&1
+mkdir /test/growfiles/jfs     >/dev/null 2>&1
+mkdir /test/growfiles/ramdisk >/dev/null 2>&1
 
 vgscan
 vgchange -a y
 
-pvcreate -v /dev/$part1 /dev/$part2 /dev/$part3 /dev/$part4 
-vgcreate -v ltp_test_vg1 /dev/$part1 /dev/$part2 
+pvcreate -v /dev/$part1 /dev/$part2 /dev/$part3 /dev/$part4
+vgcreate -v ltp_test_vg1 /dev/$part1 /dev/$part2
 vgcreate -v ltp_test_vg2 /dev/$part3 /dev/$part4
 vgcfgbackup -v
 lvcreate -v -L 100 ltp_test_vg1 -n ltp_test_lv1
@@ -148,14 +148,14 @@
 vgck -v
 
 ### Move mount filesystems to the last since resize can't work on a mounted filesystem.
-mount -v -t nfs $nfsmount               /test/growfiles/nfs                                          
-mount -v /dev/ltp_test_vg1/ltp_test_lv1 /test/growfiles/ext2                              
-mount -v /dev/ltp_test_vg1/ltp_test_lv2 /test/growfiles/msdos                             
-mount -v /dev/ltp_test_vg2/ltp_test_lv3 /test/growfiles/reiser                            
-mount -v /dev/ltp_test_vg2/ltp_test_lv4 /test/growfiles/minix                             
-mount -v /dev/ram                       /test/growfiles/ramdisk                              
+mount -v -t nfs $nfsmount               /test/growfiles/nfs
+mount -v /dev/ltp_test_vg1/ltp_test_lv1 /test/growfiles/ext2
+mount -v /dev/ltp_test_vg1/ltp_test_lv2 /test/growfiles/msdos
+mount -v /dev/ltp_test_vg2/ltp_test_lv3 /test/growfiles/reiser
+mount -v /dev/ltp_test_vg2/ltp_test_lv4 /test/growfiles/minix
+mount -v /dev/ram                       /test/growfiles/ramdisk
 
-echo "************ Running tests " 
+echo "************ Running tests "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/lvm.part1 > ${TMPBASE}/lvm.part1
 
 ${LTPROOT}/bin/ltp-pan -e -S -a lvmpart1 -n lvmpart1 -l lvmlogfile -f ${TMPBASE}/lvm.part1 &
@@ -164,17 +164,17 @@
 
 
 
-umount -v -t nfs $nfsmount            
+umount -v -t nfs $nfsmount
 umount -v /dev/ltp_test_vg1/ltp_test_lv1
 umount -v /dev/ltp_test_vg1/ltp_test_lv2
 umount -v /dev/ltp_test_vg2/ltp_test_lv3
 umount -v /dev/ltp_test_vg2/ltp_test_lv4
-umount -v /dev/ram                      
+umount -v /dev/ram
 
-lvremove -f -v /dev/ltp_test_vg1/ltp_test_lv1 
-lvremove -f -v /dev/ltp_test_vg1/ltp_test_lv2 
-lvremove -f -v /dev/ltp_test_vg2/ltp_test_lv3 
-lvremove -f -v /dev/ltp_test_vg2/ltp_test_lv4 
+lvremove -f -v /dev/ltp_test_vg1/ltp_test_lv1
+lvremove -f -v /dev/ltp_test_vg1/ltp_test_lv2
+lvremove -f -v /dev/ltp_test_vg2/ltp_test_lv3
+lvremove -f -v /dev/ltp_test_vg2/ltp_test_lv4
 
 lvscan -v
 vgchange -a n
@@ -187,14 +187,14 @@
 mount -v -t ext3   /dev/$part4         /test/growfiles/ext3
 mount -v -t jfs    /dev/hdc1           /test/growfiles/jfs
 
-echo "************ Running EXT3 & JFS tests...  " 
+echo "************ Running EXT3 & JFS tests...  "
 ${LTPROOT}/bin/rand_lines -g ${LTPROOT}/runtest/lvm.part2 > ${TMPBASE}/lvm.part2
 
 ${LTPROOT}/bin/ltp-pan -e -S -a lvmpart2 -n lvmpart2 -l lvmlogfile -f ${TMPBASE}/lvm.part2 &
 
 wait $!
 
-umount -v /dev/$part1                      
-umount -v /dev/$part4                      
+umount -v /dev/$part1
+umount -v /dev/$part4
 
 
diff --git a/testscripts/ltpfsnolvm.sh b/testscripts/ltpfsnolvm.sh
index 187b4f2..81904ac 100755
--- a/testscripts/ltpfsnolvm.sh
+++ b/testscripts/ltpfsnolvm.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # This script should be run prior to running executing the filesystem tests.
 # valid devices need to be passed for Device Mapper to work correctly
-# 03/14/03 mridge@us.ibm.com added instance and time command line options 
+# 03/14/03 mridge@us.ibm.com added instance and time command line options
 # 05/16/03 changed script paths
 # 05/20/03 Added instructions on setup and warnings
 
@@ -16,7 +16,7 @@
 export TMPBASE="/tmp"
 
 
-usage() 
+usage()
 {
 	cat <<-END >&2
 	usage: ${0##*/} [ -a part1 ] [ -b part2 ] [ -c part3 ]
@@ -30,7 +30,7 @@
 	ltproot=$TPROOT
 	tmpdir=$TMPBASE
 
-	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir 
+	example: ${0##*/} -a hdc1 -b hdc2 -c hdc3 -d hdc4 -n mytesthost:/testmountdir
 
         fdisk needs to be run and the 4 HD partitions marked as 0x8e -- Linux LVM
 
@@ -52,7 +52,7 @@
                 d)      part4=$OPTARG;;
                 n)      nfsmount=$OPTARG;;
                 v)      verb=$OPTARG;;
-			
+
                 \?)     echo "************** Help Info: ********************"
                         usage;;
         esac
@@ -91,31 +91,31 @@
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
 
 
-mkdir /test                   >/dev/null 2>&1 
-mkdir /test/growfiles         >/dev/null 2>&1  
-mkdir /test/growfiles/ext2    >/dev/null 2>&1  
+mkdir /test                   >/dev/null 2>&1
+mkdir /test/growfiles         >/dev/null 2>&1
+mkdir /test/growfiles/ext2    >/dev/null 2>&1
 mkdir /test/growfiles/ext3    >/dev/null 2>&1
-mkdir /test/growfiles/msdos   >/dev/null 2>&1  
-mkdir /test/growfiles/reiser  >/dev/null 2>&1  
-mkdir /test/growfiles/minix   >/dev/null 2>&1  
-mkdir /test/growfiles/nfs     >/dev/null 2>&1  
-mkdir /test/growfiles/jfs     >/dev/null 2>&1  
-mkdir /test/growfiles/ramdisk >/dev/null 2>&1  
+mkdir /test/growfiles/msdos   >/dev/null 2>&1
+mkdir /test/growfiles/reiser  >/dev/null 2>&1
+mkdir /test/growfiles/minix   >/dev/null 2>&1
+mkdir /test/growfiles/nfs     >/dev/null 2>&1
+mkdir /test/growfiles/jfs     >/dev/null 2>&1
+mkdir /test/growfiles/ramdisk >/dev/null 2>&1
 
 mkfs -V -t ext2     /dev/$part1
 mkfs -V -t msdos    /dev/$part2
-mkreiserfs          /dev/$part3 
+mkreiserfs          /dev/$part3
 mkfs -V -t minix    /dev/$part4
 
 
-mount -v -t nfs $nfsmount               /test/growfiles/nfs                                          
-mount -v /dev/$part1                    /test/growfiles/ext2                              
-mount -v /dev/$part2                    /test/growfiles/msdos                             
-mount -v /dev/$part3                    /test/growfiles/reiser                            
-mount -v /dev/$part4                    /test/growfiles/minix                             
-mount -v /dev/ram                       /test/growfiles/ramdisk                              
+mount -v -t nfs $nfsmount               /test/growfiles/nfs
+mount -v /dev/$part1                    /test/growfiles/ext2
+mount -v /dev/$part2                    /test/growfiles/msdos
+mount -v /dev/$part3                    /test/growfiles/reiser
+mount -v /dev/$part4                    /test/growfiles/minix
+mount -v /dev/ram                       /test/growfiles/ramdisk
 
-echo "************ Running tests " 
+echo "************ Running tests "
 ${LTPROOT}/../bin/rand_lines -g ${LTPROOT}/../runtest/lvm.part1 > ${TMPBASE}/lvm.part1
 
 ${LTPROOT}/../bin/ltp-pan -e -S -a lvmpart1 -n lvmpart1 -l lvmlogfile -f ${TMPBASE}/lvm.part1 &
@@ -124,12 +124,12 @@
 
 
 
-umount -v -t nfs $nfsmount            
+umount -v -t nfs $nfsmount
 umount -v /dev/$part1
 umount -v /dev/$part2
 umount -v /dev/$part3
 umount -v /dev/$part4
-umount -v /dev/ram                      
+umount -v /dev/ram
 
 mkfs -V -t ext3     /dev/$part4
 mkfs -V -t jfs /dev/$part1  <yesenter.txt
@@ -137,14 +137,14 @@
 mount -v -t ext3   /dev/$part4         /test/growfiles/ext3
 mount -v -t jfs    /dev/$part1         /test/growfiles/jfs
 
-echo "************ Running EXT3 & JFS tests...  " 
+echo "************ Running EXT3 & JFS tests...  "
 ${LTPROOT}/../bin/rand_lines -g ${LTPROOT}/../runtest/lvm.part2 > ${TMPBASE}/lvm.part2
 
 ${LTPROOT}/../bin/ltp-pan -e -S -a lvmpart2 -n lvmpart2 -l lvmlogfile -f ${TMPBASE}/lvm.part2 &
 
 wait $!
 
-umount -v /dev/$part1                      
-umount -v /dev/$part4                      
+umount -v /dev/$part1
+umount -v /dev/$part4
 
 
diff --git a/testscripts/ltpstress.sh b/testscripts/ltpstress.sh
index c2e4cc5..516b443 100755
--- a/testscripts/ltpstress.sh
+++ b/testscripts/ltpstress.sh
@@ -18,7 +18,7 @@
 #
 #   FILE        : ltpstress.sh
 #   DESCRIPTION : A script that will stress your system using the LTP testsuite.
-#   REQUIREMENTS: 
+#   REQUIREMENTS:
 #                 1) The 'rsh' daemon must be running and NFS (versions 2 &3) must be
 #                    configured into the kernel and installed for networking tests.
 #		  2) The 'sar' application must be installed to use the "-S" option
@@ -65,7 +65,7 @@
     -l logfile      Log results of test in a logfile. Default is "/tmp/ltpstress.log"
     -m # (in Mb)    Specify the _minimum_ memory load of # megabytes in background. Default is all the RAM + 1/2 swap.
     -n              Disable networking stress.
-    -S              Use 'sar' to measure data. 
+    -S              Use 'sar' to measure data.
     -T              Use LTP's modified 'top' tool to measure data.
     -t duration     Execute the testsuite for given duration in hours. Default is 24.
 
@@ -80,7 +80,7 @@
   do
     PROC_NUM=$(( PROC_NUM + 1 ))
     memsize=$(( $memsize - 1048576 ))
-  done  
+  done
   leftover_memsize=$memsize
 }
 
@@ -110,7 +110,7 @@
 		LOGGING=1;;
 
         m)	memsize=$(($OPTARG * 1024))
-		check_memsize;;	
+		check_memsize;;
 
 	n)	NO_NETWORK=1;;
 
@@ -171,7 +171,7 @@
           Echo "Error: Could not start rpcbind daemon."
           exit 1
         else
-          echo "The RPC test suite is using rpcbind"	
+          echo "The RPC test suite is using rpcbind"
         fi
       else
 	echo "The RPC test suite is using portmap"
@@ -185,7 +185,7 @@
 
   ps -e | grep nfsd
   if [ $? -eq 1 ];then
-    /usr/sbin/rpc.nfsd 
+    /usr/sbin/rpc.nfsd
   fi
   sleep 1
   ps -e | grep nfsd
@@ -196,7 +196,7 @@
 
   ps -e | grep rpc.statd
   if [ $? -eq 1 ];then
-    /sbin/rpc.statd 
+    /sbin/rpc.statd
   fi
   sleep 1
   ps -e | grep rpc.statd
@@ -207,7 +207,7 @@
 
   ps -e | grep rpc.mountd
   if [ $? -eq 1 ];then
-    /usr/sbin/rpc.mountd 
+    /usr/sbin/rpc.mountd
   fi
   sleep 1
   ps -e | grep rpc.mountd
@@ -231,7 +231,7 @@
   fi
  #Convert to kilobytes
   memsize=$(($TESTMEM * 1024))
-  check_memsize	
+  check_memsize
 fi
 
 # Set max processes to unlimited.
@@ -241,7 +241,7 @@
   genload --vm $PROC_NUM --vm-bytes 1073741824 2>&1 1>/dev/null &
 fi
 if [ $leftover_memsize -gt 0 ];then
-  genload --vm 1 --vm-bytes $(($leftover_memsize * 1024)) 2>&1 1>/dev/null & 
+  genload --vm 1 --vm-bytes $(($leftover_memsize * 1024)) 2>&1 1>/dev/null &
 fi
 
 if [ $NO_NETWORK -eq 0 ];then
@@ -275,7 +275,7 @@
 output2=${TMPBASE}/ltpstress.$$.output2
 output3=${TMPBASE}/ltpstress.$$.output3
 
-${LTPROOT}/bin/ltp-pan -e -p -q -S -t ${hours}h -a stress1 -n stress1 -l $logfile -f ${TMP}/stress.part1 -o $output1 & 
+${LTPROOT}/bin/ltp-pan -e -p -q -S -t ${hours}h -a stress1 -n stress1 -l $logfile -f ${TMP}/stress.part1 -o $output1 &
 ${LTPROOT}/bin/ltp-pan -e -p -q -S -t ${hours}h -a stress2 -n stress2 -l $logfile -f ${TMP}/stress.part2 -o $output2 &
 ${LTPROOT}/bin/ltp-pan -e -p -q -S -t ${hours}h -a stress3 -n stress3 -l $logfile -f ${TMP}/stress.part3 -o $output3 &
 
@@ -287,7 +287,7 @@
 echo "        $output3"
 
 # Sleep a little longer than duration to let ltp-pan "try" to gracefully end itself.
-sleep $(($duration + 10))  
+sleep $(($duration + 10))
 
 if [ $Sar -eq 1 ]; then
   killall -9 sadc >/dev/null 2>&1
diff --git a/testscripts/networkstress.sh b/testscripts/networkstress.sh
index e04a143..07e48b4 100755
--- a/testscripts/networkstress.sh
+++ b/testscripts/networkstress.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 # This will run all the network stress tests, with the status logged in
-# /tmp/netpan.log  
+# /tmp/netpan.log
 #
 # Please read ltp-yyyymmdd/testcases/network/stress/README before running
 
@@ -42,7 +42,7 @@
 # export NS_TIMES=10000
 # export CONNECTION_TOTAL=4000
 # export IP_TOTAL=10000
-# export IP_TOTAL_FOR_TCPIP=100 
+# export IP_TOTAL_FOR_TCPIP=100
 # export ROUTE_TOTAL=10000
 # export MTU_CHANGE_TIMES=1000
 # export IF_UPDOWN_TIMES=10000
@@ -114,7 +114,7 @@
 cd $TMPDIR
 
 export PATH="${PATH}:${LTPROOT}/testcases/bin"
- 
+
 if [ ${VERBOSE} = "yes" ]; then
 	echo "Network parameters:"
 	echo " - ${INTERFACE} local interface (MAC address: ${LHOST_HWADDRS})"
diff --git a/testscripts/networktests.sh b/testscripts/networktests.sh
index d57a2c1..b136749 100755
--- a/testscripts/networktests.sh
+++ b/testscripts/networktests.sh
@@ -33,7 +33,7 @@
 
 # ---***** NFS OPTIONAL SETTINGS *****---
 # DEFAULTS
-# export VERSION=2 
+# export VERSION=2
 # export SOCKET_TYPE=udp
 # ---*********************************---
 
diff --git a/testscripts/runEALtests.sh b/testscripts/runEALtests.sh
index 93a790a..be41c12 100755
--- a/testscripts/runEALtests.sh
+++ b/testscripts/runEALtests.sh
@@ -1,11 +1,11 @@
 #!/bin/sh
 
 
-# 
-#  07/10/02 - Jeff Martin - martinjn@us.ibm.com: Added instance and 
+#
+#  07/10/02 - Jeff Martin - martinjn@us.ibm.com: Added instance and
 #                           time command line options
 #
-#  12/15/02 - Manoj Iyer  - manjo@mail.utexas.edu: Added options to run 
+#  12/15/02 - Manoj Iyer  - manjo@mail.utexas.edu: Added options to run
 #                           LTP under CPU, IO and MM load.
 #
 #  01/26/03 - Manoj Iyer  - manjo@mail.utexas.edu: Added -f option; Execute
@@ -14,15 +14,15 @@
 #  01/27/03 - Manoj Iyer  - manjo@mail.utexas.edu: Enabled formatted printing
 #                           of logfiles.
 #
-#  01/28/03 - Manoj Iyer  - manjo@mail.utexas.edu: added option to enable 
+#  01/28/03 - Manoj Iyer  - manjo@mail.utexas.edu: added option to enable
 #                           formatted printing of logfiles.
-#   
+#
 #  01/29/03 - Manoj Iyer  - manjo@mail.utexas.edu: merged networktests.sh with
 #                           this script, added the -n option to run these
 #                           tests. Also, added -h option to print help messages.
-#                          
-#  01/29/03 - Manoj Iyer  - manjo@mail.utexas.edu: 
-#                           added code to cause pan to print less verbose 
+#
+#  01/29/03 - Manoj Iyer  - manjo@mail.utexas.edu:
+#                           added code to cause pan to print less verbose
 #                           output.
 #  02/01/03 - Manoj Iyer  - manjo@mail.utexas.edu: Removed variables
 #                           initialization of RHOST and PASSWD.
@@ -45,12 +45,12 @@
 NetPipe=0
 GenLoad=0
 
-usage() 
+usage()
 {
 	cat <<-END >&2
-    usage: ./${0##*/} -c [-d tmpdir] [-f cmdfile ] [-i # (in Mb)] [ -l logfile ] 
-                  [ -m # (in Mb)] -N -n -q [ -r ltproot ] [ -t duration ] [ -x instances ] 
-                
+    usage: ./${0##*/} -c [-d tmpdir] [-f cmdfile ] [-i # (in Mb)] [ -l logfile ]
+                  [ -m # (in Mb)] -N -n -q [ -r ltproot ] [ -t duration ] [ -x instances ]
+
     -c              Run LTP under additional background CPU load.
     -d tmpdir       Directory where temporary files will be created.
     -f cmdfile      Execute user defined list of testcases.
@@ -58,11 +58,11 @@
     -i # (in Mb)    Run LTP with a _minimum_ IO load of # megabytes in background.
     -l logfile      Log results of test in a logfile.
     -m # (in Mb)    Run LTP with a _minimum_ memory load of # megabytes in background.
-    -N              Run all the networking tests. 
+    -N              Run all the networking tests.
                     (export RHOST = remote hostname)
                     (export PASSWD = passwd of remote host)
     -n              Run LTP with network traffic in background.
-    -p              Human readable format logfiles. 
+    -p              Human readable format logfiles.
     -q              Print less verbose output to screen.
     -r ltproot      Fully qualified path where testsuite is installed.
     -t duration     Execute the testsuite for given duration in hours.
@@ -83,26 +83,26 @@
 
 while getopts cd:f:hi:l:m:Nnpqr:t:x arg
 do  case $arg in
-    c)	   
+    c)
             $LTPROOT/../testcases/bin/genload --cpu 1 2>&1 1>/dev/null &
 	    GenLoad=1 ;;
-                
-    d)      # append $$ to TMP, as it is recursively 
+
+    d)      # append $$ to TMP, as it is recursively
             # removed at end of script.
             TMPBASE=$OPTARG;;
     f)        # Execute user defined set of testcases.
             cmdfile=$OPTARG;;
 
     h)	    usage;;
-    
-    i)        
+
+    i)
             bytesize=$(($OPTARG * 1024 * 1024))
             $LTPROOT/../testcases/bin/genload --io 1 2>&1 1>/dev/null &
             $LTPROOT/../testcases/bin/genload --hdd 0 --hdd-bytes $bytesize \
-            2>&1 1>/dev/null & 
+            2>&1 1>/dev/null &
 	    GenLoad=1 ;;
 
-    l)      
+    l)
             if [ ${OPTARG:0:1} != "/" ]
 			then
 				if [ -d $LTPROOT/results ]
@@ -122,10 +122,10 @@
 				logfile="-l $OPTARG"
 			fi ;;
 
-    m)      
-            memsize=$(($OPTARG * 1024 * 1024)) 
+    m)
+            memsize=$(($OPTARG * 1024 * 1024))
 	    $LTPROOT/../testcases/bin/genload  --vm 0 --vm-bytes $memsize\
-            2>&1 1>/dev/null & 
+            2>&1 1>/dev/null &
 	    GenLoad=1;;
 
     N)	    run_netest=1;;
@@ -139,8 +139,8 @@
 
     r)      LTPROOT=$OPTARG;;
 
-    t)      # In case you want to specify the time 
-            # to run from the command line 
+    t)      # In case you want to specify the time
+            # to run from the command line
             # (2m = two minutes, 2h = two hours, etc)
             duration="-t $OPTARG" ;;
 
@@ -157,7 +157,7 @@
 	echo "ERROR:"
 	echo "Please export enviroment variable PASSWD"
 	echo "INFO: export PASSWD = 'root's password'"
-    exit 1	
+    exit 1
 fi
 
 #if [ $run_netest -eq 1 ]
@@ -173,10 +173,10 @@
 #		echo " "
 #		echo " "
 #		echo " "
-#		usage	
+#		usage
 #	fi
 #fi
-	
+
 if [ -n "$instances" ]; then
   instances="$instances -O ${TMP}"
 fi
@@ -197,7 +197,7 @@
 fi
 
 # The fsx-linux tests use the SCRATCHDEV environment variable as a location
-# that can be reformatted and run on.  Set SCRATCHDEV if you want to run 
+# that can be reformatted and run on.  Set SCRATCHDEV if you want to run
 # these tests.  As a safeguard, this is disabled.
 unset SCRATCHDEV
 if [ -n "$SCRATCHDEV" ]; then
@@ -207,7 +207,7 @@
 # display versions of installed software
 ${LTPROOT}/../ver_linux
 
-${LTPROOT}/../bin/ltp-pan $quiet_mode -e -S $instances $duration -a $$ -n $$ $pretty_prt -f ${TMP}/alltests $logfile 
+${LTPROOT}/../bin/ltp-pan $quiet_mode -e -S $instances $duration -a $$ -n $$ $pretty_prt -f ${TMP}/alltests $logfile
 
 if [ $? -eq 0 ]; then
   echo ltp-pan reported PASS
@@ -218,7 +218,7 @@
 if [ $GenLoad -eq 1 ]
 then
 	killall -9 genload
-fi 
+fi
 
 if [ $NetPipe -eq 1 ]
 then
diff --git a/testscripts/runpan.sh b/testscripts/runpan.sh
index f46333c..510feec 100755
--- a/testscripts/runpan.sh
+++ b/testscripts/runpan.sh
@@ -1,5 +1,5 @@
 #!/bin/sh
-# This will only run the quickhit tests.  
+# This will only run the quickhit tests.
 cd `dirname $0`
 LTPROOT=${PWD}
 echo $LTPROOT | grep testscripts > /dev/null 2>&1
@@ -13,7 +13,7 @@
 cd /tmp/runpan-$$
 
 export PATH="${PATH}:${LTPROOT}/doio:${LTPROOT}/testcases/bin"
- 
+
 ${LTPROOT}/bin/ltp-pan -e $@ -a ltp -n ltp -f ${LTPROOT}/runtest/quickhit
 
 if [ $? -eq "0" ]; then
diff --git a/testscripts/sysfs.sh b/testscripts/sysfs.sh
index 514c2af..d0687f4 100755
--- a/testscripts/sysfs.sh
+++ b/testscripts/sysfs.sh
@@ -23,7 +23,7 @@
 #  USAGE       : sysfs.sh [ -k <kernel_module> ]
 #
 #  DESCRIPTION : A script that will test sysfs on Linux system.
-#  REQUIREMENTS: CONFIG_DUMMY must have been used to build kernel, and the 
+#  REQUIREMENTS: CONFIG_DUMMY must have been used to build kernel, and the
 #		 dummy network module must exist.
 #
 #  HISTORY     :
diff --git a/testscripts/test_fs_bind.sh b/testscripts/test_fs_bind.sh
index 6b986dc..92c51a1 100755
--- a/testscripts/test_fs_bind.sh
+++ b/testscripts/test_fs_bind.sh
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 #
 # Copyright (c) International Business Machines  Corp., 2005
@@ -59,7 +59,7 @@
 		cd ..
 		LTPROOT="${PWD}"
 	fi
-	
+
 	FS_BIND_ROOT="${LTPROOT}/testcases/bin/fs_bind"
 
 	total=0 # total number of tests
@@ -75,14 +75,14 @@
 	# Results directory
 	resdir="${LTPROOT}/results/fs_bind"
 	if [ ! -d "${resdir}" ]; then
-		mkdir -p "${resdir}" 2> /dev/null 
+		mkdir -p "${resdir}" 2> /dev/null
 	fi
 
 	TMPDIR="${TMPDIR:-/tmp}"
 	# A temporary directory where we can do stuff and that is
 	# safe to remove
 	sandbox="${TMPDIR}/sandbox"
-	
+
 	ERR_MSG=""
 
 	export LTPBIN PATH FS_BIND_ROOT ERR_MSG TCID TST_COUNT TST_TOTAL
@@ -173,7 +173,7 @@
 grep_proc_mounts()
 {
 	local rc=0
-	
+
 	# Save the pipefail shell option
 	shopt -o -q pipefail
 	local save=$?
@@ -240,7 +240,7 @@
 	( while grep_proc_mounts ; do
 		grep_proc_mounts | awk '{print $2}' | xargs -r -n 1 umount -l
 	done ) >& /dev/null
-	
+
 	# mount list and exit with 0
 	[ $rm_err -eq 1 ] && rm -f "$2/proc_mounts."{before,after} 1>&2 # >& /dev/null
 	return 0
@@ -253,7 +253,7 @@
 grep_mounts()
 {
 	local rc=0
-	
+
 	# Save the pipefail shell option
 	shopt -o -q pipefail
 	local save=$?
@@ -381,7 +381,7 @@
 clean_sandbox()
 {
 	local tname="$1"
-	
+
 	{ rm -rf "${sandbox}" ; mkdir "${sandbox}" ; } >& /dev/null
 	if [ ! -d "${sandbox}" -o ! -x "${sandbox}" ]; then
 		tst_brkm TBROK true "$tname: failed to make directory \"${sandbox}\""
@@ -407,7 +407,7 @@
 #	test runs)
 # Note that this means the return status is not the success or failure of the
 #	test itself.
-# 
+#
 run_test()
 {
 	local t="$1"
diff --git a/testscripts/test_robind.sh b/testscripts/test_robind.sh
index 7f0e14f..f104ac9 100755
--- a/testscripts/test_robind.sh
+++ b/testscripts/test_robind.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 #
 #   Copyright (c) International Business Machines  Corp., 2008
-#   
+#
 #   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
@@ -18,16 +18,16 @@
 #
 #*******************************************************************************
 # Readme_ROBind has more details on the tests running for ROBIND.
-# TEST: 
+# TEST:
 #   NAME:       test_robind.sh
 #   FUNCTIONALITY:  File system tests for normal mount, bind mount and RO mount
 #
 #   DESCRIPTION:    Performs filesystems tests for RO mount.
 #     For filesystem's like ext2, ext3, reiserfs, jfs & xfs.
 #     This test creates an image-file and
-#        a)  mounts on dir1, 
+#        a)  mounts on dir1,
 #        b)  mount --bind dir2
-#        c)  mount -o remount,ro 
+#        c)  mount -o remount,ro
 #       It verifies the tests on a) and b) works correctly.
 #     For the c) option it checks that the tests are not able to write into dir.
 #     Then it executes the tests from flat-file  {LTPROOT}/testscripts/fs_ro_tests
@@ -53,11 +53,11 @@
 export TST_TOTAL
 
 usage()
-{   
+{
   cat << EOF
   usage: $0 [ext3,ext2,jfs,xfs,reiserfs,ramfs]
 
-  This script verifies ReadOnly-filesystem, by mounting imagefile and 
+  This script verifies ReadOnly-filesystem, by mounting imagefile and
   executing the filesystem tests.
 
   OPTIONS
@@ -82,7 +82,7 @@
 function cleanup
 {
     umount ${TMPDIR}/dir3-ro 2> /dev/null > /dev/null
-    umount ${TMPDIR}/dir2-bound 2> /dev/null 1> /dev/null 
+    umount ${TMPDIR}/dir2-bound 2> /dev/null 1> /dev/null
     umount ${TMPDIR}/dir1 2> /dev/null 1> /dev/null
     if [ ! -z $1 ]; then {
         rm -rf $1 || true
@@ -95,7 +95,7 @@
 #
 # FUNCTION DESCRIPTION: Does the initailization
 #
-# PARAMETERS:   File_systems (if any )    
+# PARAMETERS:   File_systems (if any )
 #
 # RETURNS:      None.
 #===============================================================================
@@ -162,25 +162,25 @@
         for tests in `seq $testnums` ; do
             cmd=`cat $FS_Tests | head -$tests | tail -n 1`
 #            eval $cmd 2>&1 /dev/null
-            eval $cmd 2> /dev/null 1> /dev/null 
+            eval $cmd 2> /dev/null 1> /dev/null
             if [ $? -eq 0 ]; then
-                echo "$tests. '$cmd' PASS" >> $PASSLOG 
+                echo "$tests. '$cmd' PASS" >> $PASSLOG
             else
-                echo "$tests. '$cmd' FAIL " >> $FAILLOG 
+                echo "$tests. '$cmd' FAIL " >> $FAILLOG
                 echo "TDIR is $TDIRECTORY" >> $FAILLOG;
-                status=1 
+                status=1
             fi
         done
 
     else                                                # Testing Read-Only dir
         for tests in `seq $testnums` ; do
             cmd=`cat $FS_Tests | head -$tests | tail -n 1`
-            eval $cmd 2> /dev/null 1> /dev/null 
+            eval $cmd 2> /dev/null 1> /dev/null
             if [ $? -ne 0 ]; then
-                echo "$tests. '$cmd' PASS " >> $PASSLOG 
+                echo "$tests. '$cmd' PASS " >> $PASSLOG
             else
-                 echo "$tests. '$cmd' FAIL" >> $FAILLOG 
-                 status=1 
+                 echo "$tests. '$cmd' FAIL" >> $FAILLOG
+                 status=1
             fi
         done
     fi
@@ -199,8 +199,8 @@
 }
 
 #=============================================================================
-# MAIN 
-#     See the description, purpose, and design of this test under TEST 
+# MAIN
+#     See the description, purpose, and design of this test under TEST
 #     in this test's prolog.
 #=============================================================================
 retcode=0
@@ -232,7 +232,7 @@
         rm -f $image
         exit -1
     fi
-    
+
     OPTS="-F"
     if [ "$fstype" == "reiserfs" ]; then
     OPTS="-f --journal-size 513 -q"
@@ -261,5 +261,5 @@
         rm -rf ./$i || true
     done;
     cd $oldpwd || true
-    exit $retcode 
+    exit $retcode
 
diff --git a/tools/README b/tools/README
index 55d3498..d75dcb3 100644
--- a/tools/README
+++ b/tools/README
@@ -17,7 +17,7 @@
 to the LTP host to be collected later. The ltp_check script does the brunt
 of the results processing. It produces a results.out file which has a
 summary of the system under test, the success (or failure) of the test and
-if there are failures the output from each testcase. 
+if there are failures the output from each testcase.
 
 Here's the scenario (pardon the ASCII art);
 
@@ -42,14 +42,14 @@
 #1 ltp_master -f system_file
  - system_file is an ASCII file containing the list of victim machines.
 
-#2 ltp_master system.name.dom.com 
+#2 ltp_master system.name.dom.com
  - space separated names of victim machines.
 
 #3 ltp_master
  - will prompt user for the names of the victim machines.
 
 I reccomend using scheme #2, this will help seperate different
-distros, platforms etc, for example, We might say have a file with RedHat 
+distros, platforms etc, for example, We might say have a file with RedHat
 machines, or all SuSE, or all machines of a certain platform (say zSeries).
 
 Regardless of how it's invoked ltp_master does the following on each
@@ -60,7 +60,7 @@
 
 ltprun script
 ~~~~~~~~~~~~~
-ltprun is where bulk of the automation of ltp is done. 
+ltprun is where bulk of the automation of ltp is done.
 It does the following.
   - downloads the ltp test suite tarfile (ltp.tgz) from ltp_host.
   - uncompress the test suite and compile it.
@@ -82,12 +82,12 @@
   - Creates a results directory for each machine (using the short
     hostname) and for each run (based on timestamping)
   - Uncompresses the gathered result files into the new directory
-  - parses results gathered,  saves it as results.out file in the same 
+  - parses results gathered,  saves it as results.out file in the same
     directory. The results are sorted by system name and then run time.
 
-Note: 
+Note:
   - Check through the scripts for appropriate variables that you may need to
-change in order to customize further, they should be at the beginning of the 
+change in order to customize further, they should be at the beginning of the
 file.
 
   - This "fire and forget" might not work 100%. But if you find a test
diff --git a/tools/STPfailure_report.pl b/tools/STPfailure_report.pl
index fd1473c..77e4e53 100755
--- a/tools/STPfailure_report.pl
+++ b/tools/STPfailure_report.pl
@@ -22,8 +22,8 @@
 #		  the STP results and then finds the corresponding source code
 #		  file in your LTP tree for each failure.  It then prints the
 #		  description and details for each to STDOUT.
-#   REQUIREMENTS: LWP::Simple, File::Find, and Text::Wrap must be installed 
-#   AUTHOR      : Bryce Harrington <bryce@osdl.org>       
+#   REQUIREMENTS: LWP::Simple, File::Find, and Text::Wrap must be installed
+#   AUTHOR      : Bryce Harrington <bryce@osdl.org>
 #   HISTORY     :
 #       04/28/2004 Robbie Williamson (robbiew@austin.ibm.com)
 #               Adapted for and added to LTP
@@ -52,7 +52,7 @@
     unless (-d "$ltp_base/testcases");
 
 # Retrieve the results for the test run
-my $fail_results = get($fail_report) 
+my $fail_results = get($fail_report)
     || die "Could not retrieve URL $fail_report\n";
 
 # Process the results, extracting each test name & generating a report
@@ -126,7 +126,7 @@
 ========================================================================
 Test name: $testname
 
-Description: 
+Description:
 
 $description
 
diff --git a/tools/autoltp b/tools/autoltp
index aece659..831cc25 100755
--- a/tools/autoltp
+++ b/tools/autoltp
@@ -1,4 +1,4 @@
-#!/usr/bin/perl 
+#!/usr/bin/perl
 
 # 05/22/02 martinjn@us.ibm.com wrote this script for ltp automation using ssh instead of telnet
 # 06/18/02 martinjn@us.ibm.com hacked this script up to try to make it work better with ltp_check
@@ -18,7 +18,7 @@
 $LTPTARGET="/tmp/ltp.tgz";
 $ETIME=time();
 
-if (!-d $LTPRESULTS) 
+if (!-d $LTPRESULTS)
 {
    print "Creating $LTPRESULTS \n";
    print `mkdir $LTPRESULTS`;
@@ -51,7 +51,7 @@
       ($HOST,$USER,$PASS,$INSTANCES,$DURATION)=split(/,/,@hosts[$i]);
       ($SHORTHOST,$TRASH)=split(/\./,$HOST);
       $LTP_LOGS="$SHORTHOST-$ETIME-ltpoutput.tgz";
-      $RUN_LOG="/root/runall.output"; 
+      $RUN_LOG="/root/runall.output";
 
       #push tar.tgz
       %args = {};
@@ -86,7 +86,7 @@
           print("Tests completed on $HOST\n");
       }
 
-      #this looks lame, but ltp_check needs ltprun.out to grab the ltp version      
+      #this looks lame, but ltp_check needs ltprun.out to grab the ltp version
       $ssh->cmd('echo version: $(cat VERSION) > ltprun.out');
 
       #stop sar on client(s)
diff --git a/tools/build/find_all_make_errors.patch b/tools/build/find_all_make_errors.patch
index 6f73350..9255988 100644
--- a/tools/build/find_all_make_errors.patch
+++ b/tools/build/find_all_make_errors.patch
@@ -4,7 +4,7 @@
 +++ b/include/mk/generic_trunk_target.inc
 @@ -75,7 +75,8 @@ trunk-install: $(INSTALL_FILES)
  all: trunk-all
- 
+
  clean:: trunk-clean
 -	set -e; for dir in $(SUBDIRS); do \
 +	#@set -e; for dir in $(SUBDIRS); do
diff --git a/tools/genhtml.pl b/tools/genhtml.pl
index 3dcc77f..f4b1d00 100644
--- a/tools/genhtml.pl
+++ b/tools/genhtml.pl
@@ -125,11 +125,11 @@
                              @variable_value_pair = split(/\ /, $line);
                              @tag_value   = split(/=/,$variable_value_pair[0]);
                              @stime_value = split(/=/,$variable_value_pair[1]);
-                             $row_line = $row_line . "<tr><td><p><strong>$test_counter</strong></p></td>\n" . 
+                             $row_line = $row_line . "<tr><td><p><strong>$test_counter</strong></p></td>\n" .
                                                      "<td><p><strong>$tag_value[1]</strong></p></td>\n"     .
                                                      "<td><p><pre><strong>";
                              $get_proper_time = localtime ($stime_value[1]);
-                             $row_line = $row_line . "$get_proper_time" . "</strong></pre></p></td>\n"; 
+                             $row_line = $row_line . "$get_proper_time" . "</strong></pre></p></td>\n";
                              $test_counter++;
                         }
                         if ( $flag == 3) { #Assuming we will find "cmdling" value here
@@ -249,5 +249,5 @@
 print "<tr><td><strong>Kernel Version</strong></td><td><strong> $ENV{KERNEL_VERSION}  </strong></td></tr>\n";
 print "<tr><td><strong>Machine Architecture</strong></td><td><strong> $ENV{MACHINE_ARCH} </strong></td></tr>\n";
 print "<tr><td><strong>Hostname</strong>  </td> <td><strong>";
-$hostname=system("uname -n");             chop($hostname); 
+$hostname=system("uname -n");             chop($hostname);
 print " $hostname </strong></td></tr></tbody></table></div></body></html>\n";
diff --git a/tools/genload/Makefile b/tools/genload/Makefile
index c00e64b..2384d2c 100644
--- a/tools/genload/Makefile
+++ b/tools/genload/Makefile
@@ -24,7 +24,7 @@
 
 include $(top_srcdir)/include/mk/env_pre.mk
 
-CFLAGS			+= -DPACKAGE=\"stress\" -DVERSION=\"0.17pre11\" 
+CFLAGS			+= -DPACKAGE=\"stress\" -DVERSION=\"0.17pre11\"
 
 LDLIBS			+= -lm
 
diff --git a/tools/html_report_header.txt b/tools/html_report_header.txt
index 608f76c..98176ba 100644
--- a/tools/html_report_header.txt
+++ b/tools/html_report_header.txt
@@ -37,7 +37,7 @@
 
 <h2 id="_1">Detailed Report</h2>
 <div>
-<table border="1" cellspacing="3"> 
+<table border="1" cellspacing="3">
 <tbody>
     <tr>
       <td bgcolor="Silver"><strong>No</strong></td>
diff --git a/tools/ltp_check b/tools/ltp_check
index 227d0f8..f708abf 100755
--- a/tools/ltp_check
+++ b/tools/ltp_check
@@ -1,11 +1,11 @@
 #!/usr/bin/perl
- 
+
 #LTP results gathering script: ltp_check
 #       3/12/02 William Jay Huie (creation)
 #       3/28/02 William Jay Huie minor fixes, increased results parsing
 #       5/01/02 William Jay Huie parsing changes
 #       5/17/02 Casey Abell added sar results
-#This will log into the LTP_HOST machine, which may be different then the 
+#This will log into the LTP_HOST machine, which may be different then the
 #machine used to run the ltp_master script
 #This script will check for *ltpoutput.tgz files created by the ltprun script
 #and download them each to their own directory and do a bit of processing
@@ -57,20 +57,20 @@
    $ftp->type('I') or die "Unable to set type to Binary";
    @files = $ftp->ls("*ltpoutput.tgz");
    $num_files = $#files + 1;
-   print "New results files found $num_files:\n"; 
+   print "New results files found $num_files:\n";
    for ($i = 0; $i < $num_files; $i++) { print "\t$files[$i]\n"; }
-   
+
    for ($i = 0; $i < $num_files; $i++)
    {
       print "Downloading: $files[$i]\t";
       if ($ftp->get($files[$i]))
-      { 
-         print "Successful\n"; 
+      {
+         print "Successful\n";
          $ftp->delete($files[$i]);
       }
       else
       { print "FAILED\n"; }
-      
+
    }
    $ftp->quit;
 
@@ -79,14 +79,14 @@
    if (@res)
    {
       $num = $#res + 1;
-      print "             download of LTP results finished\n"; 
+      print "             download of LTP results finished\n";
       print "$num unprocessed results files found\n";
       chomp(@res);
       return 1;
    }
    else
    {  print "             no apparent results to process\n"; return 0; }
- 
+
 }
 
 sub untar_results()
@@ -95,8 +95,8 @@
    {
       if ( $res[$i] =~ m/\s*(\w+)-((\w+)-)*ltpoutput.tgz/ )
       {
-         $hostname = $1; 
-         $epoch_time = $3; 
+         $hostname = $1;
+         $epoch_time = $3;
          $english_time = localtime($epoch_time);
          $dir = "$LTP_RES_DIR/$hostname/$english_time";
 
@@ -112,7 +112,7 @@
             $res_dirs[$count] = $new_dir; $count++;
          }
          else
-         { 
+         {
             print "No timestamp on results file, skipping for now\n";
 #Should come up with a soultion for this, check/create $hostname
 #     then some unique identifier but for now we'll complain and ignore
@@ -167,7 +167,7 @@
                 }
         }
 
-      $pass_percent = sprintf("%.2f", 
+      $pass_percent = sprintf("%.2f",
                          ($num_success / ($num_success + $num_fail)) * 100);
 
       $ltp_ver = `grep "version" $LTP_RUN_OUTPUT`;
@@ -191,13 +191,13 @@
         $line3 = `sar -c -f $SAR_OUTFILE |tail -n 1`;
         @sarstats3 = split(/\s+/, $line3);
         print "Processes created per second = $sarstats3[1]%\n";
-      }  
+      }
 
       if (open RES, ">$RESULTS_OUT")
       {
          print ". -> Results stored in $RESULTS_OUT\n";
          if (!open FAILS, ">$FAILS_OUT") { print "Error opening $FAILS_OUT\n"; }
-         $num = 
+         $num =
 #The <<<test_start>>> doesn't always get into the runalltest.sh output capture
 #because some output will appear before its corresponding block
 #So for now relying on last thing from ver_linux to know when to stop copying
@@ -226,24 +226,24 @@
 #end of new ouput section
 
          $runall = `cat $LTP_RUNALL_OUT`;
-	 
+
 	 # reset hash table values to 0
 	 foreach $case(keys %hash){
 		$hash{$case}=0;
-	 }	
-         
+	 }
+
          for ($j = 0; $j < $num_fail; $j++)
          {
             if ( $fails[$j] =~ m/^tag=(\w+?) / )
-            { 
+            {
                	$test_case = $1;
 		# each failure case will be printed out only once
-	       	if ((exists $hash{$test_case})&&( $hash{$test_case}==0 )) {  	
+	       	if ((exists $hash{$test_case})&&( $hash{$test_case}==0 )) {
 			$hash{$test_case}=1;
-	     	
+
                         if (FAILS) { print FAILS "$test_case\n"; }
                		print RES "\nTrying to find $test_case output";
-               		if ( $runall =~ 
+               		if ( $runall =~
 			#modified because some output is appearing before tagline
                     		m/((^$test_case.*?)*<<<test_start>>>.tag=$test_case.*?<<<test_end>>>)/ms )
                		{
@@ -252,7 +252,7 @@
                  		print RES "\n-------------------------\n";
                		}
               		else
-               		{  
+               		{
                   		print RES "\n-------------------------\n";
                   		print RES "Unable to locate output for $test_case!";
                   		print RES "\n-------------------------\n";
@@ -261,7 +261,7 @@
             }
          }
          close(RES); close(FAILS);
-      } 
+      }
       else
       { print "Can't open $RESULTS_OUT, test failures are:\n @fails\n"; }
    }
diff --git a/tools/ltp_master b/tools/ltp_master
index 003c725..4a08acc 100755
--- a/tools/ltp_master
+++ b/tools/ltp_master
@@ -1,4 +1,4 @@
-#!/usr/bin/perl 
+#!/usr/bin/perl
 
 #Master control script; ltp_master
 #       3/12/02 William Jay Huie (creation)
@@ -10,7 +10,7 @@
 
 #FIXME: One problem is that the tests need to be run as root as as of now
 #this means that LTP_USER needs to be root, which means root needs to be
-#able to telnet and ftp into the machine. Couldn't figure out how to add 
+#able to telnet and ftp into the machine. Couldn't figure out how to add
 #a su -c to the LTP_CMD_LINE variable, ssh will probably be the solution
 #but for now this works
 
@@ -23,7 +23,7 @@
 #CHANGEME:
 #change these for different defaults
 #Think carefully because things like ltprun.out are relied upon in the ltprun
-#     script, so you need to change them there too, or better yet make them 
+#     script, so you need to change them there too, or better yet make them
 #     cmd line parms
 #$LTP_USER = "ltp";
 #$LTP_PASS = "ltp";
@@ -74,7 +74,7 @@
    chdir "$LTP_RUN_DIR" or die "Can't change to $LTP_RUN_DIR";
    print "\nAttempting to Upload $LTP_RUN to: $hosts[$j]";
 
-   $ftp = Net::FTP->new($hosts[$j], Debug => 0) or 
+   $ftp = Net::FTP->new($hosts[$j], Debug => 0) or
       do { print "\n\tCouldn't connect to: $hosts[$j] --- skipping\n"; next; };
    $ftp->login($LTP_USER, $LTP_PASS) or die "\nUnable to login";
    $ftp->type('I') or die "\nUnable to set type to Binary";
@@ -108,7 +108,7 @@
 }
 print "\nAll Done!\n";
 
-#Use snippit below in results script to convert timing info 
+#Use snippit below in results script to convert timing info
 #     from tar file name into human readable format
 #$foo = $ARGV[0];
 #($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($foo);
diff --git a/tools/ltpoutput b/tools/ltpoutput
index 227a0e5..415fc89 100755
--- a/tools/ltpoutput
+++ b/tools/ltpoutput
@@ -1,17 +1,17 @@
 #!/usr/bin/perl
 
 #    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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
diff --git a/tools/ltpoutput2 b/tools/ltpoutput2
index 792644a..b1fc09b 100755
--- a/tools/ltpoutput2
+++ b/tools/ltpoutput2
@@ -1,17 +1,17 @@
 #!/usr/bin/perl
 
 #    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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
@@ -19,7 +19,7 @@
 #   FILE        : ltpoutput2
 #   DESCRIPTION : reads from STDIN and rips failures out of the output from PAN
 #   HISTORY	:
-#	12/12/2001 Robbie Williamson (robbiew@us.ibm.com) 
+#	12/12/2001 Robbie Williamson (robbiew@us.ibm.com)
 #		adapted from `ltpoutput`
 
 
diff --git a/tools/ltprun b/tools/ltprun
index 5fae63d..1fe9b13 100755
--- a/tools/ltprun
+++ b/tools/ltprun
@@ -3,7 +3,7 @@
 #       3/28/02 William Jay Huie minor updates
 #this will be kicked off by ltp_master from the master control machine which
 #uploads this script and then telnets into each machine and kick this script off
-#perhaps by passing a uniq ID to name the LTP_OUTPUT_TAR file by, or 
+#perhaps by passing a uniq ID to name the LTP_OUTPUT_TAR file by, or
 #allowing the script to create a unique name itself (reccommended for now)
 #Check ltp_master for details
 #FIXME: One problem is that the tests need to be run as root and this script
@@ -34,8 +34,8 @@
 download_ltp()
 {
    echo "Attempting to download the LTP testcases";
-   cd ~ 
-   rm -Rf ltp $LTP_TARFILE 
+   cd ~
+   rm -Rf ltp $LTP_TARFILE
    ftp -n $LTP_HOST << END_GET
    	user $LTP_USER $LTP_PASS
 	bin
@@ -43,14 +43,14 @@
 	bye
 END_GET
 
-   if [ -s $LTP_TARFILE ]; then 
-      echo "              downloaded sucessfully"; 
+   if [ -s $LTP_TARFILE ]; then
+      echo "              downloaded sucessfully";
    else
       echo "FAILED        download of LTP Testcases"; return 0;
    fi
    return 1;
 }
- 
+
 untar_ltp()
 {
    echo "Untarring $LTP_TARFILE now";
@@ -63,7 +63,7 @@
    fi
    return 1;
 }
-    
+
 build_ltp()
 {
    cd ~/ltp
@@ -75,7 +75,7 @@
       echo "         LTP Testsuite compilation successful"
    fi
    return 1;
-}   
+}
 
 run_ltp()
 {
@@ -89,7 +89,7 @@
    killall -9 sadc
    echo "Killing sar if it is running"
    return 1;
-}   
+}
 
 #FIXME:
 #collect results has a hack to copy the &>ltprun file into the ~/ltp dir then
@@ -101,7 +101,7 @@
    cp ~/$LTP_RUN_OUTPUT .
    tar --ignore-failed-read -czf ~/$LTP_OUTPUT_TAR $LTP_RUNALL_OUT $LTP_LOGFILE $LTP_RUN_OUTPUT $SAR_OUTFILE
 
-   if [ -s ~/$LTP_OUTPUT_TAR ]; then 
+   if [ -s ~/$LTP_OUTPUT_TAR ]; then
       echo "LTP output tarfile created sucessfully";
    else
       echo "FAILED        tar of LTP results"; return 0;
@@ -110,7 +110,7 @@
 }
 
 upload_results()
-{   
+{
    echo "Uploading LTP output"
    cd ~
    ftp -n $LTP_HOST << END_PUT
@@ -121,18 +121,18 @@
 END_PUT
 #FIXME! Right now don't have a way to verify the upload worked, but
 #we'd like to know so we can delete the OUTPUT_TAR file
-#   rm -f $LTP_OUTPUT_TAR 
+#   rm -f $LTP_OUTPUT_TAR
     rm -f $LTP_TARFILE
 }
 
 #Start the work!
 
 download_ltp
-if [ $? = 1 ]; then 
+if [ $? = 1 ]; then
    untar_ltp
-   if [ $? = 1 ]; then 
+   if [ $? = 1 ]; then
       build_ltp
-      if [ $? = 1 ]; then 
+      if [ $? = 1 ]; then
          run_ltp
       fi
    fi
diff --git a/tools/ltpupdate b/tools/ltpupdate
index dfeca90..f7e4d11 100755
--- a/tools/ltpupdate
+++ b/tools/ltpupdate
@@ -6,8 +6,8 @@
 #
 
 export CVSROOT=:pserver:anonymous@cvs.LTP.sourceforge.net:/cvsroot/ltp
-#cvs -d:pserver:anonymous@cvs.LTP.sourceforge.net:/cvsroot/ltp login 
-#cvs -z3 -d:pserver:anonymous@cvs.LTP.sourceforge.net:/cvsroot/ltp co ltp 
+#cvs -d:pserver:anonymous@cvs.LTP.sourceforge.net:/cvsroot/ltp login
+#cvs -z3 -d:pserver:anonymous@cvs.LTP.sourceforge.net:/cvsroot/ltp co ltp
 
 #CHANGEME:
 LTP_HOST=ltp_host.somewhere.org
diff --git a/tools/mkrootfs/README b/tools/mkrootfs/README
index 79c7697..65cae70 100644
--- a/tools/mkrootfs/README
+++ b/tools/mkrootfs/README
@@ -17,5 +17,5 @@
    ok> boot floppy:,\<kernel image> load_ramdisk=1 ramdisk_size=128000
    root=/dev/fd0h1440 video=keep (hit enter)
 4. when prompted for root disk, remove floppy 1 and insert floppy 2 (hit enter)
-   
+
 
diff --git a/tools/mkrootfs/mkrootfs b/tools/mkrootfs/mkrootfs
index 0c77153..4c3b834 100755
--- a/tools/mkrootfs/mkrootfs
+++ b/tools/mkrootfs/mkrootfs
@@ -20,7 +20,7 @@
 ################################################################################
 # File:        mkrootfs
 #
-# Description: script to create rootfs that will fit on a floppy. This 
+# Description: script to create rootfs that will fit on a floppy. This
 #              filesystem contains a staticly linked busybox that provides
 #              basic commands and a shell.
 #
@@ -30,12 +30,12 @@
 #
 
 
-TWDIR=/tmp/mkrootfs.$$ # temporary working directory 
+TWDIR=/tmp/mkrootfs.$$ # temporary working directory
 
 clean()
-{    
+{
     echo "INFO: Cleaning and exiting program"
- 
+
     mount | grep "$TWDIR/mnt" 2>&1 >/dev/null && \
     {
         echo "INFO: unmounting $TWDIR/mnt"
@@ -114,7 +114,7 @@
 
     # parse input arguments
     while getopts b:cd:f:h arg
-    do case $arg in 
+    do case $arg in
         b) BBLOC=$OPTARG;;
         c) CREATEFD=1;;
         d) HDDTYPE=$OPTARG;;
@@ -122,12 +122,12 @@
         h) help;;
         \?) usage;;
        esac
-    done       
+    done
 
     # on exit clean up all temporary files and directories.
     trap "clean" 0
 
-    # create temporary working directory 
+    # create temporary working directory
     mkdir -p $TWDIR  2>&1 || \
     {
         echo "FAILED: creating temporary working directory"
@@ -161,10 +161,10 @@
             echo "FAILED: unable to create EXT2 filesystem on block file."
             echo "FAILED: `cat $TWDIR/crfs.out`"
             exit 1
-        } 
-    else 
+        }
+    else
         [ "$FSTYPE" = "reiserfs" ] && \
-        { 
+        {
             FORCEREI="-f -f";
         }
         mkfs.$FSTYPE $FORCEREI $TWDIR/ramdisk_fs 2>&1 >$TWDIR/crfs.out || \
@@ -224,7 +224,7 @@
         echo "WARNING: cat `$TWDIR/crfs.out`"
     }
 
-    # setting up the /etc directory, the three main files that will 
+    # setting up the /etc directory, the three main files that will
     # be created are fstab, rc.sysinit and inittab.
 
     # create the inittab file.
@@ -234,7 +234,7 @@
 	EOF
 
     [ $RC -ne 0 ] && \
-    {  
+    {
         echo "FAILED: creating inittab file"
         exit 1
     }
@@ -288,10 +288,10 @@
         exit 1
     }
 
-    # setting up /dev directory. Assuming that this script is 
-    # executed on a linux system, contents of /dev directory of the 
-    # host system will simply be copied to the rootfs file. Alternatively 
-    # the mknod command may be used to create 
+    # setting up /dev directory. Assuming that this script is
+    # executed on a linux system, contents of /dev directory of the
+    # host system will simply be copied to the rootfs file. Alternatively
+    # the mknod command may be used to create
     # each device file. But the former is quick and easy.
 
     # set up floppy drives. /dev/null and /dev/console
@@ -307,7 +307,7 @@
 
     # set up scsi or ide devices.
 
-    if [ "$HDDTYPE" = "scsi" ] || [ "$HDDTYPE" = "SCSI" ] 
+    if [ "$HDDTYPE" = "scsi" ] || [ "$HDDTYPE" = "SCSI" ]
     then
         # set up SCSI cdrom drives.
         cp -dpR /dev/sr0 $TWDIR/mnt/dev 2>&1 >$TWDIR/crfs.out || \
@@ -346,7 +346,7 @@
     fi
 
 
-    # setting up busybox. 
+    # setting up busybox.
 
     if [ "$BBLOC" = "NONE" ]
     then
@@ -357,7 +357,7 @@
             echo "FAILED: fetching busybox from www.busybox.net"
             exit 1
         }
- 
+
         tar zxf ./busybox-0.60.5.tar.gz 2>&1 >$TWDIR/crfs.out || \
         {
             echo "FAILED: uncompressing busybox tar ball"
@@ -401,10 +401,10 @@
     else
         cp $BBLOC/busybox $TWDIR/mnt/bin/ 2>&1 \
            >$TWDIR/crfs.out || \
-        {   
+        {
             echo "FAILED: copying busybox binary to $TWDIR/mnt/bin/"
             exit 1
-        }   
+        }
     fi
 
     echo "INFO: installing busybox"
@@ -423,7 +423,7 @@
          echo "FAILED: linking busybox to chroot"
          exit 1
      }
- 
+
      # set up /bin directory
      for SYS_CMD in ash chmod dd false kill mknod pidof rmdir sync umount \
                      chown df grep ln more ps sed tar uname cat cp dmesg  \
@@ -438,7 +438,7 @@
              exit 1
          }
      done
- 
+
      # set up /sbin directory
      for SYS_CMD in halt  klogd  mkswap    poweroff  swapoff  syslogd \
                     init  lsmod  modprobe  reboot    swapon
@@ -466,7 +466,7 @@
              exit 1
          }
      done
- 
+
     # sync'ing changes to disk.
 
     sync; sync; sync; sync; sync; sync;
@@ -479,17 +479,17 @@
         exit 1
     }
 
-    # create a copy of the rootfs.gz on PWD. 
+    # create a copy of the rootfs.gz on PWD.
     cp $TWDIR/rootfs.gz ./ 2>&1 >$TWDIR/crfs.out || \
     {
         echo "FAILED:  coping rootfs.gz from temp directory to $PWD"
         echo "FAILED: `cat $TWDIR/crfs.out`"
         exit 1
     }
- 
+
     if [ $CREATEFD -ne 0 ]
     then
-        # creating filesystem on floppy 
+        # creating filesystem on floppy
         if [ "$FSTYPE" = "ext2" ]; then
             mke2fs -v -m 0 -N 24 /dev/fd0h1440 2>&1 >$TWDIR/crfs.out || \
             {
@@ -498,10 +498,10 @@
                 echo "INFO: mke2fs -m 0 -N 24 /dev/fd0h1440"
                 echo "INFO: and dd rootfs.gz to this floppy"
                 exit 1
-            } 
-        else 
+            }
+        else
             [ "$FSTYPE" = "reiserfs" ] && \
-            { 
+            {
                 FORCEREI="-f -f";
             }
             mkfs.$FSTYPE $FORCEREI /dev/fd0h1440 2>&1 >$TWDIR/crfs.out || \
@@ -514,14 +514,14 @@
             }
         fi
 
-        sync; sync; sync; sync 
-        # dd the rootfs on to floppy, if the rootfs.gz is greater than 
+        sync; sync; sync; sync
+        # dd the rootfs on to floppy, if the rootfs.gz is greater than
         # dd will fail so no pre-check is done on size of rootfs.gz
         dd if=$TWDIR/rootfs.gz of=/dev/fd0h1440 bs=1k 2>&1 >$TWDIR/crfs.out || \
         {
             echo "FAILED: dd'ing the rootfs.gz onto floppy."
             echo "FAILED: `cat $TWDIR/crfs.out`"
-            echo "INFO: please try it manually" 
+            echo "INFO: please try it manually"
             echo "INFO: dd if=./rootfs.gz of=/dev/fd0 bs=1k"
             exit 1
         }
diff --git a/tools/netpipe-2.4-ipv6/Makefile b/tools/netpipe-2.4-ipv6/Makefile
index 8d9c274..104b3d3 100644
--- a/tools/netpipe-2.4-ipv6/Makefile
+++ b/tools/netpipe-2.4-ipv6/Makefile
@@ -28,7 +28,7 @@
 all: $(TARGETS)
 
 install:
-	@ln -f NPtcp-ipv6 ../../testcases/bin	
+	@ln -f NPtcp-ipv6 ../../testcases/bin
 #
 # This section of the Makefile is for compiling the binaries
 #
@@ -51,7 +51,7 @@
 NPmpi:	NPmpi.o MPI.o
 	$(CC) $(CFLAGS) NPmpi.o MPI.o -o NPmpi  -L $(MPI_HOME)/lib/$(MPI_ARCH)/$(MPI_DEVICE) -lmpi $(EXTRA_LIBS)
 
-NPmpi.o:	$(DRIV_SRC) $(INCLUDES) 
+NPmpi.o:	$(DRIV_SRC) $(INCLUDES)
 	$(CC) $(CFLAGS) -DMPI -I$(MPI_HOME)/include -c -o NPmpi.o $(DRIV_SRC)
 
 MPI.o:	MPI.c MPI.h $(INCLUDES)
diff --git a/tools/netpipe-2.4-ipv6/netpipe.h b/tools/netpipe-2.4-ipv6/netpipe.h
index 9a5d2e7..9ee6891 100644
--- a/tools/netpipe-2.4-ipv6/netpipe.h
+++ b/tools/netpipe-2.4-ipv6/netpipe.h
@@ -55,7 +55,7 @@
 
 
 typedef struct argstruct ArgStruct;
-struct argstruct 
+struct argstruct
 {
     /* This is the common information that is needed for all tests           */
     char     *host;         /* Name of receiving host                        */
diff --git a/tools/netpipe-2.4/Makefile b/tools/netpipe-2.4/Makefile
index 8184449..6e49691 100644
--- a/tools/netpipe-2.4/Makefile
+++ b/tools/netpipe-2.4/Makefile
@@ -51,7 +51,7 @@
 NPmpi:	NPmpi.o MPI.o
 	$(CC) $(CFLAGS) NPmpi.o MPI.o -o NPmpi  -L $(MPI_HOME)/lib/$(MPI_ARCH)/$(MPI_DEVICE) -lmpi $(EXTRA_LIBS)
 
-NPmpi.o:	$(DRIV_SRC) $(INCLUDES) 
+NPmpi.o:	$(DRIV_SRC) $(INCLUDES)
 	$(CC) $(CFLAGS) -DMPI -I$(MPI_HOME)/include -c -o NPmpi.o $(DRIV_SRC)
 
 MPI.o:	MPI.c MPI.h $(INCLUDES)
diff --git a/tools/netpipe-2.4/chmod.sh b/tools/netpipe-2.4/chmod.sh
index 236ba35..b87c79d 100644
--- a/tools/netpipe-2.4/chmod.sh
+++ b/tools/netpipe-2.4/chmod.sh
@@ -6,8 +6,8 @@
  echo ""
  echo "		         ************** WARNING **************"
  echo "		Cannot change permission or ownership of \"$1\"."
- echo "		           Tests in this directory will fail." 
- echo "		              Run "make install" as root." 
+ echo "		           Tests in this directory will fail."
+ echo "		              Run "make install" as root."
  echo "		         *************************************"
  sleep 2
 fi
diff --git a/tools/netpipe-2.4/netpipe.h b/tools/netpipe-2.4/netpipe.h
index b10ec0b..1d44714 100644
--- a/tools/netpipe-2.4/netpipe.h
+++ b/tools/netpipe-2.4/netpipe.h
@@ -54,7 +54,7 @@
 
 
 typedef struct argstruct ArgStruct;
-struct argstruct 
+struct argstruct
 {
     /* This is the common information that is needed for all tests           */
     char     *host;         /* Name of receiving host                        */
diff --git a/tools/netpipe-2.4/netpipe.sh b/tools/netpipe-2.4/netpipe.sh
index 4da7995..cc87030 100644
--- a/tools/netpipe-2.4/netpipe.sh
+++ b/tools/netpipe-2.4/netpipe.sh
@@ -25,7 +25,7 @@
 while [ 1 ]
 do
 	NPtcp -sar >/dev/null 2>/dev/null &
-	NPtcp -sth localhost >/dev/null 2>/dev/null 
+	NPtcp -sth localhost >/dev/null 2>/dev/null
 	sleep 1
 done
 
diff --git a/tools/pounder21/CHANGELOG b/tools/pounder21/CHANGELOG
index 4543f3a..b5296d2 100644
--- a/tools/pounder21/CHANGELOG
+++ b/tools/pounder21/CHANGELOG
@@ -63,7 +63,7 @@
 - Fix a bug in randasys on x86-64 where we had insufficient random bits and
   would truncate whatever we got, leading to all 0 arguments by simply
   generating enough random bytes to fill an unsigned long.  Also add a -z
-  switch to enable this zero-only mode because it found some bugs.  :) 
+  switch to enable this zero-only mode because it found some bugs.  :)
 
 pounder21-2006-10-12:
 - Include /sysfs contents in the hw inventory
@@ -211,7 +211,7 @@
 - More fixes to make sure the xterm_stress test dies when it should, an LTP refresh,
   and a couple of patches designed to make pounder work better with the
   mainline testing rig.  I haven't seen any problems with it, so I'm
-  pushing it out to the group to find more error cases.  :) 
+  pushing it out to the group to find more error cases.  :)
 
 pounder21-2005-08-16:
 - README: Add warning that changing the first line is a bad idea.
diff --git a/tools/pounder21/Install b/tools/pounder21/Install
index 5bbfe2f..bf13528 100755
--- a/tools/pounder21/Install
+++ b/tools/pounder21/Install
@@ -3,7 +3,7 @@
 # Download pounder components and build them.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -28,9 +28,9 @@
 	export USE_CACHE=0
 fi
 
-#check utilities needed to run the tests before getting started. 
+#check utilities needed to run the tests before getting started.
 #If you test uses something else or a build fails add
-#the command to the list manually. 
+#the command to the list manually.
 COMMANDS="make g++ lex gcc python wget sudo diff patch egrep rm echo test which cp mkdir"
 MISSING_TOOLS=""
 echo -en "Looking for tools..."
@@ -114,7 +114,7 @@
 	fi
 	if [ -x "build_scripts/$i" ]; then
 		FOUND=`find $POUNDER_HOME/tests -name *$i`
-		if [ -n "$FOUND" ]; then	
+		if [ -n "$FOUND" ]; then
 			"build_scripts/$i" $*
 			BUILD_ERR=$?
 			if [ "$BUILD_ERR" -ne 0 ]; then
diff --git a/tools/pounder21/Makefile b/tools/pounder21/Makefile
index aeda989..70f945b 100644
--- a/tools/pounder21/Makefile
+++ b/tools/pounder21/Makefile
@@ -1,7 +1,7 @@
 # Quickie makefile to (sort of) automate various pounder tasks.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/README b/tools/pounder21/README
index 6621a14..a016be8 100644
--- a/tools/pounder21/README
+++ b/tools/pounder21/README
@@ -44,7 +44,7 @@
 
 	2. cd tools/pounder21/.  You've already done this too.
 
-	3. (optional) Set up a NFS server to export "/pounder21" (unless you wish 
+	3. (optional) Set up a NFS server to export "/pounder21" (unless you wish
 		to skip nfs tests).
 
 	4. (optional) Modify any variables in "config" (see doc/CONFIGURATION for details).
@@ -58,7 +58,7 @@
 		delete any subtests from the test scheduler that fail to build.
 		If you enter "n", the script will prompt you each time a test
 		fails to build on whether or not to skip the failed test.
-       
+
 	6. Run "./pounder" to start the tests (run "./pounder -h" for usage options).
 
 	7. Press ^C or run "./pounder -k" to stop the tests
@@ -66,8 +66,8 @@
 		duration in seconds by modifying config (see doc/CONFIGURATION for details)
 		or by using the -d option when starting pounder (./pounder -d <duration in seconds>)
 
-	8. Run "make mrclean" to restore everything to the state before the tarball 
-		was unpacked (running this command will of course require you to 
+	8. Run "make mrclean" to restore everything to the state before the tarball
+		was unpacked (running this command will of course require you to
 		rebuild with "make install" for the next pounder run)
 
 See doc/SCHEDULER for details on defining the order in which tests are run, and whether they
diff --git a/tools/pounder21/build_scripts/bonnie++ b/tools/pounder21/build_scripts/bonnie++
index d408fb7..907a2c6 100755
--- a/tools/pounder21/build_scripts/bonnie++
+++ b/tools/pounder21/build_scripts/bonnie++
@@ -3,7 +3,7 @@
 # Builds bonnie++
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/build_kernel b/tools/pounder21/build_scripts/build_kernel
index 1511578..4a753b5 100755
--- a/tools/pounder21/build_scripts/build_kernel
+++ b/tools/pounder21/build_scripts/build_kernel
@@ -3,7 +3,7 @@
 # Grabs kernel tarball
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/cpufreq b/tools/pounder21/build_scripts/cpufreq
index 96514f3..3373575 100755
--- a/tools/pounder21/build_scripts/cpufreq
+++ b/tools/pounder21/build_scripts/cpufreq
@@ -3,7 +3,7 @@
 # Build CPU frequency switching test program
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/ipmitool b/tools/pounder21/build_scripts/ipmitool
index ed2e114..5de7de6 100755
--- a/tools/pounder21/build_scripts/ipmitool
+++ b/tools/pounder21/build_scripts/ipmitool
@@ -3,7 +3,7 @@
 # Builds ipmitool
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -60,12 +60,12 @@
 		fi
 		#TODO: what if no target found?
 	fi
-	
+
 	# Unpack if req'd
 	if [ ! -d "$PKGNAME" ]; then
 		tar -xzf "$TARNAME"
 	fi
-	
+
 	# Build
 	cd "$PKGNAME"
 	./configure
diff --git a/tools/pounder21/build_scripts/lame b/tools/pounder21/build_scripts/lame
index d7d968d..240d6ae 100755
--- a/tools/pounder21/build_scripts/lame
+++ b/tools/pounder21/build_scripts/lame
@@ -3,7 +3,7 @@
 # Builds lame for MMX/SSE testing
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/ltp b/tools/pounder21/build_scripts/ltp
index 70defe4..dfebe28 100755
--- a/tools/pounder21/build_scripts/ltp
+++ b/tools/pounder21/build_scripts/ltp
@@ -3,7 +3,7 @@
 # Builds ltp
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/mem_alloc b/tools/pounder21/build_scripts/mem_alloc
index 6b8f949..eecd718 100755
--- a/tools/pounder21/build_scripts/mem_alloc
+++ b/tools/pounder21/build_scripts/mem_alloc
@@ -3,7 +3,7 @@
 # Build OOM tester
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/memtest b/tools/pounder21/build_scripts/memtest
index e22def9..480d5c3 100755
--- a/tools/pounder21/build_scripts/memtest
+++ b/tools/pounder21/build_scripts/memtest
@@ -3,7 +3,7 @@
 # Build lowmem exhaustion/corruption tester
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -45,7 +45,7 @@
 		wget "http://people.redhat.com/dledford/memtest.shtml"
 	fi
 	IN_BLOCK=0
-	
+
 	if [ ! -f "memtest.shtml" ]; then
 		echo "[memtest] Could not download memtest.shtml.  Aborting!"
 		exit -1
@@ -56,7 +56,7 @@
 		if [ "$?" -eq 0 ]; then
 			if [ "$IN_BLOCK" -eq 0 ]; then
 				IN_BLOCK=1
-			else	
+			else
 				IN_BLOCK=0
 			fi
 		else
diff --git a/tools/pounder21/build_scripts/memxfer5b b/tools/pounder21/build_scripts/memxfer5b
index 1d18fc8..c28b2da 100755
--- a/tools/pounder21/build_scripts/memxfer5b
+++ b/tools/pounder21/build_scripts/memxfer5b
@@ -3,7 +3,7 @@
 # Build memory streaming benchmark program
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/ramsnake b/tools/pounder21/build_scripts/ramsnake
index c85a955..ef4041e 100755
--- a/tools/pounder21/build_scripts/ramsnake
+++ b/tools/pounder21/build_scripts/ramsnake
@@ -3,7 +3,7 @@
 # Build shared memory exerciser
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/build_scripts/random_syscall b/tools/pounder21/build_scripts/random_syscall
index caab075..a28f473 100755
--- a/tools/pounder21/build_scripts/random_syscall
+++ b/tools/pounder21/build_scripts/random_syscall
@@ -3,7 +3,7 @@
 # Build random system call generator
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/debug.h b/tools/pounder21/debug.h
index d49a9d2..b3678d3 100644
--- a/tools/pounder21/debug.h
+++ b/tools/pounder21/debug.h
@@ -1,8 +1,8 @@
 /* Function prototypes for debugging functions. */
 
-/* 
+/*
  * Copyright (C) 2003-2006 IBM
- * 
+ *
  * 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
@@ -12,7 +12,7 @@
  * 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/doc/CONFIGURATION b/tools/pounder21/doc/CONFIGURATION
index 8557ea9..1878b50 100644
--- a/tools/pounder21/doc/CONFIGURATION
+++ b/tools/pounder21/doc/CONFIGURATION
@@ -3,7 +3,7 @@
 
 Author:
 Lucy Liang <lgliang@us.ibm.com>
-	
+
 Copyright (C) 2011 IBM.
 
 Contents
diff --git a/tools/pounder21/doc/SCHEDULER b/tools/pounder21/doc/SCHEDULER
index 2df082a..979df51 100644
--- a/tools/pounder21/doc/SCHEDULER
+++ b/tools/pounder21/doc/SCHEDULER
@@ -4,7 +4,7 @@
 Authors:
 Darrick Wong <djwong@us.ibm.com>
 Lucy Liang <lgliang@us.ibm.com>
-	
+
 Copyright (C) 2011 IBM.
 
 Contents
@@ -80,11 +80,11 @@
 (see "$POUNDER_CACHE" in doc/CONFIGURATION for more information)
 
 Should there be a failure in the build script that is essential to the ability
-to run a test, the build script should exit with error to halt the main build 
+to run a test, the build script should exit with error to halt the main build
 process immediately.
 
 Also, be aware that distributing pre-built binary tarballs is not always a good
-idea. Though one could cache pre-built binary tarballs rather than source, it may 
+idea. Though one could cache pre-built binary tarballs rather than source, it may
 not be a good idea because distros are not always good at ABI/library path compatibility,
 despite the efforts of LSB, FHS, etc.  It is always safest to build your
 subtests from source on your target system.
@@ -227,7 +227,7 @@
 	until it has failed 10 times, regardless of what $MAX_FAILURES is.
 
 2. test_scripts/time_drift contains the following line:
-       
+
 	"$POUNDER_HOME/timed_loop 900 "$POUNDER_SRCDIR/time_tests/drift-test.py" $NTP_SERVER $FREQ"
 
 	which will run the drift-test.py script ($NTP_SERVER and $FREQ are some args passed to drift-test.py)
@@ -314,7 +314,7 @@
 	- lists all of the subtests that came with the currently active test scheduler.
 	The output should look something like:
 
-	------------------	
+	------------------
 	#./pounder -l
 	Included subtests:
 	...
diff --git a/tools/pounder21/fancy_timed_loop.c b/tools/pounder21/fancy_timed_loop.c
index 7f4deb4..78c52bf 100644
--- a/tools/pounder21/fancy_timed_loop.c
+++ b/tools/pounder21/fancy_timed_loop.c
@@ -167,10 +167,10 @@
 				} else {
 					stat = execvp(argv[7], &argv[7]);
 				}
-				
+
 				perror(argv[7]);
 			}
-			else {	
+			else {
 				if (argc > 3) {
 					stat = execvp(argv[5], &argv[5]);
 				} else {
diff --git a/tools/pounder21/infinite_loop.c b/tools/pounder21/infinite_loop.c
index 4d151b1..119af1f 100644
--- a/tools/pounder21/infinite_loop.c
+++ b/tools/pounder21/infinite_loop.c
@@ -116,7 +116,7 @@
 			}
 
 			// run the program
-			if (use_max_failures) {	
+			if (use_max_failures) {
 				if (argc > 5) {
 					stat = execvp(argv[3], &argv[3]);
 				} else {
diff --git a/tools/pounder21/libpounder.sh b/tools/pounder21/libpounder.sh
index 5444239..21e4613 100644
--- a/tools/pounder21/libpounder.sh
+++ b/tools/pounder21/libpounder.sh
@@ -1,7 +1,7 @@
 # Common shell functions and variables that all pounder scripts can use.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/nfs_logging b/tools/pounder21/nfs_logging
index 34bf90c..405a95b 100755
--- a/tools/pounder21/nfs_logging
+++ b/tools/pounder21/nfs_logging
@@ -3,7 +3,7 @@
 # Mount an NFS export for remote log storage.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -22,7 +22,7 @@
 # @author Sarunya Jimenez (sjimen@us.ibm.com)
 # Reworked by Darrick Wong <djwong@us.ibm.com>
 #  - If unable to connect to NFS_SERVER => save log files in local machine
-#  - Otherwise, 
+#  - Otherwise,
 #    1. log files produced from ./pounder will be in
 #       NFS_LOGSERVER (e.g. 10.0.0.211)
 #       |--- /pounder
diff --git a/tools/pounder21/pounder b/tools/pounder21/pounder
index 9382d87..c3defcf 100755
--- a/tools/pounder21/pounder
+++ b/tools/pounder21/pounder
@@ -3,7 +3,7 @@
 # Main pounder control script.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -37,7 +37,7 @@
 
 -h      	Brings up this menu
 -c scheduler	Creates a new test scheduler called scheduler-tests.tar.gz in the pounder/schedulers folder.
-		All subtests to be packaged with this scheduler must first be placed in the pounder/tests folder. 
+		All subtests to be packaged with this scheduler must first be placed in the pounder/tests folder.
 -x      	Enable X stress tests.
 -d duration	Run pounder for duration seconds.
 -n ipaddr	Use ipaddr for NFS tests.
@@ -70,7 +70,7 @@
 		ORIG_DIR=`pwd`
 		cd `dirname $i`
 		FULL_PATH=`pwd`/"$BASENAME"
-		cd $ORIG_DIR 
+		cd $ORIG_DIR
 
 		FOUND=`echo "$SUBTESTS_INC" | grep -x "$FULL_PATH"`
 
diff --git a/tools/pounder21/proclist.h b/tools/pounder21/proclist.h
index c7093d7..f8ddae4 100644
--- a/tools/pounder21/proclist.h
+++ b/tools/pounder21/proclist.h
@@ -1,8 +1,8 @@
 /* Declarations to manage a list of processes. */
 
-/* 
+/*
  * Copyright (C) 2003-2006 IBM
- * 
+ *
  * 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
@@ -12,7 +12,7 @@
  * 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/cpufreq/Makefile b/tools/pounder21/src/cpufreq/Makefile
index 62c4270..b2a1ed0 100644
--- a/tools/pounder21/src/cpufreq/Makefile
+++ b/tools/pounder21/src/cpufreq/Makefile
@@ -1,7 +1,7 @@
 # Makefile for CPU frequency tester
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/dump_xserver_statm b/tools/pounder21/src/dump_xserver_statm
index cdab198..8d0538a 100755
--- a/tools/pounder21/src/dump_xserver_statm
+++ b/tools/pounder21/src/dump_xserver_statm
@@ -3,7 +3,7 @@
 # Dump X11 server statm data
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/libidecd.sh b/tools/pounder21/src/libidecd.sh
index 6c7a642..9648574 100755
--- a/tools/pounder21/src/libidecd.sh
+++ b/tools/pounder21/src/libidecd.sh
@@ -1,9 +1,9 @@
 #!/bin/bash
 
 # Library to find CD devices.
-# 
+#
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/ltp-debian-build.patch b/tools/pounder21/src/ltp-debian-build.patch
index 5e3191b..9447e7b 100644
--- a/tools/pounder21/src/ltp-debian-build.patch
+++ b/tools/pounder21/src/ltp-debian-build.patch
@@ -20,7 +20,7 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  char *TCID = __FILE__;
 diff -Naur ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_recvfrom.c ltp-full-20050804-new/testcases/network/sctp/func_tests/test_1_to_1_recvfrom.c
 --- ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_recvfrom.c	2005-08-04 13:33:05.000000000 -0700
@@ -32,7 +32,7 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  char *TCID = __FILE__;
 diff -Naur ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_recvmsg.c ltp-full-20050804-new/testcases/network/sctp/func_tests/test_1_to_1_recvmsg.c
 --- ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_recvmsg.c	2005-08-04 13:33:05.000000000 -0700
@@ -44,7 +44,7 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  #define MSG_EOF 0x200
 diff -Naur ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_rtoinfo.c ltp-full-20050804-new/testcases/network/sctp/func_tests/test_1_to_1_rtoinfo.c
 --- ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_rtoinfo.c	2005-08-04 13:33:05.000000000 -0700
@@ -68,7 +68,7 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  char *TCID = __FILE__;
 diff -Naur ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_sendmsg.c ltp-full-20050804-new/testcases/network/sctp/func_tests/test_1_to_1_sendmsg.c
 --- ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_sendmsg.c	2005-08-04 13:33:05.000000000 -0700
@@ -80,7 +80,7 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  #define MSG_EOF 0x200
 diff -Naur ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_sendto.c ltp-full-20050804-new/testcases/network/sctp/func_tests/test_1_to_1_sendto.c
 --- ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_sendto.c	2005-08-04 13:33:05.000000000 -0700
@@ -92,7 +92,7 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  char *TCID = __FILE__;
 diff -Naur ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_shutdown.c ltp-full-20050804-new/testcases/network/sctp/func_tests/test_1_to_1_shutdown.c
 --- ltp-full-20050804/testcases/network/sctp/func_tests/test_1_to_1_shutdown.c	2005-08-04 13:33:05.000000000 -0700
@@ -116,5 +116,5 @@
 -#include <linux/socket.h>
 +
  #include <sctputil.h>
- 
+
  #define THREADS 10    /* FIXME should be 500 instead of 10 */
diff --git a/tools/pounder21/src/ltp-setregid-fix.patch b/tools/pounder21/src/ltp-setregid-fix.patch
index ad05968..f26ee53 100644
--- a/tools/pounder21/src/ltp-setregid-fix.patch
+++ b/tools/pounder21/src/ltp-setregid-fix.patch
@@ -10,5 +10,5 @@
 +	{ &inval_user, &neg_one, EPERM, &users, &users, "After setregid(invalid group, -1)," },
 +	{ &neg_one, &inval_user, EPERM, &users, &users, "After setregid(-1, invalid group)," },
  };
- 
+
  int TST_TOTAL = sizeof(test_data)/sizeof(test_data[0]);
diff --git a/tools/pounder21/src/mem_alloc_test/Makefile b/tools/pounder21/src/mem_alloc_test/Makefile
index 0f0e1e2..85887a8 100644
--- a/tools/pounder21/src/mem_alloc_test/Makefile
+++ b/tools/pounder21/src/mem_alloc_test/Makefile
@@ -1,7 +1,7 @@
 # Makefile for OOM tester
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/memtest.patch b/tools/pounder21/src/memtest.patch
index 3783595..dd46b81 100644
--- a/tools/pounder21/src/memtest.patch
+++ b/tools/pounder21/src/memtest.patch
@@ -2,16 +2,16 @@
 +++ memtest.sh	2004-09-16 11:30:50.000000000 -0700
 @@ -74,21 +74,21 @@
  cd $TEST_DIR
- 
+
  # Remove any possible left over directories from a cancelled previous run
 -rm -fr linux linux.orig linux.pass.*
 +rm -fr linux-2.6.18 linux.orig linux.pass.*
- 
+
  # Unpack the one copy of the source tree that we will be comparing against
  tar -xzf $SOURCE_FILE
 -mv linux linux.orig
 +mv linux-2.6.18 linux.orig
- 
+
  i=0
  while [ "$i" -lt "$NR_PASSES" ]; do
  j=0
@@ -28,10 +28,10 @@
  done
 @@ -108,7 +108,7 @@
  done
- 
+
  # Clean up after ourselves
 -rm -fr linux linux.orig linux.pass.*
 +rm -fr linux-2.6.18 linux.orig linux.pass.*
- 
- 
- 
+
+
+
diff --git a/tools/pounder21/src/memxfer5b/Makefile b/tools/pounder21/src/memxfer5b/Makefile
index 7d968f0..172391b 100644
--- a/tools/pounder21/src/memxfer5b/Makefile
+++ b/tools/pounder21/src/memxfer5b/Makefile
@@ -1,7 +1,7 @@
 # Makefile for memory streaming benchmark
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/ramsnake/Makefile b/tools/pounder21/src/ramsnake/Makefile
index 71eb7d5..e22d335 100644
--- a/tools/pounder21/src/ramsnake/Makefile
+++ b/tools/pounder21/src/ramsnake/Makefile
@@ -1,7 +1,7 @@
 # Build shared memory stress test
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,14 +11,14 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.
 
 
-CFLAGS += -O3 -Wall 
+CFLAGS += -O3 -Wall
 bins = snake.exe
 
 all: ${bins}
diff --git a/tools/pounder21/src/randacoords/Makefile b/tools/pounder21/src/randacoords/Makefile
index 6dbfc94..9081ca0 100644
--- a/tools/pounder21/src/randacoords/Makefile
+++ b/tools/pounder21/src/randacoords/Makefile
@@ -1,7 +1,7 @@
 # Build program to generate random coordinates
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/randasyscall/Makefile b/tools/pounder21/src/randasyscall/Makefile
index 76ad4d0..77d1fdc 100644
--- a/tools/pounder21/src/randasyscall/Makefile
+++ b/tools/pounder21/src/randasyscall/Makefile
@@ -1,7 +1,7 @@
 # Build the random syscall generator
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/time_tests/Makefile b/tools/pounder21/src/time_tests/Makefile
index f1bdf23..378da59 100644
--- a/tools/pounder21/src/time_tests/Makefile
+++ b/tools/pounder21/src/time_tests/Makefile
@@ -1,7 +1,7 @@
 # Build time tests
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/src/time_tests/drift-test.py b/tools/pounder21/src/time_tests/drift-test.py
index 42644ab..aba1909 100755
--- a/tools/pounder21/src/time_tests/drift-test.py
+++ b/tools/pounder21/src/time_tests/drift-test.py
@@ -5,7 +5,7 @@
 #		by john stultz (jstultz@us.ibm.com)
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -15,7 +15,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -81,10 +81,10 @@
 	drift =  delta_offset / delta_time * 1000000
 
 	#print output
-	print time.strftime("%d %b %H:%M:%S",now_time), 
-	print "	offset:", now_offset , 
+	print time.strftime("%d %b %H:%M:%S",now_time),
+	print "	offset:", now_offset ,
 	print "	drift:", drift ,"ppm"
 	sys.stdout.flush()
 
-	#sleep 
+	#sleep
 	time.sleep(sleep_time)
diff --git a/tools/pounder21/src/xbonkers/Makefile b/tools/pounder21/src/xbonkers/Makefile
index 4cec96b..4ceea9f 100644
--- a/tools/pounder21/src/xbonkers/Makefile
+++ b/tools/pounder21/src/xbonkers/Makefile
@@ -1,7 +1,7 @@
 # Build a program to move X windows across a screen
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -11,7 +11,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_repo/T10single/T02ipmitool b/tools/pounder21/test_repo/T10single/T02ipmitool
index ade36b8..0fa5b8c 100755
--- a/tools/pounder21/test_repo/T10single/T02ipmitool
+++ b/tools/pounder21/test_repo/T10single/T02ipmitool
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 
diff --git a/tools/pounder21/test_repo/T90ramp/D01bonnie++ b/tools/pounder21/test_repo/T90ramp/D01bonnie++
index 12483f8..624bd00 100755
--- a/tools/pounder21/test_repo/T90ramp/D01bonnie++
+++ b/tools/pounder21/test_repo/T90ramp/D01bonnie++
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/bonnie++
diff --git a/tools/pounder21/test_repo/T90ramp/D02build_kernel b/tools/pounder21/test_repo/T90ramp/D02build_kernel
index 3a4fd62..6c25924 100755
--- a/tools/pounder21/test_repo/T90ramp/D02build_kernel
+++ b/tools/pounder21/test_repo/T90ramp/D02build_kernel
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/build_kernel
diff --git a/tools/pounder21/test_repo/T90ramp/D03copy_large_tree b/tools/pounder21/test_repo/T90ramp/D03copy_large_tree
index e01b24d..a771076 100755
--- a/tools/pounder21/test_repo/T90ramp/D03copy_large_tree
+++ b/tools/pounder21/test_repo/T90ramp/D03copy_large_tree
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/copy_large_tree
diff --git a/tools/pounder21/test_repo/T90ramp/D04ddhappy b/tools/pounder21/test_repo/T90ramp/D04ddhappy
index e395ae0..93db6aa 100755
--- a/tools/pounder21/test_repo/T90ramp/D04ddhappy
+++ b/tools/pounder21/test_repo/T90ramp/D04ddhappy
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/ddhappy
diff --git a/tools/pounder21/test_repo/T90ramp/D05ide_cdrom_copy b/tools/pounder21/test_repo/T90ramp/D05ide_cdrom_copy
index 9329b5d..57ee221 100755
--- a/tools/pounder21/test_repo/T90ramp/D05ide_cdrom_copy
+++ b/tools/pounder21/test_repo/T90ramp/D05ide_cdrom_copy
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/ide_cdrom_copy
diff --git a/tools/pounder21/test_repo/T90ramp/D06lame b/tools/pounder21/test_repo/T90ramp/D06lame
index fd09095..9bd6751 100755
--- a/tools/pounder21/test_repo/T90ramp/D06lame
+++ b/tools/pounder21/test_repo/T90ramp/D06lame
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/lame
diff --git a/tools/pounder21/test_repo/T90ramp/D07cpufreq b/tools/pounder21/test_repo/T90ramp/D07cpufreq
index f490087..94e4274 100755
--- a/tools/pounder21/test_repo/T90ramp/D07cpufreq
+++ b/tools/pounder21/test_repo/T90ramp/D07cpufreq
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/cpufreq
diff --git a/tools/pounder21/test_repo/T90ramp/D08memtest b/tools/pounder21/test_repo/T90ramp/D08memtest
index f2843fc..0b6de26 100755
--- a/tools/pounder21/test_repo/T90ramp/D08memtest
+++ b/tools/pounder21/test_repo/T90ramp/D08memtest
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/memtest
diff --git a/tools/pounder21/test_repo/T90ramp/D09memxfer5b b/tools/pounder21/test_repo/T90ramp/D09memxfer5b
index d72b51e..b336768 100755
--- a/tools/pounder21/test_repo/T90ramp/D09memxfer5b
+++ b/tools/pounder21/test_repo/T90ramp/D09memxfer5b
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/memxfer5b
diff --git a/tools/pounder21/test_repo/T90ramp/D10nfs b/tools/pounder21/test_repo/T90ramp/D10nfs
index 403e4c1..1c20641 100755
--- a/tools/pounder21/test_repo/T90ramp/D10nfs
+++ b/tools/pounder21/test_repo/T90ramp/D10nfs
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/nfs
diff --git a/tools/pounder21/test_repo/T90ramp/D11ramsnake b/tools/pounder21/test_repo/T90ramp/D11ramsnake
index f78f1a8..a080b73 100755
--- a/tools/pounder21/test_repo/T90ramp/D11ramsnake
+++ b/tools/pounder21/test_repo/T90ramp/D11ramsnake
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/ramsnake
diff --git a/tools/pounder21/test_repo/T90ramp/D12random_syscall b/tools/pounder21/test_repo/T90ramp/D12random_syscall
index 614ed30..d29d767 100755
--- a/tools/pounder21/test_repo/T90ramp/D12random_syscall
+++ b/tools/pounder21/test_repo/T90ramp/D12random_syscall
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/random_syscall
diff --git a/tools/pounder21/test_repo/T90ramp/D13mem_alloc b/tools/pounder21/test_repo/T90ramp/D13mem_alloc
index 9e84be5..718a4ec 100755
--- a/tools/pounder21/test_repo/T90ramp/D13mem_alloc
+++ b/tools/pounder21/test_repo/T90ramp/D13mem_alloc
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/mem_alloc
diff --git a/tools/pounder21/test_repo/T90ramp/D14ltp b/tools/pounder21/test_repo/T90ramp/D14ltp
index 8f9dcdb..c4aa4cf 100755
--- a/tools/pounder21/test_repo/T90ramp/D14ltp
+++ b/tools/pounder21/test_repo/T90ramp/D14ltp
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/ltp
diff --git a/tools/pounder21/test_repo/T90ramp/D15time_consistency b/tools/pounder21/test_repo/T90ramp/D15time_consistency
index bca0546..741c98f 100755
--- a/tools/pounder21/test_repo/T90ramp/D15time_consistency
+++ b/tools/pounder21/test_repo/T90ramp/D15time_consistency
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/time_consistency
diff --git a/tools/pounder21/test_repo/T90ramp/D16time_drift b/tools/pounder21/test_repo/T90ramp/D16time_drift
index 134aa76..e738739 100755
--- a/tools/pounder21/test_repo/T90ramp/D16time_drift
+++ b/tools/pounder21/test_repo/T90ramp/D16time_drift
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/time_drift
diff --git a/tools/pounder21/test_repo/T90ramp/D17xterm_stress b/tools/pounder21/test_repo/T90ramp/D17xterm_stress
index e4a87ac..c6d5bed 100755
--- a/tools/pounder21/test_repo/T90ramp/D17xterm_stress
+++ b/tools/pounder21/test_repo/T90ramp/D17xterm_stress
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 trap 'exit 0' 15
 $POUNDER_HOME/infinite_loop $POUNDER_HOME/test_scripts/xterm_stress
diff --git a/tools/pounder21/test_scripts/abort.sh b/tools/pounder21/test_scripts/abort.sh
index 8937058..887c669 100755
--- a/tools/pounder21/test_scripts/abort.sh
+++ b/tools/pounder21/test_scripts/abort.sh
@@ -3,7 +3,7 @@
 # Abort a test.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/bonnie++ b/tools/pounder21/test_scripts/bonnie++
index 109c4e3..abd97de 100755
--- a/tools/pounder21/test_scripts/bonnie++
+++ b/tools/pounder21/test_scripts/bonnie++
@@ -1,9 +1,9 @@
-#!/bin/bash 
+#!/bin/bash
 
 # Runs the bonnie++ test on filesystems...
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/build_kernel b/tools/pounder21/test_scripts/build_kernel
index 56f50c7..6dcfdef 100755
--- a/tools/pounder21/test_scripts/build_kernel
+++ b/tools/pounder21/test_scripts/build_kernel
@@ -3,7 +3,7 @@
 # Build Linux kernel
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -44,14 +44,14 @@
 
 # Build system
 if [ $LOG_ALL_MAKE ]; then
-	#Let all ouput flow to the external logging 
+	#Let all ouput flow to the external logging
 	make -j$CPUS oldconfig
        	time make -j$CPUS
 else
 	#Just log std err
 	make -j$CPUS oldconfig > /dev/null
 	time make -j$CPUS > /dev/null
-fi 
+fi
 
 # Did we get a kernel image?
 RETCODE=1
diff --git a/tools/pounder21/test_scripts/copy_large_tree b/tools/pounder21/test_scripts/copy_large_tree
index fb6f8ae..df325a5 100755
--- a/tools/pounder21/test_scripts/copy_large_tree
+++ b/tools/pounder21/test_scripts/copy_large_tree
@@ -3,7 +3,7 @@
 # Test the copying of a large directory hierarchy...while deleting it.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/cpufreq b/tools/pounder21/test_scripts/cpufreq
index 8fd44db..ba94a76 100755
--- a/tools/pounder21/test_scripts/cpufreq
+++ b/tools/pounder21/test_scripts/cpufreq
@@ -3,7 +3,7 @@
 # Cycle the CPUs through various frequencies.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/ddhappy b/tools/pounder21/test_scripts/ddhappy
index c4d869b..975998a 100755
--- a/tools/pounder21/test_scripts/ddhappy
+++ b/tools/pounder21/test_scripts/ddhappy
@@ -3,7 +3,7 @@
 # Each CPU reads every block off a block device...twice.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -32,12 +32,12 @@
 OLD_ERRORS=`egrep -ic "(error|fail|invalid|denied|cannot)" $LOGFILE`
 
 for ((k=1; k < $WORK; k++))
-do 
-for i in $BLKDEVS 
+do
+for i in $BLKDEVS
 	do
 		dd if=/dev/$i of=/dev/null bs=2k > /dev/null &
 	done
-done 
+done
 
 # Wait for children
 wait
diff --git a/tools/pounder21/test_scripts/fail.sh b/tools/pounder21/test_scripts/fail.sh
index c2e3a44..9eedfbb 100755
--- a/tools/pounder21/test_scripts/fail.sh
+++ b/tools/pounder21/test_scripts/fail.sh
@@ -3,7 +3,7 @@
 # Fail a test.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/get_hw_info b/tools/pounder21/test_scripts/get_hw_info
index c0ee107..7105493 100755
--- a/tools/pounder21/test_scripts/get_hw_info
+++ b/tools/pounder21/test_scripts/get_hw_info
@@ -3,7 +3,7 @@
 # Script to collect hardware information
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/ide_cdrom_copy b/tools/pounder21/test_scripts/ide_cdrom_copy
index ed67f2f..f980714 100755
--- a/tools/pounder21/test_scripts/ide_cdrom_copy
+++ b/tools/pounder21/test_scripts/ide_cdrom_copy
@@ -6,7 +6,7 @@
 # misnomer that's maintained solely because it's familiar to the users.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -16,7 +16,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/ipmitool b/tools/pounder21/test_scripts/ipmitool
index c44eb7c..b13dcfb 100755
--- a/tools/pounder21/test_scripts/ipmitool
+++ b/tools/pounder21/test_scripts/ipmitool
@@ -10,7 +10,7 @@
 	fi
 }
 
-CHECK=`dmidecode | egrep '(Baseboard Management Controller|IPMI)'` 
+CHECK=`dmidecode | egrep '(Baseboard Management Controller|IPMI)'`
 if [ -z "$CHECK" ]; then
 	echo "BMC is not detected. Aborting."
 	exit 255
@@ -69,7 +69,7 @@
 		 		 runtest channel getciphers sol 1
 
 	else
-		echo "BMC is not 2.0 compatible; skipping firewall tests."	
+		echo "BMC is not 2.0 compatible; skipping firewall tests."
 	fi
 fi
 runtest lan print
diff --git a/tools/pounder21/test_scripts/lame b/tools/pounder21/test_scripts/lame
index 8d86819..9c179f6 100755
--- a/tools/pounder21/test_scripts/lame
+++ b/tools/pounder21/test_scripts/lame
@@ -3,7 +3,7 @@
 # MP3-encode something
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/ltp b/tools/pounder21/test_scripts/ltp
index fce09eb..01aa2cd 100755
--- a/tools/pounder21/test_scripts/ltp
+++ b/tools/pounder21/test_scripts/ltp
@@ -3,7 +3,7 @@
 # Runs the LTP suite
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/mem_alloc b/tools/pounder21/test_scripts/mem_alloc
index 063724e..95a0214 100755
--- a/tools/pounder21/test_scripts/mem_alloc
+++ b/tools/pounder21/test_scripts/mem_alloc
@@ -3,7 +3,7 @@
 # Run the system to OOM.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/memtest b/tools/pounder21/test_scripts/memtest
index 841fee7..c040147 100755
--- a/tools/pounder21/test_scripts/memtest
+++ b/tools/pounder21/test_scripts/memtest
@@ -3,7 +3,7 @@
 # Tests CPU/DMA hitting on memory
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -37,7 +37,7 @@
 # Run the test
 cd "$POUNDER_OPTDIR"
 cp "$POUNDER_OPTDIR/linux-2.6.39.tar.bz2" "$MEMTESTDIR/linux-2.6.39.tar.bz2"
-#NR_PASSES=2 TEST_DIR="$MEMTESTDIR" SOURCE_FILE="$POUNDER_OPTDIR/linux-2.6.39.tar.gz" 
+#NR_PASSES=2 TEST_DIR="$MEMTESTDIR" SOURCE_FILE="$POUNDER_OPTDIR/linux-2.6.39.tar.gz"
 ./memtest.sh
 
 # Now clean up
diff --git a/tools/pounder21/test_scripts/memxfer5b b/tools/pounder21/test_scripts/memxfer5b
index 3c6b8bd..58088ff 100755
--- a/tools/pounder21/test_scripts/memxfer5b
+++ b/tools/pounder21/test_scripts/memxfer5b
@@ -3,7 +3,7 @@
 # Flood memory bus by pounding on the CPU...
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/nfs b/tools/pounder21/test_scripts/nfs
index 94d45c9..d76b562 100755
--- a/tools/pounder21/test_scripts/nfs
+++ b/tools/pounder21/test_scripts/nfs
@@ -3,7 +3,7 @@
 # Repeatedly copy files to NFS server.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -49,7 +49,7 @@
 	# If we've already stuff here, move it and delete it.
 	# Meanwhile, create ourselves a new directory for the copy
 	[ -x $NFSLOCAL/$SHORTHOST/testnet ] && \
-		mv $NFSLOCAL/$SHORTHOST/testnet $NFSLOCAL/$SHORTHOST/testnet.del 
+		mv $NFSLOCAL/$SHORTHOST/testnet $NFSLOCAL/$SHORTHOST/testnet.del
 	[ -x $NFSLOCAL/$SHORTHOST/testnet.del ] && \
 		rm -rf $NFSLOCAL/$SHORTHOST/testnet.del &
 
diff --git a/tools/pounder21/test_scripts/pass.sh b/tools/pounder21/test_scripts/pass.sh
index 6ed9fb6..e373c85 100755
--- a/tools/pounder21/test_scripts/pass.sh
+++ b/tools/pounder21/test_scripts/pass.sh
@@ -3,7 +3,7 @@
 # Pass
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/passloop.sh b/tools/pounder21/test_scripts/passloop.sh
index 72b6a30..3983ac7 100755
--- a/tools/pounder21/test_scripts/passloop.sh
+++ b/tools/pounder21/test_scripts/passloop.sh
@@ -3,7 +3,7 @@
 # Repeatedly pass a test.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/ping_nfs_server b/tools/pounder21/test_scripts/ping_nfs_server
index ebcf233..9325d71 100755
--- a/tools/pounder21/test_scripts/ping_nfs_server
+++ b/tools/pounder21/test_scripts/ping_nfs_server
@@ -1,9 +1,9 @@
-#!/bin/sh 
+#!/bin/sh
 
 # Ping NFS server 100 times
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/ramsnake b/tools/pounder21/test_scripts/ramsnake
index f2bd366..19ce452 100755
--- a/tools/pounder21/test_scripts/ramsnake
+++ b/tools/pounder21/test_scripts/ramsnake
@@ -3,7 +3,7 @@
 # Control script for a program that tests shared memory access speeds.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/random_syscall b/tools/pounder21/test_scripts/random_syscall
index 823a4bb..9d00bad 100755
--- a/tools/pounder21/test_scripts/random_syscall
+++ b/tools/pounder21/test_scripts/random_syscall
@@ -3,7 +3,7 @@
 # Pound on syscall interface
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/screen_blank b/tools/pounder21/test_scripts/screen_blank
index f6f9b8d..f611b42 100755
--- a/tools/pounder21/test_scripts/screen_blank
+++ b/tools/pounder21/test_scripts/screen_blank
@@ -3,7 +3,7 @@
 # enable blanking, etc
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/screen_noblank b/tools/pounder21/test_scripts/screen_noblank
index 9f34b1d..55c2c7f 100755
--- a/tools/pounder21/test_scripts/screen_noblank
+++ b/tools/pounder21/test_scripts/screen_noblank
@@ -3,7 +3,7 @@
 # disable blanking
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/sigfpe.sh b/tools/pounder21/test_scripts/sigfpe.sh
index d585868..3776da9 100755
--- a/tools/pounder21/test_scripts/sigfpe.sh
+++ b/tools/pounder21/test_scripts/sigfpe.sh
@@ -3,7 +3,7 @@
 # Test that dies with a signal
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/sleep b/tools/pounder21/test_scripts/sleep
index 2aa6b97..14c95a9 100755
--- a/tools/pounder21/test_scripts/sleep
+++ b/tools/pounder21/test_scripts/sleep
@@ -3,7 +3,7 @@
 # Sleep for five seconds.  Dumb test.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/statslogging b/tools/pounder21/test_scripts/statslogging
index 9bb1ed1..5185054 100755
--- a/tools/pounder21/test_scripts/statslogging
+++ b/tools/pounder21/test_scripts/statslogging
@@ -4,7 +4,7 @@
 # other bits by darrick wong (djwong@us.ibm.com)
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -14,7 +14,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -47,7 +47,7 @@
 	echo -e "\n[sysctl]=================" >>$INFOFILE
 	sysctl -a >> $INFOFILE
 }
-	
+
 PROC_ENTRIES="buddyinfo diskstats meminfo slabinfo net/netstat net/snmp"
 function procinfo() {
 	#get a timestamp
@@ -97,7 +97,7 @@
 			sleep 1
 		done
 		sleep $DELAY
-	done		
+	done
 }
 
 trap 'exit 0' 15
diff --git a/tools/pounder21/test_scripts/time_consistency b/tools/pounder21/test_scripts/time_consistency
index 3d4dae7..2be6ffc 100755
--- a/tools/pounder21/test_scripts/time_consistency
+++ b/tools/pounder21/test_scripts/time_consistency
@@ -3,7 +3,7 @@
 # Control script for time consistency tests.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/time_drift b/tools/pounder21/test_scripts/time_drift
index 5bdbfdd..1e0f143 100755
--- a/tools/pounder21/test_scripts/time_drift
+++ b/tools/pounder21/test_scripts/time_drift
@@ -3,7 +3,7 @@
 # Monitor NTP drift
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -13,7 +13,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
diff --git a/tools/pounder21/test_scripts/xterm_stress b/tools/pounder21/test_scripts/xterm_stress
index 370d2a6..f576976 100755
--- a/tools/pounder21/test_scripts/xterm_stress
+++ b/tools/pounder21/test_scripts/xterm_stress
@@ -4,7 +4,7 @@
 # all over the screen.
 
 # Copyright (C) 2003-2006 IBM
-# 
+#
 # 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
@@ -14,7 +14,7 @@
 # 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., 59 Temple Place - Suite 330, Boston, MA
@@ -101,7 +101,7 @@
 sleep 15
 
 # sets the list delimiter to :
-IFS=: 
+IFS=:
 # Add some screensavers to the path (OpenGL testing)
 export PATH=$PATH:/usr/lib/xscreensaver:/usr/X11R6/lib/xscreensaver
 
@@ -114,7 +114,7 @@
 
 #start text-based programs
 for i in $cmd
-do 
+do
 	exe="while true; do $i; done"
 	xterm -geometry 80x25`$POUNDER_SRCDIR/randacoords/coords 600 400` -e "bash -c '$exe'" &
 	sleep 1
@@ -122,7 +122,7 @@
 
 #start gui programs
 for i in $xcmd
-do 
+do
 	bash -c "$i" &
 	sleep 1
 done
diff --git a/tools/pounder21/timed_loop.c b/tools/pounder21/timed_loop.c
index 8e2d536..17aaeb3 100644
--- a/tools/pounder21/timed_loop.c
+++ b/tools/pounder21/timed_loop.c
@@ -74,7 +74,7 @@
 	//if the -m option is used when calling timed_loop, override max_failures
 	//specified by $MAX_FAILURES with the given argument instead
 	if (argc > 4 && strcmp(argv[1], "-m") == 0) {
-		if ((max_failures = atoi(argv[2])) >= 0) {	
+		if ((max_failures = atoi(argv[2])) >= 0) {
 			use_max_failures = 1;
 		}
 		else {
diff --git a/tools/strace_test/README b/tools/strace_test/README
index c0844a5..88b4d0d 100644
--- a/tools/strace_test/README
+++ b/tools/strace_test/README
@@ -1,9 +1,9 @@
 Strace Test
 
 Introduction:
-Strace Test is designed to test the kernel by calling syscalls improperly.  
+Strace Test is designed to test the kernel by calling syscalls improperly.
 It uses ltp as a base to generate realistic syscalls and then it randomly
-calls improper variations of those system calls. 
+calls improper variations of those system calls.
 
 The tests are started by root but they are run with user permisions.  The root
 user needs to restart the tests around every 10 seconds.
diff --git a/tools/strace_test/go_go.sh b/tools/strace_test/go_go.sh
index 04a42b0..69d1998 100755
--- a/tools/strace_test/go_go.sh
+++ b/tools/strace_test/go_go.sh
@@ -45,4 +45,4 @@
 	sleep 8
 	./slay $user
 done
-	
+
diff --git a/tools/strace_test/slay b/tools/strace_test/slay
index 094da9c..a68e8c9 100755
--- a/tools/strace_test/slay
+++ b/tools/strace_test/slay
@@ -1,10 +1,10 @@
 #!/bin/sh
 #
 # slay 2.0 - kill all processes belonging to the specified user(s).
-# originally by Chris Ausbrooks <fish@bucket.ualr.edu> 
+# originally by Chris Ausbrooks <fish@bucket.ualr.edu>
 # based on kall (a script of unknown origin)
 # Heavily rewritten by Pawel Wiecek <coven@debian.org> for Debian
-# This is a free software distributed according to terms of GNU GPL 
+# This is a free software distributed according to terms of GNU GPL
 # (see /usr/share/common-licenses/GPL)
 
 # Revision history:
@@ -77,7 +77,7 @@
     echo "       Kills all processes belonging to any of the given names."
     echo "       Use -clean as a signal name to kill with TERM first and then with KILL."
   fi
-  exit -1 
+  exit -1
 fi
 
 # Misuse trap.
diff --git a/tools/strace_test/strace.patch b/tools/strace_test/strace.patch
index c291d10..fbe8fd0 100644
--- a/tools/strace_test/strace.patch
+++ b/tools/strace_test/strace.patch
@@ -4,7 +4,7 @@
 @@ -456,6 +456,9 @@
  extern void printtv32 P((struct tcb*, long));
  extern void tprint_iov P((struct tcb *, int, long));
- 
+
 +extern int test_percent;
 +extern void test_syscall P((struct tcb *));
 +
@@ -21,7 +21,7 @@
 -		 proc.c stream.c
 +		 proc.c stream.c tester.c
  noinst_HEADERS = defs.h
- 
+
  EXTRA_DIST = $(man_MANS) errnoent.sh signalent.sh syscallent.sh ioctlsort.c \
 diff -urN strace-4.5.1/Makefile.in devel/Makefile.in
 --- strace-4.5.1/Makefile.in	2003-11-06 18:24:18.000000000 -0800
@@ -32,9 +32,9 @@
  		 resource.c signal.c sock.c system.c term.c time.c \
 -		 proc.c stream.c
 +		 proc.c stream.c tester.c
- 
+
  noinst_HEADERS = defs.h
- 
+
 @@ -210,7 +210,7 @@
  	ioctl.$(OBJEXT) mem.$(OBJEXT) net.$(OBJEXT) process.$(OBJEXT) \
  	bjm.$(OBJEXT) resource.$(OBJEXT) signal.$(OBJEXT) \
@@ -73,7 +73,7 @@
 +  /* this just slows things down so it's commented out */
 +  /*
  	va_list args;
- 
+
  	VA_START(args, fmt);
 @@ -2232,6 +2237,7 @@
  	}
@@ -81,7 +81,7 @@
  	return;
 +  */
  }
- 
+
  void
 diff -urN strace-4.5.1/syscall.c devel/syscall.c
 --- strace-4.5.1/syscall.c	2003-11-01 14:11:22.000000000 -0800
@@ -89,7 +89,7 @@
 @@ -2118,6 +2118,7 @@
  			return 0;
  		}
- 
+
 +		test_syscall(tcp);
  		if (tcp->flags & TCB_REPRINT) {
  			printleader(tcp);
@@ -105,28 +105,28 @@
 +
 +int test_percent = 20;
 +
-+int 
++int
 +zero(arg)
 +int arg;
 +{
 +	return 0;
 +}
 +
-+int 
++int
 +one(arg)
 +int arg;
 +{
 +	return 1;
 +}
 +
-+int 
++int
 +minus_one(arg)
 +int arg;
 +{
 +	return -1;
 +}
 +
-+int 
++int
 +maxed(arg)
 +int arg;
 +{
@@ -175,7 +175,7 @@
 +
 +static int test_counter;
 +static jmp_buf safe_state;
-+void 
++void
 +handle_segv(num)
 +int num;
 +{
@@ -208,19 +208,19 @@
 +		f = magics[(test_counter + rand_offset) % len_magics];
 +		test_counter++;
 +		val = f(val_init);
-+		
-+		syscall(tcp->scno, 
-+			(narg == 0)? val: tcp->u_arg[0], 
-+			(narg == 1)? val: tcp->u_arg[1], 
-+			(narg == 2)? val: tcp->u_arg[2], 
-+			(narg == 3)? val: tcp->u_arg[3], 
-+			(narg == 4)? val: tcp->u_arg[4], 
++
++		syscall(tcp->scno,
++			(narg == 0)? val: tcp->u_arg[0],
++			(narg == 1)? val: tcp->u_arg[1],
++			(narg == 2)? val: tcp->u_arg[2],
++			(narg == 3)? val: tcp->u_arg[3],
++			(narg == 4)? val: tcp->u_arg[4],
 +			(narg == 5)? val: tcp->u_arg[5]);
 +	}
 +	signal(SIGSEGV, SIG_DFL);
 +}
 +
-+void 
++void
 +test_syscall(tcp)
 +struct tcb *tcp;
 +{
diff --git a/tools/strace_test/test.sh b/tools/strace_test/test.sh
index 2142524..b4b74d5 100755
--- a/tools/strace_test/test.sh
+++ b/tools/strace_test/test.sh
@@ -11,7 +11,7 @@
 
 ./waker.sh &
 
-for i in `seq $max_tests` ; do 
+for i in `seq $max_tests` ; do
 	./run.sh $test_percent &
 done
 
diff --git a/tools/strace_test/waker.sh b/tools/strace_test/waker.sh
index 56b683f..274604f 100755
--- a/tools/strace_test/waker.sh
+++ b/tools/strace_test/waker.sh
@@ -1,4 +1,4 @@
-#!/bin/bash 
+#!/bin/bash
 
 # Copyright (C) 2004 Dan Carpenter
 # This software is released under the terms of the GPL
@@ -15,7 +15,7 @@
 fi
 
 secs=0
-while true ; do 
+while true ; do
         # fixme (hack) assumes tests in test/ dir
         # assumes ltp naming scheme with a number on the
         # end of each test script
diff --git a/tools/top-LTP/00_README.1st b/tools/top-LTP/00_README.1st
index b00b7e5..6b238df 100644
--- a/tools/top-LTP/00_README.1st
+++ b/tools/top-LTP/00_README.1st
@@ -1,2 +1,2 @@
-You must make and install this version of 'top' and libproc if you intend on using the "-T" option 
+You must make and install this version of 'top' and libproc if you intend on using the "-T" option
 in ltpstress.sh.
diff --git a/tools/top-LTP/Makefile b/tools/top-LTP/Makefile
index 2e6e94d..ab2487d 100644
--- a/tools/top-LTP/Makefile
+++ b/tools/top-LTP/Makefile
@@ -11,7 +11,7 @@
 
 CURSES := -lncurses
 
-LDFLAGS += -Wl,-warn-common 
+LDFLAGS += -Wl,-warn-common
 
 CFLAGS += -I/usr/include -w -D_GNU_SOURCE -O2 -g3 -fno-common -ffast-math -I proc \
   -W -Wall -Wshadow -Wcast-align -Wredundant-decls \
@@ -35,19 +35,19 @@
 LIB_DIR=/lib
 endif
 
-install: 
+install:
 	@set -e; ln -f top ../../testcases/bin
-	@set -e; cp -f proc/libproc.so.$(LIBVERSION) $(LIB_DIR) 
+	@set -e; cp -f proc/libproc.so.$(LIBVERSION) $(LIB_DIR)
 	@set -e; ln -fs $(LIB_DIR)/libproc.so.$(LIBVERSION) $(LIB_DIR)/libproc.so
- 
+
 ############ prog.c --> prog.o
 
 %.o : %.c
-	@set -e;$(CC) $(CFLAGS) -c -o $@ $^ 
+	@set -e;$(CC) $(CFLAGS) -c -o $@ $^
 
 ############ prog.o --> prog
 
 top:   % : %.o $(LIBPROC)
-	@set -e;$(CC) $(LDFLAGS) -o $@ $^ $(CURSES) 
+	@set -e;$(CC) $(LDFLAGS) -o $@ $^ $(CURSES)
 
 
diff --git a/tools/top-LTP/proc/COPYING b/tools/top-LTP/proc/COPYING
index 92b8903..066a80a 100644
--- a/tools/top-LTP/proc/COPYING
+++ b/tools/top-LTP/proc/COPYING
@@ -133,7 +133,7 @@
 on the Library (independent of the use of the Library in a tool for
 writing it).  Whether that is true depends on what the Library does
 and what the program that uses the Library does.
-  
+
   1. You may copy and distribute verbatim copies of the Library's
 complete source code as you receive it, in any medium, provided that
 you conspicuously and appropriately publish on each copy an
diff --git a/tools/top-LTP/proc/readproc.h b/tools/top-LTP/proc/readproc.h
index 5452ae0..3f60c50 100644
--- a/tools/top-LTP/proc/readproc.h
+++ b/tools/top-LTP/proc/readproc.h
@@ -188,7 +188,7 @@
 extern void freeproc(proc_t* p);
 
 /* openproc/readproctab:
- *   
+ *
  * Return PROCTAB* / *proc_t[] or NULL on error ((probably) "/proc" cannot be
  * opened.)  By default readproc will consider all processes as valid to parse
  * and return, but not actually fill in the cmdline, environ, and /proc/#/statm
diff --git a/tools/top-LTP/top.h b/tools/top-LTP/top.h
index e46f272..0e7f26c 100644
--- a/tools/top-LTP/top.h
+++ b/tools/top-LTP/top.h
@@ -12,7 +12,7 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Library General Public License for more details.
- * 
+ *
  * For their contributions to this program, the author wishes to thank:
  *    Albert D. Cahalan, <albert@users.sf.net>
  *    Craig Small, <csmall@small.dropbear.id.au>
diff --git a/utils/Makefile b/utils/Makefile
index 3cc4d24..e90f8a9 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -1,4 +1,4 @@
-################################################################################ 
+################################################################################
 #
 # Copyright (c) International Business Machines  Corp., 2008 ##
 #
diff --git a/utils/benchmark/ebizzy-0.3/ChangeLog b/utils/benchmark/ebizzy-0.3/ChangeLog
index 01ef1fd..acc80bb 100644
--- a/utils/benchmark/ebizzy-0.3/ChangeLog
+++ b/utils/benchmark/ebizzy-0.3/ChangeLog
@@ -8,7 +8,7 @@
 2007-08-15 Valerie Henson <val@nmt.edu>
 
 	* Release 0.2.
-	
+
 	* Started reporting a rate of transactions per second rather than
 		just measuring the time.
 
diff --git a/utils/benchmark/ebizzy-0.3/configure b/utils/benchmark/ebizzy-0.3/configure
index 49f3652..25d0666 100644
--- a/utils/benchmark/ebizzy-0.3/configure
+++ b/utils/benchmark/ebizzy-0.3/configure
@@ -1,6 +1,6 @@
-#!/bin/sh                                                                     
+#!/bin/sh
 
-OS=`uname -s` 
+OS=`uname -s`
 SUPPORTED="Linux SunOS HP-UX FreeBSD"
 
 for i in `echo "$SUPPORTED"`
@@ -20,7 +20,7 @@
 FLAGS=""
 
 case "$OS" in
-	"SunOS") 
+	"SunOS")
         	LIBS="${LIBS} -lmalloc";
 		FLAGS="${FLAGS} -D_solaris";;
 	"FreeBSD")
@@ -34,7 +34,7 @@
 	gcc -Wall -Wshadow ${LIBS} ${FLAGS} -o ebizzy ebizzy.c
 
 clean:
-	rm -f ebizzy Makefile 
+	rm -f ebizzy Makefile
 EOF
 
 echo "Type 'make' to compile"
diff --git a/utils/benchmark/ebizzy-0.3/ebizzy.h b/utils/benchmark/ebizzy-0.3/ebizzy.h
index 95fa3d2..da1a78c 100644
--- a/utils/benchmark/ebizzy-0.3/ebizzy.h
+++ b/utils/benchmark/ebizzy-0.3/ebizzy.h
@@ -25,7 +25,7 @@
 /*
  * HP-UX compatibility stuff
  */
-#ifdef _HPUX_SOURCE 
+#ifdef _HPUX_SOURCE
 #define _SC_NPROCESSORS_ONLN pthread_num_processors_np()
 #endif
 
diff --git a/utils/benchmark/kernbench-0.42/README b/utils/benchmark/kernbench-0.42/README
index 2dde103..6293fd5 100644
--- a/utils/benchmark/kernbench-0.42/README
+++ b/utils/benchmark/kernbench-0.42/README
@@ -9,7 +9,7 @@
 machines (eg i386), the same userspace binaries and run kernbench on the same
 kernel source tree.
 
-It runs a kernel at various numbers of concurrent jobs: 1/2 number of cpus, 
+It runs a kernel at various numbers of concurrent jobs: 1/2 number of cpus,
 optimal (default is 4xnumber of cpus) and maximal job count. Optionally it can
 also run single threaded. It then prints out a number of useful statistics
 for the average of each group of runs and logs them to kernbench.log
@@ -26,7 +26,7 @@
 You need a kernel tree (any 2.6 will do) and the applications 'time', 'awk',
 'date' and 'yes' installed. 'time' is different to the builtin time used by
 BASH and has more information desired for this benchmark.
- 
+
 Simply cd into the kernel tree directory and type
 
 /path/to/kernbench
@@ -57,10 +57,10 @@
 	Cleaned up the code substantially to reuse code where possible.
 	Added standard deviation statistics courtesy of Peter Williams
 
-v0.30 Added fast run option which bypasses caching, warmup and tree 
-	preparation and drops number of runs to 3. Modified half loads to 
-	detect -j2 and change to -j3. Added syncs. Improved warnings and 
-	messages. 
+v0.30 Added fast run option which bypasses caching, warmup and tree
+	preparation and drops number of runs to 3. Modified half loads to
+	detect -j2 and change to -j3. Added syncs. Improved warnings and
+	messages.
 
 v0.20 Change to average of runs, add options to choose which runs to perform
 	remove single threaded run from defaults, do warmup run, lots more
diff --git a/utils/benchmark/kernbench-0.42/kernbench b/utils/benchmark/kernbench-0.42/kernbench
index 9ac7722..65e2c63 100644
--- a/utils/benchmark/kernbench-0.42/kernbench
+++ b/utils/benchmark/kernbench-0.42/kernbench
@@ -41,7 +41,7 @@
 
 if [[ ! -f include/linux/kernel.h ]] ; then
 	echo "No kernel source found; exiting"
-	exit 
+	exit
 fi
 
 for i in time awk yes date
diff --git a/ver_linux b/ver_linux
index 71cbb08..a403b4e 100755
--- a/ver_linux
+++ b/ver_linux
@@ -82,7 +82,7 @@
 
 echo
 echo 'free reports:'
-free 
+free
 
 echo
 echo '/proc/cpuinfo'
