mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 04:50:34 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python
 | |
| 
 | |
| # Copyright (C) Vladimir Prus 2003.
 | |
| # 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)
 | |
| 
 | |
| # Test for the regression testing framework.
 | |
| 
 | |
| import BoostBuild
 | |
| 
 | |
| # Create a temporary working directory.
 | |
| t = BoostBuild.Tester(use_test_config=False)
 | |
| 
 | |
| t.write("c.cpp", "\n")
 | |
| t.write("r.cpp", """\
 | |
| void helper();
 | |
| 
 | |
| #include <iostream>
 | |
| int main( int ac, char * av[] )
 | |
| {
 | |
|     helper();
 | |
|     for ( int i = 1; i < ac; ++i )
 | |
|        std::cout << av[ i ] << '\\n';
 | |
| }
 | |
| """)
 | |
| t.write("c-f.cpp", "int\n")
 | |
| t.write("r-f.cpp", "int main() { return 1; }\n")
 | |
| 
 | |
| t.write("jamroot.jam", "")
 | |
| t.write("jamfile.jam", """\
 | |
| import testing ;
 | |
| compile c.cpp ;
 | |
| compile-fail c-f.cpp ;
 | |
| run r.cpp libs//helper : foo bar ;
 | |
| run-fail r-f.cpp ;
 | |
| """)
 | |
| 
 | |
| t.write("libs/jamfile.jam", "lib helper : helper.cpp ;")
 | |
| t.write("libs/helper.cpp", """\
 | |
| void
 | |
| #if defined(_WIN32)
 | |
| __declspec(dllexport)
 | |
| #endif
 | |
| helper() {}
 | |
| """)
 | |
| 
 | |
| # First test that when outcomes are expected, all .test files are created.
 | |
| t.run_build_system(["hardcode-dll-paths=false"], stderr=None, status=None)
 | |
| t.expect_addition("bin/c.test/$toolset/debug/c.test")
 | |
| t.expect_addition("bin/c-f.test/$toolset/debug/c-f.test")
 | |
| t.expect_addition("bin/r.test/$toolset/debug/r.test")
 | |
| t.expect_addition("bin/r-f.test/$toolset/debug/r-f.test")
 | |
| 
 | |
| # Make sure args are handled.
 | |
| t.expect_content("bin/r.test/$toolset/debug/r.output",
 | |
|                  "foo\nbar\n*\nEXIT STATUS: 0*\n", True)
 | |
| 
 | |
| # Test that input file is handled as well.
 | |
| t.write("r.cpp", """\
 | |
| #include <iostream>
 | |
| #include <fstream>
 | |
| int main( int ac, char * av[] )
 | |
| {
 | |
|     for ( int i = 1; i < ac; ++i )
 | |
|     {
 | |
|         std::ifstream ifs( av[ i ] );
 | |
|         std::cout << ifs.rdbuf();
 | |
|     }
 | |
| }
 | |
| """)
 | |
| 
 | |
| t.write("dir/input.txt", "test input")
 | |
| 
 | |
| t.write("jamfile.jam", """\
 | |
| import testing ;
 | |
| compile c.cpp ;
 | |
| obj c-obj : c.cpp ;
 | |
| compile-fail c-f.cpp ;
 | |
| run r.cpp : : dir/input.txt ;
 | |
| run-fail r-f.cpp ;
 | |
| time execution : r ;
 | |
| time compilation : c-obj ;
 | |
| """)
 | |
| 
 | |
| t.run_build_system(["hardcode-dll-paths=false"])
 | |
| t.expect_content("bin/r.test/$toolset/debug/r.output", """\
 | |
| test input
 | |
| EXIT STATUS: 0
 | |
| """)
 | |
| 
 | |
| t.expect_addition('bin/$toolset/debug/execution.time')
 | |
| t.expect_addition('bin/$toolset/debug/compilation.time')
 | |
| 
 | |
| # Make sure test failures are detected. Reverse expectation and see if .test
 | |
| # files are created or not.
 | |
| t.write("jamfile.jam", """\
 | |
| import testing ;
 | |
| compile-fail c.cpp ;
 | |
| compile c-f.cpp ;
 | |
| run-fail r.cpp : : dir/input.txt ;
 | |
| run r-f.cpp ;
 | |
| """)
 | |
| 
 | |
| t.touch(BoostBuild.List("c.cpp c-f.cpp r.cpp r-f.cpp"))
 | |
| 
 | |
| t.run_build_system(["hardcode-dll-paths=false"], stderr=None, status=1)
 | |
| t.expect_removal("bin/c.test/$toolset/debug/c.test")
 | |
| t.expect_removal("bin/c-f.test/$toolset/debug/c-f.test")
 | |
| t.expect_removal("bin/r.test/$toolset/debug/r.test")
 | |
| t.expect_removal("bin/r-f.test/$toolset/debug/r-f.test")
 | |
| 
 | |
| t.cleanup()
 |