Fix destdir usage for destdir != ./

Some more checks would be good, but this fixes basic usage for now.

Signed-off-by: Daniel Willmann <d.willmann@samsung.com>
This commit is contained in:
Daniel Willmann 2013-05-09 12:55:24 +01:00
parent 93ed31024e
commit feac36f368
2 changed files with 25 additions and 8 deletions

View File

@ -41,6 +41,7 @@ main(int argc, char *argv[])
List_Entry *test_list; List_Entry *test_list;
int args = 0; int args = 0;
const char *list_file = ""; const char *list_file = "";
char tmp[EXACTNESS_PATH_MAX];
Eina_Bool mode_record, mode_play, mode_init, mode_simulation; Eina_Bool mode_record, mode_play, mode_init, mode_simulation;
Eina_Bool want_quit; Eina_Bool want_quit;
Ecore_Getopt_Value values[] = { Ecore_Getopt_Value values[] = {
@ -121,12 +122,26 @@ main(int argc, char *argv[])
} }
else if (mode_play) else if (mode_play)
{ {
mkdir(CURRENT_SUBDIR, 0744); if (snprintf(tmp, EXACTNESS_PATH_MAX, "%s/%s", exactness_config.dest_dir, CURRENT_SUBDIR)
>= EXACTNESS_PATH_MAX)
{
fprintf(stderr, "Path too long: %s", tmp);
ret = 1;
goto end;
}
mkdir(tmp, 0744);
scheduler_run(run_test_play, test_list); scheduler_run(run_test_play, test_list);
} }
else if (mode_init) else if (mode_init)
{ {
mkdir(ORIG_SUBDIR, 0744); if (snprintf(tmp, EXACTNESS_PATH_MAX, "%s/%s", exactness_config.dest_dir, ORIG_SUBDIR)
>= EXACTNESS_PATH_MAX)
{
fprintf(stderr, "Path too long: %s", tmp);
ret = 1;
goto end;
}
mkdir(tmp, 0744);
scheduler_run(run_test_init, test_list); scheduler_run(run_test_init, test_list);
} }
else if (mode_simulation) else if (mode_simulation)

View File

@ -94,8 +94,8 @@ _compare_list_cb(const char *name, const char *path EINA_UNUSED, void *data)
if (!strncmp(name, prefix, strlen(prefix))) if (!strncmp(name, prefix, strlen(prefix)))
{ {
char filename1[EXACTNESS_PATH_MAX], filename2[EXACTNESS_PATH_MAX]; char filename1[EXACTNESS_PATH_MAX], filename2[EXACTNESS_PATH_MAX];
snprintf(filename1, EXACTNESS_PATH_MAX, "%s/%s", CURRENT_SUBDIR, name); snprintf(filename1, EXACTNESS_PATH_MAX, "%s/%s/%s", exactness_config.dest_dir, CURRENT_SUBDIR, name);
snprintf(filename2, EXACTNESS_PATH_MAX, "%s/%s", ORIG_SUBDIR, name); snprintf(filename2, EXACTNESS_PATH_MAX, "%s/%s/%s", exactness_config.dest_dir, ORIG_SUBDIR, name);
if (!_md5_is_equal(filename1, filename2)) if (!_md5_is_equal(filename1, filename2))
{ {
char buf[EXACTNESS_PATH_MAX]; char buf[EXACTNESS_PATH_MAX];
@ -105,9 +105,9 @@ _compare_list_cb(const char *name, const char *path EINA_UNUSED, void *data)
/* FIXME: Clean up. */ /* FIXME: Clean up. */
snprintf(buf, EXACTNESS_PATH_MAX, snprintf(buf, EXACTNESS_PATH_MAX,
"compare '%s/%s' '%s/%s' '%s/comp_%s'", "compare '%s' '%s' '%s/%s/comp_%s'",
ORIG_SUBDIR, name, filename1, filename2,
CURRENT_SUBDIR, name, exactness_config.dest_dir,
CURRENT_SUBDIR, name); CURRENT_SUBDIR, name);
if (system(buf)) if (system(buf))
{ {
@ -120,7 +120,9 @@ _compare_list_cb(const char *name, const char *path EINA_UNUSED, void *data)
void void
run_test_compare(const List_Entry *ent) run_test_compare(const List_Entry *ent)
{ {
eina_file_dir_list(ORIG_SUBDIR, 0, _compare_list_cb, ent->name); char origdir[EXACTNESS_PATH_MAX];
snprintf(origdir, EXACTNESS_PATH_MAX, "%s/%s", exactness_config.dest_dir, ORIG_SUBDIR);
eina_file_dir_list(origdir, 0, _compare_list_cb, ent->name);
} }
static void static void