2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-13 00:12:11 +00:00
Files
build/test/source_order.py
Rene Rivera 40e7f0e8dd Fix tests to pass on Windows after removing toolset requirements ignore.
Various restructure of test framework handling of paths to avoid duplicate path editing which caused failed tests. Adjust many tests to deal with added subdirectories in build outputs now that toolset requirements are active.
2017-07-02 23:28:48 -05:00

85 lines
1.8 KiB
Python
Executable File

#!/usr/bin/python
# Copyright 2013 Steven Watanabe
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
# Tests that action sources are not reordered
import BoostBuild
t = BoostBuild.Tester()
t.write("check-order.jam", """\
import type ;
import generators ;
type.register ORDER_TEST : order-test ;
SPACE = " " ;
nl = "\n" ;
actions check-order
{
echo$(SPACE)$(>[1])>$(<[1])
echo$(SPACE)$(>[2-])>>$(<[1])$(nl)
}
generators.register-composing check-order.check-order : C : ORDER_TEST ;
""")
t.write(
'check-order.py',
"""
import bjam
from b2.build import type as type_, generators
from b2.tools import common
from b2.manager import get_manager
MANAGER = get_manager()
ENGINE = MANAGER.engine()
type_.register('ORDER_TEST', ['order-test'])
generators.register_composing('check-order.check-order', ['C'], ['ORDER_TEST'])
def check_order(targets, sources, properties):
ENGINE.set_target_variable(targets, 'SPACE', ' ')
ENGINE.set_target_variable(targets, 'nl', '\\n')
ENGINE.register_action(
'check-order.check-order',
function=check_order,
command='''
echo$(SPACE)$(>[1])>$(<[1])
echo$(SPACE)$(>[2-])>>$(<[1])$(nl)
'''
)
"""
)
# The aliases are necessary for this test, since
# the targets were sorted by virtual target
# id, not by file name.
t.write("jamroot.jam", """\
import check-order ;
alias file1 : file1.c ;
alias file2 : file2.c ;
alias file3 : file3.c ;
order-test check : file2 file1 file3 ;
""")
t.write("file1.c", "")
t.write("file2.c", "")
t.write("file3.c", "")
t.run_build_system()
t.expect_addition("bin/$toolset/debug*/check.order-test")
t.expect_content("bin/$toolset/debug*/check.order-test", """\
file2.c
file1.c
file3.c
""", True)
t.cleanup()