#!/bin/csh -f
#
#The following line is a comment for tcl \
limit datasize 400k;exec ../tclbsh $0 $argv


proc performTest {testName expectErr result  program} {
  global failedTests

  puts -nonewline "Test `$testName' "
  flush stdout
  set err [catch $program res]

  if {($err==0)==($expectErr==0)
      && [string compare $res $result]==0 } {
    puts "passed."
    flush stdout
    return
  }	

  append failedTests " $testName"
  puts "failed:"

  if {($err==0)!=($expectErr==0)} {
    if {$expectErr} {
      puts "  Expected error but did not get one"
    } else {
      puts "  Unexpected error message: `$res'"
    }
  } else {
    puts "  Expected: `$result'"
    puts "       got: `$res'"
  }
  puts "Contents of Test:"
  puts $program
  puts "-----------------"
}
########################################################################
proc haveFeature {f} {
  global env

  if { ![info exist env(FEATURES)] } {return 0}

  return [regexp -- "-D${f}( |\$)" $env(FEATURES) ]
}
########################################################################

proc main {argc argv} {
  foreach xXx [glob *.tst] {
    puts "**** running test-file $xXx ****"
    source $xXx
  }
  puts {}
}

########################################################################
if {[catch {main $argc $argv} bla]} {
  puts $bla
}
if { [info exist failedTests] } {
  puts "\n\nThe following tests failed:"
  puts $failedTests
}
exit 0
