]> git.ipfire.org Git - thirdparty/snapper.git/commitdiff
- added function to format qgroup
authorArvin Schnell <aschnell@suse.de>
Tue, 29 Mar 2016 13:57:16 +0000 (15:57 +0200)
committerArvin Schnell <aschnell@suse.de>
Tue, 29 Mar 2016 13:57:16 +0000 (15:57 +0200)
snapper/BtrfsUtils.cc
snapper/BtrfsUtils.h
testsuite/Makefile.am
testsuite/qgroup1.cc [new file with mode: 0644]

index bd2d87cf417b287930de024d47dfee3113d62d93..22bc41103cb8cf22148341851f2e072f652511e9 100644 (file)
@@ -358,6 +358,16 @@ namespace snapper
        }
 
 
+       string
+       format_qgroup(qgroup_t qgroup)
+       {
+           std::ostringstream ret;
+           classic(ret);
+           ret << (qgroup >> 48) << "/" << (qgroup & ((1LLU << 48) - 1));
+           return ret.str();
+       }
+
+
        void
        qgroup_create(int fd, qgroup_t qgroup)
        {
index f76b130aa6eb9f085063c3104f14d8a8d0c4ef86..1e4421b542871d1fdbf6289e7dbc11ed6281edc6 100644 (file)
@@ -65,6 +65,7 @@ namespace snapper
 
        qgroup_t calc_qgroup(uint64_t level, subvolid_t id);
        qgroup_t parse_qgroup(const string& str);
+       string format_qgroup(qgroup_t qgroup);
 
        void qgroup_create(int fd, qgroup_t qgroup);
        void qgroup_destroy(int fd, qgroup_t qgroup);
index a29ccd4b7a0b0d68b3634aa49ce454578a05bfd4..90c19580fcb493b37094077778b7e86e23c75206 100644 (file)
@@ -7,7 +7,7 @@ AM_CPPFLAGS = -I$(top_srcdir) $(DBUS_CFLAGS)
 LDADD = ../snapper/libsnapper.la ../dbus/libdbus.la -lboost_unit_test_framework
 
 check_PROGRAMS = sysconfig-get1.test dirname1.test basename1.test              \
-       equal-date.test dbus-escape.test cmp-lt.test
+       equal-date.test dbus-escape.test cmp-lt.test qgroup1.test
 
 TESTS = $(check_PROGRAMS)
 
diff --git a/testsuite/qgroup1.cc b/testsuite/qgroup1.cc
new file mode 100644 (file)
index 0000000..1e56306
--- /dev/null
@@ -0,0 +1,28 @@
+
+#define BOOST_TEST_DYN_LINK
+#define BOOST_TEST_MODULE qgroup1
+
+#include <boost/test/unit_test.hpp>
+
+#include <snapper/BtrfsUtils.h>
+
+using namespace snapper;
+using namespace BtrfsUtils;
+
+
+BOOST_AUTO_TEST_CASE(parse)
+{
+    BOOST_CHECK_EQUAL(parse_qgroup("0/0"), 0);
+    BOOST_CHECK_EQUAL(parse_qgroup("0/2"), 2);
+    BOOST_CHECK_EQUAL(parse_qgroup("1/0"), 1LLU << 48);
+    BOOST_CHECK_EQUAL(parse_qgroup("1/2"), (1LLU << 48) + 2);
+}
+
+
+BOOST_AUTO_TEST_CASE(format)
+{
+    BOOST_CHECK_EQUAL(format_qgroup(0), "0/0");
+    BOOST_CHECK_EQUAL(format_qgroup(2), "0/2");
+    BOOST_CHECK_EQUAL(format_qgroup(1LLU << 48), "1/0");
+    BOOST_CHECK_EQUAL(format_qgroup((1LLU << 48) + 2), "1/2");
+}