def test_local_validation_errors(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'dev_mode' cfg['BlockWaitTime'] = 0 cfg['LocalValidation'] = True vnm = None try: print "Launching validator network." vnm = ValidatorNetworkManager(http_port=9300, udp_port=9350, cfg=cfg) vnm.launch_network(1) urls = vnm.urls() self._generate_invalid_transactions(urls[0]) if vnm: vnm.shutdown() except Exception: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() raise finally: if vnm: vnm.create_result_archive("%s.tar.gz" % self._testMethodName) else: print "No Validator data and logs to preserve"
def test_missing_dependencies(self): vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vnm_config) firstwavevalidators = vnm.launch_network(5) print "Testing limit of missing dependencies." test = IntKeyLoadTest() test.setup(vnm.urls(), 10) test.run(1) test.run_with_limit_txn_dependencies(1) test.validate() vnm.shutdown() except Exception as e: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() vnm.create_result_archive("TestIntegrationResults.tar.gz") print "Validator data and logs preserved in: " \ "TestIntegrationResults.tar.gz" raise e
def setUpClass(cls): cls.vnm = None try: if 'TEST_VALIDATOR_URL' in os.environ: cls.url = os.environ['TEST_VALIDATOR_URL'] else: vnm_config = defaultValidatorConfig.copy() if 'mktplace.transactions.market_place' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'mktplace.transactions.market_place') vnm_config['InitialWaitTime'] = 1 vnm_config['TargetWaitTime'] = 1 vnm_config['LogLevel'] = 'DEBUG' cls.vnm = ValidatorNetworkManager( httpPort=9500, udpPort=9600, cfg=vnm_config) cls.vnm.launch_network(1) # the url of the initial validator cls.url = cls.vnm.urls()[0] + '/' os.environ['CURRENCYHOME'] = os.path.join( os.path.dirname(__file__), "all_transactions") cls.script_path = os.path.join(os.path.dirname(__file__), 'all_transactions') state = mktplace_state.MarketPlaceState(cls.url) state.fetch() except: if cls.vnm is not None: cls.vnm.shutdown() raise
def test_intkey_load_ext(self): vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() vnm_config['LogLevel'] = 'DEBUG' vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vnm_config) firstwavevalidators = vnm.launch_network(5) print "Testing transaction load." test = IntKeyLoadTest() test.setup(vnm.urls(), 10) test.run(1) vnm.expand_network(firstwavevalidators, 1) test.run(1) test.run_with_missing_dep(1) test.validate() vnm.shutdown() except Exception as e: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() vnm.create_result_archive("TestIntegrationResults.tar.gz") print "Validator data and logs preserved in: " \ "TestIntegrationResults.tar.gz" raise e
def setUpClass(cls): cls.vnm = None try: if 'TEST_VALIDATOR_URLS' in os.environ: urls = (os.environ['TEST_VALIDATOR_URLS']).split(",") cls.url = urls[0] else: vnm_config = defaultValidatorConfig.copy() if 'mktplace.transactions.market_place' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'mktplace.transactions.market_place') vnm_config['InitialWaitTime'] = 1 vnm_config['TargetWaitTime'] = 1 cls.vnm = ValidatorNetworkManager(http_port=9500, udp_port=9600, cfg=vnm_config) cls.vnm.launch_network(1) # the url of the initial validator cls.url = cls.vnm.urls()[0] + '/' os.environ['CURRENCYHOME'] = os.path.join( os.path.dirname(__file__), "all_transactions") cls.script_path = os.path.join(os.path.dirname(__file__), 'all_transactions') state = mktplace_state.MarketPlaceState(cls.url) state.fetch() except: if cls.vnm is not None: cls.vnm.shutdown() raise
def test_intkey_load_quorum(self): vnm = None vote_cfg = defaultValidatorConfig.copy() vote_cfg['LedgerType'] = 'quorum' try: vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vote_cfg) vnm.launch_network(5) print "Testing transaction load." test = IntKeyLoadTest() test.setup(vnm.urls(), 100) test.run(2) test.run_missing_dep_test(1) test.validate() vnm.shutdown() except Exception: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() raise finally: if vnm: vnm.create_result_archive("TestIntegrationResultsVote.tar.gz")
def test_intkey_load_quorum(self): vnm = None vote_cfg = defaultValidatorConfig.copy() vote_cfg['LedgerType'] = 'quorum' try: vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vote_cfg) vnm.launch_network(5) print "Testing transaction load." test = IntKeyLoadTest() test.setup(vnm.urls(), 100) test.run(2) test.run_missing_dep_test(1) test.validate() vnm.shutdown() except Exception: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() raise finally: if vnm: vnm.create_result_archive("TestIntegrationResultsVote.tar.gz")
def test_intkey_load_ext(self): vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() vnm_config['LogLevel'] = 'DEBUG' vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vnm_config) firstwavevalidators = vnm.launch_network(5) print "Testing transaction load." test = IntKeyLoadTest() test.setup(vnm.urls(), 10) test.run(1) vnm.expand_network(firstwavevalidators, 1) test.run(1) test.run_missing_dep_test(1) test.validate() vnm.shutdown() except Exception as e: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() vnm.create_result_archive("TestIntegrationResults.tar.gz") print "Validator data and logs preserved in: " \ "TestIntegrationResults.tar.gz" raise e
def test_local_validation_errors(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'dev_mode' cfg['BlockWaitTime'] = 0 cfg['LocalValidation'] = True vnm = None try: print "Launching validator network." vnm = ValidatorNetworkManager(http_port=9300, udp_port=9350, cfg=cfg) vnm.launch_network(1) urls = vnm.urls() self._generate_invalid_transactions(urls[0]) if vnm: vnm.shutdown() except Exception: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() raise finally: if vnm: vnm.create_result_archive("%s.tar.gz" % self._testMethodName) else: print "No Validator data and logs to preserve"
def test_missing_dependencies(self): vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vnm_config) firstwavevalidators = vnm.launch_network(5) print "Testing limit of missing dependencies." test = IntKeyLoadTest() test.setup(vnm.urls(), 10) test.run(1) test.run_with_limit_txn_dependencies(1) test.validate() vnm.shutdown() except Exception as e: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() vnm.create_result_archive("TestIntegrationResults.tar.gz") print "Validator data and logs preserved in: " \ "TestIntegrationResults.tar.gz" raise e
def test_intkey_load_voting(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'voting' cfg['MaxTransactionsPerBlock'] = 64 cfg['VoteTimeInterval'] = 2.0 cfg['BallotTimeInterval'] = 1.0 cfg['VotingQuorumTargetSize'] = 5 self._run_int_load(cfg, 1, "TestSmokeResultsVoting", tolerance=0)
def setUpClass(cls): cls.vnm = None try: if 'TEST_VALIDATOR_URLS' in os.environ: urls = (os.environ['TEST_VALIDATOR_URLS']).split(",") cls.url = urls[0] else: vnm_config = defaultValidatorConfig.copy() if 'mktplace.transactions.market_place' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'mktplace.transactions.market_place') cls.vnm = ValidatorNetworkManager(http_port=9500, udp_port=9600, cfg=vnm_config) cls.vnm.launch_network(5) # the url of the initial validator cls.url = cls.vnm.urls()[0] + '/' os.environ['CURRENCYHOME'] = os.path.join( os.path.dirname(__file__), "cp_scenarios") cls.scenarios_path = os.path.join(os.path.dirname(__file__), 'cp_scenarios') client_cli.main(args=[ "--name", "mkt", "--script", os.path.join(cls.scenarios_path, "scenario_setup_1_mkt"), "--echo", "--url", cls.url ]) client_cli.main(args=[ "--name", "BANK-trader", "--script", os.path.join(os.path.dirname(__file__), "cp_scenarios", "scenario_setup_2_trader"), "--echo", "--url", cls.url ]) client_cli.main(args=[ "--name", "BANK-agent", "--script", os.path.join(cls.scenarios_path, "scenario_setup_3_agent"), "--echo", "--url", cls.url ]) client_cli.main(args=[ "--name", "BANK-dealer", "--script", os.path.join(cls.scenarios_path, "scenario_setup_4_dealer"), "--echo", "--url", cls.url ]) state = mktplace_state.MarketPlaceState(cls.url) state.fetch() except: if cls.vnm is not None: cls.vnm.shutdown() raise
def test_intkey_load_quorum(self): n = 4 # size of network q = 4 # size of quorum network = StaticNetworkConfig(n, q=q, use_quorum=True) cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'quorum' cfg['TopologyAlgorithm'] = "Quorum" cfg["MinimumConnectivity"] = q cfg["TargetConnectivity"] = q cfg['VotingQuorumTargetSize'] = q cfg['Nodes'] = network.get_nodes() cfg['VoteTimeInterval'] = 48.0 cfg['BallotTimeInterval'] = 8.0 self._run_int_load(cfg, n, "TestSmokeResultsQuorum", tolerance=0, block_id=False, static_network=network, vnm_timeout=240, txn_timeout=240, n_keys=100, n_runs=1)
def setUpClass(cls): cls.vnm = None try: if 'TEST_VALIDATOR_URL' in os.environ: cls.url = os.environ['TEST_VALIDATOR_URL'] else: vnm_config = defaultValidatorConfig.copy() if 'sawtooth_xo' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'sawtooth_xo') cls.vnm = ValidatorNetworkManager( http_port=8800, udp_port=9600, cfg=vnm_config) cls.vnm.launch_network(5) # the url of the initial validator cls.url = cls.vnm.urls()[0] + '/' except: if cls.vnm is not None: cls.vnm.shutdown() cls.vnm = None raise
def setUpClass(cls): cls.vnm = None try: if 'TEST_VALIDATOR_URL' in os.environ: cls.url = os.environ['TEST_VALIDATOR_URL'] else: vnm_config = defaultValidatorConfig.copy() if 'sawtooth_battleship' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'sawtooth_battleship') cls.vnm = ValidatorNetworkManager( httpPort=8800, udpPort=9600, cfg=vnm_config) cls.vnm.launch_network(5) # the url of the initial validator cls.url = cls.vnm.urls()[0] + '/' except: if cls.vnm is not None: cls.vnm.shutdown() cls.vnm = None raise Exception("Validators didn't start up correctly.")
def test_mktplace_load(self): vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() if 'mktplace.transactions.market_place' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'mktplace.transactions.market_place') vnm_config['LogLevel'] = 'DEBUG' vnm = ValidatorNetworkManager( httpPort=9500, udpPort=9600, cfg=vnm_config) vnm.launch_network(5) print "Testing transaction load." test_case = MktPlaceLoad(num_traders=5, iterations=1, urls=vnm.urls(), test_dir=vnm.DataDir) test_case.setup() test_case.run() test_case.validate() if SAVE_INTEGRATION_TEST_DATA: vnm.create_result_archive("TestSmokeResults.tar.gz") print "Validator data and logs preserved in: " \ "TestSmokeResults.tar.gz" vnm.shutdown() except: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() if vnm.create_result_archive("TestSmokeResults.tar.gz"): print "Validator data and logs preserved in: " \ "TestSmokeResults.tar.gz" else: print "No Validator data and logs to preserve." raise
def test_mktplace_load(self): vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() if 'mktplace.transactions.market_place' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'mktplace.transactions.market_place') vnm = ValidatorNetworkManager(http_port=9500, udp_port=9600, cfg=vnm_config) vnm.launch_network(5) print "Testing transaction load." test_case = MktPlaceLoad(num_traders=5, iterations=1, urls=vnm.urls(), test_dir=vnm.data_dir) test_case.setup() test_case.run() test_case.validate() if SAVE_INTEGRATION_TEST_DATA: vnm.create_result_archive("TestSmokeResults.tar.gz") print "Validator data and logs preserved in: " \ "TestSmokeResults.tar.gz" vnm.shutdown() except: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() if vnm.create_result_archive("TestSmokeResults.tar.gz"): print "Validator data and logs preserved in: " \ "TestSmokeResults.tar.gz" else: print "No Validator data and logs to preserve." raise
def test_intkey_load_quorum(self): n = 4 # size of network q = 4 # size of quorum network = StaticNetworkConfig(n, q=q, use_quorum=True) cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'quorum' cfg['TopologyAlgorithm'] = "Quorum" cfg["MinimumConnectivity"] = q cfg["TargetConnectivity"] = q cfg['VotingQuorumTargetSize'] = q cfg['Nodes'] = network.get_nodes() cfg['VoteTimeInterval'] = 48.0 cfg['BallotTimeInterval'] = 8.0 self._run_int_load(cfg, n, "TestSmokeResultsQuorum", tolerance=0, block_id=False, static_network=network, vnm_timeout=240, txn_timeout=240, n_keys=100, n_runs=1)
def test_intkey_load_voting(self): vnm = None vote_cfg = defaultValidatorConfig.copy() vote_cfg['LedgerType'] = 'voting' try: vnm = ValidatorNetworkManager(httpPort=9000, udpPort=9100, cfg=vote_cfg) vnm.launch_network(5) print "Testing transaction load." test = IntKeyLoadTest() test.setup(vnm.urls(), 100) test.run(2) test.validate() vnm.shutdown() except Exception as e: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() vnm.create_result_archive("TestSmokeResultsVote.tar.gz") print "Validator data and logs preserved in: " \ "TestSmokeResultsVote.tar.gz" raise e
def test_intkey_load_dev_mode(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'dev_mode' self._run_int_load(cfg, 1, "TestSmokeResultsDevMode")
def test_intkey_load_poet0(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'poet0' self._run_int_load(cfg, 5, "TestSmokeResultsPoet")
def test_intkey_load_dev_mode(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'dev_mode' self._run_int_load(cfg, 1, "TestSmokeResultsDevMode")
def test_intkey_load_poet0(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'poet0' self._run_int_load(cfg, 5, "TestSmokeResultsPoet")
def setUp(self): self.number_of_daemons = int(os.environ.get("NUMBER_OF_DAEMONS", 5)) self.vnm = ValidatorNetworkManager(cfg=defaultValidatorConfig.copy())
def test_intkey_load_lottery(self): cfg = defaultValidatorConfig.copy() self._run_int_load(cfg, 5, "TestSmokeResultsLottery")
def setUpClass(cls): cls.vnm = None try: if 'TEST_VALIDATOR_URL' in os.environ: cls.url = os.environ['TEST_VALIDATOR_URL'] else: vnm_config = defaultValidatorConfig.copy() if 'mktplace.transactions.market_place' not in \ vnm_config['TransactionFamilies']: vnm_config['TransactionFamilies'].append( 'mktplace.transactions.market_place') vnm_config['LogLevel'] = 'DEBUG' cls.vnm = ValidatorNetworkManager( httpPort=9500, udpPort=9600, cfg=vnm_config) cls.vnm.launch_network(5) # the url of the initial validator cls.url = cls.vnm.urls()[0] + '/' os.environ['CURRENCYHOME'] = os.path.join( os.path.dirname(__file__), "cp_scenarios") cls.scenarios_path = os.path.join(os.path.dirname(__file__), 'cp_scenarios') client_cli.main(args=["--name", "mkt", "--script", os.path.join(cls.scenarios_path, "scenario_setup_1_mkt"), "--echo", "--url", cls.url ]) client_cli.main( args=["--name", "BANK-trader", "--script", os.path.join(os.path.dirname(__file__), "cp_scenarios", "scenario_setup_2_trader"), "--echo", "--url", cls.url ]) client_cli.main(args=["--name", "BANK-agent", "--script", os.path.join(cls.scenarios_path, "scenario_setup_3_agent"), "--echo", "--url", cls.url ]) client_cli.main( args=["--name", "BANK-dealer", "--script", os.path.join(cls.scenarios_path, "scenario_setup_4_dealer"), "--echo", "--url", cls.url ]) state = mktplace_state.MarketPlaceState(cls.url) state.fetch() except: if cls.vnm is not None: cls.vnm.shutdown() raise
def test_intkey_load_lottery(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'lottery' self._run_int_load(cfg, 5, "TestSmokeResultsLottery")
def setUp(self): self.number_of_daemons = int(os.environ.get("NUMBER_OF_DAEMONS", 5)) self.vnm = ValidatorNetworkManager(cfg=defaultValidatorConfig.copy())
def test_intkey_load_lottery(self): cfg = defaultValidatorConfig.copy() cfg['LedgerType'] = 'lottery' self._run_int_load(cfg, 5, "TestSmokeResultsLottery")
def test_validator_shutdown_ext(self): urls = [] validators = [] vnm = None try: print "Launching validator network." vnm_config = defaultValidatorConfig.copy() vnm = ValidatorNetworkManager(http_port=9000, udp_port=9100, cfg=vnm_config) firstwavevalidators = vnm.launch_network(5) urls = vnm.urls() for i in range(0, len(urls)): validators.append(vnm.validator(i)) keys = 10 rounds = 2 txn_intv = 0 print "Testing transaction load." test = IntKeyLoadTest() test.setup(urls, keys) test.validate() test.run(keys, rounds, txn_intv) validator_to_be_removed = 4 print ("shutting down validator ", validator_to_be_removed) vnm.validator_shutdown(validator_to_be_removed, force=True, term=False, archive=None ) print "sending more txns after SIGKILL" urls.pop(validator_to_be_removed) test.setup(urls, keys) test.validate() test.run(keys, rounds, txn_intv) validator_to_be_removed = 2 print "now validator shutdown w/ SIGINT" print ("shutdown(SIGINT) of validator ", validator_to_be_removed) vnm.validator_shutdown(validator_to_be_removed, force=False, term=False, archive=None ) print "sending more txns after SIGINT" urls = [] urls = vnm.urls() test.setup(urls, keys) test.validate() test.run(keys, rounds, txn_intv) validator_to_be_removed = len(vnm.urls()) - 1 print ("shutdown(SIGTERM) of validator ", validator_to_be_removed) vnm.validator_shutdown(validator_to_be_removed, force=False, term=True, archive=None ) print "sending more txns after SIGTERM" urls.pop(validator_to_be_removed) test.setup(urls, keys) test.validate() test.run(keys, rounds, txn_intv) vnm.shutdown() except Exception as e: print "Exception encountered in test case." traceback.print_exc() if vnm: vnm.shutdown() vnm.create_result_archive("TestValidatorShutdown.tar.gz") print "Validator data and logs preserved in: " \ "TestValidatorShutdown.tar.gz" raise e