From 6f74e380a4bf13a46a6f10d5e478327c789ca6f0 Mon Sep 17 00:00:00 2001 From: Daniel Zaoui Date: Tue, 30 Oct 2018 15:03:37 +0200 Subject: [PATCH] Remove old shots from inside the player Now that exu are supported, it is better that the player deals with the destination management, including removing the old shots if the destination is a directory. --- src/bin/exactness.c | 45 --------------------------------------------- src/bin/player.c | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 45 deletions(-) diff --git a/src/bin/exactness.c b/src/bin/exactness.c index 5924bb5..c4f29eb 100644 --- a/src/bin/exactness.c +++ b/src/bin/exactness.c @@ -265,35 +265,6 @@ ok: return EINA_TRUE; } -static Eina_Bool -_check_prefix(const char *prefix, const char *name) -{ - unsigned int len = strlen(prefix); - return (!strncmp(name, prefix, len) && (strlen(name) > len) && (name[len] == SHOT_DELIMITER)); -} - -static void -_prefix_rm_cb(const char *name, const char *path, void *data) -{ - const char *prefix = data; - if (_check_prefix(prefix, name)) - { - char *buf = alloca(strlen(path) + strlen(name)); - sprintf(buf, "%s/%s", path, name); - if (unlink(buf)) - { - printf("Failed deleting '%s/%s': ", path, name); - perror(""); - } - } -} - -static void -_run_test_prefix_rm(const char *dir, const char *prefix) -{ - eina_file_dir_list(dir, 0, _prefix_rm_cb, (void *) prefix); -} - static void _job_compare(void *data) { @@ -345,22 +316,6 @@ _job_consume() _running_jobs++; _tests_executed++; - switch (_mode) - { - case RUN_PLAY: - { - _run_test_prefix_rm(CURRENT_SUBDIR, ent->name); - _printf(1, "Running %s\n", ent->name); - break; - } - case RUN_INIT: - { - _run_test_prefix_rm(ORIG_SUBDIR, ent->name); - break; - } - default: break; - } - if (!job_del_callback_handler) { job_del_callback_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, diff --git a/src/bin/player.c b/src/bin/player.c index 65205da..59c3590 100644 --- a/src/bin/player.c +++ b/src/bin/player.c @@ -944,6 +944,23 @@ _mkdir(const char *path, Eina_Bool skip_last) return EINA_TRUE; } +static void +_old_shots_rm_cb(const char *name, const char *path, void *data) +{ + const char *prefix = data; + unsigned int len = strlen(prefix); + if (!strncmp(name, prefix, len) && (strlen(name) > len) && (name[len] == SHOT_DELIMITER)) + { + char *buf = alloca(strlen(path) + strlen(name)); + sprintf(buf, "%s/%s", path, name); + if (unlink(buf)) + { + printf("Failed deleting '%s/%s': ", path, name); + perror(""); + } + } +} + static Evas * _my_evas_new(int w EINA_UNUSED, int h EINA_UNUSED) { @@ -1121,6 +1138,9 @@ int main(int argc, char **argv) if (_dest_type == FTYPE_EXU) _dest_unit = calloc(1, sizeof(*_dest_unit)); + if (_dest_type == FTYPE_DIR && _test_name) + eina_file_dir_list(_dest, 0, _old_shots_rm_cb, (void *)_test_name); + if (!_src_open()) { fprintf(stderr, "Unable to read source file\n");