96df5442bc
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)
|