From 042a341741be24d8b90781e58100fb270ffb239d Mon Sep 17 00:00:00 2001 From: NorseGaud Date: Wed, 22 Aug 2018 18:49:20 -0400 Subject: [PATCH 01/13] -full to delete directories with configs on uninstall --- eosio_uninstall.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/eosio_uninstall.sh b/eosio_uninstall.sh index 64e91d38809..2b2e732fa7c 100755 --- a/eosio_uninstall.sh +++ b/eosio_uninstall.sh @@ -26,9 +26,15 @@ if [ -d "/usr/local/eosio" ]; then for binary in ${binaries[@]}; do rm ${binary} done + # Handle cleanup of directories created from installation + if [ "$1" == "--full" ]; then + if [ -d ~/Library/Application\ Support/eosio ]; then rm -rf ~/Library/Application\ Support/eosio; fi # Mac OS + if [ -d ~/.local/share/eosio ]; then rm -rf ~/.local/share/eosio; fi # Linux + if [ -d /usr/local/eosio ]; then rm -rf /usr/local/eosio; fi + fi popd &> /dev/null break;; - [Nn]* ) + [Nn]* ) printf "\tAborting uninstall\n\n" exit -1;; esac From 5353a8a730ca2ffef28fe059018336a099dd993c Mon Sep 17 00:00:00 2001 From: NorseGaud Date: Wed, 22 Aug 2018 19:01:36 -0400 Subject: [PATCH 02/13] Added sudo check for build and install --- eosio_build.sh | 5 +++++ eosio_install.sh | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/eosio_build.sh b/eosio_build.sh index 59c76b0b54e..da742bc1a1b 100755 --- a/eosio_build.sh +++ b/eosio_build.sh @@ -30,6 +30,11 @@ # https://github.com/EOSIO/eos/blob/master/LICENSE ########################################################################## +if [ "$(id -u)" -ne 0 ]; then + printf "\n\tThis requires sudo. Please run with sudo.\n\n" + exit -1 +fi + SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" function usage() diff --git a/eosio_install.sh b/eosio_install.sh index 0aabe8f385a..e442ce91373 100755 --- a/eosio_install.sh +++ b/eosio_install.sh @@ -29,7 +29,11 @@ # # https://github.com/EOSIO/eos/blob/master/LICENSE.txt ########################################################################## - + +if [ "$(id -u)" -ne 0 ]; then + printf "\n\tThis requires sudo. Please run with sudo.\n\n" + exit -1 +fi CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ "${CWD}" != "${PWD}" ]; then From 0af151aadf26ba99901e616cd108a91462bae43b Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 23 Aug 2018 21:13:13 -0400 Subject: [PATCH 03/13] Update eosio_build.sh --- eosio_build.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/eosio_build.sh b/eosio_build.sh index da742bc1a1b..59c76b0b54e 100755 --- a/eosio_build.sh +++ b/eosio_build.sh @@ -30,11 +30,6 @@ # https://github.com/EOSIO/eos/blob/master/LICENSE ########################################################################## -if [ "$(id -u)" -ne 0 ]; then - printf "\n\tThis requires sudo. Please run with sudo.\n\n" - exit -1 -fi - SOURCE_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" function usage() From 312a29538c5331b26c9dd73eaf8daad7eb702554 Mon Sep 17 00:00:00 2001 From: Nathan Pierce Date: Thu, 23 Aug 2018 22:56:23 -0400 Subject: [PATCH 04/13] Removed redundancy --- eosio_uninstall.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/eosio_uninstall.sh b/eosio_uninstall.sh index 2b2e732fa7c..b025cae8c12 100755 --- a/eosio_uninstall.sh +++ b/eosio_uninstall.sh @@ -30,7 +30,6 @@ if [ -d "/usr/local/eosio" ]; then if [ "$1" == "--full" ]; then if [ -d ~/Library/Application\ Support/eosio ]; then rm -rf ~/Library/Application\ Support/eosio; fi # Mac OS if [ -d ~/.local/share/eosio ]; then rm -rf ~/.local/share/eosio; fi # Linux - if [ -d /usr/local/eosio ]; then rm -rf /usr/local/eosio; fi fi popd &> /dev/null break;; From 3947e68106bea069df8c74631b7cc28eedebd165 Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Wed, 29 Aug 2018 15:23:57 -0500 Subject: [PATCH 05/13] Apply all pending incoming transactions, even if not producing. --- plugins/producer_plugin/producer_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/producer_plugin/producer_plugin.cpp b/plugins/producer_plugin/producer_plugin.cpp index 0200eb8f8ba..544d13a5d7a 100644 --- a/plugins/producer_plugin/producer_plugin.cpp +++ b/plugins/producer_plugin/producer_plugin.cpp @@ -1112,7 +1112,7 @@ producer_plugin_impl::start_block_result producer_plugin_impl::start_block(bool } else { // attempt to apply any pending incoming transactions _incoming_trx_weight = 0.0; - if (orig_pending_txn_size && _pending_incoming_transactions.size()) { + while (orig_pending_txn_size && _pending_incoming_transactions.size()) { auto e = _pending_incoming_transactions.front(); _pending_incoming_transactions.pop_front(); --orig_pending_txn_size; From 37ac4fd40b4c2161840953aa1340149b79992161 Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Wed, 29 Aug 2018 15:29:18 -0400 Subject: [PATCH 06/13] Trivial wallet directory locking for keosd Really Bad Things can happen if multiple keosd are using the same wallet directory simultaneously. Like, loss of keys. Make a trivial locking mechanism so that this is prevented. --- .../eosio/wallet_plugin/wallet_manager.hpp | 12 +++++++++-- plugins/wallet_plugin/wallet_manager.cpp | 21 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/plugins/wallet_plugin/include/eosio/wallet_plugin/wallet_manager.hpp b/plugins/wallet_plugin/include/eosio/wallet_plugin/wallet_manager.hpp index a09b8f9de10..efc10f1a7f9 100644 --- a/plugins/wallet_plugin/include/eosio/wallet_plugin/wallet_manager.hpp +++ b/plugins/wallet_plugin/include/eosio/wallet_plugin/wallet_manager.hpp @@ -6,6 +6,7 @@ #include #include #include +#include #include namespace fc { class variant; } @@ -24,11 +25,14 @@ class wallet_manager { wallet_manager(wallet_manager&&) = delete; wallet_manager& operator=(const wallet_manager&) = delete; wallet_manager& operator=(wallet_manager&&) = delete; - ~wallet_manager() = default; + ~wallet_manager(); /// Set the path for location of wallet files. /// @param p path to override default ./ location of wallet files. - void set_dir(const boost::filesystem::path& p) { dir = p; } + void set_dir(const boost::filesystem::path& p) { + dir = p; + initialize_lock(); + } /// Set the timeout for locking all wallets. /// If set then after t seconds of inactivity then lock_all(). @@ -135,6 +139,10 @@ class wallet_manager { std::chrono::seconds timeout = std::chrono::seconds::max(); ///< how long to wait before calling lock_all() mutable timepoint_t timeout_time = timepoint_t::max(); ///< when to call lock_all() boost::filesystem::path dir = "."; + boost::filesystem::path lock_path = dir / "wallet.lock"; + std::unique_ptr wallet_dir_lock; + + void initialize_lock(); }; } // namespace wallet diff --git a/plugins/wallet_plugin/wallet_manager.cpp b/plugins/wallet_plugin/wallet_manager.cpp index 5c6417f13f4..6a7f3008b55 100644 --- a/plugins/wallet_plugin/wallet_manager.cpp +++ b/plugins/wallet_plugin/wallet_manager.cpp @@ -33,6 +33,12 @@ wallet_manager::wallet_manager() { #endif } +wallet_manager::~wallet_manager() { + //not really required, but may spook users + if(wallet_dir_lock) + boost::filesystem::remove(lock_path); +} + void wallet_manager::set_timeout(const std::chrono::seconds& t) { timeout = t; auto now = std::chrono::system_clock::now(); @@ -269,5 +275,20 @@ void wallet_manager::own_and_use_wallet(const string& name, std::unique_ptr(lock_path.string().c_str()); + if(!wallet_dir_lock->try_lock()) { + wallet_dir_lock.reset(); + EOS_THROW(wallet_exception, "Failed to lock access to wallet directory; is another keosd running?"); + } +} + } // namespace wallet } // namespace eosio From 8ede212ca250597a0e9fe0fe175b55f40a0e7683 Mon Sep 17 00:00:00 2001 From: Kayan Date: Tue, 4 Sep 2018 14:40:37 +0800 Subject: [PATCH 07/13] 5523 fix abi serialization exception in get block --- .../include/eosio/chain/abi_serializer.hpp | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/libraries/chain/include/eosio/chain/abi_serializer.hpp b/libraries/chain/include/eosio/chain/abi_serializer.hpp index 1e5bca6b5b3..d53455f2a79 100644 --- a/libraries/chain/include/eosio/chain/abi_serializer.hpp +++ b/libraries/chain/include/eosio/chain/abi_serializer.hpp @@ -286,21 +286,25 @@ namespace impl { mvo("name", act.name); mvo("authorization", act.authorization); - auto abi = resolver(act.account); - if (abi.valid()) { - auto type = abi->get_action_type(act.name); - if (!type.empty()) { - try { - mvo( "data", abi->_binary_to_variant( type, act.data, recursion_depth, deadline, max_serialization_time )); - mvo("hex_data", act.data); - } catch(...) { - // any failure to serialize data, then leave as not serailzed + try { + auto abi = resolver(act.account); + if (abi.valid()) { + auto type = abi->get_action_type(act.name); + if (!type.empty()) { + try { + mvo( "data", abi->_binary_to_variant( type, act.data, recursion_depth, deadline, max_serialization_time )); + mvo("hex_data", act.data); + } catch(...) { + // any failure to serialize data, then leave as not serailzed + mvo("data", act.data); + } + } else { mvo("data", act.data); } } else { mvo("data", act.data); } - } else { + } catch(...) { mvo("data", act.data); } out(name, std::move(mvo)); From 9cf65f73d1f78edf517d4b3eca1629a79d3ee354 Mon Sep 17 00:00:00 2001 From: Kayan Date: Tue, 4 Sep 2018 17:21:01 +0800 Subject: [PATCH 08/13] 4904 add hint if launcher fails, more reliable port available check --- programs/eosio-launcher/main.cpp | 2 +- tests/Cluster.py | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/programs/eosio-launcher/main.cpp b/programs/eosio-launcher/main.cpp index 0fe9652d49b..756e7cef2af 100644 --- a/programs/eosio-launcher/main.cpp +++ b/programs/eosio-launcher/main.cpp @@ -596,7 +596,7 @@ launcher_def::initialize (const variables_map &vmap) { stage = bfs::path(erd); if (!bfs::exists(stage)) { - cerr << erd << " is not a valid path" << endl; + cerr << "\"" << erd << "\" is not a valid path. Please ensure environment variable EOSIO_HOME is set to the build path." << endl; exit (-1); } stage /= bfs::path("staging"); diff --git a/tests/Cluster.py b/tests/Cluster.py index 73be2edde19..3a33263358c 100644 --- a/tests/Cluster.py +++ b/tests/Cluster.py @@ -118,9 +118,13 @@ def launch(self, pnodes=1, totalNodes=1, prodCount=1, topo="mesh", p2pPlugin="ne assert(isinstance(totalProducers, (str,int))) producerFlag="--producers %s" % (totalProducers) - if not Cluster.arePortsAvailable(set(range(self.port, self.port+totalNodes+1))): - Utils.Print("ERROR: Another process is listening on nodeos default port.") - return False + tries = 30 + while not Cluster.arePortsAvailable(set(range(self.port, self.port+totalNodes+1))): + Utils.Print("ERROR: Another process is listening on nodeos default port. wait...") + if tries == 0: + return False + tries = tries - 1 + time.sleep(2) cmd="%s -p %s -n %s -s %s -d %s -i %s -f --p2p-plugin %s %s" % ( Utils.EosLauncherPath, pnodes, totalNodes, topo, delay, datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3], @@ -147,7 +151,7 @@ def launch(self, pnodes=1, totalNodes=1, prodCount=1, topo="mesh", p2pPlugin="ne s=" ".join(cmdArr) if Utils.Debug: Utils.Print("cmd: %s" % (s)) if 0 != subprocess.call(cmdArr): - Utils.Print("ERROR: Launcher failed to launch.") + Utils.Print("ERROR: Launcher failed to launch. failed cmd: %s" % (s)) return False self.nodes=list(range(totalNodes)) # placeholder for cleanup purposes only From 4c51fedafc20cadfc7c06326d053c17071a081fd Mon Sep 17 00:00:00 2001 From: Kayan Date: Wed, 5 Sep 2018 15:29:54 +0800 Subject: [PATCH 09/13] add unitest cases for chain_plugin get_block --- unittests/CMakeLists.txt | 3 +- unittests/chain_plugin_tests.cpp | 135 +++++++++++++++++++++++++++++++ 2 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 unittests/chain_plugin_tests.cpp diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 7442b00a69e..9eff48fa519 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -19,10 +19,11 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.hpp.in ${CMAKE_CURRENT file(GLOB UNIT_TESTS "*.cpp") add_executable( unit_test ${UNIT_TESTS} ${WASM_UNIT_TESTS} ) -target_link_libraries( unit_test eosio_chain chainbase eosio_testing eos_utilities abi_generator fc ${PLATFORM_SPECIFIC_LIBS} ) +target_link_libraries( unit_test eosio_chain chainbase chain_plugin eosio_testing eos_utilities abi_generator fc ${PLATFORM_SPECIFIC_LIBS} ) target_include_directories( unit_test PUBLIC ${CMAKE_SOURCE_DIR}/libraries/testing/include + ${CMAKE_SOURCE_DIR}/plugins/chain_plugin/include ${CMAKE_SOURCE_DIR}/contracts ${CMAKE_BINARY_DIR}/contracts ${CMAKE_CURRENT_SOURCE_DIR}/contracts diff --git a/unittests/chain_plugin_tests.cpp b/unittests/chain_plugin_tests.cpp new file mode 100644 index 00000000000..6abfc0a08a2 --- /dev/null +++ b/unittests/chain_plugin_tests.cpp @@ -0,0 +1,135 @@ +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include + +#include +#include + +#include + +#include + +#include +#include + +#include "test_wasts.hpp" +#include "test_softfloat_wasts.hpp" + +#include +#include + +#ifdef NON_VALIDATING_TEST +#define TESTER tester +#else +#define TESTER validating_tester +#endif + +using namespace eosio; +using namespace eosio::chain; +using namespace eosio::testing; +using namespace fc; + +BOOST_AUTO_TEST_SUITE(chain_plugin_tests) + +BOOST_FIXTURE_TEST_CASE( get_block_with_invalid_abi, TESTER ) try { + produce_blocks(2); + + create_accounts( {N(asserter)} ); + produce_block(); + + // setup contract and abi + set_code(N(asserter), asserter_wast); + set_abi(N(asserter), asserter_abi); + produce_blocks(1); + + auto resolver = [&,this]( const account_name& name ) -> optional { + try { + const auto& accnt = this->control->db().get( name ); + abi_def abi; + if (abi_serializer::to_abi(accnt.abi, abi)) { + return abi_serializer(abi, abi_serializer_max_time); + } + return optional(); + } FC_RETHROW_EXCEPTIONS(error, "resolver failed at chain_plugin_tests::abi_invalid_type"); + }; + + // abi should be resolved + BOOST_REQUIRE_EQUAL(true, resolver(N(asserter)).valid()); + + // make an action using the valid contract & abi + variant pretty_trx = mutable_variant_object() + ("actions", variants({ + mutable_variant_object() + ("account", "asserter") + ("name", "procassert") + ("authorization", variants({ + mutable_variant_object() + ("actor", "asserter") + ("permission", name(config::active_name).to_string()) + })) + ("data", mutable_variant_object() + ("condition", 1) + ("message", "Should Not Assert!") + ) + }) + ); + signed_transaction trx; + abi_serializer::from_variant(pretty_trx, trx, resolver, abi_serializer_max_time); + set_transaction_headers(trx); + trx.sign( get_private_key( N(asserter), "active" ), control->get_chain_id() ); + push_transaction( trx ); + produce_blocks(1); + + // retrieve block num + uint32_t headnum = this->control->head_block_num(); + + char headnumstr[20]; + sprintf(headnumstr, "%d", headnum); + chain_apis::read_only::get_block_params param{headnumstr}; + chain_apis::read_only plugin(*(this->control), fc::microseconds(INT_MAX)); + + // block should be decoded successfully + std::string block_str = json::to_pretty_string(plugin.get_block(param)); + BOOST_TEST(block_str.find("procassert") != std::string::npos); + BOOST_TEST(block_str.find("condition") != std::string::npos); + BOOST_TEST(block_str.find("Should Not Assert!") != std::string::npos); + BOOST_TEST(block_str.find("011253686f756c64204e6f742041737365727421") != std::string::npos); //action data + + // set an invalid abi (int8->xxxx) + std::string abi2 = asserter_abi; + auto pos = abi2.find("int8"); + BOOST_TEST(pos != std::string::npos); + abi2.replace(pos, 4, "xxxx"); + set_abi(N(asserter), abi2.c_str()); + produce_blocks(1); + + // resolving the invalid abi result in exception + BOOST_CHECK_THROW(resolver(N(asserter)), invalid_type_inside_abi); + + // get the same block as string, results in decode failed(invalid abi) but not exception + std::string block_str2 = json::to_pretty_string(plugin.get_block(param)); + BOOST_TEST(block_str2.find("procassert") != std::string::npos); + BOOST_TEST(block_str2.find("condition") == std::string::npos); // decode failed + BOOST_TEST(block_str2.find("Should Not Assert!") == std::string::npos); // decode failed + BOOST_TEST(block_str2.find("011253686f756c64204e6f742041737365727421") != std::string::npos); //action data + +} FC_LOG_AND_RETHROW() /// get_block_with_invalid_abi + +BOOST_AUTO_TEST_SUITE_END() + From 47804e4fee68daf231e03249a329ed2042c7d076 Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Wed, 5 Sep 2018 13:33:00 -0400 Subject: [PATCH 10/13] (chainbase sync) Fix chainbase's mlock() to work on subsequent launches The location of chainbase's mlock() is erroneously only encountered when the DB is constructed. Subsequent uses of a DB would not attempt a mlock(). Fix the location of this call. Also locking of the metadata was added. --- libraries/chainbase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/chainbase b/libraries/chainbase index 0a347683902..315ef1b8f97 160000 --- a/libraries/chainbase +++ b/libraries/chainbase @@ -1 +1 @@ -Subproject commit 0a347683902f3ebbf58a4dd6166d68d967e240ce +Subproject commit 315ef1b8f973667599fc599695a50cb14eafcf58 From be0c2bed0ceffb86c1d53c68426cf4cefb0c2f08 Mon Sep 17 00:00:00 2001 From: Matt Witherspoon <32485495+spoonincode@users.noreply.github.com> Date: Wed, 5 Sep 2018 15:01:30 -0400 Subject: [PATCH 11/13] fix ambiguous command line option for filter-on/out --- plugins/history_plugin/history_plugin.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/history_plugin/history_plugin.cpp b/plugins/history_plugin/history_plugin.cpp index ea0588aa9fc..f6505beaa92 100644 --- a/plugins/history_plugin/history_plugin.cpp +++ b/plugins/history_plugin/history_plugin.cpp @@ -303,7 +303,7 @@ namespace eosio { "Track actions which match receiver:action:actor. Actor may be blank to include all. Action and Actor both blank allows all from Recieiver. Receiver may not be blank.") ; cfg.add_options() - ("filter-out,f", bpo::value>()->composing(), + ("filter-out,F", bpo::value>()->composing(), "Do not track actions which match receiver:action:actor. Action and Actor both blank excludes all from Reciever. Actor blank excludes all from reciever:action. Receiver may not be blank.") ; } From b727733035bec2f57b6fe7a7fcc9bd80a5e61798 Mon Sep 17 00:00:00 2001 From: Kevin Heifner Date: Wed, 5 Sep 2018 14:04:17 -0500 Subject: [PATCH 12/13] Move chain_plugin_tests from unittests to tests --- tests/CMakeLists.txt | 8 +++++--- {unittests => tests}/chain_plugin_tests.cpp | 3 --- unittests/CMakeLists.txt | 3 +-- 3 files changed, 6 insertions(+), 8 deletions(-) rename {unittests => tests}/chain_plugin_tests.cpp (98%) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 86c6e97cb36..50b12cf1cb0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -13,12 +13,14 @@ set( CMAKE_CXX_STANDARD 14 ) include_directories("${CMAKE_SOURCE_DIR}/plugins/wallet_plugin/include") -file(GLOB UNIT_TESTS "wallet_tests.cpp") +file(GLOB UNIT_TESTS "*.cpp") -add_executable( plugin_test ${UNIT_TESTS} ${WASM_UNIT_TESTS} main.cpp) +add_executable( plugin_test ${UNIT_TESTS} ${WASM_UNIT_TESTS} ) target_link_libraries( plugin_test eosio_testing eosio_chain chainbase eos_utilities chain_plugin wallet_plugin abi_generator fc ${PLATFORM_SPECIFIC_LIBS} ) -target_include_directories( plugin_test PUBLIC ${CMAKE_SOURCE_DIR}/plugins/net_plugin/include ) +target_include_directories( plugin_test PUBLIC + ${CMAKE_SOURCE_DIR}/plugins/net_plugin/include + ${CMAKE_SOURCE_DIR}/plugins/chain_plugin/include ) add_dependencies(plugin_test asserter test_api test_api_mem test_api_db test_api_multi_index exchange proxy identity identity_test stltest infinite eosio.system eosio.token eosio.bios test.inline multi_index_test noop dice eosio.msig) # diff --git a/unittests/chain_plugin_tests.cpp b/tests/chain_plugin_tests.cpp similarity index 98% rename from unittests/chain_plugin_tests.cpp rename to tests/chain_plugin_tests.cpp index 6abfc0a08a2..2b7867a07e9 100644 --- a/unittests/chain_plugin_tests.cpp +++ b/tests/chain_plugin_tests.cpp @@ -28,9 +28,6 @@ #include #include -#include "test_wasts.hpp" -#include "test_softfloat_wasts.hpp" - #include #include diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt index 9eff48fa519..7442b00a69e 100644 --- a/unittests/CMakeLists.txt +++ b/unittests/CMakeLists.txt @@ -19,11 +19,10 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/include/config.hpp.in ${CMAKE_CURRENT file(GLOB UNIT_TESTS "*.cpp") add_executable( unit_test ${UNIT_TESTS} ${WASM_UNIT_TESTS} ) -target_link_libraries( unit_test eosio_chain chainbase chain_plugin eosio_testing eos_utilities abi_generator fc ${PLATFORM_SPECIFIC_LIBS} ) +target_link_libraries( unit_test eosio_chain chainbase eosio_testing eos_utilities abi_generator fc ${PLATFORM_SPECIFIC_LIBS} ) target_include_directories( unit_test PUBLIC ${CMAKE_SOURCE_DIR}/libraries/testing/include - ${CMAKE_SOURCE_DIR}/plugins/chain_plugin/include ${CMAKE_SOURCE_DIR}/contracts ${CMAKE_BINARY_DIR}/contracts ${CMAKE_CURRENT_SOURCE_DIR}/contracts From bafec7966c4d7f1df5f602ae6754e70e751747e4 Mon Sep 17 00:00:00 2001 From: Bart Wyatt Date: Wed, 5 Sep 2018 16:22:10 -0400 Subject: [PATCH 13/13] bump version to 1.2.4 --- CMakeLists.txt | 2 +- Docker/README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0f84b7a88bb..57d29bc0f4d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ set( CXX_STANDARD_REQUIRED ON) set(VERSION_MAJOR 1) set(VERSION_MINOR 2) -set(VERSION_PATCH 3) +set(VERSION_PATCH 4) set( CLI_CLIENT_EXECUTABLE_NAME cleos ) set( NODE_EXECUTABLE_NAME nodeos ) diff --git a/Docker/README.md b/Docker/README.md index cfeb4a9da4b..50f0ec09268 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -20,10 +20,10 @@ cd eos/Docker docker build . -t eosio/eos ``` -The above will build off the most recent commit to the master branch by default. If you would like to target a specific branch/tag, you may use a build argument. For example, if you wished to generate a docker image based off of the v1.2.3 tag, you could do the following: +The above will build off the most recent commit to the master branch by default. If you would like to target a specific branch/tag, you may use a build argument. For example, if you wished to generate a docker image based off of the v1.2.4 tag, you could do the following: ```bash -docker build -t eosio/eos:v1.2.3 --build-arg branch=v1.2.3 . +docker build -t eosio/eos:v1.2.4 --build-arg branch=v1.2.4 . ``` By default, the symbol in eosio.system is set to SYS. You can override this using the symbol argument while building the docker image.