mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
interface: move searchForSubstring out of Error class into a separate file
This commit is contained in:
parent
2faaddca05
commit
384c4546f1
@ -56,10 +56,3 @@ Error::Error(Type _type): m_type(_type)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool Error::searchForSubstring(const std::string& _substr) const
|
||||
{
|
||||
if (const std::string* str = boost::get_error_info<errinfo_comment>(*this))
|
||||
return str->find(_substr) != std::string::npos;
|
||||
return _substr.empty();
|
||||
}
|
||||
|
32
test/libsolidity/ErrorCheck.cpp
Normal file
32
test/libsolidity/ErrorCheck.cpp
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
This file is part of solidity.
|
||||
|
||||
solidity is free software: you can redistribute it and/or modify
|
||||
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,
|
||||
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/>.
|
||||
*/
|
||||
/** @file ErrorCheck.cpp
|
||||
* @author Yoichi Hirai <i@yoichihirai.com>
|
||||
* @date 2016
|
||||
*/
|
||||
|
||||
#include <test/libsolidity/ErrorCheck.h>
|
||||
#include <libdevcore/Exceptions.h>
|
||||
|
||||
#include <string>
|
||||
|
||||
bool dev::solidity::searchErrorMessage(Error const& _err, std::string const& _substr)
|
||||
{
|
||||
if (const std::string* errorMessage = boost::get_error_info<dev::errinfo_comment>(_err))
|
||||
return errorMessage->find(_substr) != std::string::npos;
|
||||
return _substr.empty();
|
||||
}
|
32
test/libsolidity/ErrorCheck.h
Normal file
32
test/libsolidity/ErrorCheck.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
This file is part of solidity.
|
||||
|
||||
solidity is free software: you can redistribute it and/or modify
|
||||
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,
|
||||
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/>.
|
||||
*/
|
||||
/** @file ErrorCheck.h
|
||||
* @author Yoichi Hirai <i@yoichihirai.com>
|
||||
* @date 2016
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <libsolidity/interface/Exceptions.h>
|
||||
|
||||
namespace dev
|
||||
{
|
||||
namespace solidity
|
||||
{
|
||||
bool searchErrorMessage(Error const& _err, std::string const& _substr);
|
||||
}
|
||||
}
|
@ -31,6 +31,7 @@
|
||||
#include <libsolidity/analysis/GlobalContext.h>
|
||||
#include <libsolidity/analysis/TypeChecker.h>
|
||||
#include "../TestHelper.h"
|
||||
#include "ErrorCheck.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -165,7 +166,7 @@ do \
|
||||
{ \
|
||||
Error err = expectError((text), (warning)); \
|
||||
BOOST_CHECK(err.type() == (Error::Type::typ)); \
|
||||
BOOST_CHECK(err.searchForSubstring(substring)); \
|
||||
BOOST_CHECK(searchErrorMessage(err, substring)); \
|
||||
} while(0)
|
||||
|
||||
// [checkError(text, type, substring)] asserts that the compilation down to typechecking
|
||||
@ -4104,7 +4105,7 @@ BOOST_AUTO_TEST_CASE(warn_nonpresent_pragma)
|
||||
auto sourceAndError = parseAnalyseAndReturnError(text, true, false);
|
||||
BOOST_REQUIRE(!!sourceAndError.second);
|
||||
BOOST_REQUIRE(!!sourceAndError.first);
|
||||
BOOST_CHECK(sourceAndError.second->searchForSubstring("Source file does not specify required compiler version!"));
|
||||
BOOST_CHECK(searchErrorMessage(*sourceAndError.second, "Source file does not specify required compiler version!"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(unsatisfied_version)
|
||||
|
Loading…
Reference in New Issue
Block a user