mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-26 14:18:38 -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()
|