Pushed
On 03.06.2013 12:45, Martin Milata wrote:
Signed-off-by: Martin Milata <mmilata(a)redhat.com>
---
lib/rpm.c | 8 +++++---
tests/rpm.at | 47 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/lib/rpm.c b/lib/rpm.c
index df027ff..eb18b61 100644
--- a/lib/rpm.c
+++ b/lib/rpm.c
@@ -260,9 +260,11 @@ sr_rpm_package_uniq(struct sr_rpm_package *packages)
loop = merged;
}
-
- prev = loop;
- loop = loop->next;
+ else
+ {
+ prev = loop;
+ loop = loop->next;
+ }
}
return packages;
diff --git a/tests/rpm.at b/tests/rpm.at
index dbcabf5..ce2302d 100644
--- a/tests/rpm.at
+++ b/tests/rpm.at
@@ -183,3 +183,50 @@ main(void)
return 0;
}
]])
+
+## -------------------- ##
+## sr_rpm_package_uniq3 ##
+## -------------------- ##
+AT_TESTFUN([sr_rpm_package_uniq3],
+[[
+#include <lib/rpm.h>
+#include <lib/utils.h>
+#include <assert.h>
+#include <stdint.h>
+
+int
+main(void)
+{
+ struct sr_rpm_package *p1 = sr_rpm_package_new();
+ struct sr_rpm_package *p2 = sr_rpm_package_new();
+ struct sr_rpm_package *p3 = sr_rpm_package_new();
+
+ p1->name = sr_strdup("pango");
+ p1->version = sr_strdup("1.32.3");
+ p1->release = sr_strdup("1.fc18");
+ p1->architecture = sr_strdup("x86_64");
+ p2->install_time = 1363628422;
+ p1->next = p2;
+
+ p2->name = sr_strdup("pango");
+ p2->version = sr_strdup("1.32.3");
+ p2->release = sr_strdup("1.fc18");
+ p2->architecture = sr_strdup("x86_64");
+ p2->install_time = 1363628422;
+ p2->next = p3;
+
+ p3->name = sr_strdup("pango");
+ p3->version = sr_strdup("1.32.3");
+ p3->release = sr_strdup("1.fc18");
+ p3->architecture = sr_strdup("x86_64");
+ p3->install_time = 1363628422;
+
+ struct sr_rpm_package *packages = p1;
+ packages = sr_rpm_package_uniq(packages);
+
+ assert(packages);
+ assert(!packages->next);
+
+ return 0;
+}
+]])