aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity/SolidityScanner.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-11-26 21:17:08 +0800
committerGitHub <noreply@github.com>2018-11-26 21:17:08 +0800
commit9ac7c748f8b954e712ba78f1431a1b5151a4ad86 (patch)
tree91dd905c5fefab466ff496edab884e0d8d8e608c /test/libsolidity/SolidityScanner.cpp
parent0b474d52994028392402ca1e7f56b613ab365dec (diff)
parent0ad56bca790fa88d3baa7f46dc47c104baedd824 (diff)
downloaddexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.tar
dexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.tar.gz
dexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.tar.bz2
dexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.tar.lz
dexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.tar.xz
dexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.tar.zst
dexon-solidity-9ac7c748f8b954e712ba78f1431a1b5151a4ad86.zip
Merge pull request #5494 from ethereum/scanner-error-handling
Improved Scanner error diagnostics.
Diffstat (limited to 'test/libsolidity/SolidityScanner.cpp')
-rw-r--r--test/libsolidity/SolidityScanner.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/test/libsolidity/SolidityScanner.cpp b/test/libsolidity/SolidityScanner.cpp
index 2d164ae3..02d91d32 100644
--- a/test/libsolidity/SolidityScanner.cpp
+++ b/test/libsolidity/SolidityScanner.cpp
@@ -88,6 +88,7 @@ BOOST_AUTO_TEST_CASE(string_escape_illegal)
Scanner scanner(CharStream(" bla \"\\x6rf\" (illegalescape)"));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::Identifier);
BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
+ BOOST_CHECK_EQUAL(scanner.currentError(), ScannerError::IllegalEscapeSequence);
BOOST_CHECK_EQUAL(scanner.currentLiteral(), "");
// TODO recovery from illegal tokens should be improved
BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
@@ -486,28 +487,32 @@ BOOST_AUTO_TEST_CASE(invalid_short_hex_literal)
{
Scanner scanner(CharStream("{ hex\"00112233F\""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::LBrace);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IllegalHex);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
+ BOOST_CHECK_EQUAL(scanner.currentError(), ScannerError::IllegalHexString);
}
BOOST_AUTO_TEST_CASE(invalid_hex_literal_with_space)
{
Scanner scanner(CharStream("{ hex\"00112233FF \""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::LBrace);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IllegalHex);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
+ BOOST_CHECK_EQUAL(scanner.currentError(), ScannerError::IllegalHexString);
}
BOOST_AUTO_TEST_CASE(invalid_hex_literal_with_wrong_quotes)
{
Scanner scanner(CharStream("{ hex\"00112233FF'"));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::LBrace);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IllegalHex);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
+ BOOST_CHECK_EQUAL(scanner.currentError(), ScannerError::IllegalHexString);
}
BOOST_AUTO_TEST_CASE(invalid_hex_literal_nonhex_string)
{
Scanner scanner(CharStream("{ hex\"hello\""));
BOOST_CHECK_EQUAL(scanner.currentToken(), Token::LBrace);
- BOOST_CHECK_EQUAL(scanner.next(), Token::IllegalHex);
+ BOOST_CHECK_EQUAL(scanner.next(), Token::Illegal);
+ BOOST_CHECK_EQUAL(scanner.currentError(), ScannerError::IllegalHexString);
}
// COMMENTS