WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 1/3] make check infrastructure

To: Xen-Devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH 1/3] make check infrastructure
From: Tony Breeds <tony@xxxxxxxxxxxxxxxxxx>
Date: Fri, 9 Dec 2005 16:55:15 +1100
Delivery-date: Fri, 09 Dec 2005 05:56:19 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Mail-followup-to: Xen-Devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
Signed-off-by: Tony Breeds <tony@xxxxxxxxxxxxxxxxxx>

----- Forwarded message from Rusty Russell <rusty@xxxxxxxxxxxxxxx> -----

To: Tony Breeds <tony@xxxxxxxxxxxxxxxxxx>
From: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
Subject: [PATCH 1/3] make check infrastructure
Date: Fri, 09 Dec 2005 16:44:15 +1100

This patch adds a top level "make check" and "make fullcheck" on which
we can implement unit tests.

"make -s check" is designed to take much less time than a xen compile,
so no excuse for not running it.

"make fullcheck" requires valgrind, and takes longer than make -s check,
but is designed for more thorough tests.

Signed-off-by: Rusty Russell <rusty@xxxxxxxxxxxxxxx>

diff -urN --exclude=.hg --exclude='*~' --exclude='*.aux' 
xen-unstable.hg-mainline/Makefile xen-unstable.hg-check/Makefile
--- xen-unstable.hg-mainline/Makefile   2005-11-21 12:54:52.000000000 +1100
+++ xen-unstable.hg-check/Makefile      2005-12-09 16:33:19.000000000 +1100
@@ -41,6 +41,10 @@
 test:
        $(MAKE) -C tools/python test
 
+# Code checking
+check fullcheck:
+       $(MAKE) -C xen $@
+
 # build and install everything into local dist directory
 dist: DESTDIR=$(DISTDIR)/install
 dist: dist-xen dist-kernels dist-tools dist-docs
diff -urN --exclude=.hg --exclude='*~' --exclude='*.aux' 
xen-unstable.hg-mainline/xen/Makefile xen-unstable.hg-check/xen/Makefile
--- xen-unstable.hg-mainline/xen/Makefile       2005-12-09 16:16:47.000000000 
+1100
+++ xen-unstable.hg-check/xen/Makefile  2005-12-09 16:33:19.000000000 +1100
@@ -25,6 +25,11 @@
 
 build: $(TARGET).gz
 
+# Code Check
+check fullcheck:
+       $(MAKE) -C test $@
+       $(MAKE) -C common $@
+
 install: $(TARGET).gz
        [ -d $(DESTDIR)/boot ] || $(INSTALL_DIR) $(DESTDIR)/boot
        $(INSTALL_DATA) $(TARGET).gz $(DESTDIR)/boot/$(notdir 
$(TARGET))-$(XEN_FULLVERSION).gz
@@ -40,6 +45,7 @@
 
 clean: delete-unfresh-files
        $(MAKE) -C tools clean
+       $(MAKE) -C test clean
        $(MAKE) -C common clean
        $(MAKE) -C drivers clean
        $(MAKE) -C acm clean
diff -urN --exclude=.hg --exclude='*~' --exclude='*.aux' 
xen-unstable.hg-mainline/xen/common/Makefile 
xen-unstable.hg-check/xen/common/Makefile
--- xen-unstable.hg-mainline/xen/common/Makefile        2005-11-25 
16:49:03.000000000 +1100
+++ xen-unstable.hg-check/xen/common/Makefile   2005-12-09 16:33:19.000000000 
+1100
@@ -9,8 +9,13 @@
 common.o: $(OBJS)
        $(LD) $(LDFLAGS) -r -o common.o $(OBJS)
 
+# Run the code checks
+check fullcheck:
+       $(MAKE) -C test $@
+
 clean:
        rm -f *.o *~ core
+       $(MAKE) -C test clean
 
 # Object file contains changeset and compiler information.
 kernel.o: $(BASEDIR)/include/xen/compile.h
diff -urN --exclude=.hg --exclude='*~' --exclude='*.aux' 
xen-unstable.hg-mainline/xen/common/test/Makefile 
xen-unstable.hg-check/xen/common/test/Makefile
--- xen-unstable.hg-mainline/xen/common/test/Makefile   1970-01-01 
10:00:00.000000000 +1000
+++ xen-unstable.hg-check/xen/common/test/Makefile      2005-12-09 
16:33:19.000000000 +1100
@@ -0,0 +1,26 @@
+TEST_C_FILES=$(wildcard *.c)
+TESTS=$(TEST_C_FILES:.c=)
+COV_FLAGS=
+
+include ../../../Config.mk
+
+.PHONY: check
+check: $(TESTS)
+       @echo -n `pwd`:
+       @for f in $(TESTS); do if $(VALGRIND) ./$$f; then echo -n .; else echo 
$$f failed.; exit 1; fi; done
+       @echo
+
+fullcheck:
+       $(MAKE) VALGRIND="valgrind -q" check
+clean:
+       -rm -f $(TESTS) .*.d *gc*
+
+$(TESTS): ../../test/fake.o
+
+$(TESTS): %: %.c
+       $(HOSTCC) -g -Wall -Werror -Wstrict-prototypes -Wmissing-declarations 
-I../../test -MD -MF $(@D)/.$(@F).d $(COV_FLAGS) -o $@ $< ../../test/fake.o
+
+coverage: clean 
+       $(MAKE) COV_FLAGS=-fprofile-arcs check
+
+-include .*.d
diff -urN --exclude=.hg --exclude='*~' --exclude='*.aux' 
xen-unstable.hg-mainline/xen/test/Makefile 
xen-unstable.hg-check/xen/test/Makefile
--- xen-unstable.hg-mainline/xen/test/Makefile  1970-01-01 10:00:00.000000000 
+1000
+++ xen-unstable.hg-check/xen/test/Makefile     2005-12-09 16:33:19.000000000 
+1100
@@ -0,0 +1,13 @@
+LINKS:=asm/types.h asm/uaccess.h asm/system.h asm/desc.h xen/config.h 
xen/types.h xen/errno.h xen/bitmap.h xen/bitops.h xen/lib.h xen/spinlock.h 
xen/time.h xen/string.h xen/init.h xen/sched.h xen/smp.h xen/perfc.h 
xen/softirq.h xen/ac_timer.h xen/keyhandler.h xen/mm.h public/acm.h 
public/acm_ops.h xen/event.h xen/trace.h xen/console.h asm/shadow.h 
public/sched_ctl.h acm/acm_hooks.h xen/domain.h xen/domain_page.h 
asm/debugger.h public/dom0_ops.h public/sched.h public/vcpu.h xen/irq.h 
asm/current.h public/xen.h public/event_chnnel.h
+
+
+clean:
+       rm -f $(LINKS) fake.o
+
+check fullcheck: $(LINKS) fake.o
+
+fake.o: CFLAGS=-Wall -g -I .
+
+$(LINKS):
+       mkdir -p $(dir $@)
+       ln -s `pwd`/fake-include.h $@

-- 
 ccontrol: http://freshmeat.net/projects/ccontrol

----- End forwarded message -----

Yours Tony

   linux.conf.au       http://linux.conf.au/ || http://lca2006.linux.org.au/
   Jan 23-28 2006      The Australian Linux Technical Conference!


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH 1/3] make check infrastructure, Tony Breeds <=