From 7978822b6936cb6cdb477d48c30f51487711310d Mon Sep 17 00:00:00 2001 From: Steffen Jaeckel Date: Mon, 11 May 2026 11:34:54 +0200 Subject: [PATCH] Add help to test binary. Signed-off-by: Steffen Jaeckel --- tests/test.c | 98 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 65 insertions(+), 33 deletions(-) diff --git a/tests/test.c b/tests/test.c index aa8e9204..dc12760a 100644 --- a/tests/test.c +++ b/tests/test.c @@ -6,7 +6,7 @@ #define GIT_VERSION "Undefined version" #endif -#define LTC_TEST_FN(f) { f, #f } +#define LTC_TEST_FN(f) { f ## _test, #f } typedef struct { int (*fn)(void); @@ -15,41 +15,41 @@ typedef struct { static const test_function test_functions[] = { - LTC_TEST_FN(store_test), - LTC_TEST_FN(rotate_test), - LTC_TEST_FN(cipher_hash_test), - LTC_TEST_FN(misc_test), - LTC_TEST_FN(mpi_test), - LTC_TEST_FN(mac_test), - LTC_TEST_FN(modes_test), - LTC_TEST_FN(der_test), - LTC_TEST_FN(pkcs_1_test), - LTC_TEST_FN(pkcs_1_pss_test), - LTC_TEST_FN(pkcs_1_oaep_test), - LTC_TEST_FN(pkcs_1_emsa_test), - LTC_TEST_FN(pkcs_1_eme_test), - LTC_TEST_FN(rsa_test), - LTC_TEST_FN(dh_test), - LTC_TEST_FN(ecc_test), - LTC_TEST_FN(dsa_test), - LTC_TEST_FN(ed25519_test), - LTC_TEST_FN(ed25519_mpi_test), - LTC_TEST_FN(x25519_test), - LTC_TEST_FN(x25519_mpi_test), - LTC_TEST_FN(ed448_test), - LTC_TEST_FN(ed448_mpi_test), - LTC_TEST_FN(x448_test), - LTC_TEST_FN(x448_mpi_test), - LTC_TEST_FN(file_test), - LTC_TEST_FN(multi_test), - LTC_TEST_FN(pem_test), - LTC_TEST_FN(deprecated_test), - LTC_TEST_FN(nop_test), + LTC_TEST_FN(store), + LTC_TEST_FN(rotate), + LTC_TEST_FN(cipher_hash), + LTC_TEST_FN(misc), + LTC_TEST_FN(mpi), + LTC_TEST_FN(mac), + LTC_TEST_FN(modes), + LTC_TEST_FN(der), + LTC_TEST_FN(pkcs_1), + LTC_TEST_FN(pkcs_1_pss), + LTC_TEST_FN(pkcs_1_oaep), + LTC_TEST_FN(pkcs_1_emsa), + LTC_TEST_FN(pkcs_1_eme), + LTC_TEST_FN(rsa), + LTC_TEST_FN(dh), + LTC_TEST_FN(ecc), + LTC_TEST_FN(dsa), + LTC_TEST_FN(ed25519), + LTC_TEST_FN(ed25519_mpi), + LTC_TEST_FN(x25519), + LTC_TEST_FN(x25519_mpi), + LTC_TEST_FN(ed448), + LTC_TEST_FN(ed448_mpi), + LTC_TEST_FN(x448), + LTC_TEST_FN(x448_mpi), + LTC_TEST_FN(file), + LTC_TEST_FN(multi), + LTC_TEST_FN(pem), + LTC_TEST_FN(deprecated), + LTC_TEST_FN(nop), /* keep the prng_test always at the end as * it has to be handled specially when * testing with LTC_PTHREAD enabled */ - LTC_TEST_FN(prng_test), + LTC_TEST_FN(prng), }; @@ -343,6 +343,21 @@ static void register_algs(void) exit(EXIT_FAILURE); } } +static void LTC_NORETURN die(int status) +{ + FILE* o = status == EXIT_SUCCESS ? stdout : stderr; + fprintf(o, + "Usage: test [<-h|-l|case>] [mpi]\n\n" + "Run all built-in tests, or only the one given in .\n\n" + "\tcase\tThe algorithms to test. Use the '-l' option to check for valid values.\n" + "\tmpi\tThe MPI provider to use.\n" + "\t-l\tList all tests that can be executed.\n" + "\t-h\tThe help you're looking at.\n\n" + "Examples:\n" + "\ttest rsa tfm\t\tWill run only the RSA tests with TomsFastMath as MPI provider.\n" + ); + exit(status); +} int main(int argc, char **argv) { @@ -355,6 +370,23 @@ int main(int argc, char **argv) char *single_test = NULL; ulong64 ts; long delta, dur, real = 0; + + if (argc > 1) { + if (strstr(argv[1], "-h")) { + die(EXIT_SUCCESS); + } else if (strstr(argv[1], "-l")) { + printf("The following tests are available:\n"); + for (i = 0; i < LTC_ARRAY_SIZE(test_functions); ++i) { + if (i % 4 == 0) + putchar('\n'); + printf(" %-13s", test_functions[i].name); + } + putchar('\n'); + exit(0); + } + } + + register_algs(); printf("LTC_VERSION = %s\n%s\n\n", GIT_VERSION, crypt_build_settings); @@ -412,7 +444,7 @@ int main(int argc, char **argv) #endif } - fn_len = fn_len + (4 - (fn_len % 4)); + fn_len = fn_len + (8 - (fn_len % 8)); /* single test name from commandline */ if (argc > 1) single_test = argv[1];