Merge branch 'develop' of github.com:ethereum/cpp-ethereum into develop

This commit is contained in:
Gav Wood 2015-01-26 15:00:48 -08:00
commit 0cdc793257
3 changed files with 60 additions and 3 deletions

View File

@ -1545,7 +1545,7 @@ BOOST_AUTO_TEST_CASE(single_copy_with_multiple_inheritance)
} }
contract A is Base { function setViaA(uint i) { setData(i); } } contract A is Base { function setViaA(uint i) { setData(i); } }
contract B is Base { function getViaB() returns (uint i) { return getViaBase(); } } contract B is Base { function getViaB() returns (uint i) { return getViaBase(); } }
contract Derived is A, B, Base { } contract Derived is Base, B, A { }
)"; )";
compileAndRun(sourceCode, 0, "Derived"); compileAndRun(sourceCode, 0, "Derived");
BOOST_CHECK(callContractFunction("getViaB()") == encodeArgs(0)); BOOST_CHECK(callContractFunction("getViaB()") == encodeArgs(0));
@ -1642,7 +1642,7 @@ BOOST_AUTO_TEST_CASE(constructor_argument_overriding)
} }
} }
contract Base is BaseBase(2) { } contract Base is BaseBase(2) { }
contract Derived is Base, BaseBase(3) { contract Derived is BaseBase(3), Base {
function getA() returns (uint r) { return m_a; } function getA() returns (uint r) { return m_a; }
} }
)"; )";

View File

@ -386,7 +386,7 @@ BOOST_AUTO_TEST_CASE(inheritance_diamond_basic)
contract root { function rootFunction() {} } contract root { function rootFunction() {} }
contract inter1 is root { function f() {} } contract inter1 is root { function f() {} }
contract inter2 is root { function f() {} } contract inter2 is root { function f() {} }
contract derived is inter1, inter2, root { contract derived is root, inter2, inter1 {
function g() { f(); rootFunction(); } function g() { f(); rootFunction(); }
} }
)"; )";

57
commonjs.cpp Normal file
View File

@ -0,0 +1,57 @@
/*
This file is part of cpp-ethereum.
cpp-ethereum 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.
cpp-ethereum 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 cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
*/
/** @file commonjs.cpp
* @author Marek Kotewicz <marek@ethdev.com>
* @date 2014
*/
#include <boost/test/unit_test.hpp>
#include <libdevcore/CommonJS.h>
BOOST_AUTO_TEST_SUITE(commonjs)
using namespace std;
using namespace dev;
using namespace dev::eth;
BOOST_AUTO_TEST_CASE(jsToPublic)
{
cnote << "Testing jsToPublic...";
KeyPair kp = KeyPair::create();
string string = toJS(kp.pub());
Public pub = dev::jsToPublic(string);
BOOST_CHECK_EQUAL(kp.pub(), pub);
}
BOOST_AUTO_TEST_CASE(jsToAddress)
{
cnote << "Testing jsToPublic...";
KeyPair kp = KeyPair::create();
string string = toJS(kp.address());
Address address = dev::jsToAddress(string);
BOOST_CHECK_EQUAL(kp.address(), address);
}
BOOST_AUTO_TEST_CASE(jsToSecret)
{
cnote << "Testing jsToPublic...";
KeyPair kp = KeyPair::create();
string string = toJS(kp.secret());
Secret secret = dev::jsToSecret(string);
BOOST_CHECK_EQUAL(kp.secret(), secret);
}
BOOST_AUTO_TEST_SUITE_END()