check_PROGRAMS += \
test_sysfs \
test_pager \
- test_caputils
+ test_caputils \
+ test_loopdev
endif
if HAVE_OPENAT
endif
if LINUX
+
test_cpuset_SOURCES = lib/cpuset.c
test_cpuset_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_CPUSET
test_buffer_SOURCES = lib/buffer.c
test_buffer_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_BUFFER
+
+test_loopdev_SOURCES = lib/loopdev.c \
+ $(test_sysfs_SOURCES) \
+ $(test_canonicalize_SOURCES)
+test_loopdev_CFLAGS = $(AM_CFLAGS) -DTEST_PROGRAM_LOOPDEV
rc = 0;
else if (major(st.st_rdev) == LOOPDEV_MAJOR)
rc = 1;
- else {
+ else if (sysfs_devno_is_wholedisk(st.st_rdev)) {
/* It's possible that kernel creates a device with a different
* major number ... check by /sys it's really loop device.
*/
return count;
}
+#ifdef TEST_PROGRAM_LOOPDEV
+int main(int argc, char *argv[])
+{
+ if (argc < 2)
+ goto usage;
+
+ if (strcmp(argv[1], "--is-loopdev") == 0 && argc == 3)
+ printf("%s: %s\n", argv[2], is_loopdev(argv[2]) ? "OK" : "FAIL");
+ else
+ goto usage;
+
+ return EXIT_SUCCESS;
+usage:
+ fprintf(stderr, "usage: %1$s --is-loopdev <dev>\n",
+ program_invocation_short_name);
+ return EXIT_FAILURE;
+}
+#endif
+