Patchwork [V3,4/5] libqblock test build system

login
register
mail settings
Submitter Wayne Xia
Date Sept. 18, 2012, 9:01 a.m.
Message ID <1347958919-30380-5-git-send-email-xiawenc@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/184667/
State New
Headers show

Comments

Wayne Xia - Sept. 18, 2012, 9:01 a.m.
Created a new directory in tests, make chekc-libqblock will build an
executable binrary, make clean will delete it.

Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
---
 .gitignore                       |    1 +
 Makefile                         |    1 +
 tests/Makefile                   |    3 +++
 tests/libqblock/Makefile         |   32 ++++++++++++++++++++++++++++++++
 tests/libqblock/libqblock-test.c |    4 ++++
 5 files changed, 41 insertions(+), 0 deletions(-)
 create mode 100644 tests/libqblock/Makefile
 create mode 100644 tests/libqblock/libqblock-test.c
Paolo Bonzini - Sept. 18, 2012, 10:10 a.m.
Il 18/09/2012 11:01, Wenchao Xia ha scritto:
>   Created a new directory in tests, make chekc-libqblock will build an
> executable binrary, make clean will delete it.
> 
> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
> ---
>  .gitignore                       |    1 +
>  Makefile                         |    1 +
>  tests/Makefile                   |    3 +++
>  tests/libqblock/Makefile         |   32 ++++++++++++++++++++++++++++++++
>  tests/libqblock/libqblock-test.c |    4 ++++
>  5 files changed, 41 insertions(+), 0 deletions(-)
>  create mode 100644 tests/libqblock/Makefile
>  create mode 100644 tests/libqblock/libqblock-test.c
> 
> diff --git a/.gitignore b/.gitignore
> index 824c0d2..eccb637 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -95,3 +95,4 @@ cscope.*
>  tags
>  TAGS
>  *~
> +tests/libqblock/*.bin
> diff --git a/Makefile b/Makefile
> index b0b9b8d..de8ea17 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -238,6 +238,7 @@ clean:
>  	rm -rf qapi-generated
>  	rm -rf qga/qapi-generated
>  	$(MAKE) -C tests/tcg clean
> +	$(MAKE) -C tests/libqblock clean
>  	for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard libqblock; do \
>  	if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
>  	rm -f $$d/qemu-options.def; \
> diff --git a/tests/Makefile b/tests/Makefile
> index 26a67ce..69af1e2 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -148,4 +148,7 @@ check-unit: $(patsubst %,check-%, $(check-unit-y))
>  check-block: $(patsubst %,check-%, $(check-block-y))
>  check: check-unit check-qtest
>  
> +check-libqblock:
> +	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C tests/libqblock V="$(V)" TARGET_DIR="$*/" check-libqblock,)

Please just put everything in tests/Makefile. "make check" should run it
if LIBTOOL is available.

> +libqblock-test.bin: $(libqblock-test-objs) $(libqblock-la-path)
> +	$(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -shared -rpath $(libdir) -o $@ $^,"  lt LINK $@")

.bin looks so MS-DOS. :)

Paolo
Wayne Xia - Sept. 19, 2012, 6:39 a.m.
于 2012-9-18 18:10, Paolo Bonzini 写道:
> Il 18/09/2012 11:01, Wenchao Xia ha scritto:
>>    Created a new directory in tests, make chekc-libqblock will build an
>> executable binrary, make clean will delete it.
>>
>> Signed-off-by: Wenchao Xia <xiawenc@linux.vnet.ibm.com>
>> ---
>>   .gitignore                       |    1 +
>>   Makefile                         |    1 +
>>   tests/Makefile                   |    3 +++
>>   tests/libqblock/Makefile         |   32 ++++++++++++++++++++++++++++++++
>>   tests/libqblock/libqblock-test.c |    4 ++++
>>   5 files changed, 41 insertions(+), 0 deletions(-)
>>   create mode 100644 tests/libqblock/Makefile
>>   create mode 100644 tests/libqblock/libqblock-test.c
>>
>> diff --git a/.gitignore b/.gitignore
>> index 824c0d2..eccb637 100644
>> --- a/.gitignore
>> +++ b/.gitignore
>> @@ -95,3 +95,4 @@ cscope.*
>>   tags
>>   TAGS
>>   *~
>> +tests/libqblock/*.bin
>> diff --git a/Makefile b/Makefile
>> index b0b9b8d..de8ea17 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -238,6 +238,7 @@ clean:
>>   	rm -rf qapi-generated
>>   	rm -rf qga/qapi-generated
>>   	$(MAKE) -C tests/tcg clean
>> +	$(MAKE) -C tests/libqblock clean
>>   	for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard libqblock; do \
>>   	if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
>>   	rm -f $$d/qemu-options.def; \
>> diff --git a/tests/Makefile b/tests/Makefile
>> index 26a67ce..69af1e2 100644
>> --- a/tests/Makefile
>> +++ b/tests/Makefile
>> @@ -148,4 +148,7 @@ check-unit: $(patsubst %,check-%, $(check-unit-y))
>>   check-block: $(patsubst %,check-%, $(check-block-y))
>>   check: check-unit check-qtest
>>
>> +check-libqblock:
>> +	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C tests/libqblock V="$(V)" TARGET_DIR="$*/" check-libqblock,)
>
> Please just put everything in tests/Makefile. "make check" should run it
> if LIBTOOL is available.
>
   OK.

