From: Raphaël Beamonte Date: Fri, 15 Nov 2013 00:58:35 +0000 (-0500) Subject: Remove the utils_resolve_relative function that is not useful anymore X-Git-Tag: v2.4.0-rc1~2 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=635eb1df606e714f3d5cdded93b9c663b0e8e4c3 Remove the utils_resolve_relative function that is not useful anymore As all of the work is now done in utils_partial_realpath and utils_expand_path, utils_resolve_relative is not necessary anymore and should be deleted from the sources. Signed-off-by: Raphaël Beamonte Signed-off-by: David Goulet --- diff --git a/.gitignore b/.gitignore index 7041d3768..74d01cbed 100644 --- a/.gitignore +++ b/.gitignore @@ -56,7 +56,6 @@ tests/unit/test_session tests/unit/test_uri tests/unit/test_ust_data tests/unit/test_utils_parse_size_suffix -tests/unit/test_utils_resolve_relative tests/unit/test_utils_expand_path kernel_all_events_basic kernel_event_basic diff --git a/src/common/utils.c b/src/common/utils.c index d28e31349..2f93cbe73 100644 --- a/src/common/utils.c +++ b/src/common/utils.c @@ -163,73 +163,6 @@ error: return NULL; } -/* - * Resolve the './' and '../' strings in the middle of a path using - * our very own way to do it, so that it works even if the directory - * does not exist - */ -LTTNG_HIDDEN -char *utils_resolve_relative(const char *path) -{ - char *next, *previous, *slash, *start_path, *absolute_path = NULL; - - /* Safety net */ - if (path == NULL) { - goto error; - } - - /* Allocate memory for the absolute path */ - absolute_path = zmalloc(PATH_MAX); - if (absolute_path == NULL) { - PERROR("zmalloc expand path"); - goto error; - } - - /* Copy the path in the absolute path */ - strncpy(absolute_path, path, PATH_MAX); - - /* As long as we find '/./' in the path string */ - while ((next = strstr(absolute_path, "/./"))) { - - /* We prepare the start_path not containing it */ - start_path = strndup(absolute_path, next - absolute_path); - - /* And we concatenate it with the part after this string */ - snprintf(absolute_path, PATH_MAX, "%s%s", start_path, next + 2); - - free(start_path); - } - - /* As long as we find '/../' in the path string */ - while ((next = strstr(absolute_path, "/../"))) { - /* If the path starts with '/../', there's a problem */ - if (next == absolute_path) { - ERR("%s: Path cannot be resolved", path); - goto error; - } - - /* We find the last level of directory */ - previous = absolute_path; - while ((slash = strpbrk(previous + 1, "/")) && slash != next) { - previous = slash; - } - - /* Then we prepare the start_path not containing it */ - start_path = strndup(absolute_path, previous - absolute_path); - - /* And we concatenate it with the part after the '/../' */ - snprintf(absolute_path, PATH_MAX, "%s%s", start_path, next + 3); - - free(start_path); - } - - return absolute_path; - -error: - free(absolute_path); - return NULL; -} - /* * Make a full resolution of the given path even if it doesn't exist. * This function uses the utils_partial_realpath function to resolve diff --git a/src/common/utils.h b/src/common/utils.h index 036e416e7..c23dfb932 100644 --- a/src/common/utils.h +++ b/src/common/utils.h @@ -26,7 +26,6 @@ #define MEBI_LOG2 20 #define GIBI_LOG2 30 -char *utils_resolve_relative(const char *path); char *utils_partial_realpath(const char *path, char *resolved_path, size_t size); char *utils_expand_path(const char *path); diff --git a/tests/unit/Makefile.am b/tests/unit/Makefile.am index fa9c6a86c..945dd001e 100644 --- a/tests/unit/Makefile.am +++ b/tests/unit/Makefile.am @@ -17,7 +17,7 @@ LIBRELAYD=$(top_builddir)/src/common/relayd/librelayd.la # Define test programs noinst_PROGRAMS = test_uri test_session test_kernel_data -noinst_PROGRAMS += test_utils_parse_size_suffix test_utils_resolve_relative test_utils_expand_path +noinst_PROGRAMS += test_utils_parse_size_suffix test_utils_expand_path if HAVE_LIBLTTNG_UST_CTL noinst_PROGRAMS += test_ust_data @@ -92,11 +92,6 @@ test_utils_parse_size_suffix_SOURCES = test_utils_parse_size_suffix.c test_utils_parse_size_suffix_LDADD = $(LIBTAP) $(LIBHASHTABLE) $(LIBCOMMON) test_utils_parse_size_suffix_LDADD += $(UTILS_SUFFIX) -# resolve_relative unit test -test_utils_resolve_relative_SOURCES = test_utils_resolve_relative.c -test_utils_resolve_relative_LDADD = $(LIBTAP) $(LIBHASHTABLE) $(LIBCOMMON) -test_utils_resolve_relative_LDADD += $(UTILS_SUFFIX) - # expand_path unit test test_utils_expand_path_SOURCES = test_utils_expand_path.c test_utils_expand_path_LDADD = $(LIBTAP) $(LIBHASHTABLE) $(LIBCOMMON) diff --git a/tests/unit/test_utils_resolve_relative.c b/tests/unit/test_utils_resolve_relative.c deleted file mode 100644 index f43eeffb2..000000000 --- a/tests/unit/test_utils_resolve_relative.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (C) - 2013 Raphaël Beamonte - * - * 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 as - * published by the Free Software Foundation; only version 2 of the License. - * - * This program 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 General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; 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 - -/* For lttngerr.h */ -int lttng_opt_quiet = 1; -int lttng_opt_verbose = 3; - -struct valid_test_input { - char *input; - char *expected_result; -}; - -/* Valid test cases */ -static struct valid_test_input valid_tests_inputs[] = { - { "/a/b/c/d/./e", "/a/b/c/d/e" }, - { "/a/b/c/d/../e", "/a/b/c/e" }, - { "/a/b/../c/d/../e", "/a/c/e" }, - { "/a/b/../../c/./d/./e", "/c/d/e" }, - { "/a/b/../../c/d/../../e", "/e" }, - { "/a/b/c/d/../../../../e", "/e" }, - { "/./a/b/c/d/./e", "/a/b/c/d/e" }, - { "/", "/" }, - { "", "" }, -}; -static const int num_valid_tests = - sizeof(valid_tests_inputs) / sizeof(valid_tests_inputs[0]); - -/* Invalid test cases */ -static char *invalid_tests_inputs[] = { - NULL, - "/../a/b/c/d/e", - "/a/b/c/d/../../../../../e", -}; -static const int num_invalid_tests = - sizeof(invalid_tests_inputs) / sizeof(invalid_tests_inputs[0]); - -static void test_utils_resolve_relative(void) -{ - char *result; - int i; - - /* Test valid cases */ - for (i = 0; i < num_valid_tests; i++) { - char name[100]; - sprintf(name, "valid test case: %s", valid_tests_inputs[i].input); - - result = utils_resolve_relative(valid_tests_inputs[i].input); - ok(strcmp(result, valid_tests_inputs[i].expected_result) == 0, name); - - free(result); - } - - /* Test invalid cases */ - for (i = 0; i < num_invalid_tests; i++) { - char name[100]; - sprintf(name, "invalid test case: %s", invalid_tests_inputs[i]); - - result = utils_resolve_relative(invalid_tests_inputs[i]); - if (result != NULL) { - free(result); - } - ok(result == NULL, name); - } -} - -int main(int argc, char **argv) -{ - plan_tests(num_valid_tests + num_invalid_tests); - - diag("utils_resolve_relative tests"); - - test_utils_resolve_relative(); - - return exit_status(); -} diff --git a/tests/unit_tests b/tests/unit_tests index 35b31a460..561a94c77 100644 --- a/tests/unit_tests +++ b/tests/unit_tests @@ -3,5 +3,4 @@ unit/test_session unit/test_uri unit/test_ust_data unit/test_utils_parse_size_suffix -unit/test_utils_resolve_relative unit/test_utils_expand_path