From 8388d086647e77451e57230f28b14e3cb3af9519 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 19 Feb 2014 09:25:29 +0100 Subject: Add running of the test apps in Makefile. Reintroduce 64bit va_arg crash for testing on build server. --- Makefile | 34 ++++++++++++++++++++++++++++++---- hugin.c | 34 ++++++++++++++-------------------- 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 3a23387..2fcee29 100644 --- a/Makefile +++ b/Makefile @@ -6,33 +6,49 @@ CXXFLAGS=$(CFLAGS) all: complete obj simple syslog filter mutex minimal disabled complete: - gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX - g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX + gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ + -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX + ./hugin-complete + + g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ + -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX + ./hugin-complete obj: # Compile hugin as c prog and link with c++ program (use hugin.hpp) g++ ${CXXFLAGS} main_simple.cc -c gcc ${CFLAGS} hugin.c -c g++ main_simple.o hugin.o -o hugin-obj + ./hugin-obj # Compile hugin as c++ prog and link with c++ program g++ ${CXXFLAGS} main_simple.c -c g++ ${CXXFLAGS} hugin.c -c g++ main_simple.o hugin.o -o hugin-obj + ./hugin-obj simple: gcc ${CFLAGS} hugin.c main_simple.c -o hugin-simple + ./hugin-simple + g++ ${CXXFLAGS} hugin.c main_simple.c -o hugin-simple + ./hugin-simple minimal: gcc ${CFLAGS} hugin.c main_minimal.c -o hugin-minimal + ./hugin-minimal + g++ ${CXXFLAGS} hugin.c main_minimal.c -o hugin-minimal + ./hugin-minimal syslog: gcc ${CFLAGS} hugin.c hugin_syslog.c main_syslog.c \ - -o hugin-syslog -DWITH_HUG_SYSLOG + -o hugin-syslog -DWITH_HUG_SYSLOG + ./hugin-syslog + g++ ${CXXFLAGS} hugin.c hugin_syslog.c main_syslog.c \ - -o hugin-syslog -DWITH_HUG_SYSLOG + -o hugin-syslog -DWITH_HUG_SYSLOG + ./hugin-syslog filter: gcc ${CFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ @@ -42,19 +58,29 @@ filter: mutex: gcc ${CFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX + ./hugin-mutex + g++ ${CXXFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX + ./hugin-mutex disabled: gcc -DDISABLE_HUGIN ${CFLAGS} hugin.c main_simple.c \ -o hugin-simple-disabled + ./hugin-simple-disabled + g++ -DDISABLE_HUGIN ${CXXFLAGS} hugin.c main_simple.c \ -o hugin-simple-disabled + ./hugin-simple-disabled + gcc -DDISABLE_HUGIN ${CFLAGS} ${HUGIN_SOURCES} main_complete.c \ -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX + ./hugin-complete-disabled + g++ -DDISABLE_HUGIN ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c \ -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX + ./hugin-complete-disabled clean: rm -f hugin_{complete,complete-cpp,simple,syslog,filter,mutex,minimal} diff --git a/hugin.c b/hugin.c index a4dd622..5f973bc 100644 --- a/hugin.c +++ b/hugin.c @@ -46,7 +46,7 @@ typedef HANDLE mutex_t; // see http://stackoverflow.com/questions/558223/va-copy-porting-to-visual-c -#define va_copy(dest, src) (dest = src) +//#define va_copy(dest, src) (dest = src) # else # include @@ -402,22 +402,14 @@ int __debug(const char *func, const int line, // // Generate message // - - // Get number of bytes needed for the buffer: va_list va; va_start(va, fmt); - - // Use a copy of va_list for 64bit fix: - // see http://www.bailopan.net/blog/?p=30 - // - // Not available in windows. So hugin may break in 64bit windows - - va_list vacpy; - va_copy(vacpy, va); - - hdr_bufsz = scprintf(hdr_fmt, HDR_ARGS); - msg_bufsz = vscprintf(fmt, vacpy); - if(hdr_bufsz < 0 || msg_bufsz < 0) return 1; // Bad format? + { + hdr_bufsz = scprintf(hdr_fmt, HDR_ARGS); + msg_bufsz = vscprintf(fmt, va); + if(hdr_bufsz < 0 || msg_bufsz < 0) return 1; // Bad format? + // va_end(va); + } buf = (char*)malloc(hdr_bufsz + msg_bufsz + 1); if(!buf) return 1; // Out of memory @@ -425,11 +417,13 @@ int __debug(const char *func, const int line, sz = sprintf(buf, hdr_fmt, HDR_ARGS); if(sz < 0) return 1; // Unknown error - va_copy(vacpy, va); - sz = vsprintf(buf + sz, fmt, vacpy); - if(sz < 0) return 1; // Unknown error - - va_end(va); + { + //va_list va; + //va_start(va, fmt); + sz = vsprintf(buf + sz, fmt, va); + if(sz < 0) return 1; // Unknown error + va_end(va); + } // // Send message to output -- cgit v1.2.3 From 0928e8d64247a6a649127e20772f05abd8ad6963 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 19 Feb 2014 10:16:15 +0100 Subject: Add error check and printout to test-runs. --- Makefile | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 2fcee29..6498a0e 100644 --- a/Makefile +++ b/Makefile @@ -8,79 +8,82 @@ all: complete obj simple syslog filter mutex minimal disabled complete: gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX - ./hugin-complete + ./hugin-complete || (echo "Failed"; false) g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX - ./hugin-complete + ./hugin-complete || (echo "Failed"; false) obj: # Compile hugin as c prog and link with c++ program (use hugin.hpp) g++ ${CXXFLAGS} main_simple.cc -c gcc ${CFLAGS} hugin.c -c g++ main_simple.o hugin.o -o hugin-obj - ./hugin-obj + ./hugin-obj || (echo "Failed"; false) # Compile hugin as c++ prog and link with c++ program g++ ${CXXFLAGS} main_simple.c -c g++ ${CXXFLAGS} hugin.c -c g++ main_simple.o hugin.o -o hugin-obj - ./hugin-obj + ./hugin-obj || (echo "Failed"; false) simple: gcc ${CFLAGS} hugin.c main_simple.c -o hugin-simple - ./hugin-simple + ./hugin-simple || (echo "Failed"; false) g++ ${CXXFLAGS} hugin.c main_simple.c -o hugin-simple - ./hugin-simple + ./hugin-simple || (echo "Failed"; false) minimal: gcc ${CFLAGS} hugin.c main_minimal.c -o hugin-minimal - ./hugin-minimal + ./hugin-minimal || (echo "Failed"; false) g++ ${CXXFLAGS} hugin.c main_minimal.c -o hugin-minimal - ./hugin-minimal + ./hugin-minimal || (echo "Failed"; false) syslog: gcc ${CFLAGS} hugin.c hugin_syslog.c main_syslog.c \ -o hugin-syslog -DWITH_HUG_SYSLOG - ./hugin-syslog + ./hugin-syslog || (echo "Failed"; false) g++ ${CXXFLAGS} hugin.c hugin_syslog.c main_syslog.c \ -o hugin-syslog -DWITH_HUG_SYSLOG - ./hugin-syslog + ./hugin-syslog || (echo "Failed"; false) filter: gcc ${CFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ -DWITH_HUG_FILTER + ./hugin-filter || (echo "Failed"; false) + g++ ${CXXFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ -DWITH_HUG_FILTER + ./hugin-filter || (echo "Failed"; false) mutex: gcc ${CFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX - ./hugin-mutex + ./hugin-mutex || (echo "Failed"; false) g++ ${CXXFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX - ./hugin-mutex + ./hugin-mutex || (echo "Failed"; false) disabled: gcc -DDISABLE_HUGIN ${CFLAGS} hugin.c main_simple.c \ -o hugin-simple-disabled - ./hugin-simple-disabled + ./hugin-simple-disabled || (echo "Failed"; false) g++ -DDISABLE_HUGIN ${CXXFLAGS} hugin.c main_simple.c \ -o hugin-simple-disabled - ./hugin-simple-disabled + ./hugin-simple-disabled || (echo "Failed"; false) gcc -DDISABLE_HUGIN ${CFLAGS} ${HUGIN_SOURCES} main_complete.c \ -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX - ./hugin-complete-disabled + ./hugin-complete-disabled || (echo "Failed"; false) g++ -DDISABLE_HUGIN ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c \ -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX - ./hugin-complete-disabled + ./hugin-complete-disabled || (echo "Failed"; false) clean: rm -f hugin_{complete,complete-cpp,simple,syslog,filter,mutex,minimal} -- cgit v1.2.3 From 67aae04b9e2c3bc7585fe93a2e33aad187fd3750 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 19 Feb 2014 10:27:20 +0100 Subject: More error check/printout on test-runs --- Makefile | 84 +++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/Makefile b/Makefile index 6498a0e..bb21cfd 100644 --- a/Makefile +++ b/Makefile @@ -3,87 +3,89 @@ include Makefile.files CFLAGS=-Werror -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -O2 CXXFLAGS=$(CFLAGS) -all: complete obj simple syslog filter mutex minimal disabled +all: complete obj simple syslog filter mutex minimal simple-disabled \ + complete-disabled complete: - gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ + gcc ${CFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-$@ \ -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX - ./hugin-complete || (echo "Failed"; false) + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 - g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-complete \ + g++ ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c -o hugin-$@ \ -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER -DWITH_HUG_MUTEX - ./hugin-complete || (echo "Failed"; false) + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 obj: # Compile hugin as c prog and link with c++ program (use hugin.hpp) g++ ${CXXFLAGS} main_simple.cc -c gcc ${CFLAGS} hugin.c -c - g++ main_simple.o hugin.o -o hugin-obj - ./hugin-obj || (echo "Failed"; false) + g++ main_simple.o hugin.o -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 # Compile hugin as c++ prog and link with c++ program g++ ${CXXFLAGS} main_simple.c -c g++ ${CXXFLAGS} hugin.c -c - g++ main_simple.o hugin.o -o hugin-obj - ./hugin-obj || (echo "Failed"; false) + g++ main_simple.o hugin.o -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 simple: - gcc ${CFLAGS} hugin.c main_simple.c -o hugin-simple - ./hugin-simple || (echo "Failed"; false) + gcc ${CFLAGS} hugin.c main_simple.c -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 - g++ ${CXXFLAGS} hugin.c main_simple.c -o hugin-simple - ./hugin-simple || (echo "Failed"; false) + g++ ${CXXFLAGS} hugin.c main_simple.c -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 minimal: - gcc ${CFLAGS} hugin.c main_minimal.c -o hugin-minimal - ./hugin-minimal || (echo "Failed"; false) + gcc ${CFLAGS} hugin.c main_minimal.c -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 - g++ ${CXXFLAGS} hugin.c main_minimal.c -o hugin-minimal - ./hugin-minimal || (echo "Failed"; false) + g++ ${CXXFLAGS} hugin.c main_minimal.c -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 syslog: gcc ${CFLAGS} hugin.c hugin_syslog.c main_syslog.c \ - -o hugin-syslog -DWITH_HUG_SYSLOG - ./hugin-syslog || (echo "Failed"; false) + -o hugin-$@ -DWITH_HUG_SYSLOG + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 g++ ${CXXFLAGS} hugin.c hugin_syslog.c main_syslog.c \ - -o hugin-syslog -DWITH_HUG_SYSLOG - ./hugin-syslog || (echo "Failed"; false) + -o hugin-$@ -DWITH_HUG_SYSLOG + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 filter: - gcc ${CFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ + gcc ${CFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-$@ \ -DWITH_HUG_FILTER - ./hugin-filter || (echo "Failed"; false) + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 - g++ ${CXXFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-filter \ + g++ ${CXXFLAGS} hugin.c hugin_filter.c main_filter.c -o hugin-$@ \ -DWITH_HUG_FILTER - ./hugin-filter || (echo "Failed"; false) + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 mutex: - gcc ${CFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX - ./hugin-mutex || (echo "Failed"; false) + gcc ${CFLAGS} hugin.c main_mutex.c -o hugin-$@ -DWITH_HUG_MUTEX + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 - g++ ${CXXFLAGS} hugin.c main_mutex.c -o hugin-mutex -DWITH_HUG_MUTEX - ./hugin-mutex || (echo "Failed"; false) + g++ ${CXXFLAGS} hugin.c main_mutex.c -o hugin-$@ -DWITH_HUG_MUTEX + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 -disabled: - gcc -DDISABLE_HUGIN ${CFLAGS} hugin.c main_simple.c \ - -o hugin-simple-disabled - ./hugin-simple-disabled || (echo "Failed"; false) +simple-disabled: + gcc -DDISABLE_HUGIN ${CFLAGS} hugin.c main_simple.c -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 - g++ -DDISABLE_HUGIN ${CXXFLAGS} hugin.c main_simple.c \ - -o hugin-simple-disabled - ./hugin-simple-disabled || (echo "Failed"; false) + g++ -DDISABLE_HUGIN ${CXXFLAGS} hugin.c main_simple.c -o hugin-$@ + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 + +complete-disabled: gcc -DDISABLE_HUGIN ${CFLAGS} ${HUGIN_SOURCES} main_complete.c \ - -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ + -o hugin-$@ -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX - ./hugin-complete-disabled || (echo "Failed"; false) + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 g++ -DDISABLE_HUGIN ${CXXFLAGS} ${HUGIN_SOURCES} main_complete.c \ - -o hugin-complete-disabled -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ + -o hugin-$@ -DWITH_HUG_SYSLOG -DWITH_HUG_FILTER \ -DWITH_HUG_MUTEX - ./hugin-complete-disabled || (echo "Failed"; false) + (./hugin-$@ || (echo "Failed running $@"; false) ) 2>&1 clean: - rm -f hugin_{complete,complete-cpp,simple,syslog,filter,mutex,minimal} + rm -f hugin-{complete,complete-cpp,simple,syslog,filter,mutex} + rm -f hugin-{minimal,simple-disabled,complete-disabled,obj} -- cgit v1.2.3 From 794df88388d055e8dd9ecac89abca735796b4de4 Mon Sep 17 00:00:00 2001 From: Bent Bisballe Nyeng Date: Wed, 19 Feb 2014 10:40:11 +0100 Subject: Force division by zero for jenkins error test. --- main_complete.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main_complete.c b/main_complete.c index a649078..a79dbc5 100644 --- a/main_complete.c +++ b/main_complete.c @@ -63,8 +63,8 @@ int main(int argc, char *argv[]) INFO(example, "We are up and running"); DEBUG(example, "Or are we %d?", 42); - - DEBUG(foo, "Or are we %d?", 42); + int a = 0; + DEBUG(foo, "Or are we %d?", 1/a); hug_close(); -- cgit v1.2.3