1#!/usr/bin/env python3 2 3# Copyright 2019 Hans Dembinski 4# 5# Distributed under the Boost Software License, Version 1.0. 6# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt 7 8import sys 9import glob 10import os 11import re 12 13ps = os.path.split 14pj = os.path.join 15 16# assumes that check_build_system.py sits in <project_path>/tests 17project_path = ps(ps(__file__)[0])[0] 18 19exit_code = 0 20 21for dir in (pj(project_path, "test"), pj(project_path, "examples")): 22 cpp = set([os.path.basename(x) for x in glob.glob(dir + "/*.cpp")]) 23 24 for build_file in ("Jamfile", "CMakeLists.txt"): 25 filename = os.path.join(dir, build_file) 26 if not os.path.exists(filename): 27 continue 28 run = set(re.findall("([a-zA-Z0-9_]+\.cpp)", open(filename).read())) 29 30 diff = cpp - run 31 diff.discard("check_cmake_version.cpp") # ignore 32 diff.discard("check_build_system.py") # ignore 33 34 if diff: 35 print( 36 "NOT TESTED in %s\n " % filename 37 + "\n ".join(["%s/%s" % (dir, x) for x in diff]) 38 ) 39 exit_code = 1 40 41sys.exit(exit_code) 42