Feature: performance test case
This commit is contained in:
@@ -31,6 +31,8 @@ struct dns_decoder_test_plugin_env
|
||||
int topic_id;
|
||||
int result_index;
|
||||
int commit_result_enable;
|
||||
int write_result_enable;
|
||||
int decode_resource_record_enable;
|
||||
};
|
||||
|
||||
extern "C" int commit_test_result_json(cJSON *node, const char *name);
|
||||
@@ -304,25 +306,28 @@ void dns_decoder_test_message_cb(struct session *ss, int topic_id, const void *m
|
||||
cJSON_AddNumberToObject(real_result, "dns_rd", (double)(flag->rd));
|
||||
}
|
||||
|
||||
cJSON *rr_object=cJSON_CreateObject();
|
||||
uint16_t n_answer_rr=0;
|
||||
struct dns_resource_record *answer_rr=NULL;
|
||||
dns_message_answer_resource_record_get0(dns_msg, &answer_rr, &n_answer_rr);
|
||||
if(plugin_env->decode_resource_record_enable==1)
|
||||
{
|
||||
cJSON *rr_object=cJSON_CreateObject();
|
||||
uint16_t n_answer_rr=0;
|
||||
struct dns_resource_record *answer_rr=NULL;
|
||||
dns_message_answer_resource_record_get0(dns_msg, &answer_rr, &n_answer_rr);
|
||||
|
||||
uint16_t n_authority_rr=0;
|
||||
struct dns_resource_record *authority_rr=NULL;
|
||||
dns_message_authority_resource_record_get0(dns_msg, &authority_rr, &n_authority_rr);
|
||||
uint16_t n_authority_rr=0;
|
||||
struct dns_resource_record *authority_rr=NULL;
|
||||
dns_message_authority_resource_record_get0(dns_msg, &authority_rr, &n_authority_rr);
|
||||
|
||||
uint16_t n_additional_rr=0;
|
||||
struct dns_resource_record *additional_rr=NULL;
|
||||
dns_message_additional_resource_record_get0(dns_msg, &additional_rr, &n_additional_rr);
|
||||
uint16_t n_additional_rr=0;
|
||||
struct dns_resource_record *additional_rr=NULL;
|
||||
dns_message_additional_resource_record_get0(dns_msg, &additional_rr, &n_additional_rr);
|
||||
|
||||
int dns_sec=1;
|
||||
dns_resource_record_json_exporter(rr_object, answer_rr, n_answer_rr, "answer", &dns_sec);
|
||||
dns_resource_record_json_exporter(rr_object, authority_rr, n_authority_rr, "authority", &dns_sec);
|
||||
dns_resource_record_json_exporter(rr_object, additional_rr, n_additional_rr, "additional", &dns_sec);
|
||||
int dns_sec=1;
|
||||
dns_resource_record_json_exporter(rr_object, answer_rr, n_answer_rr, "answer", &dns_sec);
|
||||
dns_resource_record_json_exporter(rr_object, authority_rr, n_authority_rr, "authority", &dns_sec);
|
||||
dns_resource_record_json_exporter(rr_object, additional_rr, n_additional_rr, "additional", &dns_sec);
|
||||
|
||||
cJSON_AddItemToObject(real_result, "rr", rr_object);
|
||||
cJSON_AddItemToObject(real_result, "rr", rr_object);
|
||||
}
|
||||
|
||||
char result_name[16]="";
|
||||
sprintf(result_name, "DNS_RESULT_%d", plugin_env->result_index++);
|
||||
@@ -351,7 +356,6 @@ void dns_decoder_test_per_session_context_free(struct session *sess, void *sessi
|
||||
|
||||
}
|
||||
|
||||
|
||||
int32_t dns_decoder_test_config_load(const char *cfg_path, struct dns_decoder_test_plugin_env *plugin_env)
|
||||
{
|
||||
FILE *fp=fopen(cfg_path, "r");
|
||||
@@ -412,7 +416,53 @@ int32_t dns_decoder_test_config_load(const char *cfg_path, struct dns_decoder_te
|
||||
plugin_env->commit_result_enable=1;
|
||||
fprintf(stderr, "[%s:%d] config file: %s key: [decoder.dns.test.commit_result_enable] value is not yes or no", __FUNCTION__, __LINE__, cfg_path);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
toml_datum_t write_result_enable_val=toml_string_in(test_tbl, "write_result_enable");
|
||||
if(write_result_enable_val.ok==0)
|
||||
{
|
||||
plugin_env->write_result_enable=0;
|
||||
fprintf(stderr, "[%s:%d] config file: %s has no key: [decoder.dns.test.write_result_enable]", __FUNCTION__, __LINE__, cfg_path);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(memcmp("no", write_result_enable_val.u.s, strlen("no"))==0)
|
||||
{
|
||||
plugin_env->write_result_enable=0;
|
||||
}
|
||||
else if(memcmp("yes", write_result_enable_val.u.s, strlen("yes"))==0)
|
||||
{
|
||||
plugin_env->write_result_enable=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin_env->write_result_enable=1;
|
||||
fprintf(stderr, "[%s:%d] config file: %s key: [decoder.dns.test.write_result_enable] value is not yes or no", __FUNCTION__, __LINE__, cfg_path);
|
||||
}
|
||||
}
|
||||
|
||||
// decode_resource_record_enable
|
||||
toml_datum_t decode_resource_record_enable_val=toml_string_in(test_tbl, "decode_resource_record_enable");
|
||||
if(decode_resource_record_enable_val.ok==0)
|
||||
{
|
||||
plugin_env->decode_resource_record_enable=0;
|
||||
fprintf(stderr, "[%s:%d] config file: %s has no key: [decoder.dns.test.decode_resource_record_enable]", __FUNCTION__, __LINE__, cfg_path);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(memcmp("no", decode_resource_record_enable_val.u.s, strlen("no"))==0)
|
||||
{
|
||||
plugin_env->decode_resource_record_enable=0;
|
||||
}
|
||||
else if(memcmp("yes", decode_resource_record_enable_val.u.s, strlen("yes"))==0)
|
||||
{
|
||||
plugin_env->decode_resource_record_enable=1;
|
||||
}
|
||||
else
|
||||
{
|
||||
plugin_env->decode_resource_record_enable=1;
|
||||
fprintf(stderr, "[%s:%d] config file: %s key: [decoder.dns.test.decode_resource_record_enable] value is not yes or no", __FUNCTION__, __LINE__, cfg_path);
|
||||
}
|
||||
}
|
||||
|
||||
toml_free(root);
|
||||
|
||||
Reference in New Issue
Block a user