solidity/test/boostTest.cpp

86 lines
2.2 KiB
C++
Raw Normal View History

2014-03-19 04:35:16 +00:00
/*
This file is part of solidity.
2014-03-19 04:35:16 +00:00
solidity is free software: you can redistribute it and/or modify
2014-03-19 04:35:16 +00:00
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
solidity is distributed in the hope that it will be useful,
2014-03-19 04:35:16 +00:00
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with solidity. If not, see <http://www.gnu.org/licenses/>.
2014-03-19 04:35:16 +00:00
*/
/** @file boostTest.cpp
* @author Marko Simovic <markobarko@gmail.com>
* @date 2014
* Stub for generating main boost.test module.
2015-08-13 10:27:47 +00:00
* Original code taken from boost sources.
2014-03-19 04:35:16 +00:00
*/
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
2016-08-06 09:37:52 +00:00
#if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable:4535) // calling _set_se_translator requires /EHa
#endif
#include <boost/test/included/unit_test.hpp>
#if defined(_MSC_VER)
#pragma warning(pop)
#endif
#pragma GCC diagnostic pop
#include <test/Options.h>
#include <test/libsolidity/SyntaxTest.h>
using namespace boost::unit_test;
2017-09-28 08:28:41 +00:00
namespace
{
void removeTestSuite(std::string const& _name)
{
master_test_suite_t& master = framework::master_test_suite();
auto id = master.get(_name);
assert(id != INV_TEST_UNIT_ID);
master.remove(id);
}
}
test_suite* init_unit_test_suite( int /*argc*/, char* /*argv*/[] )
{
master_test_suite_t& master = framework::master_test_suite();
master.p_name.value = "SolidityTests";
dev::test::Options::get().validate();
solAssert(dev::solidity::test::SyntaxTest::registerTests(
master,
dev::test::Options::get().testPath / "libsolidity",
"syntaxTests"
) > 0, "no syntax tests found");
if (dev::test::Options::get().disableIPC)
{
for (auto suite: {
2017-09-13 15:16:45 +00:00
"ABIDecoderTest",
2017-08-07 10:52:40 +00:00
"ABIEncoderTest",
"SolidityAuctionRegistrar",
"SolidityFixedFeeRegistrar",
"SolidityWallet",
"LLLERC20",
"LLLENS",
"LLLEndToEndTest",
"GasMeterTests",
"SolidityEndToEndTest",
"SolidityOptimizer"
})
2017-09-28 08:28:41 +00:00
removeTestSuite(suite);
}
2017-09-28 08:28:41 +00:00
if (dev::test::Options::get().disableSMT)
removeTestSuite("SMTChecker");
return 0;
}