Skip to content

Commit

Permalink
Add tests for checking if package contains forbidden control chars
Browse files Browse the repository at this point in the history
  • Loading branch information
kontura authored and Conan-Kudo committed Jun 12, 2019
1 parent 317ded6 commit f78b445
Show file tree
Hide file tree
Showing 5 changed files with 187 additions and 223 deletions.
107 changes: 107 additions & 0 deletions tests/fixtures.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,4 +106,111 @@
#define TEST_UPDATEINFO_02 TEST_UPDATEINFO_FILES_PATH"updateinfo_02.xml.xz"
#define TEST_UPDATEINFO_03 TEST_UPDATEINFO_FILES_PATH"updateinfo_03.xml"

#include "createrepo/package.h"

cr_Package *
get_package()
{
cr_Package *p;
cr_Dependency *dep;
cr_PackageFile *file;

p = cr_package_new();
p->pkgId = "123456";
p->name = "foo";
p->arch = "x86_64";
p->version = "1.2.3";
p->epoch = "1";
p->release = "2";
p->summary = "foo package";
p->description = "super cool package";
p->url = "http://package.com";
p->time_file = 123456;
p->time_build = 234567;
p->rpm_license = "GPL";
p->rpm_vendor = NULL;
p->rpm_group = NULL;
p->rpm_buildhost = NULL;
p->rpm_sourcerpm = "foo.src.rpm";
p->rpm_header_start = 20;
p->rpm_header_end = 120;
p->rpm_packager = NULL;
p->size_package = 123;
p->size_installed = 20;
p->size_archive = 30;
p->location_href = "foo.rpm";
p->location_base = "/test/";
p->checksum_type = "sha256";

dep = cr_dependency_new();
dep->name = "foobar_provide";
dep->flags = NULL;
dep->pre = FALSE;
p->provides = (g_slist_prepend(p->provides, dep));

dep = cr_dependency_new();
dep->name = "foobar_dep";
dep->flags = NULL;
dep->pre = FALSE;
dep->epoch = "3";
p->requires = (g_slist_prepend(p->requires, dep));

dep = cr_dependency_new();
dep->name = "foobar_pre_dep";
dep->flags = "LE";
dep->epoch = "3";
dep->pre = TRUE;
p->requires = g_slist_prepend(p->requires, dep);

file = cr_package_file_new();
file->type = "";
file->path = "/bin/";
file->name = "foo";
p->files = g_slist_prepend(p->files, file);

file = cr_package_file_new();
file->type = "dir";
file->path = "/var/foo/";
file->name = NULL;
p->files = g_slist_prepend(p->files, file);

file = cr_package_file_new();
file->type = "dir";
file->path = "/var/foo/";
file->name = "baz";
p->files = g_slist_prepend(p->files, file);
return p;
}

cr_Package *
get_empty_package()
{
cr_Package *p;
cr_Dependency *dep;
cr_PackageFile *file;

p = cr_package_new();
p->name = "foo";

dep = cr_dependency_new();
dep->name = NULL;
dep->flags = NULL;
dep->pre = FALSE;
p->requires = (g_slist_prepend(p->requires, dep));

dep = cr_dependency_new();
dep->name = NULL;
dep->flags = NULL;
dep->pre = TRUE;
p->requires = g_slist_prepend(p->requires, dep);

file = cr_package_file_new();
file->type = NULL;
file->path = NULL;
file->name = NULL;
p->files = g_slist_prepend(p->files, file);

return p;
}

#endif
20 changes: 0 additions & 20 deletions tests/test_koji.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,6 @@
#include "createrepo/koji.h"
#include "createrepo/load_metadata.h"

cr_Package *
get_package()
{
cr_Package *p;
cr_Dependency *dep;
cr_PackageFile *file;

p = cr_package_new();
p->pkgId = "123456";
p->name = "foo";
p->arch = "x86_64";
p->version = "1.2.3";
p->epoch = "1";
p->release = "2";
p->summary = "foo package";
p->rpm_sourcerpm = "foo.src.rpm";

return p;
}

// Tests

static void
Expand Down
95 changes: 0 additions & 95 deletions tests/test_sqlite.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,101 +44,6 @@ typedef struct {
} TestData;


cr_Package *
get_package()
{
cr_Package *p;
cr_Dependency *dep;
cr_PackageFile *file;

p = cr_package_new();
p->pkgId = "123456";
p->name = "foo";
p->arch = "x86_64";
p->version = "1.2.3";
p->epoch = "1";
p->release = "2";
p->summary = "foo package";
p->description = "super cool package";
p->url = "http://package.com";
p->time_file = 123456;
p->time_build = 234567;
p->rpm_license = "GPL";
p->rpm_vendor = NULL;
p->rpm_group = NULL;
p->rpm_buildhost = NULL;
p->rpm_sourcerpm = "foo.src.rpm";
p->rpm_header_start = 20;
p->rpm_header_end = 120;
p->rpm_packager = NULL;
p->size_package = 123;
p->size_installed = 20;
p->size_archive = 30;
p->location_href = "foo.rpm";
p->location_base = NULL;
p->checksum_type = "sha256";

dep = cr_dependency_new();
dep->name = "foobar_dep";
dep->flags = NULL;
dep->pre = FALSE;
p->requires = (g_slist_prepend(p->requires, dep));

dep = cr_dependency_new();
dep->name = "foobar_pre_dep";
dep->flags = "LE";
dep->pre = TRUE;
p->requires = g_slist_prepend(p->requires, dep);

file = cr_package_file_new();
file->type = "";
file->path = "/bin/";
file->name = "foo";
p->files = g_slist_prepend(p->files, file);

file = cr_package_file_new();
file->type = "dir";
file->path = "/var/foo/";
file->name = NULL;
p->files = g_slist_prepend(p->files, file);

return p;
}



