Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/rpm-software-management/createrepo_c.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAleš Matěj <amatej@redhat.com>2019-06-07 14:26:41 +0300
committerNeal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>2019-06-13 00:56:27 +0300
commitf78b4454b132736c7982a4cf2916a318ed24e3a3 (patch)
tree4143afaf19096174bace41a98604315378cf0d23 /tests
parent317ded66bb94e6d3dc80bde6c22c5a2cec8f897d (diff)
Add tests for checking if package contains forbidden control chars
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures.h107
-rw-r--r--tests/test_koji.c20
-rw-r--r--tests/test_sqlite.c95
-rw-r--r--tests/test_xml_dump.c81
-rw-r--r--tests/test_xml_dump_primary.c107
5 files changed, 187 insertions, 223 deletions
diff --git a/tests/fixtures.h b/tests/fixtures.h
index 594812b..35d0844 100644
--- a/tests/fixtures.h
+++ b/tests/fixtures.h
@@ -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
diff --git a/tests/test_koji.c b/tests/test_koji.c
index 1aca6b6..a343818 100644
--- a/tests/test_koji.c
+++ b/tests/test_koji.c
@@ -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
diff --git a/tests/test_sqlite.c b/tests/test_sqlite.c
index dba115f..921961a 100644
--- a/tests/test_sqlite.c
+++ b/tests/test_sqlite.c
@@ -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)
diff --git a/tests/test_xml_dump.c b/tests/test_xml_dump.c
index fdfcbf7..c31bb9f 100644
--- a/tests/test_xml_dump.c
+++ b/tests/test_xml_dump.c
@@ -28,6 +28,71 @@ 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[])
{
@@ -35,8 +100,22 @@ main(int argc, char *argv[])
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();
}
diff --git a/tests/test_xml_dump_primary.c b/tests/test_xml_dump_primary.c
index 9bfc4e1..1e4d9b1 100644
--- a/tests/test_xml_dump_primary.c
+++ b/tests/test_xml_dump_primary.c
@@ -4,118 +4,11 @@
#include "fixtures.h"
#include "createrepo/error.h"
#include "createrepo/load_metadata.h"
-#include "createrepo/package.h"
#include "createrepo/misc.h"
#include "createrepo/xml_dump_primary.c"
#define IF_NULL_EMPTY(x) (x) ? x : ""
-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;
-}
-
-
xmlNodePtr cmp_package_files_and_xml(GSList *files, xmlNodePtr current, int only_primary_files)
{
if (!current || !files) {