build/check.py (34 lines of code) (raw):

#!/usr/bin/env python # # check.py : Run all the test cases. # # =================================================================== # 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. # =================================================================== # import sys import glob import subprocess import os if __name__ == '__main__': # get the test directory from the commandline, if set. if len(sys.argv) > 1: testdir = sys.argv[1] else: testdir = 'test' if len(sys.argv) > 2: test_builddir = sys.argv[2] else: test_builddir = 'test' # define test executable paths if sys.platform == 'win32': SERF_RESPONSE_EXE = 'serf_response.exe' TEST_ALL_EXE = 'test_all.exe' else: SERF_RESPONSE_EXE = 'serf_response' TEST_ALL_EXE = 'test_all' SERF_RESPONSE_EXE = os.path.join(test_builddir, SERF_RESPONSE_EXE) TEST_ALL_EXE = os.path.join(test_builddir, TEST_ALL_EXE) # Find test responses and run them one by one for case in glob.glob(testdir + "/testcases/*.response"): print("== Testing %s ==" % (case)) try: subprocess.check_call([SERF_RESPONSE_EXE, case]) except subprocess.CalledProcessError as x: print("ERROR: test failed in '%s', exit code=%d" % (x.cmd, x.returncode)) sys.exit(1) print("== Running the unit tests ==") try: subprocess.check_call(TEST_ALL_EXE) except subprocess.CalledProcessError as x: print("ERROR: test(s) failed in '%s', exit code=%d" % (x.cmd, x.returncode)) sys.exit(1)