summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-02-19 09:25:29 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2014-02-19 09:25:29 +0100
commit8388d086647e77451e57230f28b14e3cb3af9519 (patch)
tree77471fe5245a298b88a196525662287d4c288b90
parentb9f463cbd2ab9dfb4be5b17a649b88e7ddc2b334 (diff)
Add running of the test apps in Makefile. Reintroduce 64bit va_arg crash for testing on build server.
-rw-r--r--Makefile34
-rw-r--r--hugin.c34
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 <pthread.h>
@@ -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