mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -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() |