Browse Source

Fix padding.

cl-refactor
Gav Wood 11 years ago
parent
commit
807288182d
  1. 2
      libqethereum/QEthereum.cpp
  2. 46
      test/main.cpp

2
libqethereum/QEthereum.cpp

@ -203,7 +203,7 @@ QString padded(QString const& _s, unsigned _l, unsigned _r)
b.insert(b.begin(), 0);
while (b.size() < _r)
b.push_back(0);
return QString::fromStdString(eth::asString(b).substr(b.size() - max(_l, _r)));
return asQString(eth::asBytes(eth::asString(b).substr(b.size() - max(_l, _r))));
}
//"0xff".bin().unbin()

46
test/main.cpp

@ -21,8 +21,9 @@
*/
#include <boost/test/unit_test.hpp>
// TODO: utilise the shared testdata.
#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/phoenix.hpp>
#include <boost/spirit/include/support_utree.hpp>
int trieTest();
int rlpTest();
@ -33,11 +34,52 @@ int vmTest();
int hexPrefixTest();
int peerTest(int argc, char** argv);
#include <libethcore/Log.h>
#include <libethereum/BlockInfo.h>
using namespace std;
using namespace eth;
namespace qi = boost::spirit::qi;
namespace px = boost::phoenix;
namespace sp = boost::spirit;
template <typename Iterator> struct whitespace: qi::grammar<Iterator>
{
qi::rule<Iterator> start;
whitespace(): whitespace::base_type(start)
{
start = *boost::spirit::standard::space;// | (';' >> *(boost::spirit::standard::char_ - qi::eol) >> qi::eol);
}
};
ostream& operator<<(ostream& _out, sp::utree const& _this)
{
switch (_this.which())
{
case sp::utree_type::list_type: _out << "( "; for (auto const& i: _this) ::operator<<(_out, i) << " "; _out << ")"; break;
case sp::utree_type::int_type: _out << _this.get<int>(); break;
case sp::utree_type::string_type: _out << _this.get<string>(); break;
default: _out << "nil";
}
return _out;
}
BOOST_AUTO_TEST_CASE(basic_tests)
{
cnote << "Hello";
/*
auto symbol = qi::lexeme[+(~qi::char_(std::string(" ();\"\x01-\x1f\x7f") + '\0'))];
auto integer = qi::lexeme[ qi::no_case["#x"] >> qi::hex] | qi::lexeme[ qi::no_case["#o"] >> qi::oct] | qi::lexeme[-qi::no_case["#d"] >> qi::int_];
qi::rule<string::iterator, sp::utree()> atom = symbol | integer;
qi::rule<string::iterator, sp::utree()> list;
qi::rule<string::iterator, sp::utree()> element = atom | list;
list = '(' > *element > ')';
string input = "(suicide (caller))";
sp::utree out;
qi::parse(input.begin(), input.end(), element, out);
cnote << out;
*/
/* RLPStream s;
BlockInfo::genesis().fillStream(s, false);
std::cout << RLP(s.out()) << std::endl;

Loading…
Cancel
Save