mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-17 17:42:02 -05: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()
|