From 1efd760b8d7593f05d700f122fe8c3f61c370bde Mon Sep 17 00:00:00 2001 From: "Dmitrij D. Czarkoff" Date: Sun, 21 Feb 2016 15:07:13 +0100 Subject: Force "-g" flag for tests --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 71f5c9f..32010a7 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ TARGET := $(BUILDDIR)/imv SOURCES := $(wildcard src/*.c) OBJECTS := $(patsubst src/%.c,$(BUILDDIR)/%.o,$(SOURCES)) TESTS := $(patsubst test/%.c,$(BUILDDIR)/test_%,$(wildcard test/*.c)) +TFLAGS ?= -g ${CFLAGS} VERSION = "v2.0.0" @@ -44,7 +45,7 @@ $(BUILDDIR)/%.o: src/%.c $(BUILDDIR)/test_%: test/%.c src/%.c @echo "BUILDING $@" - $(MUTE)$(CC) -o $@ -Isrc -W -Wall $(CFLAGS) $(LDFLAGS) -std=gnu11 -lcmocka $^ + $(MUTE)$(CC) -o $@ -Isrc -g $(TFLAGS) $(LDFLAGS) -std=gnu11 -lcmocka $^ check: $(BUILDDIR) $(TESTS) @echo "RUNNING TESTS" -- cgit v1.2.3 From b4dfe40a577aa23bcac2d580122a13246e431d66 Mon Sep 17 00:00:00 2001 From: "Dmitrij D. Czarkoff" Date: Sun, 21 Feb 2016 15:03:21 +0100 Subject: Fix "check" target for i in "..."; do ...; done ideom guarantees single iteration with $i set to everything between "in" and ';'. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 32010a7..4cefbe1 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ $(BUILDDIR)/test_%: test/%.c src/%.c check: $(BUILDDIR) $(TESTS) @echo "RUNNING TESTS" - $(MUTE)for t in "$(TESTS)"; do $$t; done + $(MUTE)for t in $(TESTS); do $$t; done clean: $(MUTE)$(RM) -Rf $(BUILDDIR) -- cgit v1.2.3 From 9cdab1b173af8a2fabe76d674f05faeef5319ac3 Mon Sep 17 00:00:00 2001 From: "Dmitrij D. Czarkoff" Date: Sun, 21 Feb 2016 16:35:36 +0100 Subject: Add test to check for EXIF rotation of JPEG images --- test/loader.c | 40 ++++++++++++++++++++++++++++++++++++++++ test/orientation.jpg | Bin 0 -> 212 bytes 2 files changed, 40 insertions(+) create mode 100644 test/loader.c create mode 100644 test/orientation.jpg diff --git a/test/loader.c b/test/loader.c new file mode 100644 index 0000000..b528c8f --- /dev/null +++ b/test/loader.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include +#include +#include "loader.h" + +static void test_jpeg_rotation(void **state) +{ + (void)state; + struct imv_loader ldr; + void *retval; + char *error; + unsigned int width; + + imv_init_loader(&ldr); + + imv_loader_load(&ldr, "test/orientation.jpg", NULL, 0); + pthread_join(ldr.bg_thread, &retval); + + error = imv_loader_get_error(&ldr); + assert_false(error); + + assert_false(retval == PTHREAD_CANCELED); + assert_false(ldr.out_bmp == NULL); + + width = FreeImage_GetWidth(ldr.out_bmp); + assert_true(width == 1); +} + +int main(void) +{ + const struct CMUnitTest tests[] = { + cmocka_unit_test(test_jpeg_rotation), + }; + + return cmocka_run_group_tests(tests, NULL, NULL); +} diff --git a/test/orientation.jpg b/test/orientation.jpg new file mode 100644 index 0000000..c74189b Binary files /dev/null and b/test/orientation.jpg differ -- cgit v1.2.3 From 24f8b8a2c4065a7ba99da62bb30830d8c87be699 Mon Sep 17 00:00:00 2001 From: "Dmitrij D. Czarkoff" Date: Sun, 21 Feb 2016 14:57:32 +0100 Subject: Honour EXIF orientation tag --- src/loader.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/loader.c b/src/loader.c index 35e7450..e7d0321 100644 --- a/src/loader.c +++ b/src/loader.c @@ -227,13 +227,15 @@ static void *bg_new_img(void *data) } else { /* Future TODO: If we load image line-by-line we could stop loading large * ones before wasting much more time/memory on them. */ + + int flags = (fmt == FIF_JPEG) ? JPEG_EXIFROTATE : 0; FIBITMAP *image; if(from_stdin) { pthread_mutex_lock(&ldr->lock); - image = FreeImage_LoadFromMemory(fmt, ldr->fi_buffer, 0); + image = FreeImage_LoadFromMemory(fmt, ldr->fi_buffer, flags); pthread_mutex_unlock(&ldr->lock); } else { - image = FreeImage_Load(fmt, path, 0); + image = FreeImage_Load(fmt, path, flags); } if(!image) { error_occurred(ldr); -- cgit v1.2.3 From 66de2c49e55fcb260ea8cfdbc997d8acfb59413a Mon Sep 17 00:00:00 2001 From: "Dmitrij D. Czarkoff" Date: Thu, 25 Feb 2016 01:27:22 +0100 Subject: Remove duplicated "-g" flag --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4cefbe1..88880a8 100644 --- a/Makefile +++ b/Makefile @@ -45,7 +45,7 @@ $(BUILDDIR)/%.o: src/%.c $(BUILDDIR)/test_%: test/%.c src/%.c @echo "BUILDING $@" - $(MUTE)$(CC) -o $@ -Isrc -g $(TFLAGS) $(LDFLAGS) -std=gnu11 -lcmocka $^ + $(MUTE)$(CC) -o $@ -Isrc $(TFLAGS) $(LDFLAGS) -std=gnu11 -lcmocka $^ check: $(BUILDDIR) $(TESTS) @echo "RUNNING TESTS" -- cgit v1.2.3