<?xml version="1.0" encoding="UTF-8"?>
<!--
$Id$
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>
    </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>