>> +libqblock-test.bin: $(libqblock-test-objs) $(libqblock-la-path)
>> +	$(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -shared -rpath $(libdir) -o $@ $^,"  lt LINK $@")
>
> .bin looks so MS-DOS. :)
>

> Paolo
>

Patch

diff --git a/.gitignore b/.gitignore
index 824c0d2..eccb637 100644
--- a/.gitignore
+++ b/.gitignore
@@ -95,3 +95,4 @@  cscope.*
 tags
 TAGS
 *~
+tests/libqblock/*.bin
diff --git a/Makefile b/Makefile
index b0b9b8d..de8ea17 100644
--- a/Makefile
+++ b/Makefile
@@ -238,6 +238,7 @@  clean:
 	rm -rf qapi-generated
 	rm -rf qga/qapi-generated
 	$(MAKE) -C tests/tcg clean
+	$(MAKE) -C tests/libqblock clean
 	for d in $(ALL_SUBDIRS) $(QEMULIBS) libcacard libqblock; do \
 	if test -d $$d; then $(MAKE) -C $$d $@ || exit 1; fi; \
 	rm -f $$d/qemu-options.def; \
diff --git a/tests/Makefile b/tests/Makefile
index 26a67ce..69af1e2 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -148,4 +148,7 @@  check-unit: $(patsubst %,check-%, $(check-unit-y))
 check-block: $(patsubst %,check-%, $(check-block-y))
 check: check-unit check-qtest
 
+check-libqblock:
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C tests/libqblock V="$(V)" TARGET_DIR="$*/" check-libqblock,)
+
 -include $(wildcard tests/*.d)
diff --git a/tests/libqblock/Makefile b/tests/libqblock/Makefile
new file mode 100644
index 0000000..eb6947b
--- /dev/null
+++ b/tests/libqblock/Makefile
@@ -0,0 +1,32 @@ 
+-include ../../config-host.mak
+-include $(SRC_PATH)/Makefile.objs
+-include $(SRC_PATH)/rules.mak
+
+$(call set-vpath, $(SRC_PATH))
+
+#library test case objects
+libqblock-test-objs=libqblock-test.lo
+
+QEMU_CFLAGS+=-I $(SRC_PATH)/$(libqblock-lib-path)
+libqblock-la-path = $(SRC_PATH)/$(libqblock-lib-path)/$(libqblock-lib-la)
+
+##########################################################################
+#runtime rules:
+ifeq ($(LIBTOOL),)
+libqblock-test.bin:
+	@echo "libtool is missing, please install and rerun configure"; exit 1
+else
+libqblock-test.bin: $(libqblock-test-objs) $(libqblock-la-path)
+	$(call quiet-command,$(LIBTOOL) --mode=link --quiet --tag=CC $(CC) -shared -rpath $(libdir) -o $@ $^,"  lt LINK $@")
+endif
+
+check-libqblock:
+	@echo "Building libqblock.la..."
+	$(call quiet-command,$(MAKE) -C $(SRC_PATH) $(libqblock-lib-la),)
+	@make libqblock-test.bin
+	@echo "Executing test binary..."
+	./libqblock-test.bin
+
+clean:
+	rm -f *.lo *.o *.d *.la *.bin
+	rm -rf .libs
diff --git a/tests/libqblock/libqblock-test.c b/tests/libqblock/libqblock-test.c
new file mode 100644
index 0000000..c05c0c4
--- /dev/null
+++ b/tests/libqblock/libqblock-test.c
@@ -0,0 +1,4 @@ 
+int main(int argc, char **argv)
+{
+    return 0;
+}