diff options
author | chriseth <chris@ethereum.org> | 2018-11-26 21:17:08 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-26 21:17:08 +0800 |
commit | 9ac7c748f8b954e712ba78f1431a1b5151a4ad86 (patch) | |
tree | 91dd905c5fefab466ff496edab884e0d8d8e608c /test/libsolidity/SolidityScanner.cpp | |
parent | 0b474d52994028392402ca1e7f56b613ab365dec (diff) | |
parent | 0ad56bca790fa88d3baa7f46dc47c104baedd824 (diff) | |
download | dexon-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.cpp | 13 |
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 |