blob: 4788ff282d0f2554a68f1808e6de923919b490ec [file] [log] [blame]
Bryan Duxbury3fb4f1e2009-03-24 00:36:00 +00001#!/bin/sh
2
David Reissea2cba82009-03-30 21:35:00 +00003#
4# Licensed to the Apache Software Foundation (ASF) under one
5# or more contributor license agreements. See the NOTICE file
6# distributed with this work for additional information
7# regarding copyright ownership. The ASF licenses this file
8# to you under the Apache License, Version 2.0 (the
9# "License"); you may not use this file except in compliance
10# with the License. You may obtain a copy of the License at
11#
12# http://www.apache.org/licenses/LICENSE-2.0
13#
14# Unless required by applicable law or agreed to in writing,
15# software distributed under the License is distributed on an
16# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17# KIND, either express or implied. See the License for the
18# specific language governing permissions and limitations
19# under the License.
20#
21
Christian Lavoiec59c30e2011-02-19 21:02:22 +000022if [ "x" = "x$1" ]; then
Bryan Duxburyc6574472010-10-06 00:12:33 +000023 printf "run-test.sh needs an argument, the name of the test to run. Try 'ThriftTest' or 'ProtoDebugTest'\n"
24 exit 2
25fi
26
27# Check some basics
Bryan Duxbury3fb4f1e2009-03-24 00:36:00 +000028if [ -z $BASE ]; then
29 BASE=../..
30fi
31
Anthony F. Molinaro71a58a82010-09-27 19:27:40 +000032if [ -z $THRIFT_BIN ]; then
Bryan Duxburyc6574472010-10-06 00:12:33 +000033 THRIFT_BIN=$BASE/compiler/cpp/thrift
Anthony F. Molinaro71a58a82010-09-27 19:27:40 +000034fi
35
36if [ ! -x "$THRIFT_BIN" ]; then
37 printf "Could not find thrift binary; pass it as environment variable THRIFT_BIN\n"
38 exit 1
39fi
40
41# Figure out what file to generate bindings from
42if [ -z $THRIFT_FILE ]; then
43 THRIFT_FILE=$BASE/test/$1.thrift
44fi
45
46if [ ! -e $THRIFT_FILE ]; then
47 printf "Missing thrift file $THRIFT_FILE \n"
48 exit 2
49fi
50
Bryan Duxburyc6574472010-10-06 00:12:33 +000051if [ ! -e "$THRIFT_FILE" ]; then
52 printf "Could not find thrift file to run; pass it as environment variable THRIFT_FILE\n"
53 exit 1
Anthony F. Molinaro71a58a82010-09-27 19:27:40 +000054fi
55
Bryan Duxburyc6574472010-10-06 00:12:33 +000056# Figure out what file to run has a server
57if [ -z $TEST_SOURCE_FILE ]; then
58 TEST_SOURCE_FILE=$BASE/test/hs/$1_Main.hs
59fi
60
61if [ ! -e $TEST_SOURCE_FILE ]; then
62 printf "Missing server code file $TEST_SOURCE_FILE \n"
Anthony F. Molinaro71a58a82010-09-27 19:27:40 +000063 exit 3
64fi
65
66# Actually run the server bits
Anthony F. Molinaro71a58a82010-09-27 19:27:40 +000067printf "Generating bindings... \n"
Bryan Duxburyc6574472010-10-06 00:12:33 +000068$THRIFT_BIN --gen hs $THRIFT_FILE
Anthony F. Molinaro71a58a82010-09-27 19:27:40 +000069
Bryan Duxburyc6574472010-10-06 00:12:33 +000070printf "Running test... \n"
71runhaskell -Wall -Werror -i$BASE/lib/hs/src -igen-hs $TEST_SOURCE_FILE