| #!/bin/bash |
| |
| # Tests the parser, independently of whether any generators |
| # are correct or useful. |
| # Currently only tests that valid .thrift files parse cleanly. |
| # Doesn't test that correct information is extracted from them. |
| |
| shopt -s extglob |
| |
| MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| ROOT_DIR=`cd $MY_DIR/../../ && pwd` |
| TEST_THRIFT_DIR=${ROOT_DIR}/test |
| THRIFT_FILES=`find ${TEST_THRIFT_DIR} -type f -name *.thrift ! -name BrokenConstants.thrift` |
| |
| OUTPUT_DIR=`mktemp -d -t test_thrift_parser.XXXXX` |
| |
| PASS=0 |
| FAIL=0 |
| for f in ${THRIFT_FILES}; |
| do |
| echo "Parsing ${f}" |
| ${MY_DIR}/thrift -o ${OUTPUT_DIR} -nowarn --allow-64bit-consts --gen cpp ${f} |
| EXIT_CODE=$? |
| if [ ${EXIT_CODE} -eq 0 ]; then |
| let PASS=PASS+1 |
| else |
| let FAIL=FAIL+1 |
| fi |
| done |
| echo |
| echo "${PASS} files parsed correctly. ${FAIL} files failed to parse." |