X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=tests%2Fregression%2Fust%2Fmulti-lib%2Fmulti-lib-test.c;h=155ef81ae27ebc6ba7c699916129ab48425fc915;hb=HEAD;hp=e145aa21aeae49e8310dc498c40e301499b88126;hpb=3f7f208a0150d93363cbf7755e890a9839114ab5;p=lttng-tools.git diff --git a/tests/regression/ust/multi-lib/multi-lib-test.c b/tests/regression/ust/multi-lib/multi-lib-test.c index e145aa21a..155ef81ae 100644 --- a/tests/regression/ust/multi-lib/multi-lib-test.c +++ b/tests/regression/ust/multi-lib/multi-lib-test.c @@ -1,47 +1,42 @@ /* - * Copyright (C) - 2018 Francis Deslauriers + * Copyright (C) 2018 Francis Deslauriers * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as published by the - * Free Software Foundation; version 2.1 of the License. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include +#include #include #include #include -#include #if HAS_CALLSITES #include "callsites.h" #endif -void exec_callsite() +void exec_callsite(void); +void exec_callsite(void) { #if HAS_CALLSITES call_tracepoint(); #endif } -void print_list(void) +static void print_list(void) { fprintf(stderr, "Test list (-t X):\n"); - fprintf(stderr, "\t0: dlopen() all libraries pass in arguments and execute " - "the callsite.\n"); - fprintf(stderr, "\t1: simulate the upgrade of a probe provider using dlopen() and dlclose(). \n"); - fprintf(stderr, "\t2: simulate the upgrade of a library containing the callsites using dlopen() and dlclose(). \n"); + fprintf(stderr, + "\t0: dlopen() all libraries pass in arguments and execute " + "the callsite.\n"); + fprintf(stderr, + "\t1: simulate the upgrade of a probe provider using dlopen() and dlclose(). \n"); + fprintf(stderr, + "\t2: simulate the upgrade of a library containing the callsites using dlopen() and dlclose(). \n"); } -int dl_open_all(int nb_libraries, char **libraries) +#if HAS_CALLSITES +static int dl_open_all(int nb_libraries, char **libraries) { int i, ret = 0; void **handles; @@ -71,7 +66,7 @@ error: * Takes 2 paths to libraries, dlopen() the first, trace, dlopen() the second, * and dlclose the first to simulate the upgrade of a library. */ -int upgrade_lib(int nb_libraries, char **libraries) +static int upgrade_lib(int nb_libraries, char **libraries) { int i, ret = 0; void *handles[2]; @@ -102,12 +97,14 @@ int upgrade_lib(int nb_libraries, char **libraries) error: return ret; } +#endif /* HAS_CALLSITES */ +#if !HAS_CALLSITES /* * Simulate the upgrade of a library containing a callsite. * Receives two libraries containing callsites for the same tracepoint. */ -int upgrade_callsite(int nb_libraries, char **libraries) +static int upgrade_callsite(int nb_libraries, char **libraries) { int ret = 0; void *handles[2]; @@ -169,6 +166,7 @@ int upgrade_callsite(int nb_libraries, char **libraries) error: return ret; } +#endif /* !HAS_CALLSITES */ int main(int argc, const char **argv) { @@ -176,10 +174,9 @@ int main(int argc, const char **argv) char **libraries = NULL; poptContext optCon; struct poptOption optionsTable[] = { - { "test", 't', POPT_ARG_INT, &test, 0, "Test to run", NULL }, - { "list", 'l', 0, 0, 'l', "List of tests (-t X)", NULL }, - POPT_AUTOHELP - { NULL, 0, 0, NULL, 0 } + { "test", 't', POPT_ARG_INT, &test, 0, "Test to run", NULL }, + { "list", 'l', 0, 0, 'l', "List of tests (-t X)", NULL }, + POPT_AUTOHELP{ NULL, 0, 0, NULL, 0, NULL, NULL } }; optCon = poptGetContext(NULL, argc, argv, optionsTable, 0); @@ -190,7 +187,7 @@ int main(int argc, const char **argv) } while ((c = poptGetNextOpt(optCon)) >= 0) { - switch(c) { + switch (c) { case 'l': print_list(); goto error; @@ -201,38 +198,47 @@ int main(int argc, const char **argv) * Populate the libraries array with the arguments passed to the process. */ while (poptPeekArg(optCon) != NULL) { + char **realloced_libraries = NULL; + nb_libraries++; - libraries = realloc(libraries, nb_libraries * sizeof(char *)); - if (!libraries) { + realloced_libraries = realloc(libraries, nb_libraries * sizeof(char *)); + if (!realloced_libraries) { ret = -1; goto error; } + libraries = realloced_libraries; libraries[nb_libraries - 1] = (char *) poptGetArg(optCon); } - switch(test) { + switch (test) { case 0: #if HAS_CALLSITES ret = dl_open_all(nb_libraries, libraries); #else - fprintf(stderr, "Test not implemented for configuration " - "(HAS_CALLSITES=%d)\n", HAS_CALLSITES == 1); + fprintf(stderr, + "Test not implemented for configuration " + "(HAS_CALLSITES=%d)\n", + HAS_CALLSITES == 1); #endif break; case 1: #if HAS_CALLSITES ret = upgrade_lib(nb_libraries, libraries); #else - fprintf(stderr, "Test not implemented for configuration " - "(HAS_CALLSITES=%d)\n", HAS_CALLSITES == 1); + fprintf(stderr, + "Test not implemented for configuration " + "(HAS_CALLSITES=%d)\n", + HAS_CALLSITES == 1); #endif break; case 2: #if !HAS_CALLSITES ret = upgrade_callsite(nb_libraries, libraries); #else - fprintf(stderr, "Test not implemented for configuration " - "(HAS_CALLSITES=%d)\n", HAS_CALLSITES == 1); + fprintf(stderr, + "Test not implemented for configuration " + "(HAS_CALLSITES=%d)\n", + HAS_CALLSITES == 1); #endif break; default: