• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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