cr_Package *
get_empty_package()
{
cr_Package *p;
cr_Dependency *dep;
cr_PackageFile *file;

p = cr_package_new();
p->name = "foo";

dep = cr_dependency_new();
dep->name = NULL;
dep->flags = NULL;
dep->pre = FALSE;
p->requires = (g_slist_prepend(p->requires, dep));

dep = cr_dependency_new();
dep->name = NULL;
dep->flags = NULL;
dep->pre = TRUE;
p->requires = g_slist_prepend(p->requires, dep);

file = cr_package_file_new();
file->type = NULL;
file->path = NULL;
file->name = NULL;
p->files = g_slist_prepend(p->files, file);

return p;
}


static void
testdata_setup(TestData *testdata,
G_GNUC_UNUSED gconstpointer test_data)
Expand Down
81 changes: 80 additions & 1 deletion tests/test_xml_dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,94 @@ test_cr_prepend_protocol_01(void)
g_free(prepended_url);
}

static void
test_cr_Package_contains_forbidden_control_chars_01(void)
{
cr_Package *p = get_package();
g_assert(!cr_Package_contains_forbidden_control_chars(p));
}

static void
test_cr_Package_contains_forbidden_control_chars_02(void)
{
cr_Package *p = get_package();
p->name = "foo";

g_assert(cr_Package_contains_forbidden_control_chars(p));
}

static void
test_cr_Package_contains_forbidden_control_chars_03(void)
{
cr_Package *p = get_package();
p->summary = "foo";

g_assert(cr_Package_contains_forbidden_control_chars(p));
}

static void
test_cr_Package_contains_forbidden_control_chars_04(void)
{
cr_Package *p = get_package();
cr_Dependency *dep = p->requires->data;
dep->name = "foobar_dep";

g_assert(cr_Package_contains_forbidden_control_chars(p));
}

static void
test_cr_Package_contains_forbidden_control_chars_05(void)
{
cr_Package *p = get_package();
cr_PackageFile *file = p->files->data;
file->name = "obar_dep";

g_assert(cr_Package_contains_forbidden_control_chars(p));
}

static void
test_cr_GSList_of_cr_Dependency_contains_forbidden_control_chars_01(void)
{
cr_Package *p = get_package();
cr_Dependency *dep = p->requires->data;
dep->name = "foobar_dep";

g_assert(cr_GSList_of_cr_Dependency_contains_forbidden_control_chars(p->requires));
}

static void
test_cr_GSList_of_cr_Dependency_contains_forbidden_control_chars_02(void)
{
cr_Package *p = get_package();
cr_Dependency *dep = p->requires->data;
dep->name = "fo badep";

g_assert(!cr_GSList_of_cr_Dependency_contains_forbidden_control_chars(p->requires));
}

int
main(int argc, char *argv[])
{
g_test_init(&argc, &argv, NULL);

g_test_add_func("/xml_dump/test_cr_prepend_protocol_00",
test_cr_prepend_protocol_00);

g_test_add_func("/xml_dump/test_cr_prepend_protocol_01",
test_cr_prepend_protocol_01);

g_test_add_func("/xml_dump/test_cr_Package_contains_forbidden_control_chars_01",
test_cr_Package_contains_forbidden_control_chars_01);
g_test_add_func("/xml_dump/test_cr_Package_contains_forbidden_control_chars_02",
test_cr_Package_contains_forbidden_control_chars_02);
g_test_add_func("/xml_dump/test_cr_Package_contains_forbidden_control_chars_03",
test_cr_Package_contains_forbidden_control_chars_03);
g_test_add_func("/xml_dump/test_cr_Package_contains_forbidden_control_chars_04",
test_cr_Package_contains_forbidden_control_chars_04);
g_test_add_func("/xml_dump/test_cr_Package_contains_forbidden_control_chars_05",
test_cr_Package_contains_forbidden_control_chars_05);
g_test_add_func("/xml_dump/test_cr_GSList_of_cr_Dependency_contains_forbidden_control_chars_01",
test_cr_GSList_of_cr_Dependency_contains_forbidden_control_chars_01);
g_test_add_func("/xml_dump/test_cr_GSList_of_cr_Dependency_contains_forbidden_control_chars_02",
test_cr_GSList_of_cr_Dependency_contains_forbidden_control_chars_02);
return g_test_run();
}

0 comments on commit f78b445

Please sign in to comment.