mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-07 02:45:22 +00:00
c657447e0e
Tests are now self-contained and correctly exit after running. There's a single run script which has improved error messages and defaults to the thrift binary compiled in the current source directory instead of those in PATH. And as a bonus hooks both cabal check and running the tests to make check. Patch: Christian Lavoie git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004861 13f79535-47bb-0310-9956-ffa450edef68
72 lines
2.0 KiB
Bash
72 lines
2.0 KiB
Bash
#!/bin/sh
|
|
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
if [ "x" == "x$1" ]; then
|
|
printf "run-test.sh needs an argument, the name of the test to run. Try 'ThriftTest' or 'ProtoDebugTest'\n"
|
|
exit 2
|
|
fi
|
|
|
|
# Check some basics
|
|
if [ -z $BASE ]; then
|
|
BASE=../..
|
|
fi
|
|
|
|
if [ -z $THRIFT_BIN ]; then
|
|
THRIFT_BIN=$BASE/compiler/cpp/thrift
|
|
fi
|
|
|
|
if [ ! -x "$THRIFT_BIN" ]; then
|
|
printf "Could not find thrift binary; pass it as environment variable THRIFT_BIN\n"
|
|
exit 1
|
|
fi
|
|
|
|
# Figure out what file to generate bindings from
|
|
if [ -z $THRIFT_FILE ]; then
|
|
THRIFT_FILE=$BASE/test/$1.thrift
|
|
fi
|
|
|
|
if [ ! -e $THRIFT_FILE ]; then
|
|
printf "Missing thrift file $THRIFT_FILE \n"
|
|
exit 2
|
|
fi
|
|
|
|
if [ ! -e "$THRIFT_FILE" ]; then
|
|
printf "Could not find thrift file to run; pass it as environment variable THRIFT_FILE\n"
|
|
exit 1
|
|
fi
|
|
|
|
# Figure out what file to run has a server
|
|
if [ -z $TEST_SOURCE_FILE ]; then
|
|
TEST_SOURCE_FILE=$BASE/test/hs/$1_Main.hs
|
|
fi
|
|
|
|
if [ ! -e $TEST_SOURCE_FILE ]; then
|
|
printf "Missing server code file $TEST_SOURCE_FILE \n"
|
|
exit 3
|
|
fi
|
|
|
|
# Actually run the server bits
|
|
printf "Generating bindings... \n"
|
|
$THRIFT_BIN --gen hs $THRIFT_FILE
|
|
|
|
printf "Running test... \n"
|
|
runhaskell -Wall -Werror -i$BASE/lib/hs/src -igen-hs $TEST_SOURCE_FILE
|