9 #include "CUnit/CUnit.h"
31 memset(
SQL,
'\0',MAXSQL);
32 snprintf(
SQL,MAXSQL,
"BEGIN;");
36 printf(
"Perpare pfile information ERROR!\n");
43 memset(
SQL,
'\0',MAXSQL);
44 snprintf(
SQL,MAXSQL,
"INSERT INTO mimetype (mimetype_name) VALUES ('application/x-rpm');");
48 printf(
"Perpare mimetype information ERROR!\n");
53 memset(
SQL,
'\0',MAXSQL);
54 snprintf(
SQL,MAXSQL,
"INSERT INTO mimetype (mimetype_name) VALUES ('application/x-debian-package');");
58 printf(
"Perpare mimetype information ERROR!\n");
63 memset(
SQL,
'\0',MAXSQL);
64 snprintf(
SQL,MAXSQL,
"INSERT INTO mimetype (mimetype_name) VALUES ('application/x-debian-source');");
68 printf(
"Perpare mimetype information ERROR!\n");
73 memset(
SQL,
'\0',MAXSQL);
74 snprintf(
SQL,MAXSQL,
"INSERT INTO mimetype (mimetype_name) VALUES ('application/vnd.debian.binary-package');");
78 printf(
"Perpare modern debian mimetype information ERROR!\n");
85 memset(
SQL,
'\0',MAXSQL);
86 snprintf(
SQL,MAXSQL,
"INSERT INTO pfile (pfile_sha1,pfile_md5,pfile_size) VALUES ('%.40s','%.32s','%s');",
87 "AF1DF2C4B32E4115DB5F272D9EFD0E674CF2A0BC",
"2239AA7DAC291B6F8D0A56396B1B8530",
"4560");
91 printf(
"Perpare pfile information ERROR!\n");
97 memset(
SQL,
'\0',MAXSQL);
98 snprintf(
SQL,MAXSQL,
"INSERT INTO pfile (pfile_sha1,pfile_md5,pfile_size) VALUES ('%.40s','%.32s','%s');",
99 "F1D2319DF20ABC4CEB02CA5A3C2021BD87B26810",
"87972FC55E2CDD2609ED85051BE50BAF",
"722");
103 printf(
"Perpare pfile information ERROR!\n");
110 memset(
SQL,
'\0',MAXSQL);
111 snprintf(
SQL,MAXSQL,
"SELECT pfile_pk FROM pfile WHERE pfile_sha1 = '%.40s' AND pfile_md5 = '%.32s' AND pfile_size = '%s';",
112 "AF1DF2C4B32E4115DB5F272D9EFD0E674CF2A0BC",
"2239AA7DAC291B6F8D0A56396B1B8530",
"4560");
116 printf(
"Get pfile information ERROR!\n");
120 pi->
pFileFk = atoi(PQgetvalue(result, 0, 0));
124 memset(
SQL,
'\0',MAXSQL);
125 snprintf(
SQL,MAXSQL,
"SELECT pfile_pk FROM pfile WHERE pfile_sha1 = '%.40s' AND pfile_md5 = '%.32s' AND pfile_size = '%s';",
126 "F1D2319DF20ABC4CEB02CA5A3C2021BD87B26810",
"87972FC55E2CDD2609ED85051BE50BAF",
"722");
130 printf(
"Get pfile information ERROR!\n");
134 control_pfilepk = atoi(PQgetvalue(result, 0, 0));
138 memset(
SQL,
'\0',MAXSQL);
139 snprintf(
SQL,MAXSQL,
"INSERT INTO upload (upload_filename,upload_mode,upload_ts,pfile_fk) VALUES ('%s',40,now(),%ld);",
140 "fossology-web_1.4.1_all.deb", pi->
pFileFk);
144 printf(
"Perpare pfile information ERROR!\n");
149 memset(
SQL,
'\0',MAXSQL);
150 snprintf(
SQL,MAXSQL,
"SELECT upload_pk FROM upload WHERE pfile_fk = '%ld';",
155 printf(
"Get pfile information ERROR!\n");
159 upload_pk = atoi(PQgetvalue(result, 0, 0));
163 memset(
SQL,
'\0',MAXSQL);
164 snprintf(
SQL,MAXSQL,
"INSERT INTO uploadtree_a (upload_fk,pfile_fk,lft,rgt,ufile_name) VALUES (%ld,%ld,1,48,'fossology-web_1.4.1_all.deb');",
169 printf(
"Perpare pfile information ERROR!\n");
175 memset(
SQL,
'\0',MAXSQL);
176 snprintf(
SQL,MAXSQL,
"INSERT INTO uploadtree_a (upload_fk,pfile_fk,lft,rgt,ufile_name) VALUES (%ld,%ld,9,10,'control');",
181 printf(
"Perpare pfile information ERROR!\n");
187 memset(
SQL,
'\0',MAXSQL);
188 snprintf(
SQL,MAXSQL,
"COMMIT;");
192 printf(
"Perpare pfile information ERROR!\n");
207 char *Source =
"./testdata/control";
208 char *
Pfile =
"F1D2319DF20ABC4CEB02CA5A3C2021BD87B26810.87972FC55E2CDD2609ED85051BE50BAF.722";
213 printf(
"Failed to import %s\n", Source);
232 memset(
SQL,
'\0',MAXSQL);
233 snprintf(
SQL,MAXSQL,
"BEGIN;");
237 printf(
"Remove pfile database information ERROR!\n");
243 memset(
SQL,
'\0',MAXSQL);
244 snprintf(
SQL,MAXSQL,
"DELETE FROM mimetype;");
248 printf(
"Remove mimetype information ERROR!\n");
254 memset(
SQL,
'\0',MAXSQL);
255 snprintf(
SQL,MAXSQL,
"DELETE FROM uploadtree_a WHERE upload_fk = %ld;",
upload_pk);
259 printf(
"Remove pfile database information ERROR!\n");
265 memset(
SQL,
'\0',MAXSQL);
266 snprintf(
SQL,MAXSQL,
"DELETE FROM upload WHERE upload_pk = %ld;",
upload_pk);
270 printf(
"Remove pfile database information ERROR!\n");
276 memset(
SQL,
'\0',MAXSQL);
277 snprintf(
SQL,MAXSQL,
"DELETE FROM pfile WHERE pfile_pk = %ld;", pi->
pFileFk);
281 printf(
"Remove pfile database information ERROR!\n");
287 memset(
SQL,
'\0',MAXSQL);
288 snprintf(
SQL,MAXSQL,
"DELETE FROM pfile WHERE pfile_sha1 = '%.40s' AND pfile_md5 = '%.32s' AND pfile_size = '%s';",
"F1D2319DF20ABC4CEB02CA5A3C2021BD87B26810",
"87972FC55E2CDD2609ED85051BE50BAF",
"722");
292 printf(
"Remove pfile database 'control' ERROR!\n");
298 memset(
SQL,
'\0',MAXSQL);
299 snprintf(
SQL,MAXSQL,
"COMMIT;");
303 printf(
"Perpare pfile information ERROR!\n");
318 char *
Pfile =
"F1D2319DF20ABC4CEB02CA5A3C2021BD87B26810.87972FC55E2CDD2609ED85051BE50BAF.722";
323 printf(
"Failed to remove %s\n",
Pfile);
347 int predictValue = 0;
354 CU_FAIL_FATAL(
"Prepare database data ERROR!");
359 CU_FAIL_FATAL(
"Prepare repository data ERROR!");
367 CU_ASSERT_STRING_EQUAL(pi->
pkgName,
"fossology-web");
368 CU_ASSERT_STRING_EQUAL(pi->
pkgArch,
"all");
369 CU_ASSERT_STRING_EQUAL(pi->
version,
"1.4.1");
370 CU_ASSERT_STRING_EQUAL(pi->
section,
"utils");
371 CU_ASSERT_STRING_EQUAL(pi->
priority,
"extra");
372 CU_ASSERT_STRING_EQUAL(pi->
maintainer,
"Matt Taggart <taggart@debian.org>");
373 CU_ASSERT_STRING_EQUAL(pi->
homepage,
"http://fossology.org");
376 CU_ASSERT_EQUAL(
Result, predictValue);
380 CU_FAIL_FATAL(
"Remove database data ERROR!");
382 CU_FAIL_FATAL(
"Remove repository data ERROR!");
408 int predictValue = -1;
415 CU_ASSERT_EQUAL(
Result, predictValue);
442 int predictValue = 0;
451 CU_FAIL_FATAL(
"Prepare database data ERROR!");
456 CU_FAIL_FATAL(
"Prepare repository data ERROR!");
461 printf(
"ProcessUpload Result is:%d\n",
Result);
463 CU_ASSERT_EQUAL(
Result, predictValue);
467 CU_FAIL_FATAL(
"Remove database data ERROR!");
469 CU_FAIL_FATAL(
"Remove repository data ERROR!");
char SQL[256]
SQL query to execute.
FUNCTION int ProcessUpload(int upload_pk, int agent_fk)
Process a single upload - read the first 32 bytes in each file.
char * Pfile
Pfile name (SHA1.MD5.Size)
PGconn * fo_dbconnect(char *DBConfFile, char **ErrorBuf)
Connect to a database. The default is Db.conf.
int fo_checkPQresult(PGconn *pgConn, PGresult *result, char *sql, char *FileID, int LineNumb)
Check the result status of a postgres SELECT.
int fo_checkPQcommand(PGconn *pgConn, PGresult *result, char *sql, char *FileID, int LineNumb)
Check the result status of a postgres commands (not select) If an error occured, write the error to s...
int fo_RepImport(char *Source, char *Type, char *Filename, int Link)
Import a file into the repository.
int fo_RepExist(char *Type, char *Filename)
Determine if a file exists.
int fo_RepRemove(char *Type, char *Filename)
Delete a repository file.
PGconn * db_conn
The connection to Database.
int GetMetadataDebBinary(long upload_pk, struct debpkginfo *pi)
Get debian binary package info.
Holds meta info of Debian packages.
char section[MAXCMD]
Package section.
char priority[MAXCMD]
Package priority.
long pFileFk
Package pfile in FOSSology.
char ** depends
Package dependency list.
char version[MAXCMD]
Package version.
char maintainer[MAXCMD]
Package maintainer.
char pkgArch[MAXCMD]
Package architecture.
int dep_size
Package dependency list size.
char pkgName[MAXCMD]
Package name.
char homepage[MAXCMD]
Package link.
static int Result
Result of calls.