#------------------------------------------------------------------------------
# System data
#

# test run info
shells="/bin/sh /bin/bash /bin/dash /bin/ksh /bin/pdksh /bin/zsh"
tests=" shflags_test_defines.sh shflags_test_parsing.sh shflags_test_private.sh shflags_test_public.sh"

# system info
$ date
Tue Jan 15 00:08:36 UTC 2013
$ uname -mprsv
FreeBSD 9.1-RELEASE FreeBSD 9.1-RELEASE #0: Fri Dec  7 20:50:48 GMT 2012     kirk@freenas:/usr/obj/usr/src/sys/GENERIC  amd64 amd64


#------------------------------------------------------------------------------
# Running the test suite with /bin/sh
#
shell name: sh
shell version: unknown

--- Executing the 'defines' test suite ---
testFlagsDefine
testBoolean
testFloat
testInteger
testString
testShortNameLength
testFlagNameIsReserved

Ran 7 tests.

OK

--- Executing the 'parsing' test suite ---
test:WARN Standard version of getopt found. Enhanced tests will be skipped.
testGetoptStandard
testGetoptEnhanced
testValidBoolsShort
testValidBoolsLong
testValidFloats
testInvalidFloats
testValidIntegers
testInvalidIntegers
testValidStrings
testMultipleFlags
testSingleNonFlagArg
testMultipleNonFlagArgs
testMultipleNonFlagStringArgsWithSpaces
testFlagsWithEquals
testComplicatedCommandLineStandard
testComplicatedCommandLineEnhanced

Ran 16 tests.

OK

--- Executing the 'private' test suite ---
testColumns
testGenOptStr
testGetFlagInfo
testItemInList
testValidBool
testValidFloatBuiltin
testValidFloatExpr
testValidIntBuiltin
testValidIntExpr
testMathBuiltin
testMathExpr
testStrlenBuiltin
testStrlenExpr

Ran 13 tests.

OK

--- Executing the 'public' test suite ---
test:WARN Standard version of getopt found. Enhanced tests will be skipped.
testHelp
testStandardHelpOutput
testEnhancedHelpOutput
testNoHelp

Ran 4 tests.

OK (skipped=5)


#------------------------------------------------------------------------------
# Running the test suite with /bin/bash
#


#------------------------------------------------------------------------------
# Running the test suite with /bin/dash
#


#------------------------------------------------------------------------------
# Running the test suite with /bin/ksh
#


#------------------------------------------------------------------------------
# Running the test suite with /bin/pdksh
#


#------------------------------------------------------------------------------
# Running the test suite with /bin/zsh
#
