gsandbox: Mark classic snaps as UNKNOWN sandbox type

Classic snaps are just a kind of packages with no sandbox at all, so
there's no point to mark them as sandboxed.

In this way we can just do IO checks once without having to multiply
them.

Co-Authored-by: Robert Ancell <robert.ancell@canonical.com>
This commit is contained in:
Marco Trevisan (Treviño)
2022-11-24 04:26:19 +01:00
parent 660242af07
commit 0e4dff445f
2 changed files with 89 additions and 2 deletions

View File

@@ -33,6 +33,10 @@ test_sandbox_snap (void)
const char *temp_dir;
gchar *snap_path, *meta_path, *yaml_path;
GError *error = NULL;
const char *contents = "name: glib-test-portal-support\n"
"title: GLib Portal Support Test\n"
"version: 2.76\n"
"summary: Test it works\n";
temp_dir = g_getenv ("G_TEST_TMPDIR");
g_assert_nonnull (temp_dir);
@@ -41,7 +45,7 @@ test_sandbox_snap (void)
meta_path = g_build_filename (snap_path, "meta", NULL);
yaml_path = g_build_filename (meta_path, "snap.yaml", NULL);
g_mkdir_with_parents (meta_path, 0700);
g_file_set_contents (yaml_path, "", -1, &error);
g_file_set_contents (yaml_path, contents, -1, &error);
g_assert_no_error (error);
g_setenv ("SNAP", snap_path, TRUE);
@@ -53,6 +57,37 @@ test_sandbox_snap (void)
g_free (yaml_path);
}
static void
test_sandbox_snap_classic (void)
{
GError *error = NULL;
const char *temp_dir;
char *snap_path, *meta_path, *yaml_path;
const char *contents = "name: glib-test-portal-support\n"
"title: GLib Portal Support Test\n"
"version: 2.76\n"
"summary: Test it works\n"
"confinement: classic\n";
temp_dir = g_getenv ("G_TEST_TMPDIR");
g_assert_nonnull (temp_dir);
snap_path = g_build_filename (temp_dir, "snap", "current", NULL);
meta_path = g_build_filename (snap_path, "meta", NULL);
yaml_path = g_build_filename (meta_path, "snap.yaml", NULL);
g_mkdir_with_parents (meta_path, 0700);
g_file_set_contents (yaml_path, contents, -1, &error);
g_assert_no_error (error);
g_setenv ("SNAP", snap_path, TRUE);
g_assert_cmpint (glib_get_sandbox_type (), ==, G_SANDBOX_TYPE_UNKNOWN);
g_unsetenv ("SNAP");
g_free (snap_path);
g_free (meta_path);
g_free (yaml_path);
}
int
main (int argc, char **argv)
{
@@ -60,6 +95,7 @@ main (int argc, char **argv)
g_test_add_func ("/sandbox/none", test_sandbox_none);
g_test_add_func ("/sandbox/snap", test_sandbox_snap);
g_test_add_func ("/sandbox/classic-snap", test_sandbox_snap_classic);
return g_test_run ();
}