diff options
author | chriseth <chris@ethereum.org> | 2018-04-04 20:52:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-04 20:52:01 +0800 |
commit | 016f562348d5192b7d2f514a1aca961d4d665083 (patch) | |
tree | ab5f3421cb79a1f4caa193f988d755b2bef778b8 /test/libsolidity/SyntaxTest.h | |
parent | 2fe5607a5a6618f27f4ed5c1effb4273c662ee3a (diff) | |
parent | 87ad337ae0c055c21476ef9961e52a9d7d3072bb (diff) | |
download | dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.tar dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.tar.gz dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.tar.bz2 dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.tar.lz dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.tar.xz dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.tar.zst dexon-solidity-016f562348d5192b7d2f514a1aca961d4d665083.zip |
Merge pull request #3808 from ethereum/parserTests
SyntaxTests: extend syntax tests and isoltest to support parser error…
Diffstat (limited to 'test/libsolidity/SyntaxTest.h')
-rw-r--r-- | test/libsolidity/SyntaxTest.h | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/test/libsolidity/SyntaxTest.h b/test/libsolidity/SyntaxTest.h index cb6ee05c..dddd86ef 100644 --- a/test/libsolidity/SyntaxTest.h +++ b/test/libsolidity/SyntaxTest.h @@ -36,10 +36,14 @@ namespace solidity namespace test { -struct SyntaxTestExpectation +struct SyntaxTestError { std::string type; std::string message; + bool operator==(SyntaxTestError const& _rhs) const + { + return type == _rhs.type && message == _rhs.message; + } }; @@ -50,21 +54,16 @@ public: bool run(std::ostream& _stream, std::string const& _linePrefix = "", bool const _formatted = false); - std::vector<SyntaxTestExpectation> const& expectations() const { return m_expectations; } + std::vector<SyntaxTestError> const& expectations() const { return m_expectations; } std::string const& source() const { return m_source; } - ErrorList const& errorList() const { return m_errorList; } - ErrorList const& compilerErrors() const { return m_compiler.errors(); } + std::vector<SyntaxTestError> const& errorList() const { return m_errorList; } - void printExpected(std::ostream& _stream, std::string const& _linePrefix, bool const _formatted = false) const; - - void printErrorList( + static void printErrorList( std::ostream& _stream, - ErrorList const& _errors, + std::vector<SyntaxTestError> const& _errors, std::string const& _linePrefix, - bool const _ignoreWarnings, - bool const _lineNumbers, bool const _formatted = false - ) const; + ); static int registerTests( boost::unit_test::test_suite& _suite, @@ -72,16 +71,14 @@ public: boost::filesystem::path const& _path ); static bool isTestFilename(boost::filesystem::path const& _filename); + static std::string errorMessage(Exception const& _e); private: - bool matchesExpectations(ErrorList const& _errors) const; - static std::string errorMessage(Error const& _e); static std::string parseSource(std::istream& _stream); - static std::vector<SyntaxTestExpectation> parseExpectations(std::istream& _stream); - int offsetToLineNumber(int _location) const; + static std::vector<SyntaxTestError> parseExpectations(std::istream& _stream); std::string m_source; - std::vector<SyntaxTestExpectation> m_expectations; - ErrorList m_errorList; + std::vector<SyntaxTestError> m_expectations; + std::vector<SyntaxTestError> m_errorList; }; } |