diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-21 11:54:28 +0000 |
commit | e6918187568dbd01842d8d1d2c808ce16a894239 (patch) | |
tree | 64f88b554b444a49f656b6c656111a145cbbaa28 /src/boost/tools/build/test/clean.py | |
parent | Initial commit. (diff) | |
download | ceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip |
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/tools/build/test/clean.py')
-rw-r--r-- | src/boost/tools/build/test/clean.py | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/clean.py b/src/boost/tools/build/test/clean.py new file mode 100644 index 000000000..0d17f370c --- /dev/null +++ b/src/boost/tools/build/test/clean.py @@ -0,0 +1,104 @@ +#!/usr/bin/python + +# Copyright (C) Vladimir Prus 2006. +# Distributed under the Boost Software License, Version 1.0. (See +# accompanying file LICENSE.txt or copy at +# https://www.bfgroup.xyz/b2/LICENSE.txt) + +import BoostBuild + +t = BoostBuild.Tester(use_test_config=False) + +t.write("a.cpp", "int main() {}\n") +t.write("jamroot.jam", "exe a : a.cpp sub1//sub1 sub2//sub2 sub3//sub3 ;") +t.write("sub1/jamfile.jam", """\ +lib sub1 : sub1.cpp sub1_2 ../sub2//sub2 ; +lib sub1_2 : sub1_2.cpp ; +""") + +t.write("sub1/sub1.cpp", """\ +#ifdef _WIN32 +__declspec(dllexport) +#endif +void sub1() {} +""") + +t.write("sub1/sub1_2.cpp", """\ +#ifdef _WIN32 +__declspec(dllexport) +#endif +void sub1() {} +""") + +t.write("sub2/jamfile.jam", "lib sub2 : sub2.cpp ;") +t.write("sub2/sub2.cpp", """\ +#ifdef _WIN32 +__declspec(dllexport) +#endif +void sub2() {} +""") + +t.write("sub3/jamroot.jam", "lib sub3 : sub3.cpp ;") +t.write("sub3/sub3.cpp", """\ +#ifdef _WIN32 +__declspec(dllexport) +#endif +void sub3() {} +""") + +# 'clean' should not remove files under separate jamroot.jam. +t.run_build_system() +t.run_build_system(["--clean"]) +t.expect_removal("bin/$toolset/debug*/a.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1_2.obj") +t.expect_removal("sub2/bin/$toolset/debug*/sub2.obj") +t.expect_nothing("sub3/bin/$toolset/debug*/sub3.obj") + +# 'clean-all' removes everything it can reach. +t.run_build_system() +t.run_build_system(["--clean-all"]) +t.expect_removal("bin/$toolset/debug*/a.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1_2.obj") +t.expect_removal("sub2/bin/$toolset/debug*/sub2.obj") +t.expect_nothing("sub3/bin/$toolset/debug*/sub3.obj") + +# 'clean' together with project target removes only under that project. +t.run_build_system() +t.run_build_system(["sub1", "--clean"]) +t.expect_nothing("bin/$toolset/debug*/a.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1_2.obj") +t.expect_nothing("sub2/bin/$toolset/debug*/sub2.obj") +t.expect_nothing("sub3/bin/$toolset/debug*/sub3.obj") + +# 'clean-all' removes everything. +t.run_build_system() +t.run_build_system(["sub1", "--clean-all"]) +t.expect_nothing("bin/$toolset/debug*/a.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1.obj") +t.expect_removal("sub1/bin/$toolset/debug*/sub1_2.obj") +t.expect_removal("sub2/bin/$toolset/debug*/sub2.obj") +t.expect_nothing("sub3/bin/$toolset/debug*/sub3.obj") + +# If main target is explicitly named, we should not remove files from other +# targets. +t.run_build_system() +t.run_build_system(["sub1//sub1", "--clean"]) +t.expect_removal("sub1/bin/$toolset/debug*/sub1.obj") +t.expect_nothing("sub1/bin/$toolset/debug*/sub1_2.obj") +t.expect_nothing("sub2/bin/$toolset/debug*/sub2.obj") +t.expect_nothing("sub3/bin/$toolset/debug*/sub3.obj") + +# Regression test: sources of the 'cast' rule were mistakenly deleted. +t.rm(".") +t.write("jamroot.jam", """\ +import cast ; +cast a cpp : a.h ; +""") +t.write("a.h", "") +t.run_build_system(["--clean"]) +t.expect_nothing("a.h") + +t.cleanup() |