diff options
author | norly <ny-git@enpas.org> | 2013-06-27 02:10:40 +0100 |
---|---|---|
committer | norly <ny-git@enpas.org> | 2013-06-27 02:55:57 +0100 |
commit | 271685c3f3a15eca33ad563c1b051bdb32ca2726 (patch) | |
tree | a2090a6a5c8fde9eee62cfaaebb1b1d00acdc650 /tests | |
parent | 6004cb3888eaac4995025fdba5f71b7fd861d81a (diff) |
Add test for dynamically linked global variables (stdout, etc)
Diffstat (limited to 'tests')
-rw-r--r-- | tests/07-dynlink-globalvar.test | 11 | ||||
-rw-r--r-- | tests/Makefile | 8 | ||||
-rw-r--r-- | tests/src/putsmainsubglobal.c | 13 | ||||
-rw-r--r-- | tests/src/sub_with_global.c | 7 |
4 files changed, 33 insertions, 6 deletions
diff --git a/tests/07-dynlink-globalvar.test b/tests/07-dynlink-globalvar.test new file mode 100644 index 0000000..34970f5 --- /dev/null +++ b/tests/07-dynlink-globalvar.test @@ -0,0 +1,11 @@ +#!/bin/sh +source ./boilerplate.sh + +elfucli --input $BUILDDIR/putsmainsubglobal \ + --reladd $BUILDDIR/sub_with_global.o \ + --detour sub,sub_with_global \ + --output $BUILDDIR/putsmainsubglobal-with-sub-with-global-detour +test_check_retval + +$BUILDDIR/putsmainsubglobal-with-sub-with-global-detour | grep -q "sub_with_global() is returning." +test_check_retval diff --git a/tests/Makefile b/tests/Makefile index 757ea21..3bacbde 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -3,7 +3,7 @@ SRCDIR = src SOURCES = $(shell find $(SRCDIR)/ -iname "*.c") OBJS = $(patsubst $(SRCDIR)/%.c, $(BUILDDIR)/%.o, $(SOURCES)) -EXENAMES = putsmain putsmainsub +EXENAMES = putsmain putsmainsub putsmainsubglobal EXES = $(patsubst %, $(BUILDDIR)/%, $(EXENAMES)) CFLAGS = -Wall -pedantic @@ -19,11 +19,7 @@ check: testbase ./runtests.sh -$(BUILDDIR)/putsmain: $(SRCDIR)/putsmain.c - @if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi - gcc $(CFLAGS) -o $@ $^ - -$(BUILDDIR)/putsmainsub: $(SRCDIR)/putsmainsub.c +$(BUILDDIR)/%: $(SRCDIR)/%.c @if [ ! -d $(dir $@) ] ; then mkdir -p $(dir $@) ; fi gcc $(CFLAGS) -o $@ $^ diff --git a/tests/src/putsmainsubglobal.c b/tests/src/putsmainsubglobal.c new file mode 100644 index 0000000..531320d --- /dev/null +++ b/tests/src/putsmainsubglobal.c @@ -0,0 +1,13 @@ +#include <stdio.h> + +void sub() +{ + fprintf(stdout, "sub() called.\n"); +} + +int main() +{ + sub(); + + return 0; +} diff --git a/tests/src/sub_with_global.c b/tests/src/sub_with_global.c new file mode 100644 index 0000000..bf1fd24 --- /dev/null +++ b/tests/src/sub_with_global.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +void sub_with_global() +{ + fprintf(stdout, "sub_with_global() has been reached.\n"); + fprintf(stdout, "sub_with_global() is returning.\n"); +} |