mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	
		
			
	
	
		
			97 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|  | #!/usr/bin/python | ||
|  | 
 | ||
|  | # Copyright (C) 2008. Jurko Gospodnetic | ||
|  | # 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) | ||
|  | 
 | ||
|  | # Tests for the Boost Jam builtin SORT rule. | ||
|  | 
 | ||
|  | import BoostBuild | ||
|  | 
 | ||
|  | 
 | ||
|  | ############################################################################### | ||
|  | # | ||
|  | # testSORTCorrectness() | ||
|  | # --------------------- | ||
|  | # | ||
|  | ############################################################################### | ||
|  | 
 | ||
|  | def testSORTCorrectness(): | ||
|  |     """Testing that Boost Jam's SORT builtin rule actually sorts correctly.""" | ||
|  |     t = BoostBuild.Tester(["-ftest.jam", "-d1"], pass_toolset=False, | ||
|  |         use_test_config=False) | ||
|  | 
 | ||
|  |     t.write("test.jam", """\
 | ||
|  | NOCARE all ; | ||
|  | source-data = 1 8 9 2 7 3 4 7 1 27 27 9 98 98 1 1 4 5 6 2 3 4 8 1 -2 -2 0 0 0 ; | ||
|  | target-data = -2 -2 0 0 0 1 1 1 1 1 2 2 27 27 3 3 4 4 4 5 6 7 7 8 8 9 9 98 98 ; | ||
|  | ECHO "starting up" ; | ||
|  | sorted-data = [ SORT $(source-data) ] ; | ||
|  | ECHO "done" ; | ||
|  | if $(sorted-data) != $(target-data) | ||
|  | { | ||
|  |     ECHO "Source       :" $(source-data) ; | ||
|  |     ECHO "Expected     :" $(target-data) ; | ||
|  |     ECHO "SORT returned:" $(sorted-data) ; | ||
|  |     EXIT "SORT error" : -2 ; | ||
|  | } | ||
|  | """)
 | ||
|  | 
 | ||
|  |     t.run_build_system() | ||
|  |     t.expect_output_lines("starting up") | ||
|  |     t.expect_output_lines("done") | ||
|  |     t.expect_output_lines("SORT error", False) | ||
|  | 
 | ||
|  |     t.cleanup() | ||
|  | 
 | ||
|  | 
 | ||
|  | ############################################################################### | ||
|  | # | ||
|  | # testSORTDuration() | ||
|  | # ------------------ | ||
|  | # | ||
|  | ############################################################################### | ||
|  | 
 | ||
|  | def testSORTDuration(): | ||
|  |     """
 | ||
|  |       Regression test making sure Boost Jam's SORT builtin rule does not get | ||
|  |     quadratic behaviour again in this use case. | ||
|  | 
 | ||
|  |     """
 | ||
|  |     t = BoostBuild.Tester(["-ftest.jam", "-d1"], pass_toolset=False, | ||
|  |         use_test_config=False) | ||
|  | 
 | ||
|  |     f = open(t.workpath("test.jam"), "w") | ||
|  |     print >> f, "data = " | ||
|  |     for i in range(0, 20000): | ||
|  |         if i % 2: | ||
|  |             print >> f, '"aaa"' | ||
|  |         else: | ||
|  |             print >> f, '"bbb"' | ||
|  |     print >> f, """;
 | ||
|  | 
 | ||
|  | ECHO "starting up" ; | ||
|  | sorted = [ SORT $(data) ] ; | ||
|  | ECHO "done" ; | ||
|  | NOCARE all ; | ||
|  | """
 | ||
|  |     f.close() | ||
|  | 
 | ||
|  |     t.run_build_system(expected_duration=1) | ||
|  |     t.expect_output_lines("starting up") | ||
|  |     t.expect_output_lines("done") | ||
|  | 
 | ||
|  |     t.cleanup() | ||
|  | 
 | ||
|  | 
 | ||
|  | ############################################################################### | ||
|  | # | ||
|  | # main() | ||
|  | # ------ | ||
|  | # | ||
|  | ############################################################################### | ||
|  | 
 | ||
|  | testSORTCorrectness() | ||
|  | testSORTDuration() |