#include "../testsuite.h"
+/*
+ This tests creates a new package and sets various attributes and reads them back again.
+*/
static int test_create(const struct test* t) {
struct pakfire_package* pkg = NULL;
int r = EXIT_FAILURE;
- ASSERT_SUCCESS(pakfire_package_create(&pkg, t->pakfire, NULL, "test", "1.0-1", "src"));
+ ASSERT_SUCCESS(pakfire_package_create(&pkg, t->pakfire, NULL, "test", "1.0-1", "x86_64"));
ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_NAME), "test");
ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_EVR), "1.0-1");
- ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_ARCH), "src");
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_ARCH), "x86_64");
+
+ // NEVRA
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_NEVRA), "test-1.0-1.x86_64");
+
+ // UUID
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_UUID, "7a7cb0e3-d4c7-4bf8-85ef-8e4faa22c128"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_UUID), "7a7cb0e3-d4c7-4bf8-85ef-8e4faa22c128");
// Summary
ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_SUMMARY, "SUMMARY"));
ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_SUMMARY), "SUMMARY");
+ // Description
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_DESCRIPTION, "DESCRIPTION"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_DESCRIPTION), "DESCRIPTION");
+
+ // License
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_LICENSE, "LICENSE"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_LICENSE), "LICENSE");
+
+ // URL
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_URL, "URL"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_URL), "URL");
+
+ // Groups
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_GROUPS, "GROUPS"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_GROUPS), "GROUPS");
+
+ // Vendor
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_VENDOR, "VENDOR"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_VENDOR), "VENDOR");
+
+ // Distro
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_DISTRO, "DISTRO"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_DISTRO), "DISTRO");
+
+ // Maintainer
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_MAINTAINER, "MAINTAINER"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_MAINTAINER), "MAINTAINER");
+
+ // Fetch path without setting it first
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_PATH),
+ "/var/cache/pakfire/test/1/x86_64/test-1.0-1.x86_64.pfm");
+
+ // Set Path
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_PATH, "/tmp/test-1.0-1.x86_64.pfm"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_PATH), "/tmp/test-1.0-1.x86_64.pfm");
+
+ // Set filename
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_FILENAME, "test-1.0-1.x86_64.pfm"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_FILENAME), "test-1.0-1.x86_64.pfm");
+
+ // Download Size
+ ASSERT_SUCCESS(pakfire_package_set_num(pkg, PAKFIRE_PKG_DOWNLOADSIZE, 123456));
+ ASSERT_EQUALS(pakfire_package_get_num(pkg, PAKFIRE_PKG_DOWNLOADSIZE, 0), 123456);
+
+ // Install Size
+ ASSERT_SUCCESS(pakfire_package_set_num(pkg, PAKFIRE_PKG_INSTALLSIZE, 123456));
+ ASSERT_EQUALS(pakfire_package_get_num(pkg, PAKFIRE_PKG_INSTALLSIZE, 0), 123456);
+
+ // Install Time
+ ASSERT_SUCCESS(pakfire_package_set_num(pkg, PAKFIRE_PKG_INSTALLTIME, 123456));
+ ASSERT_EQUALS(pakfire_package_get_num(pkg, PAKFIRE_PKG_INSTALLTIME, 0), 123456);
+
+ // Build Host
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_BUILD_HOST, "localhost"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_BUILD_HOST), "localhost");
+
+ // Build ID
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_BUILD_ID, "5220bb03-d5b6-41f7-be2f-c398b721a9ba"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_BUILD_ID), "5220bb03-d5b6-41f7-be2f-c398b721a9ba");
+
+ // Build Time
+ ASSERT_SUCCESS(pakfire_package_set_num(pkg, PAKFIRE_PKG_BUILD_TIME, 123456));
+ ASSERT_EQUALS(pakfire_package_get_num(pkg, PAKFIRE_PKG_BUILD_TIME, 0), 123456);
+
+ // Source Name
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_NAME, "test"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_NAME), "test");
+
+ // Source EVR
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_EVR, "1.0-1"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_EVR), "1.0-1");
+
+ // Source Arch
+ ASSERT_SUCCESS(pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_ARCH, "src"));
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_ARCH), "src");
+
+ // Fetch the source name
+ ASSERT_STRING_EQUALS(pakfire_package_get_string(pkg, PAKFIRE_PKG_SOURCE_PKG), "test-1.0-1.src");
+
+ // We cannot set the source package name
+ ASSERT_ERRNO(pakfire_package_set_string(pkg, PAKFIRE_PKG_SOURCE_PKG, "XXX"), EINVAL);
+
// Everything passed
r = EXIT_SUCCESS;