add CVE-2014-7206 to 1.0.9.2
[ntk/apt.git] / test / libapt / cdrom_test.cc
1 #include <config.h>
2
3 #include <apt-pkg/configuration.h>
4 #include <apt-pkg/cdrom.h>
5 #include <apt-pkg/cdromutl.h>
6 #include <apt-pkg/fileutl.h>
7
8 #include <string>
9 #include <string.h>
10 #include <vector>
11
12 #include <gtest/gtest.h>
13
14 #include "file-helpers.h"
15
16 class Cdrom : public pkgCdrom {
17 public:
18 std::vector<std::string> ReduceSourcelist(std::string CD,std::vector<std::string> List) {
19 pkgCdrom::ReduceSourcelist(CD, List);
20 return List;
21 }
22 };
23
24 TEST(CDROMTest,ReduceSourcelist)
25 {
26 Cdrom cd;
27 std::vector<std::string> List;
28 std::string CD("/media/cdrom/");
29
30 std::vector<std::string> R = cd.ReduceSourcelist(CD, List);
31 EXPECT_TRUE(R.empty());
32
33 List.push_back(" wheezy main");
34 R = cd.ReduceSourcelist(CD, List);
35 ASSERT_EQ(1, R.size());
36 EXPECT_EQ(" wheezy main", R[0]);
37
38 List.push_back(" wheezy main");
39 R = cd.ReduceSourcelist(CD, List);
40 ASSERT_EQ(1, R.size());
41 EXPECT_EQ(" wheezy main", R[0]);
42
43 List.push_back(" wheezy contrib");
44 R = cd.ReduceSourcelist(CD, List);
45 ASSERT_EQ(1, R.size());
46 EXPECT_EQ(" wheezy contrib main", R[0]);
47
48 List.push_back(" wheezy-update contrib");
49 R = cd.ReduceSourcelist(CD, List);
50 ASSERT_EQ(2, R.size());
51 EXPECT_EQ(" wheezy contrib main", R[0]);
52 EXPECT_EQ(" wheezy-update contrib", R[1]);
53
54 List.push_back(" wheezy-update contrib");
55 R = cd.ReduceSourcelist(CD, List);
56 ASSERT_EQ(2, R.size());
57 EXPECT_EQ(" wheezy contrib main", R[0]);
58 EXPECT_EQ(" wheezy-update contrib", R[1]);
59
60 List.push_back(" wheezy-update non-free");
61 R = cd.ReduceSourcelist(CD, List);
62 ASSERT_EQ(2, R.size());
63 EXPECT_EQ(" wheezy contrib main", R[0]);
64 EXPECT_EQ(" wheezy-update contrib non-free", R[1]);
65
66 List.push_back(" wheezy-update main");
67 R = cd.ReduceSourcelist(CD, List);
68 ASSERT_EQ(2, R.size());
69 EXPECT_EQ(" wheezy contrib main", R[0]);
70 EXPECT_EQ(" wheezy-update contrib main non-free", R[1]);
71
72 List.push_back(" wheezy non-free");
73 R = cd.ReduceSourcelist(CD, List);
74 ASSERT_EQ(2, R.size());
75 EXPECT_EQ(" wheezy contrib main non-free", R[0]);
76 EXPECT_EQ(" wheezy-update contrib main non-free", R[1]);
77
78 List.push_back(" sid main");
79 R = cd.ReduceSourcelist(CD, List);
80 ASSERT_EQ(3, R.size());
81 EXPECT_EQ(" sid main", R[0]);
82 EXPECT_EQ(" wheezy contrib main non-free", R[1]);
83 EXPECT_EQ(" wheezy-update contrib main non-free", R[2]);
84
85 List.push_back(" sid main-reduce");
86 R = cd.ReduceSourcelist(CD, List);
87 ASSERT_EQ(3, R.size());
88 EXPECT_EQ(" sid main main-reduce", R[0]);
89 EXPECT_EQ(" wheezy contrib main non-free", R[1]);
90 EXPECT_EQ(" wheezy-update contrib main non-free", R[2]);
91 }
92 TEST(CDROMTest, FindMountPointForDevice)
93 {
94 char * tempfile = NULL;
95 FileFd fd;
96 createTemporaryFile("mountpoints", fd, &tempfile,
97 "rootfs / rootfs rw 0 0\n"
98 "sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0\n"
99 "sysfs0 /sys0 sysfs rw,nosuid,nodev,noexec,relatime 0 0\n"
100 "/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0\n"
101 "/dev/sda1 /boot/efi vfat rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro,rw,nosuid,nodev,noexec,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=437,iocharset=utf8,shortname=lower,quiet,utf8,errors=remount-ro 0 0\n"
102 "tmpfs /tmp tmpfs rw,nosuid,nodev,relatime 0 0\n");
103 _config->Set("Dir::state::Mountpoints", tempfile);
104
105 EXPECT_EQ("/", FindMountPointForDevice("rootfs"));
106 EXPECT_EQ("/", FindMountPointForDevice("/dev/disk/by-uuid/fadcbc52-6284-4874-aaaa-dcee1f05fe21"));
107 EXPECT_EQ("/sys", FindMountPointForDevice("sysfs"));
108 EXPECT_EQ("/sys0", FindMountPointForDevice("sysfs0"));
109 EXPECT_EQ("/boot/efi", FindMountPointForDevice("/dev/sda1"));
110 EXPECT_EQ("/tmp", FindMountPointForDevice("tmpfs"));
111
112 unlink(tempfile);
113 free(tempfile);
114 }