diff --git a/src/bin/exactness.c b/src/bin/exactness.c index c427d9c..da4c36f 100644 --- a/src/bin/exactness.c +++ b/src/bin/exactness.c @@ -79,7 +79,6 @@ main(int argc, char *argv[]) }; ecore_init(); - ecore_evas_init(); mode_record = mode_play = mode_init = mode_simulation = EINA_FALSE; want_quit = EINA_FALSE; exactness_config.base_dir = "./recordings"; @@ -251,7 +250,6 @@ main(int argc, char *argv[]) list_file_free(test_list); end: - ecore_evas_shutdown(); ecore_shutdown(); return ret; diff --git a/src/bin/exactness_config.h b/src/bin/exactness_config.h index 9acaaa7..e207c51 100644 --- a/src/bin/exactness_config.h +++ b/src/bin/exactness_config.h @@ -2,7 +2,6 @@ #define EXACTNESS_CONFIG_H #include -#include typedef struct _Exactness_Config Exactness_Config; diff --git a/src/bin/run_test.c b/src/bin/run_test.c index d3ddfa7..eae5d8f 100644 --- a/src/bin/run_test.c +++ b/src/bin/run_test.c @@ -10,12 +10,8 @@ #include "exactness_private.h" #define LIBEXACTNESS_PATH PACKAGE_LIBDIR "/exactness/libexactness.so" -#define RED 0xffff0000 -#define WHITE 0xffffffff #define CONFIG "ELM_SCALE=1 ELM_FINGER_SIZE=10" -static Ecore_Evas *ee = NULL; -static Evas_Object *cur_img, *orig_img, *diff_img; void run_test_simulation(const List_Entry *ent, char *buf) @@ -73,89 +69,6 @@ run_test_init(const List_Entry *ent, char *buf) run_test_prefix_rm(ORIG_SUBDIR, ent->name); } -static Eina_Bool -compare(const char *filename1, const char *filename2, const char *diff_file) -{ - Ecore_Evas *diff_ee; - Evas_Object *bg, *img; - unsigned int *pixels1 = NULL, *pixels2 = NULL, *pixels3 = NULL; - int w1, h1, w2, h2, err; - unsigned int *i1, *i2, *i3; - - evas_object_image_file_set(cur_img, filename1, NULL); - err = evas_object_image_load_error_get(cur_img); - if (err != EVAS_LOAD_ERROR_NONE) - { - fprintf(stderr, "Cannot load image file %s\n", filename1); - goto on_error; - } - evas_object_image_file_set(orig_img, filename2, NULL); - err = evas_object_image_load_error_get(orig_img); - if (err != EVAS_LOAD_ERROR_NONE) - { - fprintf(stderr, "Cannot load image file %s\n", filename2); - goto on_error; - } - - pixels1 = (unsigned int *)evas_object_image_data_get(cur_img, EINA_FALSE); - pixels2 = (unsigned int *)evas_object_image_data_get(orig_img, EINA_FALSE); - evas_object_image_size_get(cur_img, &w1, &h1); - evas_object_image_size_get(orig_img, &w2, &h2); - if (!pixels1 || !pixels2) goto on_error; - if (w1 != w2 || h1 != h2) goto on_error; - - evas_object_image_size_set(diff_img, w1, h1); - evas_object_move(diff_img, 0, 0); - evas_object_resize(diff_img, w1, h1); - diff_ee = ecore_evas_object_ecore_evas_get(diff_img); - ecore_evas_resize(diff_ee, w1, h1); - - bg = evas_object_image_add(ecore_evas_get(diff_ee)); - if (!bg) - { - fprintf(stderr, "Cannot load image object"); - goto on_error; - } - evas_object_image_filled_set(bg, EINA_TRUE); - evas_object_image_size_set(bg, w1, h1); - evas_object_image_data_set(bg, pixels2); - evas_object_move(bg, 0, 0); - evas_object_resize(bg, w1, h1); - evas_object_show(bg); - - img = evas_object_image_add(ecore_evas_get(diff_ee)); - if (!img) - { - fprintf(stderr, "Cannot load image object"); - goto on_error; - } - evas_object_image_filled_set(img, EINA_TRUE); - evas_object_image_alpha_set(img, 1); - evas_object_image_size_set(img, w1, h1); - pixels3 = (unsigned int *)evas_object_image_data_get(img, EINA_TRUE); - if (!pixels3) goto on_error; - for (i1 = pixels1, i2 = pixels2, i3 = pixels3; *i1; i1++, i2++, i3++) - { - if (*i1 != *i2) *i3 = RED; - else *i3 = WHITE; - } - evas_object_move(img, 0, 0); - evas_object_resize(img, w1, h1); - evas_object_color_set(img, 128, 128, 128, 192); - evas_object_show(img); - - ecore_evas_manual_render(diff_ee); - if (!evas_object_image_save(diff_img, diff_file, NULL, NULL)) - { - fprintf(stderr, "Unable to save image %s\n", diff_file); - goto on_error; - } - return EINA_TRUE; - -on_error: - return EINA_FALSE; -} - static Eina_Bool _file_sha1_get(const char *filename, unsigned char *result) { @@ -203,6 +116,7 @@ _is_equal(const char *filename1, const char *filename2) return EINA_FALSE; if (!_file_sha1_get(filename2, res2)) return EINA_FALSE; + return !memcmp(res1, res2, _DIGEST_SIZE); } @@ -224,14 +138,18 @@ _compare_list_cb(const char *name, const char *path EINA_UNUSED, void *data) snprintf(filename2, EXACTNESS_PATH_MAX, "%s/%s/%s", exactness_config.dest_dir, ORIG_SUBDIR, name); if (!_is_equal(filename1, filename2)) { - char diff_file[EXACTNESS_PATH_MAX]; + char buf[EXACTNESS_PATH_MAX]; exactness_ctx.compare_errors = eina_list_append(exactness_ctx.compare_errors, strdup(name)); - snprintf(diff_file, EXACTNESS_PATH_MAX, "%s/%s/comp_%s", exactness_config.dest_dir, - CURRENT_SUBDIR, name); - if (compare(filename1, filename2, diff_file)) + /* FIXME: Clean up. */ + snprintf(buf, EXACTNESS_PATH_MAX, + "compare '%s' '%s' '%s/%s/comp_%s'", + filename1, filename2, + exactness_config.dest_dir, + CURRENT_SUBDIR, name); + if (system(buf)) { fprintf(stderr, "Failed image comparing '%s'\n", name); } @@ -243,23 +161,8 @@ void run_test_compare(const List_Entry *ent) { char origdir[EXACTNESS_PATH_MAX]; - snprintf(origdir, EXACTNESS_PATH_MAX, "%s/%s", exactness_config.dest_dir, ORIG_SUBDIR); - ee = ecore_evas_buffer_new(1, 1); - if (!ee) goto on_error; - cur_img = evas_object_image_add(ecore_evas_get(ee)); - orig_img = evas_object_image_add(ecore_evas_get(ee)); - diff_img = ecore_evas_object_image_new(ee); - if (!diff_img) - { - fprintf(stderr, "Cannot load image object\n"); - goto on_error; - } - evas_object_image_filled_set(diff_img, EINA_TRUE); eina_file_dir_list(origdir, 0, _compare_list_cb, ent->name); - -on_error: - if (ee) ecore_evas_free(ee); } static void