@@ -29,71 +29,100 @@ using namespace testing;
29
29
30
30
TEST (TestQemuImgProcessSpec, program_correct)
31
31
{
32
- mp::QemuImgProcessSpec spec ({});
32
+ mp::QemuImgProcessSpec spec ({}, " " );
33
33
34
34
EXPECT_EQ (spec.program (), " qemu-img" );
35
35
}
36
36
37
37
TEST (TestQemuImgProcessSpec, default_arguments_correct)
38
38
{
39
- mp::QemuImgProcessSpec spec ({});
39
+ mp::QemuImgProcessSpec spec ({}, " " );
40
40
41
41
EXPECT_EQ (spec.arguments (), QStringList ());
42
42
}
43
43
44
44
TEST (TestQemuImgProcessSpec, arguments_set_correctly)
45
45
{
46
46
QStringList args{" -one" , " --two" };
47
- mp::QemuImgProcessSpec spec (args);
47
+ mp::QemuImgProcessSpec spec (args, " " );
48
48
49
49
EXPECT_EQ (spec.arguments (), args);
50
50
}
51
51
52
52
TEST (TestQemuImgProcessSpec, apparmor_profile_has_correct_name)
53
53
{
54
- mp::QemuImgProcessSpec spec ({});
54
+ mp::QemuImgProcessSpec spec ({}, " " );
55
55
56
56
EXPECT_TRUE (spec.apparmor_profile ().contains (" profile multipass.qemu-img" ));
57
57
}
58
58
59
59
TEST (TestQemuImgProcessSpec, no_apparmor_profile_identifier)
60
60
{
61
- mp::QemuImgProcessSpec spec ({});
61
+ mp::QemuImgProcessSpec spec ({}, " " );
62
62
63
63
EXPECT_EQ (spec.identifier (), " " );
64
64
}
65
65
66
66
TEST (TestQemuImgProcessSpec, apparmor_profile_running_as_snap_correct)
67
67
{
68
68
const QByteArray snap_name{" multipass" };
69
- QTemporaryDir snap_dir, common_dir;
69
+ QTemporaryDir snap_dir;
70
+ QString source_image{" /source/image/file" };
70
71
71
72
mpt::SetEnvScope e (" SNAP" , snap_dir.path ().toUtf8 ());
72
- mpt::SetEnvScope e2 (" SNAP_COMMON" , common_dir.path ().toUtf8 ());
73
- mpt::SetEnvScope e3 (" SNAP_NAME" , snap_name);
74
- mp::QemuImgProcessSpec spec ({});
73
+ mpt::SetEnvScope e2 (" SNAP_NAME" , snap_name);
74
+ mp::QemuImgProcessSpec spec ({}, source_image);
75
+
76
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1/usr/bin/qemu-img ixr," ).arg (snap_dir.path ())));
77
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1 rk," ).arg (source_image)));
78
+ }
79
+
80
+ TEST (TestQemuImgProcessSpec, apparmor_profile_running_as_snap_with_target_correct)
81
+ {
82
+ const QByteArray snap_name{" multipass" };
83
+ QTemporaryDir snap_dir;
84
+ QString source_image{" /source/image/file" }, target_image{" /target/image/file" };
85
+
86
+ mpt::SetEnvScope e (" SNAP" , snap_dir.path ().toUtf8 ());
87
+ mpt::SetEnvScope e2 (" SNAP_NAME" , snap_name);
88
+ mp::QemuImgProcessSpec spec ({}, source_image, target_image);
89
+
90
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1/usr/bin/qemu-img ixr," ).arg (snap_dir.path ())));
91
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1 rk," ).arg (source_image)));
92
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1 rwk," ).arg (target_image)));
93
+ }
94
+
95
+ TEST (TestQemuImgProcessSpec, apparmor_profile_running_as_snap_with_only_target_correct)
96
+ {
97
+ const QByteArray snap_name{" multipass" };
98
+ QTemporaryDir snap_dir;
99
+ QString target_image{" /target/image/file" };
100
+
101
+ mpt::SetEnvScope e (" SNAP" , snap_dir.path ().toUtf8 ());
102
+ mpt::SetEnvScope e2 (" SNAP_NAME" , snap_name);
103
+ mp::QemuImgProcessSpec spec ({}, " " , target_image);
75
104
76
105
EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1/usr/bin/qemu-img ixr," ).arg (snap_dir.path ())));
77
- EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1/** rwk," ).arg (common_dir. path () )));
106
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1 rwk," ).arg (target_image )));
78
107
}
79
108
80
109
TEST (TestQemuImgProcessSpec, apparmor_profile_running_as_symlinked_snap_correct)
81
110
{
82
111
const QByteArray snap_name{" multipass" };
83
112
QTemporaryDir snap_dir, snap_link_dir, common_dir, common_link_dir;
113
+ QString source_image{" /source/image/file" };
84
114
85
115
snap_link_dir.remove ();
86
116
common_link_dir.remove ();
87
117
QFile::link (snap_dir.path (), snap_link_dir.path ());
88
118
QFile::link (common_dir.path (), common_link_dir.path ());
89
119
90
120
mpt::SetEnvScope e (" SNAP" , snap_link_dir.path ().toUtf8 ());
91
- mpt::SetEnvScope e2 (" SNAP_COMMON" , common_link_dir.path ().toUtf8 ());
92
121
mpt::SetEnvScope e3 (" SNAP_NAME" , snap_name);
93
- mp::QemuImgProcessSpec spec ({});
122
+ mp::QemuImgProcessSpec spec ({}, source_image );
94
123
95
124
EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1/usr/bin/qemu-img ixr," ).arg (snap_dir.path ())));
96
- EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1/** rwk ," ).arg (common_dir. path () )));
125
+ EXPECT_TRUE (spec.apparmor_profile ().contains (QString (" %1 rk ," ).arg (source_image )));
97
126
}
98
127
99
128
TEST (TestQemuImgProcessSpec, apparmor_profile_not_running_as_snap_correct)
@@ -102,7 +131,7 @@ TEST(TestQemuImgProcessSpec, apparmor_profile_not_running_as_snap_correct)
102
131
103
132
mpt::UnsetEnvScope e (" SNAP" );
104
133
mpt::SetEnvScope e2 (" SNAP_NAME" , snap_name);
105
- mp::QemuImgProcessSpec spec ({});
134
+ mp::QemuImgProcessSpec spec ({}, " " );
106
135
107
136
EXPECT_TRUE (spec.apparmor_profile ().contains (" capability dac_read_search," ));
108
137
EXPECT_TRUE (spec.apparmor_profile ().contains (" /usr/bin/qemu-img ixr," )); // space wanted
0 commit comments