]> git.8kb.co.uk Git - pgpool-ii/pgpool-ii_2.2.5/blob - test/parser/run-test
Attempt to send a proper failure message to frontend when authentication
[pgpool-ii/pgpool-ii_2.2.5] / test / parser / run-test
1 #! /usr/bin/env ruby
2
3 # $Header: /cvsroot/pgpool/pgpool-II/test/parser/run-test,v 1.2 2007/10/03 04:52:26 y-asaba Exp $
4
5 #
6 # Usage¡§./run-test schedule
7 #         ignore a line at the beginning of '#'
8 #
9
10 INPUT_DIRECTORY="input"
11 EXPECTED_DIRECTORY="expected"
12 RESULT_DIRECTORY="result"
13 TEST_PROGRAM="./parser-test"
14 DIFF_FILE="test.diff"
15
16 def escape_string str
17   str.gsub(/([\$\"\\])/) { "\\" + $1 }
18 end
19
20 if ARGV.size != 1
21   STDERR.puts "run-test schedule_file"
22   exit 1
23 end
24
25 file = ARGV.shift
26 if !(File.exists? file)
27   STDERR.puts "run-test: file does not exist: #{file}"
28   exit 1
29 end
30
31 if !(File.exists? RESULT_DIRECTORY)
32   Dir.mkdir RESULT_DIRECTORY
33 else
34   Dir["#{RESULT_DIRECTORY}/*.out"].each do |f|
35     File.unlink f
36   end
37 end
38
39 File.unlink DIFF_FILE if File.exists? DIFF_FILE
40
41 begin
42   IO.foreach(file) do |testcase|
43     testcase.chomp!
44     if (/^\#/ =~ testcase or testcase == "")
45       next
46     end
47
48     print "testcase #{testcase}:\t"
49     begin
50       IO.foreach("#{INPUT_DIRECTORY}/#{testcase}.sql") do |test_sql|
51         test_sql.chomp!
52         system("#{TEST_PROGRAM} \"#{escape_string(test_sql)}\" >> #{RESULT_DIRECTORY}/#{testcase}.out\n")
53       end
54       
55       system("diff -c #{EXPECTED_DIRECTORY}/#{testcase}.out #{RESULT_DIRECTORY}/#{testcase}.out >> #{DIFF_FILE}")
56
57       if ($? == 0)
58         print "OK\n"
59       else
60         print "FAILED\n"
61       end
62     rescue
63       print "FAILED\n"
64     end
65   end
66
67 rescue
68   STDERR.puts "NG"
69 end