[ https://issues.apache.org/jira/browse/KAFKA-440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Fung updated KAFKA-440: ---------------------------- Attachment: kafka-440-v6.patch Uploaded kafka-440-v6.patch with the following changes: 1. Updated README.txt 2. The class KafkaTestcaseEnv is eliminated such that a generic class TestcaseEnv is used. The idea is that all product specific environment variables can be added to TestcaseEnv.userDefinedEnvVarDict which will be recycled on each testcase. Therefore, this class will be product independent. 3. Different entity log will go to the corresponding log directory such as logs/broker-1 or logs/producer_performance-4, ... etc 4. At the starting of the test, the test framework will validate the kafka_home and java_home specified in each host specified in cluster_config.json to make sure that the user has already updated their environment accordingly. Otherwise, it prints out error message and aborts the test. 5. At the end of the test, "kafka_system_test_utils.stop_remote_entity" will be called to terminate the running processes. This patch also cover the situation: * when user presses "Ctrl-C" * when runtime exception occurs. > Create a regression test framework for distributed environment testing > ---------------------------------------------------------------------- > > Key: KAFKA-440 > URL: https://issues.apache.org/jira/browse/KAFKA-440 > Project: Kafka > Issue Type: Task > Reporter: John Fung > Assignee: John Fung > Labels: replication-testing > Fix For: 0.8 > > Attachments: kafka-440-v1.patch, kafka-440-v2.patch, > kafka-440-v3.patch, kafka-440-v5.patch, kafka-440-v6.patch > > > Initial requirements: > 1. The whole test framework is preferably coded in Python (a common scripting > language which has well supported features) > 2. Test framework driver should be generic (distributed environment can be > local host) > 3. Test framework related configurations are defined in JSON format > 4. Test environment, suite, case definitions may be defined in the following > levels: > 4-a entity_id is used as a key for looking up related config from different > levels > 4-b Cluster level defines: entity_id, hostname, kafka_home, java_home, ... > 4-c Test suite / case level defines: > 4-c-1 zookeeper: entity_id, clientPort, dataDir, log_filename, > config_filename > 4-c-2 broker: entity_id, port, log.file.size, log.dir, log_filename, > config_filename > 4-c-3 producer: entity_id, topic, threads, compression-codec, > message-size, log_filename, config_filename -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira