summaryrefslogtreecommitdiff
path: root/test/libapt/cachefilter_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/libapt/cachefilter_test.cc')
-rw-r--r--test/libapt/cachefilter_test.cc66
1 files changed, 66 insertions, 0 deletions
diff --git a/test/libapt/cachefilter_test.cc b/test/libapt/cachefilter_test.cc
new file mode 100644
index 000000000..28924b758
--- /dev/null
+++ b/test/libapt/cachefilter_test.cc
@@ -0,0 +1,66 @@
+#include <config.h>
+
+#include <apt-pkg/cachefilter.h>
+
+#include <string>
+
+#include <gtest/gtest.h>
+
+TEST(CacheFilterTest, ArchitectureSpecification)
+{
+ {
+ SCOPED_TRACE("Pattern is any-armhf");
+ APT::CacheFilter::PackageArchitectureMatchesSpecification ams("any-armhf");
+ EXPECT_TRUE(ams("armhf"));
+ EXPECT_FALSE(ams("armel"));
+ EXPECT_TRUE(ams("linux-armhf"));
+ EXPECT_FALSE(ams("linux-armel"));
+ EXPECT_TRUE(ams("kfreebsd-armhf"));
+ EXPECT_TRUE(ams("gnu-linux-armhf"));
+ EXPECT_FALSE(ams("gnu-linux-armel"));
+ EXPECT_TRUE(ams("gnu-kfreebsd-armhf"));
+ EXPECT_TRUE(ams("musl-linux-armhf"));
+ }
+ {
+ SCOPED_TRACE("Pattern is linux-any");
+ APT::CacheFilter::PackageArchitectureMatchesSpecification ams("linux-any");
+ EXPECT_TRUE(ams("armhf"));
+ EXPECT_TRUE(ams("armel"));
+ EXPECT_TRUE(ams("linux-armhf"));
+ EXPECT_TRUE(ams("linux-armel"));
+ EXPECT_FALSE(ams("kfreebsd-armhf"));
+ EXPECT_TRUE(ams("gnu-linux-armhf"));
+ EXPECT_TRUE(ams("gnu-linux-armel"));
+ EXPECT_FALSE(ams("gnu-kfreebsd-armhf"));
+ EXPECT_TRUE(ams("musl-linux-armhf"));
+ }
+ {
+ SCOPED_TRACE("Pattern is gnu-any-any");
+ APT::CacheFilter::PackageArchitectureMatchesSpecification ams("gnu-any-any"); //really?
+ EXPECT_TRUE(ams("armhf"));
+ EXPECT_TRUE(ams("armel"));
+ EXPECT_TRUE(ams("linux-armhf"));
+ EXPECT_TRUE(ams("linux-armel"));
+ EXPECT_TRUE(ams("kfreebsd-armhf"));
+ EXPECT_TRUE(ams("gnu-linux-armhf"));
+ EXPECT_TRUE(ams("gnu-linux-armel"));
+ EXPECT_TRUE(ams("gnu-kfreebsd-armhf"));
+ EXPECT_FALSE(ams("musl-linux-armhf"));
+ }
+ {
+ SCOPED_TRACE("Architecture is armhf");
+ APT::CacheFilter::PackageArchitectureMatchesSpecification ams("armhf", false);
+ EXPECT_TRUE(ams("armhf"));
+ EXPECT_FALSE(ams("armel"));
+ EXPECT_TRUE(ams("linux-any"));
+ EXPECT_FALSE(ams("kfreebsd-any"));
+ EXPECT_TRUE(ams("any-armhf"));
+ EXPECT_FALSE(ams("any-armel"));
+ EXPECT_TRUE(ams("linux-armhf"));
+ EXPECT_FALSE(ams("kfreebsd-armhf"));
+ EXPECT_TRUE(ams("gnu-linux-armhf"));
+ EXPECT_FALSE(ams("gnu-linux-armel"));
+ EXPECT_FALSE(ams("gnu-kfreebsd-armhf"));
+ EXPECT_FALSE(ams("musl-linux-armhf"));
+ }
+}