diff --git a/test/libsolidity/util/BytesUtils.cpp b/test/libsolidity/util/BytesUtils.cpp index 0d55a7920..af104e86e 100644 --- a/test/libsolidity/util/BytesUtils.cpp +++ b/test/libsolidity/util/BytesUtils.cpp @@ -208,21 +208,21 @@ string BytesUtils::formatRawBytes( dev::solidity::test::ParameterList const& _parameters, string _linePrefix) { - soltestAssert( - _bytes.size() == ContractABIUtils::encodingSize(_parameters), - "Got " + to_string(_bytes.size()) + " bytes, but expected " + - to_string(ContractABIUtils::encodingSize(_parameters)) + " bytes." - ); - stringstream os; + ParameterList parameters; auto it = _bytes.begin(); - for (auto const& parameter: _parameters) + if (_bytes.size() != ContractABIUtils::encodingSize(_parameters)) + parameters = ContractABIUtils::defaultParameters(ceil(_bytes.size() / 32)); + else + parameters = _parameters; + + for (auto const& parameter: parameters) { bytes byteRange{it, it + static_cast(parameter.abiType.size)}; os << _linePrefix << byteRange; - if (¶meter != &_parameters.back()) + if (¶meter != ¶meters.back()) os << endl; it += static_cast(parameter.abiType.size); @@ -279,16 +279,17 @@ string BytesUtils::formatBytesRange( bool _highlight ) { - soltestAssert( - _bytes.size() == ContractABIUtils::encodingSize(_parameters), - "Got " + to_string(_bytes.size()) + " bytes, but expected " + - to_string(ContractABIUtils::encodingSize(_parameters)) + " bytes." - ); - stringstream os; + ParameterList parameters; auto it = _bytes.begin(); - for (auto const& parameter: _parameters) + if (_bytes.size() != ContractABIUtils::encodingSize(_parameters)) + parameters = ContractABIUtils::defaultParameters(ceil(_bytes.size() / 32)); + else + parameters = _parameters; + + + for (auto const& parameter: parameters) { bytes byteRange{it, it + static_cast(parameter.abiType.size)}; @@ -301,7 +302,7 @@ string BytesUtils::formatBytesRange( else os << parameter.rawString; - if (¶meter != &_parameters.back()) + if (¶meter != ¶meters.back()) os << ", "; it += static_cast(parameter.abiType.size); diff --git a/test/libsolidity/util/TestFunctionCall.cpp b/test/libsolidity/util/TestFunctionCall.cpp index a63e02865..25b60a184 100644 --- a/test/libsolidity/util/TestFunctionCall.cpp +++ b/test/libsolidity/util/TestFunctionCall.cpp @@ -140,7 +140,11 @@ string TestFunctionCall::format( string bytesOutput = abiParams ? BytesUtils::formatRawBytes(output, abiParams.get(), _linePrefix) : - _linePrefix + "[]"; + BytesUtils::formatRawBytes( + output, + ContractABIUtils::defaultParameters(ceil(output.size() / 32)), + _linePrefix + ); _errorReporter.warning( "The call to \"" + m_call.signature + "\" returned \n" +