text: <?xml version="1.0" encoding="UTF-8"?>
  <!--
  $Id: introduction.xml 109 2007-11-18 02:59:45Z sfsetse $
  vim:softtabstop=2 shiftwidth=2
   -->
  
  <!-- =========================================================================
  Introduction
  -->
  
  <chapter label="1" id="introduction">
  
    <title>Introduction</title>
    <para>shUnit2 is a unit test framework for Bourne based shell scripts, and it is designed to work in a similar manner to <ulink url="http://www.junit.org/">JUnit</ulink>, <ulink url="http://pyunit.sourceforge.net/">PyUnit</ulink>, etc.</para>
  
    <para>shUnit2 was originally developed to provide a consistent testing solution for <ulink url="http://log4sh.sourceforge.net/">log4sh</ulink>, a shell based logging framework similar to log4j. During the development of that product, the problem of having things work just fine under one shell (<filename>/bin/bash</filename> on Linux to be specific), and then not working under another shell (<filename>/bin/sh</filename> on Solaris), kept coming up. Although there were several simple tests ran, they were not adaquate and did not catch very many corner cases. The decision was finally made to write a proper unit test framework after after multiple brown-bag releases were made.</para>
  
    <para><blockquote><title>Tested Operating Systems</title>
      <itemizedlist>
        <listitem><para><ulink url="http://www.cygwin.com/">Cygwin</ulink></para></listitem>
        <listitem><para><ulink url="http://www.freebsd.org/">FreeBSD</ulink> (user supported)</para></listitem>
        <listitem><para>Linux (<ulink url="http://www.gentoo.org/">Gentoo</ulink>, <ulink url="http://www.ubuntu.com/">Ubuntu</ulink>)</para></listitem>
        <listitem><para><ulink url="http://www.apple.com/macosx/">Mac OS X</ulink></para></listitem>
        <listitem><para><ulink url="http://www.sun.com/software/solaris/">Solaris</ulink> 8, 9, 10</para></listitem>
      </itemizedlist>
    </blockquote></para>
  
    <para><blockquote><title>Tested Shells</title>
      <itemizedlist>
        <listitem><para>Bourne Shell (<command>sh</command>)</para></listitem>
        <listitem><para><ulink url="http://www.gnu.org/software/bash/">BASH</ulink> - GNU Bourne Again SHell (<command>bash</command>)</para></listitem>
        <listitem><para><ulink url="http://gondor.apana.org.au/~herbert/dash/">DASH</ulink> (<command>dash</command>)</para></listitem>
        <listitem><para><ulink url="http://www.kornshell.com/">Korn Shell</ulink> (<command>ksh</command>)</para></listitem>
        <listitem><para><ulink url="http://web.cs.mun.ca/~michael/pdksh/">pdksh</ulink> - Public Domain Korn Shell (<command>pdksh</command>)</para></listitem>
        <listitem><para><ulink url="http://www.zsh.org/">zsh</ulink> - ZSH (<command>zsh</command>) (since 2.1.2) &mdash; please see the <link linkend="zsh">ZSH</link> shell erratta for more information.</para></listitem>
      </itemizedlist>
    </blockquote></para>
  
    <para>See the appropriate Release Notes (<filename>doc/RELEASE_NOTES-X.X.X.txt</filename>) for this release for the actual versions tested.</para>
  
    <!-- Give credit where credit is due...very important -->
    <section id="credits"><title>Credits / Contributors</title>
      <para>A list of contributors to shUnit2 can be found in the source archive as <filename>doc/contributors.txt</filename>. I want to personally thank all those who have contributed to make this a better tool.</para>
    </section>
  
    <!-- Feedback -->
    <section id="feedback"><title>Feedback</title>
      <para>Feedback is most certainly welcome for this document. Send your additions, comments and criticisms to the following email address: <email>&myEmail;</email>.</para>
    </section>
  
  </chapter>
  