[Dev] Release Candidate Feathercoin 0.9.3.2 - Check List
-
@aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.
I have checked:
base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
CKey privkey = secret.GetKey();secret.GetKey() now is secret.GetSecret()
base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…privkey now must be of type CPrivKey and not Ckey anymore
To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures
-
Re: Building Feathercoin 0.9.3.2
The amount of warnings is reduced considerably during the build. I am awaiting @Wellenreiter to push the fix for the open names warnings, he has moved the declarations into UtilitiesDialog.cpp.
These warnings aren’t fixed, are due to comparisons between signed and unsigned integers (during Loops), can cause bugs at bounds : requires the loops variables to be slightly re- witten …
multisigdialog.cpp: In member function ‘void MultiSigDialog::createRawTransaction()’:
multisigdialog.cpp:186:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( int i = 0; i < vOutpoints.size(); ++ i )
^
multisigdialog.cpp: In member function ‘void MultiSigDialog::updateAddressList()’:
multisigdialog.cpp:754:32: warning: unused variable ‘strName’ [-Wunused-variable]
const std::string& strName = item.second.name;
^
multisigdialog.cpp: In member function ‘void MultiSigDialog::updateAddressDetail()’:
multisigdialog.cpp:835:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( i = 0; i < addresses.size(); ++ i )
^
multisigdialog.cpp:839:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( i = 0; i < addresses.size(); ++ i )
^
multisigdialog.cpp: In member function ‘void MultiSigDialog::checkRawTransaction()’:
multisigdialog.cpp:905:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for ( int i = 0; i < containAddresses.size(); ++ i )createmultisigaddrdialog.cpp: In member function ‘void CreateMultiSigAddrDialog::create()’:
createmultisigaddrdialog.cpp:78:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int i = 0; i < total; i++)transactiondesc.cpp: In static member function ‘static QString TransactionDesc::toHTML(CWallet*, CWalletTx&, int, int)’:
transactiondesc.cpp:228:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0; k < wtx.vout.size(); ++k)Warning needs investigation
/home/tony/Feathercoin/src/qt/forms/shiftdialog.ui: Warning: The name ‘horizontalLayout_1_Wallet’ (QHBoxLayout) is already in use, defaulting to ‘horizontalLayout_1_Wallet1’.
I had to leave these warnings in as they are in contained sub Libraries
util/bloom.cc:50:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (size_t i = 0; i < n; i++) {db/memtable.cc:104:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
assert((p + val_size) - buf == encoded_len);util/logging.cc:67:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
(v == kMaxUint64/10 && delta > kMaxUint64%10)) {db/version_set.cc:58:13: warning: ‘std::__cxx11::string leveldb::{anonymous}::IntSetToString(const std::set<long unsigned int>&)’ defined but not used [-Wunused-function]
inlevel db -
@Wellenreiter said:
@aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.
I have checked:
base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
CKey privkey = secret.GetKey();secret.GetKey() now is secret.GetSecret()
base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…privkey now must be of type CPrivKey and not Ckey anymore
To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures
Ok so now line 155 on base58_tests.cpp I’ve changed it to read:
CPrivKey privkey = secret.GetSecret();
make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' CXX test_bitcoin-base58_tests.o base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_parse::test_method()’: base58_tests.cpp:155:49: error: no matching function for call to ‘CBitcoinSecret::GetSecret()’ CPrivKey privkey = secret.GetSecret(); ^ In file included from base58_tests.cpp:5:0: ../../src/base58.h:130:13: note: candidate: CSecret CBitcoinSecret::GetSecret(bool&) CSecret GetSecret(bool &fCompressedOut); ^
ideas ?
-
Thanxs @Aciddude
I note this Test failure is something to do with stealth addressesThey are a new feature : We need ask @Lizhi if he can help
I’m nearly ready to push the Test fixes you found so far, so he can just pull 0.9.3.2 and see where we got to…
Meanwhile try to bypass that test and see the rest pass…
-
In my previous post it wasnt getting past this test…
BOOST_AUTO_TEST_CASE(base58_keys_valid_parse)I’ve managed to move past this
Currently I’m getting this error;This is on the test
BOOST_AUTO_TEST_CASE(base58_keys_valid_gen) (next one in base58_tests) -
@aciddude said:
@Wellenreiter said:
@aciddude the class named of some classes have changed and the definitions in the test directory haven’t updated.
I have checked:
base58_tests.cpp:155:35: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’
CKey privkey = secret.GetKey();secret.GetKey() now is secret.GetSecret()
base58_tests.cpp:157:41: error: ‘class CKey’ has no member named ‘size’
BOOST_CHECK_MESSAGE(privkeBOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())BOOST_CHECK_MESSAGE(privkey.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())y.size() == exp_payload.size() && std::equal(privkey.begin(), privkey.end(), exp_payload.begin())…privkey now must be of type CPrivKey and not Ckey anymore
To solve the first problem above I’ve searched for ‘secret.’ in all files and compared the definitions and checked the names of the procedures
Ok so now line 155 on base58_tests.cpp I’ve changed it to read:
CPrivKey privkey = secret.GetSecret();
make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' CXX test_bitcoin-base58_tests.o base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_parse::test_method()’: base58_tests.cpp:155:49: error: no matching function for call to ‘CBitcoinSecret::GetSecret()’ CPrivKey privkey = secret.GetSecret(); ^ In file included from base58_tests.cpp:5:0: ../../src/base58.h:130:13: note: candidate: CSecret CBitcoinSecret::GetSecret(bool&) CSecret GetSecret(bool &fCompressedOut); ^
ideas ?
To get past this error
1 - edit base58_tests.cpp (line 156)
CPrivKey privkey = secret.GetPrivKey();
2 - Edit base58.h and add the below at line 134
//Added by AcidDude bool IsCompressed(); void SetPrivKey(const CPrivKey& vchPrivKey); CPrivKey GetPrivKey();
-
This post is deleted! -
I was working with @wrapper on trying to fix the build tests… can you guys check out my commits below ?
https://github.com/aciddude/Feathercoin/commits/0.9.3.2I also merged @Wellenreiters latest commits from the main Feathercoin github for 0.9.3.2. For me the Wallet Builds with --disable-tests
if I run it with tests, I get to the (3rd?) base58 test.
I need some help understanding why CKey was removed and replaced with CSecret and CPrivKey
-
currently getting these errors
Making all in test make[3]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' make all-am make[4]: Entering directory '/home/aciddude/FTC0932/Feathercoin/src/test' CXX test_bitcoin-base58_tests.o base58_tests.cpp: In member function ‘void base58_tests::base58_keys_valid_gen::test_method()’: base58_tests.cpp:213:79: error: no matching function for call to ‘CBitcoinSecret::SetSecret(std::vector<unsigned char>::iterator, std::vector<unsigned char>::iterator, bool&)’ key.SetSecret(exp_payload.begin(), exp_payload.end(), isCompressed); ^ In file included from base58_tests.cpp:5:0: ../../src/base58.h:131:10: note: candidate: void CBitcoinSecret::SetSecret(const CSecret&, bool) void SetSecret(const CSecret& vchSecret, bool fCompressed); ^ ../../src/base58.h:131:10: note: candidate expects 2 arguments, 3 provided base58_tests.cpp:216:34: error: no matching function for call to ‘CBitcoinSecret::SetPrivKey(CBitcoinSecret&)’ secret.SetPrivKey(key); ^ In file included from base58_tests.cpp:5:0: ../../src/base58.h:140:10: note: candidate: void CBitcoinSecret::SetPrivKey(const CPrivKey&) void SetPrivKey(const CPrivKey& vchPrivKey); ^ ../../src/base58.h:140:10: note: no known conversion for argument 1 from ‘CBitcoinSecret’ to ‘const CPrivKey& {aka const std::vector<unsigned char, secure_allocator<unsigned char> >&}’ In file included from /usr/include/boost/test/unit_test.hpp:19:0, from base58_tests.cpp:19:
I feel like am just missing an #Include…
also check out this
http://stackoverflow.com/questions/27951537/how-to-convert-unsigned-char-to-stdvectorunsigned-char -
@Lizhi @Wellenreiter @Bushstar
Re: Testing / Wallet Guide creation.
What is the current Minimum payment level and where /how is it set on release?
What is the current Dust fee level and where / how is it set on release?How the transition from Litecoin to Bitcoin base effected minimum payments as each has its own system and FTC had a modified version for 0.8.7.x and 0.6.x series?
-
Hi Guys,
I’ve managed to fix the base58 test. you can see all my commits, here:
https://github.com/aciddude/Feathercoin/commits/0.9.3.2I did a few of them on different days.
currently the following tests are passing:
CXX test_bitcoin-alert_tests.o CXX test_bitcoin-allocator_tests.o CXX test_bitcoin-base32_tests.o CXX test_bitcoin-base58_tests.o CXX test_bitcoin-base64_tests.o CXX test_bitcoin-bignum_tests.o
the next test that fails is
test_bitcoin-bloom_tests
it fails with these errors:
make[4]: Entering directory '/home/aciddude/FTCNEW/Feathercoin/src/test' CXX test_bitcoin-bloom_tests.o bloom_tests.cpp: In member function ‘void bloom_tests::bloom_create_insert_key::test_method()’: bloom_tests.cpp:84:26: error: ‘class CBitcoinSecret’ has no member named ‘GetKey’ CKey key = vchSecret.GetKey(); ^ In file included from ../../src/base58.h:18:0, from bloom_tests.cpp:7: ../../src/key.h:76:20: error: ‘unsigned char* CPubKey::begin()’ is private unsigned char *begin() { ^ bloom_tests.cpp:86:50: error: within this context vector<unsigned char> vchPubKey(pubkey.begin(), pubkey.end()); ^ bloom_tests.cpp:86:65: error: no matching function for call to ‘std::vector<unsigned char>::vector(unsigned char*, const unsigned char*)’ vector<unsigned char> vchPubKey(pubkey.begin(), pubkey.end());
most of this seems to involve the CKey class in key.h as well as stuff in base58.h
it’s also claiming the CPubKey begin (method?) is private …but from what I can see in key.h it’s public…I could also be blind.
anyone who wants to replicate or help can just make the changes I did (you can see my commits in the above link)
or clone and build this
https://github.com/aciddude/Feathercoin/tree/0.9.3.2I’ve included all the recent fixes @Wellenreiter , @lizhi and @wrapper have done.
it seems the main reason for the tests failing is they need to be updated when there is any code changes, to reflect the names of new variables as well as the way things like keys are now created.
The remaining warnings are due to type mismatch during “for loops” -
update:
I’ve fixed the bloom test! below are the tests which are passing.
CXX test_bitcoin-alert_tests.o CXX test_bitcoin-allocator_tests.o CXX test_bitcoin-base32_tests.o CXX test_bitcoin-base58_tests.o CXX test_bitcoin-base64_tests.o CXX test_bitcoin-bignum_tests.o CXX test_bitcoin-bloom_tests.o CXX test_bitcoin-canonical_tests.o CXX test_bitcoin-checkblock_tests.o CXX test_bitcoin-Checkpoints_tests.o CXX test_bitcoin-compress_tests.o CXX test_bitcoin-DoS_tests.o CXX test_bitcoin-getarg_tests.o
It seems to be more of the same, where i’m just updating how things are done and the names of variables.
the next test that’s failing is
key_tests.cpp
-
Here’s my github commit. so you can see what I did.
https://github.com/aciddude/Feathercoin/commit/c19b6d4f7740b0b71c076e9745fea59c48709da8
-
Hi Guys,
the key_tests are now working. I’ll post the fix this evening.
it passes a few more tests and the next test that’s broken is the multisig_test
-
I think all test cpp file are bitcoin not feathercoin. When I compile with disable-tests, I don’t think we can use it .
-
I think the auto test system is relevent, or should be. Other coins such as Dogecoin have fixed their tests.
Do we need to update the test data to make them Feathercoin specific?
-
@lizhi said in [Dev] Release Candidate Feathercoin 0.9.3.2 - Check List:
I think all test cpp file are bitcoin not feathercoin. When I compile with disable-tests, I don’t think we can use it .
Yeah I believe so to.
With some of the tests, it has hard coded strings that I believe relate to Bitcoin, like some hard coded private keys for testing etc. I’m sure those need to be changed to relate to Feathercoin.
-
Then we should adapt the tests to feathercoin.
We could avoid problems like the sync problem we had with 0.9.3.2, if we have suficient tests coded.
Tests that we need to have:- switch to block version 2
- select the first 5 or 10 blocks with block version 2 and see if the code accepts the blocks
- switch from 2.5 minute time to block to 1 Minute time to block
- select the last 5 blocks bfore the fork and after the fork and check, if the code accepts the blocks
- switch to neoscrypt
- select the last 5 blocks bfore the fork and after the fork and check, if the code accepts the blocks
Probably there are more, but these are important ones and can be done without interaction with other clients.
in additon we should replace the bitcoin specific tests with the Feathercoin equivalents.
- switch to block version 2
-
A friend of mine who does graphic art is helping do a subtle and “tested with different Desktop Themes” update to the wallet.
The graduated background image was not tilling well, so we will be testing some alternatives. Here is the first test of white with a blue logo, matching the forum.
I’ve set him up a development environment and we have now found all the places / images need to be adjusted to try make some improvements …
We also have also produced a Green alternate that matches the Chinese FTC forum that colour scheme that @Lizhi runs, that he could include in his window builds.
At the moment the priority is to replace the background screen with a more subtle look.
We have been discussing ideas such as to use the shadow from the FTC graphics library, and have the Logo as “Water mark”.
I’ve made a Github, for swapping test images :
https://github.com/wrapperband/FTC-Wallet-Layout-ExamplesFeathercoin wallet overveiw with White background image & Forum Blue Logo
There is a resource directory with the current graphics files from Feathercoin/src/qt/res/images including any new or possible options.
-
Love that new look. It looks cleaner.
How about have a few colours and have the user pick their fav. The default one should be blue and matching the forum…that matching idea was a great idea.
If you can use the forum icons in the wallet as well or get an icon set together and use them for both ?
Exciting time ahead !!!