Split header tests accordingly i.e. test core headers as part of
core tests, numeric extension headers as part of numeric tests, etc.
It extends the convention of sub-directories already established in
`include/boost/gil` directory. It is sensible to follow it in other
areas of the source tree (i.e. `test/`, `doc/` and `benchmark/`).
Another important reason to move the tests is to enable removal of
the top-level `Jamfile` with all its definitions of test-specific
requirements.
The top-level `Jamfile` is not advised, especially if it specifies
build requirements like C++ language version.
Those affect non-tests builds e.g. documentation, causing failures
during generation of HTML documentation (leads to missing docs).
(cherry picked from develop branch commit 4ed7701b47)
99 lines
4.7 KiB
Python
99 lines
4.7 KiB
Python
# -*- python -*-
|
|
#
|
|
# Copyright (c) 2017 Stefan Seefeld
|
|
# All rights reserved.
|
|
#
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
|
# http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
from faber import platform
|
|
from faber.feature import set
|
|
from faber.tools.compiler import define, libs, linkpath
|
|
from faber.artefacts.binary import binary
|
|
from faber.test import test, report, fail
|
|
from os.path import join
|
|
|
|
boost_suffix = options.get_with('boost-suffix')
|
|
boost_suffix = '-' + boost_suffix if boost_suffix else ''
|
|
boost_unit_test_framework = 'boost_unit_test_framework' + boost_suffix
|
|
boost_filesystem = 'boost_filesystem' + boost_suffix
|
|
boost_system = 'boost_system' + boost_suffix
|
|
|
|
test_features = set(define('BOOST_TEST_DYN_LINK'),
|
|
libs(boost_unit_test_framework,
|
|
boost_system,
|
|
boost_filesystem))
|
|
|
|
without_jpeg = options.get_without('jpeg')
|
|
jpeg_features = test_features + set(libs('jpeg'))
|
|
jpeg_prefix = options.get_with('jpeg-prefix')
|
|
if jpeg_prefix:
|
|
jpeg_features += include(join(jpeg_prefix, 'include'))
|
|
jpeg_features += linkpath(join(jpeg_prefix, 'lib64'), join(jpeg_prefix, 'lib'))
|
|
|
|
without_png = options.get_without('png')
|
|
png = options.get_with('png') or 'png' # on some platforms the library uses another name
|
|
png_features = test_features + set(libs(png))
|
|
png_prefix = options.get_with('png-prefix')
|
|
if png_prefix:
|
|
png_features += include(join(png_prefix, 'include'))
|
|
png_features += linkpath(join(png_prefix, 'lib64'), join(png_prefix, 'lib'))
|
|
|
|
without_tiff = options.get_without('tiff')
|
|
tiff_features = test_features + set(libs('tiff'))
|
|
tiff_prefix = options.get_with('tiff-prefix')
|
|
if tiff_prefix:
|
|
tiff_features += include(join(tiff_prefix, 'include'))
|
|
tiff_features += linkpath(join(tiff_prefix, 'lib64'), join(tiff_prefix, 'lib'))
|
|
|
|
|
|
def gil_test(name, sources, features, condition=True):
|
|
return test(name, binary(name, sources, features=features, condition=condition))
|
|
|
|
|
|
tests = [gil_test('all_formats_test', ['all_formats_test.cpp'], features=test_features | png_features | jpeg_features),
|
|
gil_test('bmp',
|
|
['bmp_test.cpp', 'bmp_old_test.cpp', 'bmp_read_test.cpp', 'bmp_write_test.cpp'],
|
|
features=test_features),
|
|
gil_test('jpeg', ['jpeg_test.cpp', 'jpeg_old_test.cpp', 'jpeg_read_test.cpp', 'jpeg_write_test.cpp'],
|
|
features=jpeg_features,
|
|
condition=not without_jpeg),
|
|
gil_test('png', ['png_test.cpp', 'png_old_test.cpp', 'png_file_format_test.cpp', 'png_read_test.cpp'],
|
|
features=png_features,
|
|
condition=not without_png),
|
|
gil_test('pnm', ['pnm_test.cpp', 'pnm_old_test.cpp', 'pnm_read_test.cpp', 'pnm_write_test.cpp'],
|
|
features=test_features),
|
|
gil_test('targa', ['targa_test.cpp', 'targa_old_test.cpp', 'targa_read_test.cpp', 'targa_write_test.cpp'],
|
|
features=test_features),
|
|
gil_test('tiff', ['tiff_test.cpp',
|
|
'tiff_old_test.cpp',
|
|
'tiff_file_format_test.cpp',
|
|
'tiff_tiled_float_test.cpp',
|
|
'tiff_tiled_minisblack_test_1-10.cpp',
|
|
'tiff_tiled_minisblack_test_11-20.cpp',
|
|
'tiff_tiled_minisblack_test_21-31_32-64.cpp',
|
|
'tiff_tiled_minisblack_write_test_1-10.cpp',
|
|
'tiff_tiled_minisblack_write_test_11-20.cpp',
|
|
'tiff_tiled_minisblack_write_test_21-31_32-64.cpp',
|
|
'tiff_tiled_palette_test_1-8.cpp',
|
|
'tiff_tiled_palette_test_8-16.cpp',
|
|
'tiff_tiled_palette_write_test_1-8.cpp',
|
|
'tiff_tiled_palette_write_test_8-16.cpp',
|
|
'tiff_tiled_rgb_contig_test_1-10.cpp',
|
|
'tiff_tiled_rgb_contig_test_11-20.cpp',
|
|
'tiff_tiled_rgb_contig_test_21-31_32_64.cpp',
|
|
'tiff_tiled_rgb_contig_write_test_1-10.cpp',
|
|
'tiff_tiled_rgb_contig_write_test_11-20.cpp',
|
|
'tiff_tiled_rgb_contig_write_test_21-31_32_64.cpp',
|
|
'tiff_tiled_rgb_planar_test_1-10.cpp',
|
|
'tiff_tiled_rgb_planar_test_11-20.cpp',
|
|
'tiff_tiled_rgb_planar_test_21-31_32_64.cpp',
|
|
'tiff_tiled_test.cpp',
|
|
'tiff_write_test.cpp'],
|
|
features=tiff_features,
|
|
condition=not without_tiff)
|
|
]
|
|
|
|
default = report('report', tests, fail_on_failures=True)
|