]> err.no Git - util-linux/commitdiff
tests: add simple helper that returns info about system
authorKarel Zak <kzak@redhat.com>
Thu, 4 Jan 2007 13:53:19 +0000 (14:53 +0100)
committerKarel Zak <kzak@redhat.com>
Thu, 4 Jan 2007 13:53:19 +0000 (14:53 +0100)
usage: tests/helpers/mnt_test_sysinfo <infoname>

Signed-off-by: Karel Zak <kzak@redhat.com>
configure.ac
tests/Makefile.am
tests/commands.sh.in
tests/helpers/Makefile.am [new file with mode: 0644]
tests/helpers/mnt_test_sysinfo.c [new file with mode: 0644]

index b4cbf2ef4e85cf4297ece3d599ea5f968be42450..20349cd2fb3d05471d12a01b362d0a5c57076a88 100644 (file)
@@ -409,6 +409,7 @@ schedutils/Makefile
 sys-utils/Makefile
 text-utils/Makefile
 tests/Makefile
+tests/helpers/Makefile
 tests/commands.sh
 ])
 
index 80d8b98d9235a6ed27f8200ddbe2a54c950962d0..ff516ede45dbd5e44bb1d52f0f45cdf3b86012a2 100644 (file)
@@ -1,5 +1,7 @@
 include $(top_srcdir)/config/include-Makefile.am
 
+SUBDIRS = helpers
+
 EXTRA_DIST =   commands.sh.in \
                functions.sh \
                ts-mount-paths \
index 54d57a8a4d26c221991b23b331aef7289fe1b23a..4345a28f5f59d960b54f36c2fa72ff2dbf2843e2 100644 (file)
@@ -1,6 +1,9 @@
 TOPDIR=@top_srcdir@
 TS_TOPDIR=$TOPDIR/tests
 
+# helpers
+TS_HELPER_SYSINFO="$TS_TOPDIR/helpers/mnt_test_sysinfo"
+
 # paths to commands
 TS_CMD_MOUNT=${TS_CMD_MOUNT:-"$TOPDIR/mount/mount"}
 TS_CMD_UMOUNT=${TS_CMD_MOUNT:-"$TOPDIR/mount/umount"}
diff --git a/tests/helpers/Makefile.am b/tests/helpers/Makefile.am
new file mode 100644 (file)
index 0000000..13eaae1
--- /dev/null
@@ -0,0 +1,5 @@
+include $(top_srcdir)/config/include-Makefile.am
+
+noinst_PROGRAMS = mnt_test_sysinfo
+
+mnt_test_sysinfo_SOURCES = mnt_test_sysinfo.c 
diff --git a/tests/helpers/mnt_test_sysinfo.c b/tests/helpers/mnt_test_sysinfo.c
new file mode 100644 (file)
index 0000000..0acb130
--- /dev/null
@@ -0,0 +1,106 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <limits.h>
+
+typedef struct {
+       const char      *name;
+       int             (*fnc)(void);
+} mntHlpfnc;
+
+int
+hlp_wordsize(void)
+{
+       printf("%d\n", __WORDSIZE);
+       return 0;
+}
+
+int
+hlp_pagesize(void)
+{
+       printf("%d\n", getpagesize());
+       return 0;
+}
+
+int
+hlp_int_max(void)
+{
+       printf("%d\n", INT_MAX);
+       return 0;
+}
+
+int
+hlp_uint_max(void)
+{
+       printf("%u\n", UINT_MAX);
+       return 0;
+}
+
+int
+hlp_long_max(void)
+{
+       printf("%ld\n", LONG_MAX);
+       return 0;
+}
+
+int
+hlp_ulong_max(void)
+{
+       printf("%lu\n", ULONG_MAX);
+       return 0;
+}
+
+int
+hlp_ulong_max32(void)
+{
+       printf("%lu\n", ULONG_MAX >> 32);
+       return 0;
+}
+
+mntHlpfnc hlps[] = 
+{
+       { "WORDSIZE",   hlp_wordsize    },
+       { "pagesize",   hlp_pagesize    },
+       { "INT_MAX",    hlp_int_max     },      
+       { "UINT_MAX",   hlp_uint_max    },
+       { "LONG_MAX",   hlp_long_max    },
+       { "ULONG_MAX",  hlp_ulong_max   },
+       { "ULONG_MAX32",hlp_ulong_max32 },
+       { NULL, NULL }
+};
+
+int
+main(int argc, char **argv)
+{
+       int re = 0;
+       mntHlpfnc *fn;
+
+       if (argc == 1) {
+               for (fn = hlps; fn->name; fn++) {
+                       printf("%15s: ", fn->name);
+                       re += fn->fnc();
+               }
+       } else {
+               int i;
+
+               if (strcmp(argv[0], "--help") == 0 || strcmp(argv[0], "-h") == 0) {
+                       printf("%s <option>\n", argv[0]);
+                       fputs("options:\n", stdout);
+                       for (fn = hlps; fn->name; fn++) 
+                               printf("\t%s\n", fn->name);
+                       exit(EXIT_SUCCESS);
+               }
+
+               for (i=1; i < argc; i++) {
+                       for (fn = hlps; fn->name; fn++) {
+                               if (strcmp(fn->name, argv[i]) == 0)
+                                       re += fn->fnc();
+                       }
+               }
+       }
+       
+       exit(re ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+