#!/usr/bin/env ruby # # Runs a the test suite # require 'source-lines' def assert(bool,msg) if not bool STDERR.puts '*** ' + msg return false end return true end def assert_equals(a,b) return assert(a==b,a.to_s + ' != ' + b.to_s) end def assert_file_equals(f1,f2) File.open f1,'r' do |file1| File.open f2,'r' do |file2| while (line1 = file1.gets) and (line2 = file2.gets) if not assert_equals(line1,line2) return false end end end end return true end def main(argv) # Run a test on each of the files in 'testfiles' and make sure it's 3 Dir[File.join('testfiles','*')].each do |e| next if e == '.' or e == '..' cnt = SourceLines.new.process e assert_equals cnt,3 end end main ARGV