Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
  }
}
Ejemplo n.º 3
0
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);
  }
}
Ejemplo n.º 4
0
/**
 * \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);
  }
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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, &params->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, &params->second);
  FO_ASSERT_STRING_EQUAL(job_status_strings[job->status], "JOB_NOT_AVAILABLE");
 
  g_free(params);
  scheduler_destroy(scheduler);
}
Ejemplo n.º 7
0
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);
  }
}
Ejemplo n.º 8
0
/**
 * \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);
}
Ejemplo n.º 9
0
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);
}
Ejemplo n.º 10
0
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);
}
Ejemplo n.º 11
0
/**
 * \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);
  }
}
Ejemplo n.º 12
0
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);
}