+static void test_parse_bytes(void) {
+ off_t bytes;
+
+ assert_se(parse_bytes("111", &bytes) == 0);
+ assert_se(bytes == 111);
+
+ assert_se(parse_bytes(" 112 B", &bytes) == 0);
+ assert_se(bytes == 112);
+
+ assert_se(parse_bytes("3 K", &bytes) == 0);
+ assert_se(bytes == 3*1024);
+
+ assert_se(parse_bytes(" 4 M 11K", &bytes) == 0);
+ assert_se(bytes == 4*1024*1024 + 11 * 1024);
+
+ assert_se(parse_bytes("3B3G", &bytes) == 0);
+ assert_se(bytes == 3ULL*1024*1024*1024 + 3);
+
+ assert_se(parse_bytes("3B3G4T", &bytes) == 0);
+ assert_se(bytes == (4ULL*1024 + 3)*1024*1024*1024 + 3);
+
+ assert_se(parse_bytes("12P", &bytes) == 0);
+ assert_se(bytes == 12ULL * 1024*1024*1024*1024*1024);
+
+ assert_se(parse_bytes("3E 2P", &bytes) == 0);
+ assert_se(bytes == (3 * 1024 + 2ULL) * 1024*1024*1024*1024*1024);
+
+ assert_se(parse_bytes("12X", &bytes) == -EINVAL);
+
+ assert_se(parse_bytes("1024E", &bytes) == -ERANGE);
+ assert_se(parse_bytes("-1", &bytes) == -ERANGE);
+ assert_se(parse_bytes("-1024E", &bytes) == -ERANGE);
+
+ assert_se(parse_bytes("-1024P", &bytes) == -ERANGE);
+
+ assert_se(parse_bytes("-10B 20K", &bytes) == -ERANGE);
+}
+
+static void test_strextend(void) {
+ _cleanup_free_ char *str = strdup("0123");
+ strextend(&str, "456", "78", "9", NULL);
+ assert_se(streq(str, "0123456789"));
+}
+
+static void test_strrep(void) {
+ _cleanup_free_ char *one, *three, *zero;
+ one = strrep("waldo", 1);
+ three = strrep("waldo", 3);
+ zero = strrep("waldo", 0);
+
+ assert_se(streq(one, "waldo"));
+ assert_se(streq(three, "waldowaldowaldo"));
+ assert_se(streq(zero, ""));
+}
+
+static void test_parse_user_at_host(void) {
+ _cleanup_free_ char *both = strdup("waldo@waldoscomputer");
+ _cleanup_free_ char *onlyhost = strdup("mikescomputer");
+ char *user = NULL, *host = NULL;
+
+ parse_user_at_host(both, &user, &host);
+ assert_se(streq(user, "waldo"));
+ assert_se(streq(host, "waldoscomputer"));
+
+ user = host = NULL;
+ parse_user_at_host(onlyhost, &user, &host);
+ assert_se(user == NULL);
+ assert_se(streq(host, "mikescomputer"));
+}
+