summaryrefslogtreecommitdiff
path: root/src/test/test-mount-util.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-06-21 19:21:10 +0200
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-06-22 14:42:03 +0900
commit51bb6a103e13b156766ba76a62acd397537ec9fb (patch)
tree7eb1950d131d3c623e969fd38d068e761eb76b17 /src/test/test-mount-util.c
parent917578880fa1e4392c95b6a22e713ef31012125b (diff)
downloadsystemd-51bb6a103e13b156766ba76a62acd397537ec9fb.tar.gz
test-mount-util: add output test for mount_flags_to_string()
Diffstat (limited to 'src/test/test-mount-util.c')
-rw-r--r--src/test/test-mount-util.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/test/test-mount-util.c b/src/test/test-mount-util.c
index e25b4464fd..0cbf68aa00 100644
--- a/src/test/test-mount-util.c
+++ b/src/test/test-mount-util.c
@@ -7,6 +7,7 @@
#include "capability-util.h"
#include "fd-util.h"
#include "fileio.h"
+#include "missing_mount.h"
#include "mount-util.h"
#include "namespace-util.h"
#include "path-util.h"
@@ -78,6 +79,54 @@ static void test_mount_option_mangle(void) {
opts = mfree(opts);
}
+static void test_mount_flags_to_string_one(unsigned long flags, const char *expected) {
+ _cleanup_free_ char *x = NULL;
+ int r;
+
+ r = mount_flags_to_string(flags, &x);
+ log_info("flags: %#lX → %d/\"%s\"", flags, r, strnull(x));
+ assert_se(r >= 0);
+ assert_se(streq(x, expected));
+}
+
+static void test_mount_flags_to_string(void) {
+ log_info("/* %s */", __func__);
+
+ test_mount_flags_to_string_one(0, "0");
+ test_mount_flags_to_string_one(MS_RDONLY, "MS_RDONLY");
+ test_mount_flags_to_string_one(MS_NOSUID, "MS_NOSUID");
+ test_mount_flags_to_string_one(MS_NODEV, "MS_NODEV");
+ test_mount_flags_to_string_one(MS_NOEXEC, "MS_NOEXEC");
+ test_mount_flags_to_string_one(MS_SYNCHRONOUS, "MS_SYNCHRONOUS");
+ test_mount_flags_to_string_one(MS_REMOUNT, "MS_REMOUNT");
+ test_mount_flags_to_string_one(MS_MANDLOCK, "MS_MANDLOCK");
+ test_mount_flags_to_string_one(MS_DIRSYNC, "MS_DIRSYNC");
+ test_mount_flags_to_string_one(MS_NOSYMFOLLOW, "MS_NOSYMFOLLOW");
+ test_mount_flags_to_string_one(MS_NOATIME, "MS_NOATIME");
+ test_mount_flags_to_string_one(MS_NODIRATIME, "MS_NODIRATIME");
+ test_mount_flags_to_string_one(MS_BIND, "MS_BIND");
+ test_mount_flags_to_string_one(MS_MOVE, "MS_MOVE");
+ test_mount_flags_to_string_one(MS_REC, "MS_REC");
+ test_mount_flags_to_string_one(MS_SILENT, "MS_SILENT");
+ test_mount_flags_to_string_one(MS_POSIXACL, "MS_POSIXACL");
+ test_mount_flags_to_string_one(MS_UNBINDABLE, "MS_UNBINDABLE");
+ test_mount_flags_to_string_one(MS_PRIVATE, "MS_PRIVATE");
+ test_mount_flags_to_string_one(MS_SLAVE, "MS_SLAVE");
+ test_mount_flags_to_string_one(MS_SHARED, "MS_SHARED");
+ test_mount_flags_to_string_one(MS_RELATIME, "MS_RELATIME");
+ test_mount_flags_to_string_one(MS_KERNMOUNT, "MS_KERNMOUNT");
+ test_mount_flags_to_string_one(MS_I_VERSION, "MS_I_VERSION");
+ test_mount_flags_to_string_one(MS_STRICTATIME, "MS_STRICTATIME");
+ test_mount_flags_to_string_one(MS_LAZYTIME, "MS_LAZYTIME");
+ test_mount_flags_to_string_one(MS_LAZYTIME|MS_STRICTATIME, "MS_STRICTATIME|MS_LAZYTIME");
+ test_mount_flags_to_string_one(UINT_MAX,
+ "MS_RDONLY|MS_NOSUID|MS_NODEV|MS_NOEXEC|MS_SYNCHRONOUS|MS_REMOUNT|"
+ "MS_MANDLOCK|MS_DIRSYNC|MS_NOSYMFOLLOW|MS_NOATIME|MS_NODIRATIME|"
+ "MS_BIND|MS_MOVE|MS_REC|MS_SILENT|MS_POSIXACL|MS_UNBINDABLE|"
+ "MS_PRIVATE|MS_SLAVE|MS_SHARED|MS_RELATIME|MS_KERNMOUNT|"
+ "MS_I_VERSION|MS_STRICTATIME|MS_LAZYTIME|fc000200");
+}
+
static void test_bind_remount_recursive(void) {
_cleanup_(rm_rf_physical_and_freep) char *tmp = NULL;
_cleanup_free_ char *subdir = NULL;
@@ -172,6 +221,7 @@ int main(int argc, char *argv[]) {
test_setup_logging(LOG_DEBUG);
test_mount_option_mangle();
+ test_mount_flags_to_string();
test_bind_remount_recursive();
test_bind_remount_one();