test-exports.c (flatpak-1.15.1.tar.xz) | : | test-exports.c (flatpak-1.15.2.tar.xz) | ||
---|---|---|---|---|
skipping to change at line 737 | skipping to change at line 737 | |||
g_autofree gchar *in_abs_link = g_build_filename (subdir, "1", "abs-link", | g_autofree gchar *in_abs_link = g_build_filename (subdir, "1", "abs-link", | |||
"file", NULL); | "file", NULL); | |||
g_autofree gchar *dangling = g_build_filename (subdir, "1", "dangling", NULL); | g_autofree gchar *dangling = g_build_filename (subdir, "1", "dangling", NULL); | |||
g_autofree gchar *in_dangling = g_build_filename (subdir, "1", "dangling", | g_autofree gchar *in_dangling = g_build_filename (subdir, "1", "dangling", | |||
"file", NULL); | "file", NULL); | |||
g_autofree gchar *abs_target = g_build_filename (subdir, "2", "abs-target", NU LL); | g_autofree gchar *abs_target = g_build_filename (subdir, "2", "abs-target", NU LL); | |||
g_autofree gchar *target = g_build_filename (subdir, "2", "target", NULL); | g_autofree gchar *target = g_build_filename (subdir, "2", "target", NULL); | |||
g_autofree gchar *create_dir = g_build_filename (subdir, "create-dir", NULL); | g_autofree gchar *create_dir = g_build_filename (subdir, "create-dir", NULL); | |||
g_autofree gchar *create_dir2 = g_build_filename (subdir, "create-dir2", NULL) ; | g_autofree gchar *create_dir2 = g_build_filename (subdir, "create-dir2", NULL) ; | |||
gsize i; | gsize i; | |||
gboolean ok; | ||||
glnx_shutil_rm_rf_at (-1, subdir, NULL, &error); | glnx_shutil_rm_rf_at (-1, subdir, NULL, &error); | |||
if (error != NULL) | if (error != NULL) | |||
{ | { | |||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); | g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); | |||
g_clear_error (&error); | g_clear_error (&error); | |||
} | } | |||
if (g_mkdir_with_parents (expose_rw, S_IRWXU) != 0) | if (g_mkdir_with_parents (expose_rw, S_IRWXU) != 0) | |||
skipping to change at line 792 | skipping to change at line 793 | |||
if (symlink ("nope", dangling_link_in_expose_rw) != 0) | if (symlink ("nope", dangling_link_in_expose_rw) != 0) | |||
g_error ("symlink: %s", g_strerror (errno)); | g_error ("symlink: %s", g_strerror (errno)); | |||
if (symlink ("../2/target", rel_link) != 0) | if (symlink ("../2/target", rel_link) != 0) | |||
g_error ("symlink: %s", g_strerror (errno)); | g_error ("symlink: %s", g_strerror (errno)); | |||
flatpak_exports_add_host_etc_expose (exports, | flatpak_exports_add_host_etc_expose (exports, | |||
FLATPAK_FILESYSTEM_MODE_READ_WRITE); | FLATPAK_FILESYSTEM_MODE_READ_WRITE); | |||
flatpak_exports_add_host_os_expose (exports, | flatpak_exports_add_host_os_expose (exports, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY); | FLATPAK_FILESYSTEM_MODE_READ_ONLY); | |||
flatpak_exports_add_path_expose (exports, | ok = flatpak_exports_add_path_expose (exports, | |||
FLATPAK_FILESYSTEM_MODE_READ_WRITE, | FLATPAK_FILESYSTEM_MODE_READ_WRITE, | |||
expose_rw); | expose_rw, &error); | |||
flatpak_exports_add_path_expose (exports, | g_assert_no_error (error); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | g_assert_true (ok); | |||
expose_ro); | ok = flatpak_exports_add_path_expose (exports, | |||
flatpak_exports_add_path_tmpfs (exports, hide_below_expose); | FLATPAK_FILESYSTEM_MODE_READ_ONLY, | |||
flatpak_exports_add_path_expose_or_hide (exports, | expose_ro, &error); | |||
FLATPAK_FILESYSTEM_MODE_NONE, | g_assert_no_error (error); | |||
hide); | g_assert_true (ok); | |||
flatpak_exports_add_path_expose_or_hide (exports, | ok = flatpak_exports_add_path_tmpfs (exports, hide_below_expose, &error); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | g_assert_no_error (error); | |||
dont_hide); | g_assert_true (ok); | |||
flatpak_exports_add_path_expose_or_hide (exports, | ok = flatpak_exports_add_path_expose_or_hide (exports, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | FLATPAK_FILESYSTEM_MODE_NONE, | |||
enoent); | hide, &error); | |||
flatpak_exports_add_path_expose_or_hide (exports, | g_assert_no_error (error); | |||
FLATPAK_FILESYSTEM_MODE_READ_WRITE, | g_assert_true (ok); | |||
rel_link); | ok = flatpak_exports_add_path_expose_or_hide (exports, | |||
flatpak_exports_add_path_expose_or_hide (exports, | FLATPAK_FILESYSTEM_MODE_READ_ONL | |||
FLATPAK_FILESYSTEM_MODE_READ_WRITE, | Y, | |||
abs_link); | dont_hide, &error); | |||
flatpak_exports_add_path_dir (exports, create_dir); | g_assert_no_error (error); | |||
flatpak_exports_add_path_dir (exports, create_dir2); | g_assert_true (ok); | |||
ok = flatpak_exports_add_path_expose_or_hide (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONL | ||||
Y, | ||||
enoent, &error); | ||||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); | ||||
g_assert_false (ok); | ||||
g_clear_error (&error); | ||||
ok = flatpak_exports_add_path_expose_or_hide (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_WRI | ||||
TE, | ||||
rel_link, &error); | ||||
g_assert_no_error (error); | ||||
g_assert_true (ok); | ||||
ok = flatpak_exports_add_path_expose_or_hide (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_WRI | ||||
TE, | ||||
abs_link, &error); | ||||
g_assert_no_error (error); | ||||
g_assert_true (ok); | ||||
ok = flatpak_exports_add_path_dir (exports, create_dir, &error); | ||||
g_assert_no_error (error); | ||||
g_assert_true (ok); | ||||
ok = flatpak_exports_add_path_dir (exports, create_dir2, &error); | ||||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); | ||||
g_assert_false (ok); | ||||
g_clear_error (&error); | ||||
g_assert_cmpuint (flatpak_exports_path_get_mode (exports, expose_rw), ==, | g_assert_cmpuint (flatpak_exports_path_get_mode (exports, expose_rw), ==, | |||
FLATPAK_FILESYSTEM_MODE_READ_WRITE); | FLATPAK_FILESYSTEM_MODE_READ_WRITE); | |||
g_assert_cmpuint (flatpak_exports_path_get_mode (exports, expose_ro), ==, | g_assert_cmpuint (flatpak_exports_path_get_mode (exports, expose_ro), ==, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY); | FLATPAK_FILESYSTEM_MODE_READ_ONLY); | |||
g_assert_cmpuint (flatpak_exports_path_get_mode (exports, hide_below_expose), ==, | g_assert_cmpuint (flatpak_exports_path_get_mode (exports, hide_below_expose), ==, | |||
FLATPAK_FILESYSTEM_MODE_NONE); | FLATPAK_FILESYSTEM_MODE_NONE); | |||
g_assert_cmpuint (flatpak_exports_path_get_mode (exports, hide), ==, | g_assert_cmpuint (flatpak_exports_path_get_mode (exports, hide), ==, | |||
FLATPAK_FILESYSTEM_MODE_NONE); | FLATPAK_FILESYSTEM_MODE_NONE); | |||
g_assert_cmpuint (flatpak_exports_path_get_mode (exports, dont_hide), ==, | g_assert_cmpuint (flatpak_exports_path_get_mode (exports, dont_hide), ==, | |||
skipping to change at line 1234 | skipping to change at line 1260 | |||
i = assert_next_is_symlink (bwrap, i, "usr/sbin", "/run/host/sbin"); | i = assert_next_is_symlink (bwrap, i, "usr/sbin", "/run/host/sbin"); | |||
i = assert_next_is_bind (bwrap, i, "--ro-bind", "/etc", "/run/host/etc"); | i = assert_next_is_bind (bwrap, i, "--ro-bind", "/etc", "/run/host/etc"); | |||
i = assert_next_is_bind (bwrap, i, "--ro-bind", "/usr/lib/os-release", | i = assert_next_is_bind (bwrap, i, "--ro-bind", "/usr/lib/os-release", | |||
"/run/host/os-release"); | "/run/host/os-release"); | |||
g_assert_cmpuint (i, ==, bwrap->argv->len - 1); | g_assert_cmpuint (i, ==, bwrap->argv->len - 1); | |||
g_assert_cmpstr (bwrap->argv->pdata[i++], ==, NULL); | g_assert_cmpstr (bwrap->argv->pdata[i++], ==, NULL); | |||
g_assert_cmpuint (i, ==, bwrap->argv->len); | g_assert_cmpuint (i, ==, bwrap->argv->len); | |||
} | } | |||
static const struct | ||||
{ | ||||
const char *tried; | ||||
const char *because; | ||||
} | ||||
reserved_filesystems[] = | ||||
{ | ||||
{ "/", "/.flatpak-info" }, | ||||
{ "/.flatpak-info", "/.flatpak-info" }, | ||||
{ "/app", "/app" }, | ||||
{ "/app/foo", "/app" }, | ||||
{ "/bin", "/bin" }, | ||||
{ "/bin/sh", "/bin" }, | ||||
{ "/dev", "/dev" }, | ||||
{ "/etc", "/etc" }, | ||||
{ "/etc/passwd", "/etc" }, | ||||
{ "/lib", "/lib" }, | ||||
{ "/lib/ld-linux.so.2", "/lib" }, | ||||
{ "/lib64", "/lib64" }, | ||||
{ "/lib64/ld-linux-x86-64.so.2", "/lib64" }, | ||||
{ "/proc", "/proc" }, | ||||
{ "/proc/1", "/proc" }, | ||||
{ "/proc/sys/net", "/proc" }, | ||||
{ "/run", "/run/flatpak" }, | ||||
{ "/run/flatpak/foo/bar", "/run/flatpak" }, | ||||
{ "/run/host/foo", "/run/host" }, | ||||
{ "/sbin", "/sbin" }, | ||||
{ "/sbin/ldconfig", "/sbin" }, | ||||
{ "/usr", "/usr" }, | ||||
{ "/usr/bin/env", "/usr" }, | ||||
{ "/usr/foo/bar", "/usr" }, | ||||
}; | ||||
static void | static void | |||
test_exports_ignored (void) | test_exports_ignored (void) | |||
{ | { | |||
g_autoptr(FlatpakBwrap) bwrap = flatpak_bwrap_new (NULL); | g_autoptr(FlatpakBwrap) bwrap = flatpak_bwrap_new (NULL); | |||
g_autoptr(FlatpakExports) exports = flatpak_exports_new (); | g_autoptr(FlatpakExports) exports = flatpak_exports_new (); | |||
gsize i; | gsize i; | |||
/* These paths are chosen so that they probably exist, with the | for (i = 0; i < G_N_ELEMENTS (reserved_filesystems); i++) | |||
* exception of /app */ | { | |||
flatpak_exports_add_path_expose (exports, | const char *tried = reserved_filesystems[i].tried; | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | const char *because = reserved_filesystems[i].because; | |||
"/app"); | g_autoptr(GError) error = NULL; | |||
flatpak_exports_add_path_expose (exports, | gboolean ok; | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/etc"); | ok = flatpak_exports_add_path_expose (exports, | |||
flatpak_exports_add_path_expose (exports, | FLATPAK_FILESYSTEM_MODE_READ_ONLY, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | tried, | |||
"/etc/passwd"); | &error); | |||
flatpak_exports_add_path_expose (exports, | g_assert_nonnull (error); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | g_assert_nonnull (error->message); | |||
"/usr"); | g_test_message ("Trying to export %s -> %s", tried, error->message); | |||
flatpak_exports_add_path_expose (exports, | g_assert_false (ok); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/usr/bin/env"); | if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_MOUNTABLE_FILE)) | |||
flatpak_exports_add_path_expose (exports, | { | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | g_autofree char *pattern = g_strdup_printf ("Path \"%s\" is reserved b | |||
"/dev"); | y Flatpak", | |||
flatpak_exports_add_path_expose (exports, | because); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/dev/full"); | g_test_message ("Expecting to see pattern: %s", pattern); | |||
flatpak_exports_add_path_expose (exports, | g_assert_nonnull (strstr (error->message, pattern)); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | } | |||
"/proc"); | } | |||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/proc/1"); | ||||
/* These probably exist, and are merged into /usr on systems with | ||||
* the /usr merge */ | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/bin"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/bin/sh"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/lib"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/lib/ld-linux.so.2"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/lib64"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/lib64/ld-linux-x86-64.so.2"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/sbin"); | ||||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/sbin/ldconfig"); | ||||
flatpak_bwrap_add_arg (bwrap, "bwrap"); | flatpak_bwrap_add_arg (bwrap, "bwrap"); | |||
flatpak_exports_append_bwrap_args (exports, bwrap); | flatpak_exports_append_bwrap_args (exports, bwrap); | |||
flatpak_bwrap_finish (bwrap); | flatpak_bwrap_finish (bwrap); | |||
print_bwrap (bwrap); | print_bwrap (bwrap); | |||
i = 0; | i = 0; | |||
g_assert_cmpuint (i, <, bwrap->argv->len); | g_assert_cmpuint (i, <, bwrap->argv->len); | |||
g_assert_cmpstr (bwrap->argv->pdata[i++], ==, "bwrap"); | g_assert_cmpstr (bwrap->argv->pdata[i++], ==, "bwrap"); | |||
skipping to change at line 1333 | skipping to change at line 1361 | |||
{ "dangling-link", FAKE_SYMLINK, "nonexistent" }, | { "dangling-link", FAKE_SYMLINK, "nonexistent" }, | |||
{ "etc", FAKE_DIR }, | { "etc", FAKE_DIR }, | |||
{ "etc/ld.so.cache", FAKE_FILE }, | { "etc/ld.so.cache", FAKE_FILE }, | |||
{ "etc/ld.so.conf", FAKE_FILE }, | { "etc/ld.so.conf", FAKE_FILE }, | |||
{ "etc/ld.so.conf.d", FAKE_DIR }, | { "etc/ld.so.conf.d", FAKE_DIR }, | |||
{ "bin", FAKE_SYMLINK, "usr/bin" }, | { "bin", FAKE_SYMLINK, "usr/bin" }, | |||
{ "broken-autofs", FAKE_DIR }, | { "broken-autofs", FAKE_DIR }, | |||
{ "home", FAKE_SYMLINK, "var/home" }, | { "home", FAKE_SYMLINK, "var/home" }, | |||
{ "lib", FAKE_SYMLINK, "usr/lib" }, | { "lib", FAKE_SYMLINK, "usr/lib" }, | |||
{ "recursion", FAKE_SYMLINK, "recursion" }, | { "recursion", FAKE_SYMLINK, "recursion" }, | |||
{ "symlink-to-root", FAKE_SYMLINK, "." }, | ||||
{ "tmp", FAKE_SYMLINK, "TMP" }, | { "tmp", FAKE_SYMLINK, "TMP" }, | |||
{ "usr/bin", FAKE_DIR }, | { "usr/bin", FAKE_DIR }, | |||
{ "usr/lib", FAKE_DIR }, | { "usr/lib", FAKE_DIR }, | |||
{ "usr/share", FAKE_DIR }, | { "usr/share", FAKE_DIR }, | |||
{ "var/home/me", FAKE_DIR }, | { "var/home/me", FAKE_DIR }, | |||
{ "var/volatile/tmp", FAKE_DIR }, | { "var/volatile/tmp", FAKE_DIR }, | |||
{ "var/tmp", FAKE_SYMLINK, "volatile/tmp" }, | { "var/tmp", FAKE_SYMLINK, "volatile/tmp" }, | |||
{ NULL } | { NULL } | |||
}; | }; | |||
g_autoptr(FlatpakBwrap) bwrap = flatpak_bwrap_new (NULL); | g_autoptr(FlatpakBwrap) bwrap = flatpak_bwrap_new (NULL); | |||
g_autoptr(FlatpakExports) exports = NULL; | g_autoptr(FlatpakExports) exports = NULL; | |||
gsize i; | gsize i; | |||
g_autoptr(GError) error = NULL; | ||||
gboolean ok; | ||||
exports = test_host_exports_setup (files, | exports = test_host_exports_setup (files, | |||
FLATPAK_FILESYSTEM_MODE_NONE, | FLATPAK_FILESYSTEM_MODE_NONE, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY); | FLATPAK_FILESYSTEM_MODE_READ_ONLY); | |||
flatpak_exports_set_test_flags (exports, FLATPAK_EXPORTS_TEST_FLAGS_AUTOFS); | flatpak_exports_set_test_flags (exports, FLATPAK_EXPORTS_TEST_FLAGS_AUTOFS); | |||
flatpak_exports_add_path_expose (exports, | ok = flatpak_exports_add_path_expose (exports, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | FLATPAK_FILESYSTEM_MODE_READ_ONLY, | |||
"/broken-autofs"); | "/broken-autofs", &error); | |||
flatpak_exports_add_path_expose (exports, | g_assert_error (error, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | g_test_message ("attempting to export /broken-autofs: %s", error->message); | |||
"/dangling-link"); | g_assert_false (ok); | |||
flatpak_exports_add_path_expose (exports, | g_clear_error (&error); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/home/me"); | ok = flatpak_exports_add_path_expose (exports, | |||
flatpak_exports_add_path_expose (exports, | FLATPAK_FILESYSTEM_MODE_READ_ONLY, | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | "/dangling-link", &error); | |||
"/nonexistent"); | g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); | |||
flatpak_exports_add_path_expose (exports, | g_test_message ("attempting to export /dangling-link: %s", error->message); | |||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | g_assert_false (ok); | |||
"/recursion"); | g_clear_error (&error); | |||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ok = flatpak_exports_add_path_expose (exports, | |||
"/tmp"); | FLATPAK_FILESYSTEM_MODE_READ_ONLY, | |||
flatpak_exports_add_path_expose (exports, | "/home/me", &error); | |||
FLATPAK_FILESYSTEM_MODE_READ_WRITE, | g_assert_no_error (error); | |||
"/var/tmp"); | g_assert_true (ok); | |||
flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ok = flatpak_exports_add_path_expose (exports, | |||
"not-absolute"); | FLATPAK_FILESYSTEM_MODE_READ_ONLY, | |||
"/nonexistent", &error); | ||||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND); | ||||
g_test_message ("attempting to export /nonexistent: %s", error->message); | ||||
g_assert_false (ok); | ||||
g_clear_error (&error); | ||||
ok = flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/recursion", &error); | ||||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_TOO_MANY_LINKS); | ||||
g_test_message ("attempting to export /recursion: %s", error->message); | ||||
g_assert_false (ok); | ||||
g_clear_error (&error); | ||||
ok = flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/symlink-to-root", &error); | ||||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_NOT_MOUNTABLE_FILE); | ||||
g_test_message ("attempting to export /symlink-to-root: %s", error->message); | ||||
g_assert_false (ok); | ||||
g_clear_error (&error); | ||||
ok = flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"/tmp", &error); | ||||
g_assert_no_error (error); | ||||
g_assert_true (ok); | ||||
ok = flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_WRITE, | ||||
"/var/tmp", &error); | ||||
g_assert_no_error (error); | ||||
g_assert_true (ok); | ||||
ok = flatpak_exports_add_path_expose (exports, | ||||
FLATPAK_FILESYSTEM_MODE_READ_ONLY, | ||||
"not-absolute", &error); | ||||
g_assert_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_FILENAME); | ||||
g_test_message ("attempting to export not-absolute: %s", error->message); | ||||
g_assert_false (ok); | ||||
g_clear_error (&error); | ||||
test_host_exports_finish (exports, bwrap); | test_host_exports_finish (exports, bwrap); | |||
i = 0; | i = 0; | |||
g_assert_cmpuint (i, <, bwrap->argv->len); | g_assert_cmpuint (i, <, bwrap->argv->len); | |||
g_assert_cmpstr (bwrap->argv->pdata[i++], ==, "bwrap"); | g_assert_cmpstr (bwrap->argv->pdata[i++], ==, "bwrap"); | |||
i = assert_next_is_bind (bwrap, i, "--symlink", "var/home", "/home"); | i = assert_next_is_bind (bwrap, i, "--symlink", "var/home", "/home"); | |||
i = assert_next_is_bind (bwrap, i, "--ro-bind", "/tmp", "/tmp"); | i = assert_next_is_bind (bwrap, i, "--ro-bind", "/tmp", "/tmp"); | |||
i = assert_next_is_bind (bwrap, i, "--ro-bind", "/var/home/me", | i = assert_next_is_bind (bwrap, i, "--ro-bind", "/var/home/me", | |||
"/var/home/me"); | "/var/home/me"); | |||
skipping to change at line 1402 | skipping to change at line 1475 | |||
g_assert_cmpuint (i, ==, bwrap->argv->len - 1); | g_assert_cmpuint (i, ==, bwrap->argv->len - 1); | |||
g_assert_cmpstr (bwrap->argv->pdata[i++], ==, NULL); | g_assert_cmpstr (bwrap->argv->pdata[i++], ==, NULL); | |||
g_assert_cmpuint (i, ==, bwrap->argv->len); | g_assert_cmpuint (i, ==, bwrap->argv->len); | |||
} | } | |||
int | int | |||
main (int argc, char *argv[]) | main (int argc, char *argv[]) | |||
{ | { | |||
int res; | int res; | |||
/* Do not call setlocale() here: some tests look at untranslated error | ||||
* messages. */ | ||||
isolated_test_dir_global_setup (); | isolated_test_dir_global_setup (); | |||
g_test_init (&argc, &argv, NULL); | g_test_init (&argc, &argv, NULL); | |||
g_test_add_func ("/context/empty", test_empty_context); | g_test_add_func ("/context/empty", test_empty_context); | |||
g_test_add_func ("/context/filesystems", test_filesystems); | g_test_add_func ("/context/filesystems", test_filesystems); | |||
g_test_add_func ("/context/full", test_full_context); | g_test_add_func ("/context/full", test_full_context); | |||
g_test_add_func ("/exports/empty", test_empty); | g_test_add_func ("/exports/empty", test_empty); | |||
g_test_add_func ("/exports/full", test_full); | g_test_add_func ("/exports/full", test_full); | |||
g_test_add_func ("/exports/host/arch", test_exports_arch); | g_test_add_func ("/exports/host/arch", test_exports_arch); | |||
End of changes. 8 change blocks. | ||||
104 lines changed or deleted | 185 lines changed or added |