mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05: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()
							 |