text: // Copyright (c) 2012-2016, The CryptoNote developers, The Bytecoin developers
  //
  // This file is part of Bytecoin.
  //
  // Bytecoin is free software: you can redistribute it and/or modify
  // it under the terms of the GNU Lesser General Public License as published by
  // the Free Software Foundation, either version 3 of the License, or
  // (at your option) any later version.
  //
  // Bytecoin 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 Lesser General Public License for more details.
  //
  // You should have received a copy of the GNU Lesser General Public License
  // along with Bytecoin.  If not, see <http://www.gnu.org/licenses/>.
  
  #include "gtest/gtest.h"
  #include "Globals.h"
  
  #include <Logging/ConsoleLogger.h>
  
  Logging::ConsoleLogger logger;
  System::Dispatcher globalSystem;
  CryptoNote::Currency currency = CryptoNote::CurrencyBuilder(logger).testnet(true).currency();
  Tests::Common::BaseFunctionalTestsConfig config;
  
  
  namespace po = boost::program_options;
  
  int main(int argc, char** argv) {
    CLogger::Instance().init(CLogger::DEBUG);
  
    po::options_description desc;
    po::variables_map vm;
    
    config.init(desc);
    po::store(po::command_line_parser(argc, argv).options(desc).allow_unregistered().run(), vm);
    po::notify(vm);
    config.handleCommandLine(vm);
  
    try {
  
      ::testing::InitGoogleTest(&argc, argv);
      return RUN_ALL_TESTS();
  
    } catch (std::exception& ex) {
      LOG_ERROR("Fatal error: " + std::string(ex.what()));
      return 1;
    }
  }
  