mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			252 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			252 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python
 | |
| #
 | |
| # Copyright (c) 2008 Steven Watanabe
 | |
| #
 | |
| # 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)
 | |
| 
 | |
| import BoostBuild
 | |
| 
 | |
| def test_default_order():
 | |
|     tester = BoostBuild.Tester(use_test_config=False)
 | |
|     tester.write("jamroot.jam", """
 | |
| 
 | |
|     import order ;
 | |
|     import "class" : new ;
 | |
| 
 | |
|     obj test : test.cpp : <include>b <include>a ;
 | |
|     """)
 | |
| 
 | |
|     tester.write("test.cpp", """
 | |
|     #include <test.hpp>
 | |
|     int main() { f(); }
 | |
|     """)
 | |
|     
 | |
|     tester.write("a/test.hpp", """
 | |
|     void f();
 | |
|     """)
 | |
|     
 | |
|     tester.write("b/test.hpp", """
 | |
|     """)
 | |
|     
 | |
|     tester.run_build_system()
 | |
|     
 | |
|     tester.expect_addition("bin/$toolset/debug/test.obj")
 | |
|     
 | |
|     # Check that the dependencies are correct
 | |
|     tester.touch("a/test.hpp")
 | |
|     tester.run_build_system()
 | |
|     tester.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     tester.expect_nothing_more()
 | |
|     
 | |
|     tester.touch("b/test.hpp")
 | |
|     tester.run_build_system()
 | |
|     tester.expect_nothing_more()
 | |
| 
 | |
|     tester.cleanup()
 | |
| 
 | |
| def test_default_order_mixed():
 | |
|     tester = BoostBuild.Tester(use_test_config=False)
 | |
|     tester.write("jamroot.jam", """
 | |
| 
 | |
|     import order ;
 | |
|     import "class" : new ;
 | |
| 
 | |
|     obj test : test.cpp : <include>b <include>a <include>c&&d ;
 | |
|     """)
 | |
| 
 | |
|     tester.write("test.cpp", """
 | |
|     #include <test.hpp>
 | |
|     int main() { f(); }
 | |
|     """)
 | |
|     
 | |
|     tester.write("a/test.hpp", """
 | |
|     void f();
 | |
|     """)
 | |
|     
 | |
|     tester.write("b/test.hpp", """
 | |
|     """)
 | |
|     
 | |
|     tester.run_build_system()
 | |
|     
 | |
|     tester.expect_addition("bin/$toolset/debug/test.obj")
 | |
|     
 | |
|     # Check that the dependencies are correct
 | |
|     tester.touch("a/test.hpp")
 | |
|     tester.run_build_system()
 | |
|     tester.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     tester.expect_nothing_more()
 | |
|     
 | |
|     tester.touch("b/test.hpp")
 | |
|     tester.run_build_system()
 | |
|     tester.expect_nothing_more()
 | |
| 
 | |
|     tester.cleanup()
 | |
| 
 | |
| def test_basic():
 | |
|     tester = BoostBuild.Tester(use_test_config=False)
 | |
|     tester.write("jamroot.jam", """
 | |
|     obj test : test.cpp : <include>a&&b ;
 | |
|     """)
 | |
| 
 | |
|     tester.write("test.cpp", """
 | |
|     #include <test1.hpp>
 | |
|     #include <test2.hpp>
 | |
|     int main() {}
 | |
|     """)
 | |
| 
 | |
|     tester.write("a/test1.hpp", """
 | |
|     """)
 | |
| 
 | |
|     tester.write("b/test2.hpp", """
 | |
|     """)
 | |
| 
 | |
|     tester.run_build_system()
 | |
| 
 | |
|     tester.expect_addition("bin/$toolset/debug/test.obj")
 | |
| 
 | |
|     # Check that the dependencies are correct
 | |
|     tester.touch("a/test1.hpp")
 | |
|     tester.run_build_system()
 | |
|     tester.expect_touch("bin/$toolset/debug/test.obj")
 | |
| 
 | |
|     tester.touch("b/test2.hpp")
 | |
|     tester.run_build_system()
 | |
|     tester.expect_touch("bin/$toolset/debug/test.obj")
 | |
| 
 | |
|     tester.cleanup()
 | |
| 
 | |
| def test_order1():
 | |
|     t = BoostBuild.Tester(use_test_config=False)
 | |
|     t.write("jamroot.jam", """
 | |
|     obj test : test.cpp : <include>a&&b ;
 | |
|     """)
 | |
|     t.write("test.cpp", """
 | |
|     #include <test.h>
 | |
|     int main() {}
 | |
|     """)
 | |
|     t.write("a/test.h", """
 | |
|     """)
 | |
|     t.write("b/test.h", """
 | |
|     #error should find a/test.h
 | |
|     """)
 | |
|     t.run_build_system()
 | |
| 
 | |
|     t.touch("a/test.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("b/test.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.cleanup()
 | |
| 
 | |
| def test_order2():
 | |
|     t = BoostBuild.Tester(use_test_config=False)
 | |
|     t.write("jamroot.jam", """
 | |
|     obj test : test.cpp : <include>b&&a ;
 | |
|     """)
 | |
|     t.write("test.cpp", """
 | |
|     #include <test.h>
 | |
|     int main() {}
 | |
|     """)
 | |
|     t.write("a/test.h", """
 | |
|     #error should find b/test.h
 | |
|     """)
 | |
|     t.write("b/test.h", """
 | |
|     """)
 | |
|     t.run_build_system()
 | |
| 
 | |
|     t.touch("a/test.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("b/test.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.cleanup()
 | |
| 
 | |
| def test_order_graph():
 | |
|     t = BoostBuild.Tester(use_test_config=False)
 | |
|     t.write("jamroot.jam", """
 | |
|     obj test : test.cpp :
 | |
|         <include>b&&a
 | |
|         <include>c&&b
 | |
|         <include>a
 | |
|         <include>c
 | |
|         <include>b
 | |
|         <include>e&&b&&d
 | |
|       ;
 | |
|     """)
 | |
|     t.write("test.cpp", """
 | |
|     #include <test1.h>
 | |
|     #include <test2.h>
 | |
|     #include <test3.h>
 | |
|     #include <test4.h>
 | |
|     int main() {}
 | |
|     """)
 | |
|     t.write("b/test1.h", "")
 | |
|     t.write("a/test1.h", "#error should find b/test1.h\n")
 | |
| 
 | |
|     t.write("c/test2.h", "")
 | |
|     t.write("b/test2.h", "#error should find c/test2.h\n")
 | |
| 
 | |
|     t.write("e/test3.h", "")
 | |
|     t.write("b/test3.h", "#error should find e/test3.h\n")
 | |
| 
 | |
|     t.write("b/test4.h", "")
 | |
|     t.write("d/test4.h", "#error should find b/test4.h\n")
 | |
| 
 | |
|     t.run_build_system()
 | |
|     t.expect_addition("bin/$toolset/debug/test.obj")
 | |
| 
 | |
|     t.touch("b/test1.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("a/test1.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("c/test2.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("b/test2.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("e/test3.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("b/test3.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("b/test4.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_touch("bin/$toolset/debug/test.obj")
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.touch("d/test4.h")
 | |
|     t.run_build_system()
 | |
|     t.expect_nothing_more()
 | |
| 
 | |
|     t.cleanup()
 | |
| 
 | |
| test_default_order()
 | |
| test_default_order_mixed()
 | |
| test_basic()
 | |
| test_order1()
 | |
| test_order2()
 | |
| test_order_graph()
 |