]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: add tests for ID128_REFUSE_NULL
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 4 Apr 2023 03:26:57 +0000 (12:26 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 4 Apr 2023 15:52:56 +0000 (00:52 +0900)
src/test/test-id128.c

index 75c3582734e77aa2ab1d59645fcfaa92f902a686..e022804402176253e8a4690ba781bdb50ed78d54 100644 (file)
@@ -289,4 +289,24 @@ TEST(id128_at) {
         assert_se(sd_id128_equal(id, i));
 }
 
+TEST(ID128_REFUSE_NULL) {
+        _cleanup_(rm_rf_physical_and_freep) char *t = NULL;
+        _cleanup_close_ int tfd = -EBADF;
+        sd_id128_t id;
+
+        tfd = mkdtemp_open(NULL, O_PATH, &t);
+        assert_se(tfd >= 0);
+
+        assert_se(id128_write_at(tfd, "zero-id", ID128_FORMAT_PLAIN | ID128_REFUSE_NULL, (sd_id128_t) {}) == -ENOMEDIUM);
+        assert_se(unlinkat(tfd, "zero-id", 0) >= 0);
+        assert_se(id128_write_at(tfd, "zero-id", ID128_FORMAT_PLAIN, (sd_id128_t) {}) >= 0);
+
+        assert_se(sd_id128_randomize(&id) == 0);
+        assert_se(!sd_id128_equal(id, SD_ID128_NULL));
+        assert_se(id128_read_at(tfd, "zero-id", ID128_FORMAT_PLAIN, &id) >= 0);
+        assert_se(sd_id128_equal(id, SD_ID128_NULL));
+
+        assert_se(id128_read_at(tfd, "zero-id", ID128_FORMAT_PLAIN | ID128_REFUSE_NULL, &id) == -ENOMEDIUM);
+}
+
 DEFINE_TEST_MAIN(LOG_INFO);