X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/ca9488ce89bd4895db0341db393ec03696b4ebd3..HEAD:/test/common.c
diff --git a/test/common.c b/test/common.c
index c998624..9919b1b 100644
--- a/test/common.c
+++ b/test/common.c
@@ -1,6 +1,6 @@
/*
* Helper functions for test programs.
- * Copyright © 2012 Nick Bowler
+ * Copyright © 2012, 2022 Nick Bowler
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -13,12 +13,17 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * along with this program. If not, see .
*/
+
+#include
+#include
#include
#include
+#include
#include "common.h"
+#include "help.h"
/*
* Decode a hexadecimal string into a sequence of bytes. If there are an
@@ -35,7 +40,7 @@ size_t test_decode_hex(const char *hex, unsigned char *buf, size_t n)
char tmp[] = "00";
for (len = 0; hex[len]; len++) {
- if (!isxdigit(hex[len]))
+ if (!isxdigit((unsigned char)hex[len]))
return -1;
}
@@ -55,3 +60,23 @@ size_t test_decode_hex(const char *hex, unsigned char *buf, size_t n)
return count;
}
+
+void test_print_version(const char *program)
+{
+ printf("%s (%s) %s\n", program, PACKAGE_NAME, PACKAGE_VERSION);
+ puts("Copyright (C) 2022 Nick Bowler.");
+ puts("License GPLv3+: GNU GPL version 3 or any later version.");
+ puts("This is free software: you are free to change and redistribute it.");
+ puts("There is NO WARRANTY, to the extent permitted by law.");
+}
+
+void test_print_options(const struct option *lopts)
+{
+ const struct option *opt;
+
+ puts("\nOptions:");
+ for (opt = lopts; opt->val; opt++) {
+ if (help_print_optstring(opt, "ARG", 20))
+ putchar('\n');
+ }
+}