Exemplo n.º 1
0
void free (void *p)
{
	if (!real_malloc){
		/* for glibc, normally real_malloc should be already initialized */
		lmdbg_startup ();
	}

	if (log_enabled){
		disable_logging ();

		++alloc_count;

		(*real_free) (p);
		if (p)
			fprintf (log_fd, "free ( %p ) num: %u\n", p, alloc_count);
		else
			fprintf (log_fd, "free ( NULL ) num: %u\n", alloc_count);

		log_stacktrace ();

		enable_logging ();
	}else{
		(*real_free) (p);
	}
}
Exemplo n.º 2
0
/* On glibc-based systems lmdbg doesn't work with calloc */
void * calloc (size_t number, size_t size)
{
	void *p;

	if (!real_malloc){
		/* for glibc, normally real_malloc should be already initialized */
		lmdbg_startup ();
	}

	if (log_enabled){
		disable_logging ();

		++alloc_count;

		p = (*real_calloc) (number, size);
		if (p)
			fprintf (log_fd, "calloc ( %u , %u ) --> %p num: %u\n",
					 (unsigned) number, (unsigned) size, p, alloc_count);
		else
			fprintf (log_fd, "calloc ( %u , %u ) --> NULL num: %u\n",
					 (unsigned) number, (unsigned) size, alloc_count);

		log_stacktrace ();

		enable_logging ();
		return p;
	}else{
		return (*real_calloc) (number, size);
	}
}
Exemplo n.º 3
0
void * memalign (size_t align, size_t size)
{
	void *p;

	if (!real_malloc){
		/* for glibc, normally real_malloc should be already initialized */
		lmdbg_startup ();
	}

	if (log_enabled){
		disable_logging ();

		++alloc_count;

		p = (*real_memalign) (align, size);
		fprintf (log_fd, "memalign ( %u , %u ) --> %p num: %u\n",
				 (unsigned) align, (unsigned) size, p, alloc_count);
		log_stacktrace ();

		enable_logging ();
		return p;
	}else{
		return (*real_memalign) (align, size);
	}
}
Exemplo n.º 4
0
int posix_memalign (void **memptr, size_t align, size_t size)
{
	int ret;

	if (!real_malloc){
		/* for glibc, normally real_malloc should be already initialized */
		lmdbg_startup ();
	}

	if (log_enabled){
		disable_logging ();

		++alloc_count;

		ret = (*real_posix_memalign) (memptr, align, size);
		if (!ret)
			fprintf (log_fd, "posix_memalign ( %u , %u ) --> %p num: %u\n",
					 (unsigned) align, (unsigned) size, *memptr,
					 alloc_count);
		else
			fprintf (log_fd, "posix_memalign ( %u , %u ) --> NULL num: %u\n",
					 (unsigned) align, (unsigned) size,
					 alloc_count);

		log_stacktrace ();

		enable_logging ();
		return ret;
	}else{
		return (*real_posix_memalign) (memptr, align, size);
	}
}
Exemplo n.º 5
0
Arquivo: setup.c Projeto: akat1/impala
static int
toggle_Logging(MENU_ARGS)
{
  if (log_fp == 0)
    enable_logging();
  else
    log_disabled = !log_disabled;
  return MENU_NOHOLD;
}
Exemplo n.º 6
0
static void parse_options( int argc, char **argv, Options_t *opts )
{
    int c;
    opterr = 0;

    memset( opts, 0, sizeof(*opts) );
    opts->recv_count = -1;
    opts->timeout = -1;
    addresses_init( &opts->subscriptions);

    while ((c = getopt(argc, argv,
                       "a:c:b:w:t:e:RW:F:VN:X:T:C:K:P:")) != -1) {
        switch (c) {
        case 'a':
          {
            // TODO: multiple addresses?
            char *comma = strchr(optarg, ',');
            check(comma == 0, "multiple addresses not implemented");
            check(opts->subscriptions.count == 0, "multiple addresses not implemented");
            addresses_merge( &opts->subscriptions, optarg );
          }
          break;
        case 'c':
            if (sscanf( optarg, "%" SCNu64, &opts->msg_count ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 't':
            if (sscanf( optarg, "%d", &opts->timeout ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            if (opts->timeout > 0) opts->timeout *= 1000;
            break;
        case 'R': opts->reply = 1; break;
        case 'V': enable_logging(); break;
        case 'X': opts->ready_text = optarg; break;
        default:
            usage(1);
        }
    }

    if (opts->subscriptions.count == 0) addresses_add( &opts->subscriptions,
                                                       "amqp://~0.0.0.0" );
}
Exemplo n.º 7
0
static void parse_options( int argc, char **argv, Options_t *opts )
{
    int c;
    opterr = 0;

    memset( opts, 0, sizeof(*opts) );
    opts->timeout = 5;
    opts->retry = 3;

    while ((c = getopt(argc, argv, "a:s:g:t:r:l:R:VX")) != -1) {
        switch (c) {
        case 'a': opts->address = optarg; break;
        case 's': opts->new_fortune = optarg; break;
        case 'g': opts->gateway_addr = optarg; break;
        case 't':
            if (sscanf( optarg, "%d", &opts->timeout ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'r': opts->reply_to = optarg; break;
        case 'l':
            if (sscanf( optarg, "%u", &opts->ttl ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'R':
            if (sscanf( optarg, "%u", &opts->retry ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'V': enable_logging(); break;
        case 'X': opts->send_bad_msg = 1; break;

        default:
            usage(1);
        }
    }

    if (!opts->address) opts->address = "amqp://0.0.0.0";
    if (opts->timeout > 0) opts->timeout *= 1000;
}
Exemplo n.º 8
0
int main(int argc, char **argv)
#endif
{
    if(SIG_ERR == signal(SIGSEGV, handle_signal))
    {
        perror(argv[0]);
        exit(EXIT_FAILURE);
    }
    if(SIG_ERR == signal(SIGABRT, handle_signal))
    {
        perror(argv[0]);
        exit(EXIT_FAILURE);
    }
    enable_logging();
    set_log_level_from_env();

    SRunner *runner = srunner_create(master_suite());
    srunner_add_suite(runner, loader_suite());
    srunner_add_suite(runner, jsonpath_suite());
    srunner_add_suite(runner, model_suite());
    srunner_add_suite(runner, nodelist_suite());
    srunner_add_suite(runner, evaluator_suite());

    switch(argc)
    {
        case 1:
            srunner_run_all(runner, CK_NORMAL);
            break;
#ifndef CHECK_0_9_8
        case 2:
            srunner_run(runner, argv[1], NULL, CK_NORMAL);
            break;
        case 3:
            srunner_run(runner, argv[1], argv[2], CK_NORMAL);
            break;
#endif
    }

    int failures = srunner_ntests_failed(runner);
    srunner_free(runner);

    return 0 == failures ? EXIT_SUCCESS : EXIT_FAILURE;
}
Exemplo n.º 9
0
static void lmdbg_startup (void)
{
	if (real_malloc){
		/* already initialized */
		return;
	}

	init_fun_ptrs ();
	init_log ();
	init_pid ();
	init_st_range ();
	print_sections_map ();
	print_progname ();
	init_environment ();
	init_enabling_timeout ();

	if (log_filename != NULL && enabling_timeout == 0)
		enable_logging ();
	else if (enabling_timeout == -1)
		set_sigusr1_handler ();
}
Exemplo n.º 10
0
void * realloc (void *p, size_t s)
{
	void *np;
	char np_buf [100];
	const char *np_ptr = "NULL";

	if (!real_malloc){
		/* for glibc, normally real_malloc should be already initialized */
		lmdbg_startup ();
	}

	if (log_enabled){
		disable_logging ();

		++alloc_count;

		np = (*real_realloc) (p, s);
		if (np){
			snprintf (np_buf, sizeof (np_buf), "%p", np);
			np_ptr = np_buf;
		}

		if (p){
			fprintf (log_fd, "realloc ( %p , %u ) --> %s num: %u\n",
					 p, (unsigned) s, np_ptr, alloc_count);
		}else{
			fprintf (log_fd, "realloc ( NULL , %u ) --> %s num: %u\n",
					 (unsigned) s, np_ptr, alloc_count);
		}

		log_stacktrace ();

		enable_logging ();
		return np;
	}else{
		return (*real_realloc) (p, s);
	}
}
Exemplo n.º 11
0
BOOST_FIXTURE_TEST_CASE( basic_commands, chain_fixture )
{ try {
//   disable_logging();
   enable_logging();
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_list_my_accounts" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "unlock 999999999 masterpassword" );
   exec( clienta, "scan 0 100" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "close" );
   exec( clienta, "open walleta" );
   exec( clienta, "unlock 99999999 masterpassword" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "wallet_account_balance delegate31" );
   exec( clienta, "wallet_delegate_set_block_production delegate31 true" );
   exec( clienta, "wallet_delegate_set_block_production delegate33 true" );
   exec(clienta, "wallet_set_transaction_scanning true");
   exec( clienta, "wallet_account_set_approval delegate33 true" );
   exec( clienta, "wallet_account_set_approval delegate34 true" );
   exec( clienta, "wallet_account_set_approval delegate35 true" );
   exec( clienta, "wallet_account_set_approval delegate36 true" );
   exec( clienta, "wallet_account_set_approval delegate37 true" );
   exec( clienta, "wallet_account_set_approval delegate38 true" );
   exec( clienta, "wallet_account_set_approval delegate39 true" );

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "info" );
   exec( clientb, "wallet_set_transaction_scanning true");
   exec( clientb, "wallet_account_set_approval delegate23 true" );
   exec( clientb, "wallet_account_set_approval delegate24 true" );
   exec( clientb, "wallet_account_set_approval delegate25 true" );
   exec( clientb, "wallet_account_set_approval delegate26 true" );
   exec( clientb, "wallet_account_set_approval delegate27 true" );
   exec( clientb, "wallet_account_set_approval delegate28 true" );
   exec( clientb, "wallet_account_set_approval delegate29 true" );
   exec( clientb, "wallet_delegate_set_block_production delegate23 true" );
   exec( clientb, "wallet_delegate_set_block_production delegate24 true" );

   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "wallet_account_balance" );
   exec( clientb, "wallet_account_balance delegate30" );
   exec( clientb, "unlock 999999999 masterpassword" );
   exec( clientb, "wallet_delegate_set_block_production delegate30 true" );
   exec( clientb, "wallet_delegate_set_block_production delegate32 true" );
   exec(clientb, "wallet_set_transaction_scanning true");
   exec(clienta, "wallet_set_transaction_scanning true");

   exec( clienta, "wallet_account_create b-account" );
   exec( clienta, "wallet_account_register b-account delegate33" );
   produce_block(clienta);
   produce_block(clientb);
   exec( clientb, "balance delegate30");
   //wallet_asset_create <symbol> <asset_name> <issuer_name> <description> <maximum_share_supply> <precision> [public_data] [is_market_issued]
   exec( clientb, "wallet_asset_create USD BitUSD delegate30 \"paper bucks\" 100000000 10000 null true" );
   exec( clientb, "help" );
   produce_block(clientb);

   exec(clientb, "wallet_publish_price_feed delegate0 1 USD" ); //[[\"USD\",1]]" );
   exec(clientb, "wallet_publish_price_feed delegate2 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate4 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate6 1 USD" );
   return;
   exec(clientb, "wallet_publish_price_feed delegate8 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate10 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate12 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate14 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate16 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate18 1 USD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate20 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate22 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate24 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate26 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate28 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate30 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate32 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate34 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate36 1 USD" );
   produce_block(clientb);
   exec(clientb, "wallet_publish_price_feed delegate38 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate40 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate42 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate44 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate46 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate48 1 USD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate50 1 USD" );
   exec(clientb, "wallet_publish_price_feed delegate52 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate1 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate3 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate5 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate7 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate9 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate11 1 USD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate13 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate15 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate17 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate19 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate21 1 USD" );
   produce_block(clienta);
   exec(clienta, "wallet_publish_price_feed delegate23 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate25 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate27 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate29 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate31 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate33 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate35 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate37 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate39 1 USD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate41 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate43 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate45 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate47 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate49 1 USD" );
   exec(clienta, "wallet_publish_price_feed delegate51 1 USD" );

   produce_block(clienta);

//   wallet_transfer_from_with_escrow <amount_to_transfer> <asset_symbol> <paying_account_name> <from_account_name> <to_account_name> <escrow_account_name> <agreement> <memo>
   exec( clientb, "wallet_transfer_from_with_escrow 1000 XTS delegate24 delegate24 b-account delegate36 \"5100000000000000000000000000000000000000000000000000000000000005\" \"my memo\"" );
   produce_block(clientb);
   produce_block(clienta);
   exec( clientb, "wallet_escrow_summary delegate24" );
   exec( clienta, "wallet_escrow_summary b-account" );
   exec( clienta, "wallet_escrow_summary delegate36" );
   exec( clienta, "wallet_escrow_summary delegate29" );
   exec( clienta, "history" );
   exec( clientb, "history" );
   exec( clientb, "balance delegate24" );
   exec( clienta, "balance b-account" );
   exec( clientb, "wallet_release_escrow delegate24 XTS6AwRFEQ5nu8d2B14qVujPAJDN73bTKgGb sender 0 1111111" );
   //exec( clientb, "wallet_release_escrow delegate24 XTS3UQU85qXeCa7hAP4ps118jSN3cAMSj2bx sender 0 1111111" );
   produce_block(clientb);
   exec( clientb, "wallet_escrow_summary delegate24" );
   exec( clienta, "wallet_escrow_summary b-account" );
   exec( clientb, "balance delegate24" );
   exec( clienta, "balance b-account" );
   produce_block(clientb);
   exec( clienta, "wallet_release_escrow b-account XTS6AwRFEQ5nu8d2B14qVujPAJDN73bTKgGb receiver 3333333 0" );
   produce_block(clienta);
   exec( clientb, "wallet_escrow_summary delegate24" );
   exec( clienta, "wallet_escrow_summary b-account" );
   exec( clientb, "balance delegate24" );
   // wallet_market_submit_relative_bid <from_account_name> <quantity> <quantity_symbol> <relative_price> <base_symbol> [limit_price]
   exec( clienta, "balance b-account" );
   exec( clienta, "blockchain_list_assets" );

   produce_block(clienta);
   exec(clienta, "balance" );
   exec(clientb, "balance" );
   exec( clienta, "wallet_release_escrow delegate36 XTS6AwRFEQ5nu8d2B14qVujPAJDN73bTKgGb receiver 1234 4567" );
   produce_block(clienta);
   exec( clientb, "wallet_escrow_summary delegate24" );
   exec( clienta, "wallet_escrow_summary b-account" );
   return;

   exec( clienta, "wallet_market_submit_relative_ask b-account 1 XTS .0001 USD .02" );
   exec( clienta, "wallet_market_submit_relative_ask b-account 4 XTS .0005 USD 1.3" );
   produce_block(clientb);
   produce_block(clientb);
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clienta, "blockchain_market_list_asks USD XTS" );

   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clienta, "blockchain_market_list_asks USD XTS" );
   exec( clienta, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "short delegate30 200 XTS 2 USD 1.01" );
   exec( clientb, "short delegate30 300 XTS 1.5 USD .99" );
   exec( clientb, "short delegate32 100 XTS 0.45 USD " );
   exec( clienta, "ask delegate31 100 XTS .1997 USD" );
   exec( clienta, "ask delegate31 200 XTS .9998 USD" );
   exec( clienta, "ask delegate31 300 XTS .9999 USD" );
   produce_block(clientb);
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "blockchain_market_list_shorts USD");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "blockchain_market_list_shorts USD");
   exec(clienta, "balance delegate31" );
   exec(clientb, "balance delegate30" );
   exec(clientb, "balance delegate32" );
   exec( clienta, "wallet_market_submit_relative_bid delegate31 1 XTS .0002 USD 2" );
   exec( clienta, "wallet_market_submit_relative_bid delegate31 3 XTS .0006 USD .7" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clientb, "blockchain_market_list_bids USD XTS" );
   return;
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "blockchain_market_list_shorts USD");
   exec(clienta, "blockchain_market_list_covers USD");
   exec( clienta, "ask delegate31 10 XTS .98 USD" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "balance" );
   exec( clienta, "bid delegate31 40 XTS .67 USD" );
   exec( clienta, "bid delegate31 50 XTS .68 USD" );
   exec( clienta, "bid delegate31 37 XTS .741 USD" );
   produce_block(clientb);
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "blockchain_market_order_history USD XTS");

   exec(clientb, "wallet_publish_price_feed delegate0 .74 USD" ); //[[\"USD\",1]]" );
   exec(clientb, "wallet_publish_price_feed delegate2 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate4 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate6 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate8 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate10 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate12 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate14 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate16 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate18 .74 USD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate20 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate22 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate24 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate26 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate28 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate30 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate32 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate34 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate36 .74 USD" );
   produce_block(clientb);
   exec(clientb, "wallet_publish_price_feed delegate38 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate40 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate42 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate44 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate46 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate48 .74 USD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate50 .74 USD" );
   exec(clientb, "wallet_publish_price_feed delegate52 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate1 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate3 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate5 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate7 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate9 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate11 .74 USD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate13 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate15 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate17 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate19 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate21 .74 USD" );
   produce_block(clienta);
   exec(clienta, "wallet_publish_price_feed delegate23 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate25 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate27 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate29 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate31 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate33 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate35 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate37 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate39 .74 USD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate41 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate43 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate45 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate47 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate49 .74 USD" );
   exec(clienta, "wallet_publish_price_feed delegate51 .74 USD" );
   produce_block(clientb);


   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_history USD XTS");
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "blockchain_get_asset USD XTS");
   exec(clienta, "blockchain_calculate_debt USD");
   exec(clienta, "blockchain_calculate_supply USD");
   exec(clienta, "balance" );
   exec(clientb, "balance" );
   exit(1);
   return;
   elog( "=====================================================================\n" );
   elog( "=====================================================================\n" );
   elog( "=====================================================================\n" );
   elog( "=====================================================================\n" );
   elog( "=====================================================================\n" );
   exec(clientb, "blockchain_market_order_book USD XTS");

   exec( clienta, "short delegate35 4000 USD 30" );
   exec( clienta, "short delegate37 5000 USD 40" );
   exec( clienta, "short delegate39 4000 USD 50" );

   exec( clientb, "ask delegate38 5000 XTS .739 USD" );
   exec( clientb, "ask delegate40 5000 XTS .74 USD" );
   exec( clientb, "ask delegate42 5000 XTS .741 USD" );

   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "balance");
   exec(clientb, "balance");
   exec(clienta, "blockchain_get_asset USD");
   exec(clienta, "blockchain_market_order_book USD XTS");




   return;
   //Next line is intended to fail due to overly-high price
   exec( clientb, "short delegate32 300 1000 USD" );
   exec( clienta, "ask delegate31 100 XTS .95 USD" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec( clienta, "ask delegate31 1000000 XTS .96 USD" );
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec( clienta, "ask delegate31 1000000 XTS 1.3 USD" );
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec( clienta, "ask delegate31 1000000 XTS 1.3 USD" );

   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");

   exec(clientb, "wallet_market_order_list USD XTS");
   exec(clientb, "wallet_account_transaction_history delegate30");
   exec(clientb, "wallet_account_transaction_history");

   exec(clienta, "wallet_market_order_list USD XTS");
   exec(clienta, "wallet_account_transaction_history delegate31");
   exec(clienta, "wallet_account_transaction_history");
   exec(clienta, "balance");
   exec(clientb, "balance");
   exec( clientb, "short delegate32 300 .69 USD" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "wallet_account_transaction_history");
   exec(clientb, "wallet_account_transaction_history");
   exec(clientb, "wallet_market_order_list USD XTS"); // TODO: this should filter by account
   exec(clientb, "wallet_market_cancel_order XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7");
   produce_block(clientb);
   exec(clientb, "wallet_account_transaction_history delegate32");
   exec(clienta, "balance" );
   exec(clientb, "balance");
   exec(clientb, "wallet_account_transaction_history");
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "wallet_transfer 95 USD delegate31 delegate32");
   produce_block(clienta);
   produce_block(clienta);
   exec(clienta, "wallet_account_transaction_history");
   exec(clientb, "wallet_account_transaction_history");
   exec(clientb, "balance" );
   exec(clientb, "wallet_market_cover delegate32 5 USD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" );
   produce_block(clientb);
   produce_block(clientb);
   exec(clientb, "balance" );
   exec(clientb, "wallet_market_cover delegate32 90 USD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" );
   exec( clienta, "ask delegate31 100 XTS .001 USD" );
   produce_block(clientb);
   exec(clientb, "wallet_account_transaction_history delegate32");
   produce_block(clientb);
   exec(clienta, "wallet_account_transaction_history");
   exec(clientb, "wallet_account_transaction_history delegate32");
   exec(clientb, "wallet_market_order_list USD XTS"); // TODO: this should filter by account
   exec(clientb, "balance" );
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clientb, "wallet_market_cancel_order XTS7zGp53nKGbxm6ASmfJrkDyYXmQ9qH6WtE");
   produce_block(clientb);
   exec(clientb, "balance" );
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clientb, "wallet_market_order_list USD XTS");
   exec(clientb, "wallet_account_transaction_history delegate32");

   return;
   exec(clienta, "wallet_account_transaction_history delegate31");
   exec(clienta, "balance" );

   exec( clientb, "wallet_account_create b-account" );
   exec( clientb, "wallet_account_balance b-account" );

   exec( clientb, "wallet_account_register b-account delegate30 null 100" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 75" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_list_my_accounts" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_transfer 33 XTS delegate31 b-account first-memo" );
   exec( clienta, "wallet_account_transaction_history delegate31" );
   exec( clienta, "wallet_account_transaction_history b-account" );
   exec( clienta, "wallet_account_transaction_history" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   produce_block( clientb );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_account_transaction_history delegate31" );
   exec( clienta, "wallet_account_transaction_history b-account" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_create c-account" );
   exec( clientb, "wallet_transfer 10 XTS b-account c-account to-me" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "blockchain_list_delegates" );
   exec( clientb, "wallet_account_set_approval b-account true" );
   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_transfer 100000 XTS delegate32 c-account to-me" );
   exec( clientb, "wallet_transfer 100000 XTS delegate30 c-account to-me" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_account_set_approval b-account true" );
   // TODO: this should throw an exception from the wallet regarding delegate_vote_limit, but it produces
   // the transaction anyway.
   // TODO: before fixing the wallet production side to include multiple outputs and spread the vote,
   // the transaction history needs to show the transaction as an 'error' rather than 'pending' and
   // properly display the reason for the user.
   // TODO: provide a way to cancel transactions that are pending.
   exec( clienta, "wallet_transfer 100000 XTS delegate31 b-account to-b" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   produce_block( clientb );
   exec( clientb, "balance" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "blockchain_list_delegates" );
   exec( clientb, "wallet_asset_create USD Dollar b-account \"paper bucks\" null 1000000000 1000" );
   exec( clientb, "wallet_asset_create GLD Gold b-account \"gram o gold\" null 1000000000 1000" );
   produce_block( clientb );
   exec( clientb, "blockchain_list_assets" );
   exec( clientb, "wallet_asset_issue 20000 USD c-account \"iou\"" );
   exec( clientb, "wallet_asset_issue 1000 GLD c-account \"gld\"" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" );
   exec( clientb, "wallet_transfer 20 GLD c-account delegate31 c-d31" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_account_transaction_history delegate31" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "balance" );
   exec( clientb, "bid c-account 120 XTS 5.50 USD" );
   exec( clientb, "bid c-account 20 XTS 6.56 USD" );
   produce_block( clientb );
   exec( clientb, "bid c-account 10 XTS 7.76 USD" );
   produce_block( clientb );
   exec( clientb, "bid c-account 40 XTS 2.50 USD" );
   produce_block( clientb );
   exec( clientb, "bid c-account 120 XTS 4.50 GLD" );
   exec( clientb, "bid c-account 40 XTS 2.50 GLD" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "balance" );
   exec( clientb, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   auto result = clientb->wallet_market_order_list( "USD", "XTS" );
   exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   produce_block( clientb );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "balance" );

   result = clientb->wallet_market_order_list( "USD", "XTS" );
   exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) );
   produce_block( clientb );
   exec( clientb, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_change_passphrase \"newmasterpassword\"" );
   exec( clientb, "close" );
   exec( clientb, "open walletb" );
   exec( clientb, "unlock 99999999 newmasterpassword" );
   exec( clientb, "blockchain_get_transaction d387d39ca1" );

   exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" );
   exec( clientb, "blockchain_list_pending_transactions" );
   enable_logging();
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   disable_logging();
   for( uint32_t i = 0; i < 100; ++i )
   {
//      exec( clientb, "wallet_transfer 10 XTS delegate32 delegate32 " );
      produce_block( clientb );
   }
   exec( clientb, "blockchain_get_account delegate32" );
   exec( clientb, "wallet_delegate_withdraw_pay delegate32 c-account .01234" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history delegate32" );
   exec( clientb, "blockchain_list_delegates" );


   exec( clienta, "wallet_account_set_approval delegate33 false" );
   exec( clienta, "wallet_account_set_approval delegate34 false" );
   exec( clienta, "wallet_account_set_approval delegate35 false" );
   exec( clienta, "wallet_account_set_approval delegate36 false" );
   exec( clienta, "wallet_account_set_approval delegate37 false" );
   exec( clienta, "wallet_account_set_approval delegate38 false" );
   exec( clienta, "wallet_account_set_approval delegate39 false" );


   exec( clientb, "wallet_account_set_approval delegate23 false" );
   exec( clientb, "wallet_account_set_approval delegate24 false" );
   exec( clientb, "wallet_account_set_approval delegate25 false" );
   exec( clientb, "wallet_account_set_approval delegate26 false" );
   exec( clientb, "wallet_account_set_approval delegate27 false" );
   exec( clientb, "wallet_account_set_approval delegate28 false" );
   exec( clientb, "wallet_account_set_approval delegate29 false" );

   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_account_set_approval delegate44 true" );
   exec( clienta, "wallet_account_set_approval delegate44 true" );
   exec( clienta, "wallet_account_set_approval delegate45 true" );
   exec( clienta, "wallet_account_set_approval delegate46 true" );
   exec( clienta, "wallet_account_set_approval delegate47 true" );
   exec( clienta, "wallet_account_set_approval delegate48 true" );
   exec( clienta, "wallet_account_set_approval delegate49 true" );

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_set_approval delegate63 true" );
   exec( clientb, "wallet_account_set_approval delegate64 true" );
   exec( clientb, "wallet_account_set_approval delegate65 true" );
   exec( clientb, "wallet_account_set_approval delegate66 true" );
   exec( clientb, "wallet_account_set_approval delegate67 true" );
   exec( clientb, "wallet_account_set_approval delegate68 true" );
   exec( clientb, "wallet_account_set_approval delegate69 true" );
   exec( clientb, "balance" );
   exec( clienta, "balance" );
   exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " );
   exec( clienta, "wallet_transfer 10801980.09801  XTS delegate33 delegate33 change_votes " );
   exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " );
   exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " );
   exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " );
   exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " );

   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   exec( clienta, "balance" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "blockchain_list_delegates" );

   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " );
   exec( clienta, "wallet_transfer 10801980.09801  XTS delegate33 delegate33 change_votes " );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " );
   exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " );
   exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " );
   exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " );

   exec( clientb, "info" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "info" );

   enable_logging();
   wlog( "FORKING NETWORKS" );
   clientb->simulate_disconnect(true);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);
   wlog( "------------------  CLIENT B  -----------------------------------" );
   clientb->simulate_disconnect(false);

   wlog( "------------------  CLIENT A  -----------------------------------" );
   clienta->simulate_disconnect(true);
   wlog( "------------------  CLIENT B  -----------------------------------" );
   produce_block(clientb);
   produce_block(clientb);
   produce_block(clientb);

   wlog( "------------------  CLIENT A  -----------------------------------" );
   clienta->simulate_disconnect(false);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "info" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "info" );

   wlog( "JOINING NETWORKS" );
   for( uint32_t i = 2; i <= clienta->get_chain()->get_head_block_num(); ++i )
   {
      auto b = clienta->get_chain()->get_block( i );
      clientb->get_chain()->push_block(b);
   }

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "info" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "info" );

   exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 85" );
   exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 65" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "ask c-account 120 XTS 5.00 USD" );
   exec( clientb, "ask c-account 213 XTS 5.67 USD" );
   exec( clientb, "ask c-account 345 XTS 4.56 USD" );
   exec( clientb, "ask c-account 120 XTS 8.00 GLD" );
   exec( clientb, "ask c-account 213 XTS 7.67 GLD" );
   exec( clientb, "ask c-account 345 XTS 6.56 GLD" );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clienta, "info" );
   produce_block( clienta );
   exec( clienta, "info" );
   exec( clienta, "blockchain_list_market_transactions 127" );
   exec( clienta, "blockchain_list_market_transactions 128" );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "blockchain_market_list_shorts USD" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );

   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clienta, "blockchain_market_order_book GLD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_asset_create USD BitUSD delegate30 \"paper bucks\" null 1000000000 1000 true" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "short delegate30 3000 5.43 USD" );
   exec( clientb, "ask delegate30 400 XTS 5.41 USD" );
   exec( clientb, "ask delegate32 800 XTS 4.20 USD" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clienta, "blockchain_market_list_shorts USD" );
   exec( clientb, "blockchain_market_list_covers USD" );
   exec( clientb, "balance" );
   exec( clienta, "wallet_market_order_list USD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "ask delegate30 3 XTS 5.42 USD" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "balance" );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "short c-account 50 3.11 USD" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "balance" );
   exec( clienta, "wallet_market_order_list USD XTS" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "balance" );
   exec( clienta, "wallet_market_order_list USD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "cover delegate32 10.1 USD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "cover delegate32 19.899 USD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" );
   produce_block( clienta );
   exec( clientb, "balance" );
   exec( clienta, "blockchain_market_order_book USD XTS" );

   exec(clientb, "balance");
   exec(clientb, "history");

   exec(clientb, "balance b-account");
   exec(clientb, "history b-account");

   exec(clientb, "balance c-account");
   exec(clientb, "history c-account");
} FC_LOG_AND_RETHROW() }
Exemplo n.º 12
0
BOOST_FIXTURE_TEST_CASE( basic_commands, chain_fixture )
{ try {
//   disable_logging();
   enable_logging();
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_list_my_accounts" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "unlock 999999999 masterpassword" );
   exec( clienta, "scan 0 100" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "close" );
   exec( clienta, "open walleta" );
   exec( clienta, "unlock 99999999 masterpassword" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "wallet_account_balance delegate31" );
   exec( clienta, "wallet_delegate_set_block_production delegate31 true" );
   exec( clienta, "wallet_delegate_set_block_production delegate33 true" );
   exec(clienta, "wallet_set_transaction_scanning true");
   exec( clienta, "wallet_set_delegate_trust delegate33 true" );
   exec( clienta, "wallet_set_delegate_trust delegate34 true" );
   exec( clienta, "wallet_set_delegate_trust delegate35 true" );
   exec( clienta, "wallet_set_delegate_trust delegate36 true" );
   exec( clienta, "wallet_set_delegate_trust delegate37 true" );
   exec( clienta, "wallet_set_delegate_trust delegate38 true" );
   exec( clienta, "wallet_set_delegate_trust delegate39 true" );

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "info" );
   exec( clientb, "wallet_set_delegate_trust delegate23 true" );
   exec( clientb, "wallet_set_delegate_trust delegate24 true" );
   exec( clientb, "wallet_set_delegate_trust delegate25 true" );
   exec( clientb, "wallet_set_delegate_trust delegate26 true" );
   exec( clientb, "wallet_set_delegate_trust delegate27 true" );
   exec( clientb, "wallet_set_delegate_trust delegate28 true" );
   exec( clientb, "wallet_set_delegate_trust delegate29 true" );

   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "wallet_account_balance" );
   exec( clientb, "wallet_account_balance delegate30" );
   exec( clientb, "unlock 999999999 masterpassword" );
   exec( clientb, "wallet_delegate_set_block_production delegate30 true" );
   exec( clientb, "wallet_delegate_set_block_production delegate32 true" );
   exec(clientb, "wallet_set_transaction_scanning true");

   exec( clientb, "balance delegate30");
   exec( clientb, "wallet_asset_create BUSD BitUSD delegate30 \"paper bucks\" null 1000000000 10000 true" );
   produce_block(clientb);

   exec(clientb, "wallet_publish_price_feed delegate0 1 BUSD" ); //[[\"USD\",1]]" );
   exec(clientb, "wallet_publish_price_feed delegate2 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate4 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate6 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate8 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate10 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate12 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate14 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate16 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate18 1 BUSD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate20 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate22 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate24 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate26 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate28 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate30 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate32 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate34 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate36 1 BUSD" );
   produce_block(clientb);
   exec(clientb, "wallet_publish_price_feed delegate38 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate40 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate42 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate44 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate46 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate48 1 BUSD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate50 1 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate52 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate1 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate3 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate5 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate7 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate9 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate11 1 BUSD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate13 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate15 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate17 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate19 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate21 1 BUSD" );
   produce_block(clienta);
   exec(clienta, "wallet_publish_price_feed delegate23 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate25 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate27 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate29 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate31 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate33 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate35 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate37 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate39 1 BUSD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate41 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate43 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate45 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate47 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate49 1 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate51 1 BUSD" );

   produce_block(clienta);
   exec(clienta, "balance" );
   exec(clientb, "balance" );

   exec( clientb, "short delegate30 101 BUSD 2 1.01" );
   exec( clientb, "short delegate32 102 BUSD 1.01 " );
   exec( clientb, "short delegate32 103 BUSD 0.9 " );
   exec( clienta, "ask delegate31 100 XTS .09997 BUSD" );
   exec( clienta, "ask delegate31 200 XTS .9998 BUSD" );
   exec( clienta, "ask delegate31 300 XTS .9999 BUSD" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clienta, "blockchain_market_list_shorts BUSD");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clienta, "blockchain_market_list_shorts BUSD");
   exec(clienta, "blockchain_market_list_covers BUSD");
   exec(clienta, "balance" );
   exec( clienta, "bid delegate31 40 XTS .67 BUSD" );
   exec( clienta, "bid delegate31 50 XTS .68 BUSD" );
   produce_block(clientb);
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clienta, "blockchain_market_list_shorts BUSD");
   exec(clienta, "blockchain_market_order_history BUSD XTS");

   exec(clientb, "wallet_publish_price_feed delegate0 .74 BUSD" ); //[[\"USD\",1]]" );
   exec(clientb, "wallet_publish_price_feed delegate2 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate4 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate6 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate8 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate10 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate12 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate14 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate16 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate18 .74 BUSD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate20 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate22 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate24 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate26 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate28 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate30 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate32 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate34 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate36 .74 BUSD" );
   produce_block(clientb);
   exec(clientb, "wallet_publish_price_feed delegate38 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate40 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate42 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate44 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate46 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate48 .74 BUSD" );
   produce_block(clienta);
   exec(clientb, "wallet_publish_price_feed delegate50 .74 BUSD" );
   exec(clientb, "wallet_publish_price_feed delegate52 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate1 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate3 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate5 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate7 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate9 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate11 .74 BUSD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate13 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate15 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate17 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate19 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate21 .74 BUSD" );
   produce_block(clienta);
   exec(clienta, "wallet_publish_price_feed delegate23 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate25 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate27 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate29 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate31 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate33 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate35 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate37 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate39 .74 BUSD" );
   produce_block(clientb);
   exec(clienta, "wallet_publish_price_feed delegate41 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate43 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate45 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate47 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate49 .74 BUSD" );
   exec(clienta, "wallet_publish_price_feed delegate51 .74 BUSD" );
   produce_block(clientb);

   exec( clienta, "bid delegate31 37 XTS .69 BUSD" );

   produce_block(clientb);
   produce_block(clientb);

   exec( clienta, "short delegate35 500 BUSD 30" );

   produce_block(clientb);
   produce_block(clientb);

   exec(clienta, "balance");
   exec(clientb, "balance");
   exec(clienta, "blockchain_get_asset BUSD");
   exec(clienta, "blockchain_market_order_book BUSD XTS");

   return;
   //Next line is intended to fail due to overly-high price
   exec( clientb, "short delegate32 300 1000 BUSD" );
   exec( clienta, "ask delegate31 100 XTS .95 BUSD" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec( clienta, "ask delegate31 1000000 XTS .96 BUSD" );
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec( clienta, "ask delegate31 1000000 XTS 1.3 BUSD" );
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec( clienta, "ask delegate31 1000000 XTS 1.3 BUSD" );

   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");

   exec(clientb, "wallet_market_order_list BUSD XTS");
   exec(clientb, "wallet_account_transaction_history delegate30");
   exec(clientb, "wallet_account_transaction_history");

   exec(clienta, "wallet_market_order_list BUSD XTS");
   exec(clienta, "wallet_account_transaction_history delegate31");
   exec(clienta, "wallet_account_transaction_history");
   exec(clienta, "balance");
   exec(clientb, "balance");
   exec( clientb, "short delegate32 300 .69 BUSD" );
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   produce_block(clientb);
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clienta, "wallet_account_transaction_history");
   exec(clientb, "wallet_account_transaction_history");
   exec(clientb, "wallet_market_order_list BUSD XTS"); // TODO: this should filter by account
   exec(clientb, "wallet_market_cancel_order XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7");
   produce_block(clientb);
   exec(clientb, "wallet_account_transaction_history delegate32");
   exec(clienta, "balance" );
   exec(clientb, "balance");
   exec(clientb, "wallet_account_transaction_history");
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clienta, "wallet_transfer 95 BUSD delegate31 delegate32");
   produce_block(clienta);
   produce_block(clienta);
   exec(clienta, "wallet_account_transaction_history");
   exec(clientb, "wallet_account_transaction_history");
   exec(clientb, "balance" );
   exec(clientb, "wallet_market_cover delegate32 5 BUSD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" );
   produce_block(clientb);
   produce_block(clientb);
   exec(clientb, "balance" );
   exec(clientb, "wallet_market_cover delegate32 90 BUSD XTS7FDgYCCxD29WutqJtbvqyvaxdkxYeBVs7" );
   exec( clienta, "ask delegate31 100 XTS .001 BUSD" );
   produce_block(clientb);
   exec(clientb, "wallet_account_transaction_history delegate32");
   produce_block(clientb);
   exec(clienta, "wallet_account_transaction_history");
   exec(clientb, "wallet_account_transaction_history delegate32");
   exec(clientb, "wallet_market_order_list BUSD XTS"); // TODO: this should filter by account
   exec(clientb, "balance" );
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clientb, "wallet_market_cancel_order XTS7zGp53nKGbxm6ASmfJrkDyYXmQ9qH6WtE");
   produce_block(clientb);
   exec(clientb, "balance" );
   exec(clienta, "blockchain_market_order_book BUSD XTS");
   exec(clientb, "wallet_market_order_list BUSD XTS");
   exec(clientb, "wallet_account_transaction_history delegate32");

   return;
   exec(clienta, "wallet_account_transaction_history delegate31");
   exec(clienta, "balance" );

   exec( clientb, "wallet_account_create b-account" );
   exec( clientb, "wallet_account_balance b-account" );

   exec( clientb, "wallet_account_register b-account delegate30 null 100" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 75" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_list_my_accounts" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_transfer 33 XTS delegate31 b-account first-memo" );
   exec( clienta, "wallet_account_transaction_history delegate31" );
   exec( clienta, "wallet_account_transaction_history b-account" );
   exec( clienta, "wallet_account_transaction_history" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   produce_block( clientb );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_account_transaction_history delegate31" );
   exec( clienta, "wallet_account_transaction_history b-account" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_create c-account" );
   exec( clientb, "wallet_transfer 10 XTS b-account c-account to-me" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "blockchain_list_delegates" );
   exec( clientb, "wallet_set_delegate_trust b-account true" );
   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_transfer 100000 XTS delegate32 c-account to-me" );
   exec( clientb, "wallet_transfer 100000 XTS delegate30 c-account to-me" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_set_delegate_trust b-account true" );
   // TODO: this should throw an exception from the wallet regarding delegate_vote_limit, but it produces
   // the transaction anyway.
   // TODO: before fixing the wallet production side to include multiple outputs and spread the vote,
   // the transaction history needs to show the transaction as an 'error' rather than 'pending' and
   // properly display the reason for the user.
   // TODO: provide a way to cancel transactions that are pending.
   exec( clienta, "wallet_transfer 100000 XTS delegate31 b-account to-b" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   produce_block( clientb );
   exec( clientb, "balance" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "blockchain_list_delegates" );
   exec( clientb, "wallet_asset_create USD Dollar b-account \"paper bucks\" null 1000000000 1000" );
   exec( clientb, "wallet_asset_create GLD Gold b-account \"gram o gold\" null 1000000000 1000" );
   produce_block( clientb );
   exec( clientb, "blockchain_list_assets" );
   exec( clientb, "wallet_asset_issue 20000 USD c-account \"iou\"" );
   exec( clientb, "wallet_asset_issue 1000 GLD c-account \"gld\"" );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history b-account" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" );
   exec( clientb, "wallet_transfer 20 GLD c-account delegate31 c-d31" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_account_transaction_history c-account" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_account_transaction_history delegate31" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "balance" );
   exec( clientb, "bid c-account 120 XTS 5.50 USD" );
   exec( clientb, "bid c-account 20 XTS 6.56 USD" );
   produce_block( clientb );
   exec( clientb, "bid c-account 10 XTS 7.76 USD" );
   produce_block( clientb );
   exec( clientb, "bid c-account 40 XTS 2.50 USD" );
   produce_block( clientb );
   exec( clientb, "bid c-account 120 XTS 4.50 GLD" );
   exec( clientb, "bid c-account 40 XTS 2.50 GLD" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history c-account" );
   exec( clientb, "balance" );
   exec( clientb, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   auto result = clientb->wallet_market_order_list( "USD", "XTS" );
   exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   produce_block( clientb );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "balance" );

   result = clientb->wallet_market_order_list( "USD", "XTS" );
   exec( clientb, "wallet_market_cancel_order " + string( result.begin()->first ) );
   produce_block( clientb );
   exec( clientb, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_change_passphrase newmasterpassword" );
   exec( clientb, "close" );
   exec( clientb, "open walletb" );
   exec( clientb, "unlock 99999999 newmasterpassword" );
   exec( clientb, "blockchain_get_transaction d387d39ca1" );

   exec( clientb, "wallet_transfer 20 USD c-account delegate31 c-d31" );
   exec( clientb, "blockchain_list_pending_transactions" );
   enable_logging();
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   disable_logging();
   for( uint32_t i = 0; i < 100; ++i )
   {
//      exec( clientb, "wallet_transfer 10 XTS delegate32 delegate32 " );
      produce_block( clientb );
   }
   exec( clientb, "blockchain_get_account delegate32" );
   exec( clientb, "wallet_delegate_withdraw_pay delegate32 c-account .01234" );
   produce_block( clientb );
   exec( clientb, "wallet_account_transaction_history delegate32" );
   exec( clientb, "blockchain_list_delegates" );


   exec( clienta, "wallet_set_delegate_trust delegate33 false" );
   exec( clienta, "wallet_set_delegate_trust delegate34 false" );
   exec( clienta, "wallet_set_delegate_trust delegate35 false" );
   exec( clienta, "wallet_set_delegate_trust delegate36 false" );
   exec( clienta, "wallet_set_delegate_trust delegate37 false" );
   exec( clienta, "wallet_set_delegate_trust delegate38 false" );
   exec( clienta, "wallet_set_delegate_trust delegate39 false" );


   exec( clientb, "wallet_set_delegate_trust delegate23 false" );
   exec( clientb, "wallet_set_delegate_trust delegate24 false" );
   exec( clientb, "wallet_set_delegate_trust delegate25 false" );
   exec( clientb, "wallet_set_delegate_trust delegate26 false" );
   exec( clientb, "wallet_set_delegate_trust delegate27 false" );
   exec( clientb, "wallet_set_delegate_trust delegate28 false" );
   exec( clientb, "wallet_set_delegate_trust delegate29 false" );

   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_set_delegate_trust delegate44 true" );
   exec( clienta, "wallet_set_delegate_trust delegate44 true" );
   exec( clienta, "wallet_set_delegate_trust delegate45 true" );
   exec( clienta, "wallet_set_delegate_trust delegate46 true" );
   exec( clienta, "wallet_set_delegate_trust delegate47 true" );
   exec( clienta, "wallet_set_delegate_trust delegate48 true" );
   exec( clienta, "wallet_set_delegate_trust delegate49 true" );

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_set_delegate_trust delegate63 true" );
   exec( clientb, "wallet_set_delegate_trust delegate64 true" );
   exec( clientb, "wallet_set_delegate_trust delegate65 true" );
   exec( clientb, "wallet_set_delegate_trust delegate66 true" );
   exec( clientb, "wallet_set_delegate_trust delegate67 true" );
   exec( clientb, "wallet_set_delegate_trust delegate68 true" );
   exec( clientb, "wallet_set_delegate_trust delegate69 true" );
   exec( clientb, "balance" );
   exec( clienta, "balance" );
   exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " );
   exec( clienta, "wallet_transfer 10801980.09801  XTS delegate33 delegate33 change_votes " );
   exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " );
   exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " );
   exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " );
   exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " );

   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   exec( clienta, "balance" );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "blockchain_list_delegates" );

   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "wallet_transfer 10691976.59801 XTS delegate31 delegate31 change_votes " );
   exec( clienta, "wallet_transfer 10801980.09801  XTS delegate33 delegate33 change_votes " );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_transfer 9792.18499 XTS b-account b-account change_votes " );
   exec( clientb, "wallet_transfer 20000.40123 XTS c-account c-account change_votes " );
   exec( clientb, "wallet_transfer 10791970.09801 XTS delegate32 delegate32 change_votes " );
   exec( clientb, "wallet_transfer 10791760.18284 XTS delegate30 delegate30 change_votes " );

   exec( clientb, "info" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "info" );

   enable_logging();
   wlog( "FORKING NETWORKS" );
   clientb->simulate_disconnect(true);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);
   wlog( "------------------  CLIENT B  -----------------------------------" );
   clientb->simulate_disconnect(false);

   wlog( "------------------  CLIENT A  -----------------------------------" );
   clienta->simulate_disconnect(true);
   wlog( "------------------  CLIENT B  -----------------------------------" );
   produce_block(clientb);
   produce_block(clientb);
   produce_block(clientb);

   wlog( "------------------  CLIENT A  -----------------------------------" );
   clienta->simulate_disconnect(false);
   produce_block(clienta);
   produce_block(clienta);
   produce_block(clienta);

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "info" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "info" );

   wlog( "JOINING NETWORKS" );
   for( uint32_t i = 2; i <= clienta->get_chain()->get_head_block_num(); ++i )
   {
      auto b = clienta->get_chain()->get_block( i );
      clientb->get_chain()->push_block(b);
   }

   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "info" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   exec( clienta, "info" );

   exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 85" );
   exec( clientb, "wallet_account_update_registration b-account delegate30 { \"ip\":\"localhost\"} 65" );
   wlog( "------------------  CLIENT A  -----------------------------------" );
   produce_block( clienta );
   wlog( "------------------  CLIENT B  -----------------------------------" );
   exec( clientb, "wallet_list_my_accounts" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "blockchain_market_list_bids USD XTS" );
   exec( clientb, "ask c-account 120 XTS 5.00 USD" );
   exec( clientb, "ask c-account 213 XTS 5.67 USD" );
   exec( clientb, "ask c-account 345 XTS 4.56 USD" );
   exec( clientb, "ask c-account 120 XTS 8.00 GLD" );
   exec( clientb, "ask c-account 213 XTS 7.67 GLD" );
   exec( clientb, "ask c-account 345 XTS 6.56 GLD" );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clienta, "info" );
   produce_block( clienta );
   exec( clienta, "info" );
   exec( clienta, "blockchain_list_market_transactions 127" );
   exec( clienta, "blockchain_list_market_transactions 128" );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clientb, "blockchain_market_list_shorts USD" );
   exec( clientb, "wallet_market_order_list USD XTS" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );

   exec( clienta, "blockchain_market_order_book USD XTS" );
   exec( clienta, "blockchain_market_order_book GLD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_asset_create BUSD BitUSD delegate30 \"paper bucks\" null 1000000000 1000 true" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "short delegate30 3000 5.43 BUSD" );
   exec( clientb, "ask delegate30 400 XTS 5.41 BUSD" );
   exec( clientb, "ask delegate32 800 XTS 4.20 BUSD" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clienta, "blockchain_market_list_shorts BUSD" );
   exec( clientb, "blockchain_market_list_covers BUSD" );
   exec( clientb, "balance" );
   exec( clienta, "wallet_market_order_list BUSD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "ask delegate30 3 XTS 5.42 BUSD" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "balance" );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "short c-account 50 3.11 BUSD" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );
   exec( clientb, "balance" );
   exec( clienta, "wallet_market_order_list BUSD XTS" );
   produce_block( clienta );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );
   exec( clientb, "balance" );
   exec( clienta, "wallet_market_order_list BUSD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "wallet_market_order_list BUSD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "cover delegate32 10.1 BUSD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" );
   produce_block( clienta );
   exec( clientb, "wallet_account_transaction_history" );
   exec( clientb, "wallet_market_order_list BUSD XTS" );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );
   exec( clientb, "balance" );
   exec( clientb, "cover delegate32 19.899 BUSD XTSP8ZBZodbzPYh57Z8S4S6x2VqYNXo5MALy" );
   produce_block( clienta );
   exec( clientb, "balance" );
   exec( clienta, "blockchain_market_order_book BUSD XTS" );

   exec(clientb, "balance");
   exec(clientb, "history");

   exec(clientb, "balance b-account");
   exec(clientb, "history b-account");

   exec(clientb, "balance c-account");
   exec(clientb, "history c-account");
} FC_LOG_AND_RETHROW() }
Exemplo n.º 13
0
Arquivo: main.c Projeto: hharte/vttest
int
main(int argc, char *argv[])
{
  /* *INDENT-OFF* */
  static MENU mainmenu[] = {
      { "Exit",                                              0 },
      { "Test of cursor movements",                          tst_movements },
      { "Test of screen features",                           tst_screen },
      { "Test of character sets",                            tst_characters },
      { "Test of double-sized characters",                   tst_doublesize },
      { "Test of keyboard",                                  tst_keyboard },
      { "Test of terminal reports",                          tst_reports },
      { "Test of VT52 mode",                                 tst_vt52 },
      { "Test of VT102 features (Insert/Delete Char/Line)",  tst_insdel },
      { "Test of known bugs",                                tst_bugs },
      { "Test of reset and self-test",                       tst_rst },
      { "Test non-VT100 (e.g., VT220, XTERM) terminals",     tst_nonvt100 },
      { "Modify test-parameters",                            tst_setup },
      { "",                                                  0 }
    };
  /* *INDENT-ON* */

  while (argc-- > 1) {
    const char *opt = *++argv;
    if (*opt == '-') {
      while (*++opt != '\0') {
        switch (*opt) {
        case 'f':
          if (!*++opt) {
            if (argc-- < 1)
              usage();
            opt = *++argv;
          }
          setup_softchars(opt);
          opt = "?";
          break;
        case 'l':
          enable_logging();
          break;
        case 'p':
          use_padding = TRUE;
          break;
        case 's':
          slow_motion = TRUE;
          break;
        case '8':
          output_8bits = TRUE;
          break;
        default:
          usage();
        }
      }
    } else {
      /*
       * Allow user to specify geometry of terminal to accommodate quasi-VT100
       * terminals such as Linux console and xterm.
       */
      char *p = argv[0];
      char *q;
      int values[3], n, m;
      for (n = 0; n < 3; n++) {
        if (!*p)
          break;
        if ((m = (int) strtol(p, &q, 10)) > 0) {
          values[n] = m;
          p = q;
          if (*p)
            p++;
        } else {
          break;
        }
      }
      switch (n) {
      case 3:
        max_cols = values[2];
        /* FALLTHRU */
      case 2:
        min_cols = values[1];
        /* FALLTHRU */
      case 1:
        max_lines = values[0];
        break;
      }
      if ((max_cols < min_cols) || (n == 0)) {
        usage();
      }
    }
  }

#ifdef UNIX
  initterminal(setjmp(intrenv));
  signal(SIGINT, onbrk);
  signal(SIGTERM, onterm);
  reading = FALSE;
#else
  initterminal(0);
#endif
  do {
    vt_clear(2);
    __(title(0), printf("VT100 test program, version %d.%d", RELEASE, PATCHLEVEL));
#ifdef PATCH_DATE
    if (PATCH_DATE)
      printf(" (%d)", PATCH_DATE);
#endif

    title(1);
    if (max_lines != 24
        || min_cols != 80
        || max_cols != 132)
      printf("Screen size %dx%d (%d max) ", max_lines, min_cols, max_cols);
    if (tty_speed != DEFAULT_SPEED)
      printf("Line speed %dbd ", tty_speed);
    if (use_padding)
      printf(" (padded)");

    __(title(2), println("Choose test type:"));
  } while (menu(mainmenu));
  bye();
  return EXIT_SUCCESS;
}
Exemplo n.º 14
0
static void parse_options( int argc, char **argv, Options_t *opts )
{
    int c;
    opterr = 0;

    memset( opts, 0, sizeof(*opts) );
    opts->msg_size  = 1024;
    opts->send_batch = 1024;
    opts->timeout = -1;
    opts->recv_count = -1;
    addresses_init(&opts->targets);

    while ((c = getopt(argc, argv,
                       "a:c:b:p:w:e:l:Rt:W:B:VN:T:C:K:P:")) != -1) {
        switch(c) {
        case 'a':
          {
            // TODO: multiple addresses?  To keep tests happy, accept multiple for now,
            // but ignore all but the first.
            addresses_merge( &opts->targets, optarg );
          }
          break;
        case 'c':
            if (sscanf( optarg, "%" SCNu64, &opts->msg_count ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'b':
            if (sscanf( optarg, "%u", &opts->msg_size ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'p':
            if (sscanf( optarg, "%u", &opts->send_batch ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'w':
            if (sscanf( optarg, "%d", &opts->outgoing_window ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'e':
            if (sscanf( optarg, "%u", &opts->report_interval ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'R': opts->get_replies = 1; break;
        case 't':
            if (sscanf( optarg, "%d", &opts->timeout ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            if (opts->timeout > 0) opts->timeout *= 1000;
            break;
        case 'W':
            if (sscanf( optarg, "%d", &opts->incoming_window ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'B':
            if (sscanf( optarg, "%d", &opts->recv_count ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'V': enable_logging(); break;
        case 'N': opts->name = optarg; break;
        case 'T': opts->ca_db = optarg; break;
        case 'C': opts->certificate = optarg; break;
        case 'K': opts->privatekey = optarg; break;
        case 'P': parse_password( optarg, &opts->password ); break;

        default:
            usage(1);
        }
    }

    // default target if none specified
    if (opts->targets.count == 0) addresses_add( &opts->targets, "amqp://0.0.0.0" );
}
Exemplo n.º 15
0
BOOST_FIXTURE_TEST_CASE( malicious_trading, chain_fixture )
{ try {
   return;
   exec( clienta, "wallet_list_my_accounts" );
   exec( clienta, "wallet_account_balance" );
   exec( clienta, "unlock 999999999 masterpassword" );
   exec( clienta, "scan 0 100" );
   exec( clienta, "wallet_delegate_set_block_production delegate31 true" );
   exec( clienta, "wallet_delegate_set_block_production delegate33 true" );
   exec( clientb, "unlock 999999999 masterpassword" );
   exec( clientb, "wallet_delegate_set_block_production delegate30 true" );
   exec( clientb, "wallet_delegate_set_block_production delegate32 true" );
   exec( clientb, "wallet_account_create b-account" );
   exec( clientb, "wallet_account_balance b-account" );
   exec( clientb, "wallet_asset_create USD BitUSD delegate30 \"paper bucks\" null 1000000000 1000 true" );
   produce_block(clienta);

   exec(clienta, "wallet_account_balance");
   exec(clientb, "wallet_account_balance");

   exec(clienta, "ask delegate21 18000000 XTS 1000000 USD");
   exec(clientb, "short delegate20 18000000 .001 USD");
   exec(clienta, "ask delegate23 18000000 XTS 1000000 USD");
   exec(clientb, "short delegate22 18000000 .001 USD");
   exec(clienta, "ask delegate25 18000000 XTS 1000000 USD");
   exec(clientb, "short delegate24 18000000 .001 USD");
   exec(clienta, "ask delegate27 18000000 XTS 1000000 USD");
   exec(clientb, "short delegate26 18000000 .001 USD");
   exec(clienta, "ask delegate29 18000000 XTS 1000000 USD");
   exec(clientb, "short delegate28 18000000 .001 USD");
   exec(clienta, "ask delegate31 18000000 XTS 1.05 USD");
   exec(clientb, "short delegate30 18000000 1 USD");

   exec(clienta, "ask delegate33 100 XTS .001 USD");
   exec(clientb, "short delegate32 100000000 1000000000 USD");

   exec(clienta, "wallet_account_balance");
   exec(clientb, "wallet_account_balance");

   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec(clienta, "wallet_account_balance");
   exec(clientb, "wallet_account_balance");

   exec(clienta, "bid delegate23 1000000 XTS 5 USD");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");

   exec(clienta, "ask delegate31 100 XTS 4 USD");

   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");

   exec(clientb, "balance");
   exec(clientb, "history");

   exec(clientb, "balance delegate22");
   exec(clientb, "history delegate22");

   exec(clientb, "balance delegate32");
   exec(clientb, "history delegate32");
   exec(clientb, "wallet_publish_price_feed delegate22 .86 USD" );
   produce_block(clienta);
   exec( clientb, "ask delegate22 3 XTS 0.92 USD" );
   exec( clientb, "ask delegate22 4 XTS 0.22 USD" );
   exec( clientb, "short delegate22 4 2.0 USD" );
   enable_logging();
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   produce_block(clienta);
   exec(clienta, "blockchain_market_order_book USD XTS");
   exec( clienta, "wallet_account_transaction_history" );

} FC_LOG_AND_RETHROW() }
Exemplo n.º 16
0
static void handler_sigusr1 (int dummy)
{
	enable_logging ();
}
    nathan_fixture() {
        enable_logging();
        exec(clienta, "scan");
        exec(clientb, "scan");
        exec(clienta, "wallet_delegate_set_block_production ALL true");
        exec(clientb, "wallet_delegate_set_block_production ALL true");
        exec(clienta, "wallet_set_transaction_scanning true");
        exec(clientb, "wallet_set_transaction_scanning true");

        exec(clienta, "wallet_asset_create USD \"Federal Reserve Floats\" delegate21 \"100% Genuine United States Fiat\" \"arbitrary data!\" 1000000000 10000 true");

        produce_block(clienta);

        exec(clientb, "wallet_publish_price_feed delegate2 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate4 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate6 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate8 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate10 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate12 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate14 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate16 .2 USD" );
        produce_block(clienta);
        produce_block(clientb);
        exec(clientb, "wallet_publish_price_feed delegate18 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate20 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate22 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate24 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate26 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate28 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate30 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate32 .2 USD" );
        produce_block(clienta);
        produce_block(clientb);
        exec(clientb, "wallet_publish_price_feed delegate34 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate36 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate38 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate40 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate42 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate44 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate46 .2 USD" );
        produce_block(clienta);
        produce_block(clientb);
        exec(clientb, "wallet_publish_price_feed delegate48 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate50 .2 USD" );
        exec(clientb, "wallet_publish_price_feed delegate52 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate1 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate3 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate5 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate7 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate9 .2 USD" );
        produce_block(clienta);
        produce_block(clientb);
        exec(clienta, "wallet_publish_price_feed delegate11 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate13 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate15 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate17 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate19 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate21 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate23 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate25 .2 USD" );
        produce_block(clienta);
        produce_block(clientb);
        exec(clienta, "wallet_publish_price_feed delegate27 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate29 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate31 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate33 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate35 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate37 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate39 .2 USD" );
        produce_block(clienta);
        produce_block(clientb);
        exec(clienta, "wallet_publish_price_feed delegate41 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate43 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate45 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate47 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate49 .2 USD" );
        exec(clienta, "wallet_publish_price_feed delegate51 .2 USD" );

        produce_block(clienta);
        produce_block(clientb);
        std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    }
Exemplo n.º 18
0
static void parse_options( int argc, char **argv, Options_t *opts )
{
    int c;
    opterr = 0;

    memset( opts, 0, sizeof(*opts) );
    opts->recv_count = -1;
    opts->timeout = -1;
    addresses_init(&opts->subscriptions);
    addresses_init(&opts->forwarding_targets);

    while ((c = getopt(argc, argv,
                       "a:c:b:w:t:e:RW:F:VN:X:T:C:K:P:")) != -1) {
        switch (c) {
        case 'a': addresses_merge( &opts->subscriptions, optarg ); break;
        case 'c':
            if (sscanf( optarg, "%" SCNu64, &opts->msg_count ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'b':
            if (sscanf( optarg, "%d", &opts->recv_count ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'w':
            if (sscanf( optarg, "%d", &opts->incoming_window ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 't':
            if (sscanf( optarg, "%d", &opts->timeout ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            if (opts->timeout > 0) opts->timeout *= 1000;
            break;
        case 'e':
            if (sscanf( optarg, "%u", &opts->report_interval ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'R': opts->reply = 1; break;
        case 'W':
            if (sscanf( optarg, "%d", &opts->outgoing_window ) != 1) {
                fprintf(stderr, "Option -%c requires an integer argument.\n", optopt);
                usage(1);
            }
            break;
        case 'F': addresses_merge( &opts->forwarding_targets, optarg ); break;
        case 'V': enable_logging(); break;
        case 'N': opts->name = optarg; break;
        case 'X': opts->ready_text = optarg; break;
        case 'T': opts->ca_db = optarg; break;
        case 'C': opts->certificate = optarg; break;
        case 'K': opts->privatekey = optarg; break;
        case 'P': parse_password( optarg, &opts->password ); break;

        default:
            usage(1);
        }
    }

    // default subscription if none specified
    if (opts->subscriptions.count == 0) addresses_add( &opts->subscriptions,
                                                       "amqp://~0.0.0.0" );
}
Exemplo n.º 19
0
int gtr_run(GtR *gtr, int argc, const char **argv, GtError *err)
{
  GtToolfunc toolfunc;
  GtTool *tool = NULL;
  char **nargv = NULL;
  void *mem, *map;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(gtr);
  if (gtr->debug)
    enable_logging(gt_str_get(gtr->debugfp), &gtr->logfp);
  if (gtr->quiet)
    gt_warning_disable();
  gtr->seed = gt_ya_rand_init(gtr->seed);
  gt_log_log("seed=%u", gtr->seed);
  if (gtr->list)
    return list_tools(gtr);
  if (gt_str_length(gtr->manoutdir) > 0)
    return create_manpages(gtr, gt_str_get(gtr->manoutdir), err);
  if (gtr->check64bit)
    return check64bit();
  if (gtr->test)
    return run_tests(gtr, err);
  if (gt_str_length(gtr->testspacepeak)) {
    mem = gt_malloc(1 << 26); /* alloc 64 MB */;
    map = gt_fa_xmmap_read(gt_str_get(gtr->testspacepeak), NULL);
    gt_fa_xmunmap(map);
    gt_free(mem);
  }
  if (argc == 0 && !gtr->interactive) {
    gt_error_set(err, "neither tool nor script specified; option -help lists "
                      "possible tools");
    had_err = -1;
  }
  if (!had_err && argc) {
    if (!gtr->tools || !gt_toolbox_has_tool(gtr->tools, argv[0])) {
      /* no tool found -> try to open script */
      if (gt_file_exists(argv[0])) {
        /* export script */
        gt_lua_set_script_dir(gtr->L, argv[0]);
        /* run script */
        nargv = gt_cstr_array_prefix_first(argv, gt_error_get_progname(err));
        gt_lua_set_arg(gtr->L, nargv[0], (const char**) nargv+1);
        if (luaL_dofile(gtr->L, argv[0])) {
          /* error */
          gt_assert(lua_isstring(gtr->L, -1)); /* error message on top */
          gt_error_set(err, "could not execute script %s",
                       lua_tostring(gtr->L, -1));
          had_err = -1;
          lua_pop(gtr->L, 1); /* pop error message */
        }
      }
      else {
        /* neither tool nor script found */
        gt_error_set(err, "neither tool nor script '%s' found; option -help "
                          "lists possible tools", argv[0]);
        had_err = -1;
      }
    }
    else {
      /* run tool */
      if (!(toolfunc = gt_toolbox_get(gtr->tools, argv[0]))) {
        tool = gt_toolbox_get_tool(gtr->tools, argv[0]);
        gt_assert(tool);
      }
      nargv = gt_cstr_array_prefix_first(argv, gt_error_get_progname(err));
      gt_error_set_progname(err, nargv[0]);
      if (toolfunc)
        had_err = toolfunc(argc, (const char**) nargv, err);
      else
        had_err = gt_tool_run(tool, argc, (const char**) nargv, err);
    }
  }
  gt_cstr_array_delete(nargv);
  if (!had_err && gtr->interactive) {
    gt_showshortversion(gt_error_get_progname(err));
    gt_lua_set_arg(gtr->L, gt_error_get_progname(err), argv);
    run_interactive_lua_interpreter(gtr->L);
  }
  if (had_err)
    return EXIT_FAILURE;
  return EXIT_SUCCESS;
}