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;
|
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/GlobalContext.h>
|
||||||
#include <libsolidity/analysis/TypeChecker.h>
|
#include <libsolidity/analysis/TypeChecker.h>
|
||||||
#include "../TestHelper.h"
|
#include "../TestHelper.h"
|
||||||
|
#include "ErrorCheck.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -165,7 +166,7 @@ do \
|
|||||||
{ \
|
{ \
|
||||||
Error err = expectError((text), (warning)); \
|
Error err = expectError((text), (warning)); \
|
||||||
BOOST_CHECK(err.type() == (Error::Type::typ)); \
|
BOOST_CHECK(err.type() == (Error::Type::typ)); \
|
||||||
BOOST_CHECK(err.searchForSubstring(substring)); \
|
BOOST_CHECK(searchErrorMessage(err, substring)); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
// [checkError(text, type, substring)] asserts that the compilation down to typechecking
|
// [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);
|
auto sourceAndError = parseAnalyseAndReturnError(text, true, false);
|
||||||
BOOST_REQUIRE(!!sourceAndError.second);
|
BOOST_REQUIRE(!!sourceAndError.second);
|
||||||
BOOST_REQUIRE(!!sourceAndError.first);
|
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)
|
BOOST_AUTO_TEST_CASE(unsatisfied_version)
|
||||||
|
Loading…
Reference in New Issue
Block a user