#!/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