test-devnum-util: convert to new ASSERT macros

Replace assert_se() with the typed ASSERT_* macros throughout, so that
a failing assertion logs the values involved.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek committed 2026-11-02 22:36:06 +01:00
1 parent 9d394d9355
commit cb1336c4ba
1 file changed
+43 -40
+43 -40
View File
@@ -3,60 +3,63 @@
#include <sys/stat.h>
#include "devnum-util.h"
#include "path-util.h"
#include "stat-util.h"
#include "tests.h"
TEST(parse_devnum) {
dev_t dev;
assert_se(parse_devnum("", &dev) == -EINVAL);
assert_se(parse_devnum("junk", &dev) == -EINVAL);
assert_se(parse_devnum("0", &dev) == -EINVAL);
assert_se(parse_devnum("5", &dev) == -EINVAL);
assert_se(parse_devnum("5:", &dev) == -EINVAL);
assert_se(parse_devnum(":5", &dev) == -EINVAL);
assert_se(parse_devnum("-1:-1", &dev) == -EINVAL);
ASSERT_ERROR(parse_devnum("", &dev), EINVAL);
ASSERT_ERROR(parse_devnum("junk", &dev), EINVAL);
ASSERT_ERROR(parse_devnum("0", &dev), EINVAL);
ASSERT_ERROR(parse_devnum("5", &dev), EINVAL);
ASSERT_ERROR(parse_devnum("5:", &dev), EINVAL);
ASSERT_ERROR(parse_devnum(":5", &dev), EINVAL);
ASSERT_ERROR(parse_devnum("-1:-1", &dev), EINVAL);
#if SIZEOF_DEV_T < 8
assert_se(parse_devnum("4294967295:4294967295", &dev) == -EINVAL);
ASSERT_ERROR(parse_devnum("4294967295:4294967295", &dev), EINVAL);
#endif
assert_se(parse_devnum("8:11", &dev) >= 0 && major(dev) == 8 && minor(dev) == 11);
assert_se(parse_devnum("0:0", &dev) >= 0 && major(dev) == 0 && minor(dev) == 0);
ASSERT_OK(parse_devnum("8:11", &dev));
ASSERT_EQ(major(dev), 8U);
ASSERT_EQ(minor(dev), 11U);
ASSERT_OK(parse_devnum("0:0", &dev));
ASSERT_EQ(major(dev), 0U);
ASSERT_EQ(minor(dev), 0U);
}
TEST(device_major_minor_valid) {
/* on glibc dev_t is 64-bit, even though in the kernel it is only 32-bit */
assert_cc(sizeof(dev_t) == sizeof(uint64_t));
assert_se(DEVICE_MAJOR_VALID(0U));
assert_se(DEVICE_MINOR_VALID(0U));
ASSERT_TRUE(DEVICE_MAJOR_VALID(0U));
ASSERT_TRUE(DEVICE_MINOR_VALID(0U));
assert_se(DEVICE_MAJOR_VALID(1U));
assert_se(DEVICE_MINOR_VALID(1U));
ASSERT_TRUE(DEVICE_MAJOR_VALID(1U));
ASSERT_TRUE(DEVICE_MINOR_VALID(1U));
assert_se(!DEVICE_MAJOR_VALID(-1U));
assert_se(!DEVICE_MINOR_VALID(-1U));
ASSERT_FALSE(DEVICE_MAJOR_VALID(-1U));
ASSERT_FALSE(DEVICE_MINOR_VALID(-1U));
assert_se(DEVICE_MAJOR_VALID(1U << 10));
assert_se(DEVICE_MINOR_VALID(1U << 10));
ASSERT_TRUE(DEVICE_MAJOR_VALID(1U << 10));
ASSERT_TRUE(DEVICE_MINOR_VALID(1U << 10));
assert_se(DEVICE_MAJOR_VALID((1U << 12) - 1));
assert_se(DEVICE_MINOR_VALID((1U << 20) - 1));
ASSERT_TRUE(DEVICE_MAJOR_VALID((1U << 12) - 1));
ASSERT_TRUE(DEVICE_MINOR_VALID((1U << 20) - 1));
assert_se(!DEVICE_MAJOR_VALID((1U << 12)));
assert_se(!DEVICE_MINOR_VALID((1U << 20)));
ASSERT_FALSE(DEVICE_MAJOR_VALID((1U << 12)));
ASSERT_FALSE(DEVICE_MINOR_VALID((1U << 20)));
assert_se(!DEVICE_MAJOR_VALID(1U << 25));
assert_se(!DEVICE_MINOR_VALID(1U << 25));
ASSERT_FALSE(DEVICE_MAJOR_VALID(1U << 25));
ASSERT_FALSE(DEVICE_MINOR_VALID(1U << 25));
assert_se(!DEVICE_MAJOR_VALID(UINT32_MAX));
assert_se(!DEVICE_MINOR_VALID(UINT32_MAX));
ASSERT_FALSE(DEVICE_MAJOR_VALID(UINT32_MAX));
ASSERT_FALSE(DEVICE_MINOR_VALID(UINT32_MAX));
assert_se(!DEVICE_MAJOR_VALID(UINT64_MAX));
assert_se(!DEVICE_MINOR_VALID(UINT64_MAX));
ASSERT_FALSE(DEVICE_MAJOR_VALID(UINT64_MAX));
ASSERT_FALSE(DEVICE_MINOR_VALID(UINT64_MAX));
assert_se(DEVICE_MAJOR_VALID(major(0)));
assert_se(DEVICE_MINOR_VALID(minor(0)));
ASSERT_TRUE(DEVICE_MAJOR_VALID(major(0)));
ASSERT_TRUE(DEVICE_MINOR_VALID(minor(0)));
}
static void test_device_path_make_canonical_one(const char *path) {
@@ -69,7 +72,7 @@ static void test_device_path_make_canonical_one(const char *path) {
log_debug("> %s", path);
if (stat(path, &st) < 0) {
assert_se(errno == ENOENT);
ASSERT_EQ(errno, ENOENT);
log_notice("Path %s not found, skipping test", path);
return;
}
@@ -82,14 +85,14 @@ static void test_device_path_make_canonical_one(const char *path) {
return;
}
assert_se(r >= 0);
assert_se(path_equal(path, resolved));
ASSERT_OK(r);
ASSERT_PATH_EQ(path, resolved);
assert_se(device_path_make_major_minor(st.st_mode, st.st_rdev, &raw) >= 0);
assert_se(device_path_parse_major_minor(raw, &mode, &devno) >= 0);
ASSERT_OK(device_path_make_major_minor(st.st_mode, st.st_rdev, &raw));
ASSERT_OK(device_path_parse_major_minor(raw, &mode, &devno));
assert_se(st.st_rdev == devno);
assert_se((st.st_mode & S_IFMT) == (mode & S_IFMT));
ASSERT_EQ(st.st_rdev, devno);
ASSERT_EQ(st.st_mode & S_IFMT, mode & S_IFMT);
}
TEST(device_path_make_canonical) {
@@ -110,8 +113,8 @@ static void test_devnum_format_str_one(dev_t devnum, const char *s) {
dev_t x;
ASSERT_STREQ(FORMAT_DEVNUM(devnum), s);
assert_se(parse_devnum(s, &x) >= 0);
assert_se(x == devnum);
ASSERT_OK(parse_devnum(s, &x));
ASSERT_EQ(x, devnum);
}
TEST(devnum_format_str) {