diff --git a/test/libsolidity/ASTJSONTest.cpp b/test/libsolidity/ASTJSONTest.cpp index be482d998..605fbfc0c 100644 --- a/test/libsolidity/ASTJSONTest.cpp +++ b/test/libsolidity/ASTJSONTest.cpp @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -26,10 +27,10 @@ #include #include -using namespace dev; -using namespace solidity; +using namespace dev::solidity; using namespace dev::solidity::test; -using namespace dev::solidity::test::formatting; +using namespace dev::formatting; +using namespace dev; using namespace std; namespace fs = boost::filesystem; using namespace boost::unit_test; @@ -116,7 +117,7 @@ bool ASTJSONTest::run(ostream& _stream, string const& _linePrefix, bool const _f if (m_expectation != m_result) { string nextIndentLevel = _linePrefix + " "; - FormattedScope(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Expected result:" << endl; + AnsiColorized(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Expected result:" << endl; { istringstream stream(m_expectation); string line; @@ -124,7 +125,7 @@ bool ASTJSONTest::run(ostream& _stream, string const& _linePrefix, bool const _f _stream << nextIndentLevel << line << endl; } _stream << endl; - FormattedScope(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Obtained result:" << endl; + AnsiColorized(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Obtained result:" << endl; { istringstream stream(m_result); string line; @@ -148,7 +149,7 @@ bool ASTJSONTest::run(ostream& _stream, string const& _linePrefix, bool const _f if (m_expectationLegacy != m_resultLegacy) { string nextIndentLevel = _linePrefix + " "; - FormattedScope(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Expected result (legacy):" << endl; + AnsiColorized(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Expected result (legacy):" << endl; { istringstream stream(m_expectationLegacy); string line; @@ -156,7 +157,7 @@ bool ASTJSONTest::run(ostream& _stream, string const& _linePrefix, bool const _f _stream << nextIndentLevel << line << endl; } _stream << endl; - FormattedScope(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Obtained result (legacy):" << endl; + AnsiColorized(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Obtained result (legacy):" << endl; { istringstream stream(m_resultLegacy); string line; diff --git a/test/libsolidity/ASTJSONTest.h b/test/libsolidity/ASTJSONTest.h index dcdaf2210..fb63d7198 100644 --- a/test/libsolidity/ASTJSONTest.h +++ b/test/libsolidity/ASTJSONTest.h @@ -17,7 +17,7 @@ #pragma once -#include +#include #include #include diff --git a/test/libsolidity/FormattedScope.h b/test/libsolidity/FormattedScope.h deleted file mode 100644 index 923404f0c..000000000 --- a/test/libsolidity/FormattedScope.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - 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 . -*/ - -#pragma once - -#include - -#include -#include - -namespace dev -{ -namespace solidity -{ -namespace test -{ - -namespace formatting -{ - -static constexpr char const* RESET = "\033[0m"; -static constexpr char const* RED = "\033[1;31m"; -static constexpr char const* GREEN = "\033[1;32m"; -static constexpr char const* YELLOW = "\033[1;33m"; -static constexpr char const* CYAN = "\033[1;36m"; -static constexpr char const* BOLD = "\033[1m"; -static constexpr char const* RED_BACKGROUND = "\033[48;5;160m"; -static constexpr char const* ORANGE_BACKGROUND = "\033[48;5;166m"; -static constexpr char const* INVERSE = "\033[7m"; - -} - -class FormattedScope: boost::noncopyable -{ -public: - /// @arg _formatting List of formatting strings (e.g. colors) defined in the formatting namespace. - FormattedScope(std::ostream& _stream, bool const _enabled, std::vector const& _formatting): - m_stream(_stream), m_enabled(_enabled) - { - if (m_enabled) - for (auto const& format: _formatting) - m_stream << format; - } - ~FormattedScope() { if (m_enabled) m_stream << formatting::RESET; } - template - std::ostream& operator<<(T&& _t) { return m_stream << std::forward(_t); } -private: - std::ostream& m_stream; - bool m_enabled; -}; - -} -} -} diff --git a/test/libsolidity/SMTCheckerJSONTest.cpp b/test/libsolidity/SMTCheckerJSONTest.cpp index e9204cc4e..18a5bc410 100644 --- a/test/libsolidity/SMTCheckerJSONTest.cpp +++ b/test/libsolidity/SMTCheckerJSONTest.cpp @@ -28,10 +28,10 @@ #include #include -using namespace dev; -using namespace solidity; using namespace dev::solidity::test; -using namespace dev::solidity::test::formatting; +using namespace dev::solidity; +using namespace dev::formatting; +using namespace dev; using namespace std; using namespace boost::unit_test; diff --git a/test/libsolidity/SyntaxTest.cpp b/test/libsolidity/SyntaxTest.cpp index c47ea599c..f13b2e79c 100644 --- a/test/libsolidity/SyntaxTest.cpp +++ b/test/libsolidity/SyntaxTest.cpp @@ -24,11 +24,11 @@ #include #include -using namespace dev; using namespace langutil; -using namespace solidity; +using namespace dev::solidity; using namespace dev::solidity::test; -using namespace dev::solidity::test::formatting; +using namespace dev::formatting; +using namespace dev; using namespace std; namespace fs = boost::filesystem; using namespace boost::unit_test; @@ -100,9 +100,9 @@ bool SyntaxTest::printExpectationAndError(ostream& _stream, string const& _lineP if (m_expectations != m_errorList) { string nextIndentLevel = _linePrefix + " "; - FormattedScope(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Expected result:" << endl; + AnsiColorized(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Expected result:" << endl; printErrorList(_stream, m_expectations, nextIndentLevel, _formatted); - FormattedScope(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Obtained result:" << endl; + AnsiColorized(_stream, _formatted, {BOLD, CYAN}) << _linePrefix << "Obtained result:" << endl; printErrorList(_stream, m_errorList, nextIndentLevel, _formatted); return false; } @@ -127,7 +127,7 @@ void SyntaxTest::printSource(ostream& _stream, string const& _linePrefix, bool c if (isWarning) { if (sourceFormatting[i] == formatting::RESET) - sourceFormatting[i] = formatting::ORANGE_BACKGROUND; + sourceFormatting[i] = formatting::ORANGE_BACKGROUND_256; } else sourceFormatting[i] = formatting::RED_BACKGROUND; @@ -166,12 +166,12 @@ void SyntaxTest::printErrorList( ) { if (_errorList.empty()) - FormattedScope(_stream, _formatted, {BOLD, GREEN}) << _linePrefix << "Success" << endl; + AnsiColorized(_stream, _formatted, {BOLD, GREEN}) << _linePrefix << "Success" << endl; else for (auto const& error: _errorList) { { - FormattedScope scope(_stream, _formatted, {BOLD, (error.type == "Warning") ? YELLOW : RED}); + AnsiColorized scope(_stream, _formatted, {BOLD, (error.type == "Warning") ? YELLOW : RED}); _stream << _linePrefix; _stream << error.type << ": "; } diff --git a/test/libsolidity/SyntaxTest.h b/test/libsolidity/SyntaxTest.h index 12c14087b..69394f4af 100644 --- a/test/libsolidity/SyntaxTest.h +++ b/test/libsolidity/SyntaxTest.h @@ -18,9 +18,9 @@ #pragma once #include -#include #include #include +#include #include #include diff --git a/test/libyul/ObjectCompilerTest.cpp b/test/libyul/ObjectCompilerTest.cpp index e60f718d6..d4a3a55d1 100644 --- a/test/libyul/ObjectCompilerTest.cpp +++ b/test/libyul/ObjectCompilerTest.cpp @@ -17,7 +17,7 @@ #include -#include +#include #include @@ -67,7 +67,7 @@ bool ObjectCompilerTest::run(ostream& _stream, string const& _linePrefix, bool c AssemblyStack stack(EVMVersion(), AssemblyStack::Language::StrictAssembly); if (!stack.parseAndAnalyze("source", m_source)) { - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error parsing source." << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error parsing source." << endl; printErrors(_stream, stack.errors()); return false; } @@ -91,9 +91,9 @@ bool ObjectCompilerTest::run(ostream& _stream, string const& _linePrefix, bool c if (m_expectation != m_obtainedResult) { string nextIndentLevel = _linePrefix + " "; - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Expected result:" << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Expected result:" << endl; printIndented(_stream, m_expectation, nextIndentLevel); - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Obtained result:" << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Obtained result:" << endl; printIndented(_stream, m_obtainedResult, nextIndentLevel); return false; } diff --git a/test/libyul/YulOptimizerTest.cpp b/test/libyul/YulOptimizerTest.cpp index 306721a02..434c95486 100644 --- a/test/libyul/YulOptimizerTest.cpp +++ b/test/libyul/YulOptimizerTest.cpp @@ -17,8 +17,6 @@ #include -#include - #include #include @@ -52,6 +50,8 @@ #include #include +#include + #include #include @@ -245,7 +245,7 @@ bool YulOptimizerTest::run(ostream& _stream, string const& _linePrefix, bool con OptimiserSuite::run(*m_dialect, *m_ast, *m_analysisInfo); else { - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Invalid optimizer step: " << m_optimizerStep << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Invalid optimizer step: " << m_optimizerStep << endl; return false; } @@ -254,10 +254,10 @@ bool YulOptimizerTest::run(ostream& _stream, string const& _linePrefix, bool con if (m_expectation != m_obtainedResult) { string nextIndentLevel = _linePrefix + " "; - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Expected result:" << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Expected result:" << endl; // TODO could compute a simple diff with highlighted lines printIndented(_stream, m_expectation, nextIndentLevel); - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Obtained result:" << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::CYAN}) << _linePrefix << "Obtained result:" << endl; printIndented(_stream, m_obtainedResult, nextIndentLevel); return false; } @@ -291,7 +291,7 @@ bool YulOptimizerTest::parse(ostream& _stream, string const& _linePrefix, bool c m_ast = yul::Parser(errorReporter, m_dialect).parse(scanner, false); if (!m_ast || !errorReporter.errors().empty()) { - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error parsing source." << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error parsing source." << endl; printErrors(_stream, errorReporter.errors()); return false; } @@ -305,7 +305,7 @@ bool YulOptimizerTest::parse(ostream& _stream, string const& _linePrefix, bool c ); if (!analyzer.analyze(*m_ast) || !errorReporter.errors().empty()) { - FormattedScope(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error analyzing source." << endl; + AnsiColorized(_stream, _formatted, {formatting::BOLD, formatting::RED}) << _linePrefix << "Error analyzing source." << endl; printErrors(_stream, errorReporter.errors()); return false; } diff --git a/test/tools/isoltest.cpp b/test/tools/isoltest.cpp index e5578045e..c15183f8f 100644 --- a/test/tools/isoltest.cpp +++ b/test/tools/isoltest.cpp @@ -16,6 +16,7 @@ */ #include +#include #include #include @@ -38,7 +39,7 @@ using namespace dev; using namespace dev::solidity; using namespace dev::solidity::test; -using namespace dev::solidity::test::formatting; +using namespace dev::formatting; using namespace std; namespace po = boost::program_options; namespace fs = boost::filesystem; @@ -110,7 +111,7 @@ TestTool::Result TestTool::process() bool success; std::stringstream outputMessages; - (FormattedScope(cout, m_formatted, {BOLD}) << m_name << ": ").flush(); + (AnsiColorized(cout, m_formatted, {BOLD}) << m_name << ": ").flush(); try { @@ -119,33 +120,33 @@ TestTool::Result TestTool::process() } catch(boost::exception const& _e) { - FormattedScope(cout, m_formatted, {BOLD, RED}) << + AnsiColorized(cout, m_formatted, {BOLD, RED}) << "Exception during syntax test: " << boost::diagnostic_information(_e) << endl; return Result::Exception; } catch (std::exception const& _e) { - FormattedScope(cout, m_formatted, {BOLD, RED}) << + AnsiColorized(cout, m_formatted, {BOLD, RED}) << "Exception during syntax test: " << _e.what() << endl; return Result::Exception; } catch (...) { - FormattedScope(cout, m_formatted, {BOLD, RED}) << + AnsiColorized(cout, m_formatted, {BOLD, RED}) << "Unknown exception during syntax test." << endl; return Result::Exception; } if (success) { - FormattedScope(cout, m_formatted, {BOLD, GREEN}) << "OK" << endl; + AnsiColorized(cout, m_formatted, {BOLD, GREEN}) << "OK" << endl; return Result::Success; } else { - FormattedScope(cout, m_formatted, {BOLD, RED}) << "FAIL" << endl; + AnsiColorized(cout, m_formatted, {BOLD, RED}) << "FAIL" << endl; - FormattedScope(cout, m_formatted, {BOLD, CYAN}) << " Contract:" << endl; + AnsiColorized(cout, m_formatted, {BOLD, CYAN}) << " Contract:" << endl; m_test->printSource(cout, " ", m_formatted); cout << endl << outputMessages.str() << endl; @@ -305,7 +306,7 @@ boost::optional runTestSuite( TestStats stats = TestTool::processPath(_testCaseCreator, _basePath, _subdirectory, _formatted); cout << endl << _name << " Test Summary: "; - FormattedScope(cout, _formatted, {BOLD, stats ? GREEN : RED}) << + AnsiColorized(cout, _formatted, {BOLD, stats ? GREEN : RED}) << stats.successCount << "/" << stats.testCount; @@ -389,7 +390,7 @@ Allowed options)", } cout << endl << "Summary: "; - FormattedScope(cout, formatted, {BOLD, global_stats ? GREEN : RED}) << + AnsiColorized(cout, formatted, {BOLD, global_stats ? GREEN : RED}) << global_stats.successCount << "/" << global_stats.testCount; cout << " tests successful." << endl;