summaryrefslogtreecommitdiff
path: root/mysql-test/create-test-result
blob: bfc41a6a7cefd2c319e92142368120db2a8ab427 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#! /bin/sh

# Copyright (C) 2000, 2004 MySQL AB
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; version 2
# of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
# MA 02111-1307, USA

# This script is a hack for lazy developers who want to get a quick
# start on the result file. The code here is rather dirty, but it works
# If you have a spare moment feel free to improve it - the right way is
# to start mysqld yourself and run mysqltest -r

RESULT_DIR=r
if [ -z "$EDITOR" ] ; then
 EDITOR=vi
fi

function die()
{
  echo $1
  exit 1
}

function usage()
{
  echo "Usage: $0 test_name"
  exit 1
}

test_name=$1

[ -z "$test_name" ] && usage

result_file=$RESULT_DIR/$test_name.result
reject_file=$RESULT_DIR/$test_name.reject

[ -f $result_file ] && die "result file $result_file  has already been created"

touch $result_file
echo "Running the test case against empty file, will fail, but don't worry"
./mysql-test-run --local $test_name

if [ -f $reject_file ] ; then
  echo "Below are the contents of the reject file:"
  echo "-----start---------------------"
  cat $reject_file
  echo "-----end-----------------------"
  echo "Is this the output you expected from your test case?(y/n)[n]"
  read yes_no
  if [ x$yes_no = xy ] ; then
    echo "Press any key to edit it in $EDITOR, or Ctrl-C to abort"
    read junk
    $EDITOR $reject_file
    edited="edited"
  fi
  echo "Save $edited file as master result? (y/n)[y]"
  read yes_no
  if [ x$yes_no != xn ]; then
      mv $reject_file $result_file
  fi
else
  echo "Your test failed so bad, it did not even produce a reject file"
  echo "You need to fix your bugs in the test case, the code, or both"
  exit 1
fi