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_guess_encodingLatin1() { char* buffer = "a latin1 \xdf\x0a"; // ß gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer)); CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding); #ifdef HAVE_CHARDET FO_ASSERT_STRING_EQUAL(guessedEncoding, "windows-1252"); #else FO_ASSERT_STRING_EQUAL(guessedEncoding, "iso-8859-1"); #endif if (guessedEncoding) { g_free(guessedEncoding); } }
void test_guess_encodingUtf8() { char* buffer = "an utf8 ß"; gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer)); CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding); #ifdef HAVE_CHARDET FO_ASSERT_STRING_EQUAL(guessedEncoding, "UTF-8"); #else FO_ASSERT_STRING_EQUAL(guessedEncoding, "utf-8"); #endif if (guessedEncoding) { g_free(guessedEncoding); } }
/** * \brief test function SumComputeFile * \test * -# Compute checksum of a known file using SumComputeFile() * -# Compare if the function result correct checksum */ void testSumComputeFile() { Cksum *SumTest; FILE *Fin; Filename = "../testdata/test.zip"; char Fuid[1024]; int i; memset(Fuid,0,sizeof(Fuid)); Fin = fopen(Filename,"rb"); if (Fin) { SumTest = SumComputeFile(Fin); if (SumTest) { for(i=0; i<20; i++) { sprintf(Fuid+0+i*2,"%02X",SumTest->SHA1digest[i]); } Fuid[40]='.'; for(i=0; i<16; i++) { sprintf(Fuid+41+i*2,"%02X",SumTest->MD5digest[i]); } Fuid[73]='.'; snprintf(Fuid+74,sizeof(Fuid)-74,"%Lu",(long long unsigned int)SumTest->DataLen); //printf("%s +++++++++\n",Fuid); FO_ASSERT_STRING_EQUAL(Fuid, "5CBBD4E0487601E9160A5C887E5C0C1E6541B3DE.5234FC4D5F9786A51B2206B9DEEACA68.825"); FO_ASSERT_EQUAL((int)SumTest->DataLen, 825); free(SumTest); } fclose(Fin); } }
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_database_update_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"); database_update_job(scheduler, job, JB_PAUSED); //job = g_tree_lookup(scheduler->job_list, ¶ms->second); FO_ASSERT_STRING_EQUAL(job_status_strings[job->status], "JOB_NOT_AVAILABLE"); g_free(params); scheduler_destroy(scheduler); }
void test_guess_encoding() { char* buffer = "an ascii text"; gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer)); #ifdef HAVE_CHARDET CU_ASSERT_PTR_NULL(guessedEncoding); #else CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding); FO_ASSERT_STRING_EQUAL(guessedEncoding, "us-ascii"); #endif if (guessedEncoding) { g_free(guessedEncoding); } }
/** * \brief function PathCheck * \test * -# Create a string with `%H`, `%R` and `%U` * -# Call PathCheck() and check if place holders are replaced */ void testPathCheck() { char *DirPath = "%H%R/!%U"; char *NewPath = NULL; char HostName[1024]; char TmpPath[1024]; char *subs; NewPath = PathCheck(DirPath); subs = strstr(NewPath, "!"); gethostname(HostName, sizeof(HostName)); snprintf(TmpPath, sizeof(TmpPath), "%s%s%s%s", HostName,fo_config_get(sysconfig, "FOSSOLOGY", "path", NULL),"/", subs); FO_ASSERT_STRING_EQUAL(NewPath, TmpPath); }
void test_event_init() { scheduler_t* scheduler; scheduler = scheduler_init(testdb, NULL); scheduler_foss_config(scheduler); event_t* e; sample_args = &call_num; e = event_init(sample_event, sample_args, "sample", s_name, s_line); FO_ASSERT_PTR_EQUAL( e->func, sample_event); FO_ASSERT_PTR_EQUAL( e->argument, sample_args); FO_ASSERT_STRING_EQUAL(e->name, "sample"); g_free(e); scheduler_destroy(scheduler); }
void test_event_loop_put() { scheduler_t* scheduler; scheduler = scheduler_init(testdb, NULL); scheduler_foss_config(scheduler); event_t* e; sample_args = &call_num; event_signal(sample_event, sample_args); e = g_async_queue_pop(event_loop_get()->queue); FO_ASSERT_PTR_EQUAL( e->func, sample_event); FO_ASSERT_PTR_EQUAL( e->argument, sample_args); FO_ASSERT_STRING_EQUAL(e->name, "sample_event"); event_loop_put(event_loop_get(),e); scheduler_destroy(scheduler); }
/** * \brief test function SumToString * \test * -# Get a result from SumComputeFile() * -# Call SumToString() on the result * -# Check if the function translated the structure to a string */ void testSumToString() { Cksum *SumTest; FILE *Fin; Filename = "../testdata/test.zip"; char *Fuid = NULL; Fin = fopen(Filename,"rb"); if (Fin) { SumTest = SumComputeFile(Fin); if (SumTest) { Fuid = SumToString(SumTest); FO_ASSERT_STRING_EQUAL(Fuid, "5CBBD4E0487601E9160A5C887E5C0C1E6541B3DE.5234FC4D5F9786A51B2206B9DEEACA68.825"); free(SumTest); } fclose(Fin); } }
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); }