void test_database_init() { scheduler_t* scheduler; PGresult* db_result; GString* sql; scheduler = scheduler_init(testdb, NULL); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); sprintf(sqltmp, check_scheduler_tables, PQdb(scheduler->db_conn)); sql = g_string_new(sqltmp); g_string_append(sql, "'users';"); /* get the url for the fossology instance */ db_result = database_exec(scheduler, sql->str); //printf("sql: %s\n", sql->str); // TODO skip this test since the order reported here is random, also it will crash if PQntuples < 5 #if 0 if(PQresultStatus(db_result) == PGRES_TUPLES_OK && PQntuples(db_result) != 0) { //printf("result: %s\n", g_strdup(PQgetvalue(db_result, 0, 0))); FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 0, 0)), "user_pk"); FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 1, 0)), "user_name"); FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 2, 0)), "root_folder_fk"); FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 3, 0)), "user_desc"); FO_ASSERT_STRING_EQUAL(g_strdup(PQgetvalue(db_result, 4, 0)), "user_seed"); } #endif PQclear(db_result); g_string_free(sql, TRUE); scheduler_destroy(scheduler); }
void test_database_update_event() { scheduler_t* scheduler; char sql[512]; PGresult* db_result; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); Prepare_Testing_Data(scheduler); database_update_event(scheduler, NULL); sprintf(sql, "SELECT * FROM job;"); db_result = database_exec(scheduler, sql); //printf("result: %s", PQget(db_result, 0, "job_name")); if(PQresultStatus(db_result) == PGRES_TUPLES_OK && PQntuples(db_result) != 0) { FO_ASSERT_STRING_EQUAL(PQget(db_result, 0, "job_name"), "testing file"); FO_ASSERT_EQUAL(atoi(PQget(db_result, 0, "job_user_fk")), 1); } PQclear(db_result); database_reset_queue(scheduler); scheduler_destroy(scheduler); }
void test_scheduler_sig_handle() { scheduler_t* scheduler; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); scheduler_sig_handle(1); scheduler_signal(scheduler); scheduler_destroy(scheduler); }
void test_cvector_init() { cvector vec; /* start the test */ /* start the tests */ cvector_init(&vec, NULL); FO_ASSERT_EQUAL(vec->size, 0); FO_ASSERT_EQUAL(vec->capacity, 1); FO_ASSERT_PTR_NULL(vec->memory); FO_ASSERT_PTR_NOT_NULL(vec->data); cvector_destroy(vec); }
void test_event_loop_get() { FO_ASSERT_FALSE(el_created); void* vl_addr = &vl_singleton; event_loop_t* vl = event_loop_get(); FO_ASSERT_PTR_EQUAL(vl, vl_addr); FO_ASSERT_TRUE(el_created); FO_ASSERT_PTR_NOT_NULL(vl->queue); FO_ASSERT_FALSE(vl->occupied); FO_ASSERT_FALSE(vl->terminated); event_loop_t* ol = event_loop_get(); FO_ASSERT_PTR_EQUAL(ol, vl_addr); FO_ASSERT_PTR_EQUAL(vl, ol); }
void test_database_exec_event() { scheduler_t* scheduler; GString* sql; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); sprintf(sqltmp, check_scheduler_tables, PQdb(scheduler->db_conn)); sql = g_string_new(sqltmp); g_string_append(sql, "'user';"); database_exec_event(scheduler, sql->str); scheduler_destroy(scheduler); }
void test_scheduler_daemonize() { scheduler_t* scheduler; int res = 0; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); //res = scheduler_daemonize(scheduler); FO_ASSERT_EQUAL(res, 0); res = kill_scheduler(1); FO_ASSERT_EQUAL(res, -1); scheduler_destroy(scheduler); }
void test_scheduler_clear_config() { scheduler_t* scheduler; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); scheduler_clear_config(scheduler); FO_ASSERT_PTR_NULL(scheduler->db_conn); FO_ASSERT_PTR_NULL(scheduler->host_queue); FO_ASSERT_PTR_NULL(scheduler->host_url); FO_ASSERT_PTR_NULL(scheduler->email_subject); FO_ASSERT_PTR_NULL(scheduler->sysconfig); scheduler_destroy(scheduler); }
void test_database_job() { scheduler_t* scheduler; job_t* job; arg_int* params; int jq_pk; job_t tmp_job; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); jq_pk = Prepare_Testing_Data(scheduler); params = g_new0(arg_int, 1); params->second = jq_pk; params->first = g_tree_lookup(scheduler->job_list, ¶ms->second); job = params->first; if(params->first == NULL) { tmp_job.id = params->second; tmp_job.status = JB_NOT_AVAILABLE; tmp_job.running_agents = NULL; tmp_job.message = NULL; job = &tmp_job; } FO_ASSERT_STRING_EQUAL(job_status_strings[job->status], "JOB_NOT_AVAILABLE"); printf("jq: %d\n", jq_pk); database_job_processed(jq_pk, 2); database_job_log(jq_pk, "test log"); database_job_priority(scheduler, job, 1); g_free(params); scheduler_destroy(scheduler); }
void test_email_notify() { scheduler_t* scheduler; job_t* job; int jq_pk; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); email_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); jq_pk = Prepare_Testing_Data(scheduler); job = job_init(scheduler->job_list, scheduler->job_queue, "ununpack", "localhost", -1, 0, 0, 0, 0, NULL); job->id = jq_pk; database_update_job(scheduler, job, JB_FAILED); FO_ASSERT_STRING_EQUAL(job_status_strings[job->status], "JOB_CHECKEDOUT"); scheduler_destroy(scheduler); }