diff options
| author | nulltoken <emeric.fermas@gmail.com> | 2011-03-05 14:26:22 +0100 |
|---|---|---|
| committer | Vicent Marti <tanoku@gmail.com> | 2011-03-23 00:25:04 +0200 |
| commit | 29e1797c14c4c67f5f941130bdda835b8c74869e (patch) | |
| tree | 75ee70768f12ef5cb4d191d6a16e4fc81f6aaf88 | |
| parent | 3fe9c60c6ad66d4637c7669c0661b5097918ddbd (diff) | |
| download | libgit2-29e1797c14c4c67f5f941130bdda835b8c74869e.tar.gz | |
Add remove_placeholders() test helper function which recursively removes marker files from a directory structure
| -rw-r--r-- | tests/test_helpers.c | 28 | ||||
| -rw-r--r-- | tests/test_helpers.h | 1 |
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/test_helpers.c b/tests/test_helpers.c index 1d345356a..760de238b 100644 --- a/tests/test_helpers.c +++ b/tests/test_helpers.c @@ -256,3 +256,31 @@ void close_temp_repo(git_repository *repo) git_repository_free(repo); rmdir_recurs(TEMP_REPO_FOLDER); } + +static int remove_placeholders_recurs(void *filename, char *path) +{ + char passed_filename[GIT_PATH_MAX]; + char *data = (char *)filename; + + if (!gitfo_isdir(path)) + return gitfo_dirent(path, GIT_PATH_MAX, remove_placeholders_recurs, data); + + if (git__basename_r(passed_filename, sizeof(passed_filename), path) < GIT_SUCCESS) + return GIT_EINVALIDPATH; + + if (!strcmp(data, passed_filename)) + return gitfo_unlink(path); + + return GIT_SUCCESS; +} + +int remove_placeholders(char *directory_path, char *filename) +{ + char buffer[GIT_PATH_MAX]; + + if (gitfo_isdir(directory_path)) + return GIT_EINVALIDPATH; + + strcpy(buffer, directory_path); + return remove_placeholders_recurs(filename, buffer); +} diff --git a/tests/test_helpers.h b/tests/test_helpers.h index 9a24ebccf..19c8ae55c 100644 --- a/tests/test_helpers.h +++ b/tests/test_helpers.h @@ -67,6 +67,7 @@ extern int cmp_files(const char *a, const char *b); extern int copy_file(const char *source, const char *dest); extern int rmdir_recurs(const char *directory_path); extern int copydir_recurs(const char *source_directory_path, const char *destination_directory_path); +extern int remove_placeholders(char *directory_path, char *filename); extern int open_temp_repo(git_repository **repo, const char *path); extern void close_temp_repo(git_repository *repo); |
