123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- #include <config.h>
- #include <apt-pkg/fileutl.h>
- #include <apt-pkg/tagfile.h>
- #include <string>
- #include <sstream>
- #include <gtest/gtest.h>
- #include "file-helpers.h"
- std::string packageValue = "aaaa";
- std::string typoValue = "aa\n"
- " .\n"
- " cc";
- std::string typoRawValue = "\n " + typoValue;
- std::string overrideValue = "1";
- /*
- std::cerr << "FILECONTENT: »";
- char buffer[3000];
- while (fd.ReadLine(buffer, sizeof(buffer)))
- std::cerr << buffer;
- std::cerr << "«" << std::endl;;
- */
- static void setupTestcaseStart(FileFd &fd, pkgTagSection §ion, std::string &content)
- {
- createTemporaryFile("writesection", fd, NULL, NULL);
- content = "Package: " + packageValue + "\n"
- "TypoA:\n " + typoValue + "\n"
- "Override: " + overrideValue + "\n"
- "Override-Backup: " + overrideValue + "\n"
- "\n";
- EXPECT_TRUE(section.Scan(content.c_str(), content.length(), true));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoA"));
- EXPECT_EQ(typoRawValue, section.FindRawS("TypoA"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteUnmodified)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- EXPECT_TRUE(section.Write(fd));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoA"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteUnmodifiedOrder)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- char const * const order[] = { "Package", "TypoA", "Override", NULL };
- EXPECT_TRUE(section.Write(fd, order));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoA"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteUnmodifiedOrderReversed)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- char const * const order[] = { "Override", "TypoA", "Package", NULL };
- EXPECT_TRUE(section.Write(fd, order));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoA"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteUnmodifiedOrderNotAll)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- char const * const order[] = { "Override", NULL };
- EXPECT_TRUE(section.Write(fd, order));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoA"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteNoOrderRename)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- std::vector<pkgTagSection::Tag> rewrite;
- rewrite.push_back(pkgTagSection::Tag::Rename("TypoA", "TypoB"));
- EXPECT_TRUE(section.Write(fd, NULL, rewrite));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_FALSE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("TypoB"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoB"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteNoOrderRemove)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- std::vector<pkgTagSection::Tag> rewrite;
- rewrite.push_back(pkgTagSection::Tag::Remove("TypoA"));
- rewrite.push_back(pkgTagSection::Tag::Rewrite("Override", ""));
- EXPECT_TRUE(section.Write(fd, NULL, rewrite));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_FALSE(section.Exists("TypoA"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_FALSE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(2, section.Count());
- }
- TEST(TagSectionTest,WriteNoOrderRewrite)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- std::vector<pkgTagSection::Tag> rewrite;
- rewrite.push_back(pkgTagSection::Tag::Rewrite("Override", "42"));
- EXPECT_TRUE(section.Write(fd, NULL, rewrite));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(42, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteOrderRename)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- std::vector<pkgTagSection::Tag> rewrite;
- rewrite.push_back(pkgTagSection::Tag::Rename("TypoA", "TypoB"));
- char const * const order[] = { "Package", "TypoA", "Override", NULL };
- EXPECT_TRUE(section.Write(fd, order, rewrite));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_FALSE(section.Exists("TypoA"));
- EXPECT_TRUE(section.Exists("TypoB"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(typoValue, section.FindS("TypoB"));
- EXPECT_EQ(1, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
- TEST(TagSectionTest,WriteOrderRemove)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- std::vector<pkgTagSection::Tag> rewrite;
- rewrite.push_back(pkgTagSection::Tag::Remove("TypoA"));
- rewrite.push_back(pkgTagSection::Tag::Rewrite("Override", ""));
- char const * const order[] = { "Package", "TypoA", "Override", NULL };
- EXPECT_TRUE(section.Write(fd, order, rewrite));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_FALSE(section.Exists("TypoA"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_FALSE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(2, section.Count());
- }
- TEST(TagSectionTest,WriteOrderRewrite)
- {
- FileFd fd;
- pkgTagSection section;
- std::string content;
- setupTestcaseStart(fd, section, content);
- std::vector<pkgTagSection::Tag> rewrite;
- rewrite.push_back(pkgTagSection::Tag::Rewrite("Override", "42"));
- char const * const order[] = { "Package", "TypoA", "Override", NULL };
- EXPECT_TRUE(section.Write(fd, order, rewrite));
- EXPECT_TRUE(fd.Seek(0));
- pkgTagFile tfile(&fd);
- ASSERT_TRUE(tfile.Step(section));
- EXPECT_TRUE(section.Exists("Package"));
- EXPECT_TRUE(section.Exists("TypoA"));
- EXPECT_FALSE(section.Exists("TypoB"));
- EXPECT_TRUE(section.Exists("Override"));
- EXPECT_TRUE(section.Exists("Override-Backup"));
- EXPECT_EQ(packageValue, section.FindS("Package"));
- EXPECT_EQ(42, section.FindI("Override"));
- EXPECT_EQ(1, section.FindI("Override-Backup"));
- EXPECT_EQ(4, section.Count());
- }
|