#!/usr/bin/ruby

require "logger"
require "stringio"
require "pathname"

require 'test/unit/collector/dir'
require 'test/unit/ui/console/testrunner'

begin
  require 'rubygems'
  require 'memcache'
rescue LoadError
else
  if ENV['TESTING_MEMCACHE']
    TESTING_MEMCACHE = MemCache.new(ENV['TESTING_MEMCACHE'])
  end
end

def main
  old_verbose = $VERBOSE
  $VERBOSE = true

  tests_dir = Pathname.new(__FILE__).dirname.dirname.join('test')

  # Collect tests from everything named test_*.rb.
  c = Test::Unit::Collector::Dir.new

  if c.respond_to?(:base=)
    # In order to supress warnings from ruby 1.8.6 about accessing
    # undefined member
    c.base = tests_dir
    suite = c.collect
  else
    # Because base is not defined in ruby < 1.8.6
    suite = c.collect(tests_dir)
  end

  result = Test::Unit::UI::Console::TestRunner.run(suite)
  result.passed?
ensure
  $VERBOSE = old_verbose
end

exit(main)
