Skip to contentSkip to conversation

xfstests: make install support common/ and tests/ dirs

PATCH Superseded Wang Sheng-Hui 3 participants 10 messages Apr 12, 2013 – Apr 15, 2013 Kbuild

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 xfstests: make install support common/ and tests/ dirs

xfstests have some change on the organization of the testcases and common* files:
* The common* scripts have been reorganized into the common/ dir.
* The testcases have been reorganized into sub test dirs under tests/.
* The run.* scripts have been removed.

This patch uses the simple way to make install support above changes:
Make up one Makefile for each newly created subdirs, which can control 'make install' separately.

v2 introduces the following changes compared with v1:
* Ignore the file 'group' under the top dir, for it's useless in the new structures.
* Remove the redundant comments in the Makefiles.
* Use XXX_DIR instead of XXX_SUBDIR in the Makefiles under common/ and tests/.
* Export TESTS_DIR in teh top level Makefile instead of tests/Makefile.
* Obtain the names of dirs for testcases by iterating sub dirs under /tests, not by enumeration in tests/Makefile.

---
 Makefile               | 12 +++++-------
 common/Makefile        | 16 ++++++++++++++++
 tests/Makefile         | 19 +++++++++++++++++++
 tests/btrfs/Makefile   | 20 ++++++++++++++++++++
 tests/ext4/Makefile    | 20 ++++++++++++++++++++
 tests/generic/Makefile | 20 ++++++++++++++++++++
 tests/shared/Makefile  | 20 ++++++++++++++++++++
 tests/udf/Makefile     | 20 ++++++++++++++++++++
 tests/xfs/Makefile     | 20 ++++++++++++++++++++
 9 files changed, 160 insertions(+), 7 deletions(-)
 create mode 100644 common/Makefile
 create mode 100644 tests/Makefile
 create mode 100644 tests/btrfs/Makefile
 create mode 100644 tests/ext4/Makefile
 create mode 100644 tests/generic/Makefile
 create mode 100644 tests/shared/Makefile
 create mode 100644 tests/udf/Makefile
 create mode 100644 tests/xfs/Makefile
Makefile +5 -7
index 6edd55c..611b36d 100644
@@ -52,12 +52,15 @@ LDIRT += $(SRCTAR)
 endif
 
 LIB_SUBDIRS = include lib
-TOOL_SUBDIRS = ltp src m4
+TOOL_SUBDIRS = ltp src m4 common
 ifeq ($(HAVE_DMAPI), true)
 TOOL_SUBDIRS += dmapi
 endif
 
-SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS)
+TESTS_DIR = tests
+export TESTS_DIR
+
+SUBDIRS = $(LIB_SUBDIRS) $(TOOL_SUBDIRS) $(TESTS_DIR)
 
 default: include/builddefs $(DMAPI_MAKEFILE) $(TESTS)
 ifeq ($(HAVE_BUILDDEFS), no)
@@ -91,12 +94,7 @@ depend: include/builddefs $(addsuffix -depend,$(SUBDIRS))
 install: default $(addsuffix -install,$(SUBDIRS))
 	$(INSTALL) -m 755 -d $(PKG_LIB_DIR)
 	$(INSTALL) -m 755 check $(PKG_LIB_DIR)
-	$(INSTALL) -m 755 [0-9]?? $(PKG_LIB_DIR)
-	$(INSTALL) -m 755 run.* $(PKG_LIB_DIR)
-	$(INSTALL) -m 644 group $(PKG_LIB_DIR)
 	$(INSTALL) -m 644 randomize.awk $(PKG_LIB_DIR)
-	$(INSTALL) -m 644 [0-9]??.* $(PKG_LIB_DIR)
-	$(INSTALL) -m 644 common* $(PKG_LIB_DIR)
 
 # Nothing.
 install-dev install-lib:
common/Makefile new file +16 -0
new file mode 100644
index 0000000..5f91e8c
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2003-2006 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+COMMON_DIR = common
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(PKG_LIB_DIR)/$(COMMON_DIR)
+	$(INSTALL) -m 644 * $(PKG_LIB_DIR)/$(COMMON_DIR)
+
+install-dev install-lib:
tests/Makefile new file +19 -0
new file mode 100644
index 0000000..254dd48
@@ -0,0 +1,19 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+TESTS_SUBDIRS = $(shell find . -maxdepth 1 -type d | sed -n -e 's/\.\///gp')
+
+include $(BUILDRULES)
+
+install: $(addsuffix -install,$(TESTS_SUBDIRS))
+	$(INSTALL) -m 755 -d $(PKG_LIB_DIR)/$(TESTS_DIR)
+
+# Nothing.
+install-dev install-lib:
+
+%-install:
+	$(MAKE) $(MAKEOPTS) -C $* install
tests/btrfs/Makefile new file +20 -0
new file mode 100644
index 0000000..e1a5be1
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ../..
+include $(TOPDIR)/include/builddefs
+
+BTRFS_DIR = btrfs
+TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(BTRFS_DIR)
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(TARGET_DIR)
+	$(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+	$(INSTALL) -m 644 group $(TARGET_DIR)
+	$(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+
+# Nothing.
+install-dev install-lib:
tests/ext4/Makefile new file +20 -0
new file mode 100644
index 0000000..7a3c8e1
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ../..
+include $(TOPDIR)/include/builddefs
+
+EXT4_DIR = ext4
+TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(EXT4_DIR)
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(TARGET_DIR)
+	$(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+	$(INSTALL) -m 644 group $(TARGET_DIR)
+	$(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+
+# Nothing.
+install-dev install-lib:
tests/generic/Makefile new file +20 -0
new file mode 100644
index 0000000..9529fb8
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ../..
+include $(TOPDIR)/include/builddefs
+
+GENERIC_DIR = generic
+TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(GENERIC_DIR)
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(TARGET_DIR)
+	$(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+	$(INSTALL) -m 644 group $(TARGET_DIR)
+	$(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+
+# Nothing.
+install-dev install-lib:
tests/shared/Makefile new file +20 -0
new file mode 100644
index 0000000..cbd87f9
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ../..
+include $(TOPDIR)/include/builddefs
+
+SHARED_DIR = shared
+TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(SHARED_DIR)
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(TARGET_DIR)
+	$(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+	$(INSTALL) -m 644 group $(TARGET_DIR)
+	$(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+
+# Nothing.
+install-dev install-lib:
tests/udf/Makefile new file +20 -0
new file mode 100644
index 0000000..1d96658
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ../..
+include $(TOPDIR)/include/builddefs
+
+UDF_DIR = udf
+TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(UDF_DIR)
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(TARGET_DIR)
+	$(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+	$(INSTALL) -m 644 group $(TARGET_DIR)
+	$(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+
+# Nothing.
+install-dev install-lib:
tests/xfs/Makefile new file +20 -0
new file mode 100644
index 0000000..db94be0
@@ -0,0 +1,20 @@
+#
+# Copyright (c) 2003-2005 Silicon Graphics, Inc.  All Rights Reserved.
+#
+
+TOPDIR = ../..
+include $(TOPDIR)/include/builddefs
+
+XFS_DIR = xfs
+TARGET_DIR = $(PKG_LIB_DIR)/$(TESTS_DIR)/$(XFS_DIR)
+
+include $(BUILDRULES)
+
+install:
+	$(INSTALL) -m 755 -d $(TARGET_DIR)
+	$(INSTALL) -m 755 [0-9]?? $(TARGET_DIR)
+	$(INSTALL) -m 644 group $(TARGET_DIR)
+	$(INSTALL) -m 644 [0-9]??.* $(TARGET_DIR)
+
+# Nothing.
+install-dev install-lib:
Signature · 6 lines
1.7.12.4

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
#1 lore raw

tests/Makefile line 8

Quoted 6 lines · Wang Sheng-Hui
tests/Makefile new file +6 -0
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+TESTS_SUBDIRS = $(shell find . -maxdepth 1 -type d | sed -n -e 's/\.\///gp')

This is much neater:

TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/*/)))

-Dave.

Signature · 7 lines
Dave Chinner
[email protected]

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
#2 lore raw
Quoted 11 lines · Dave Chinner

tests/Makefile line 8

Quoted 6 lines · Wang Sheng-Hui
tests/Makefile new file +6 -0
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+TESTS_SUBDIRS = $(shell find . -maxdepth 1 -type d | sed -n -e 's/\.\///gp')

This is much neater:

TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/*/)))

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the $(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names, and no Makefile.

Regards,
Sheng-Hui

Quoted 3 lines

-Dave.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

Reviewed-by
#3 lore raw
Quoted 11 lines · Wang Sheng-Hui

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the
$(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names,
and no Makefile.

Regards,
Sheng-Hui

Thanks addressing comments and for v2 of this patch.

I still had issues with Makefile which I corrected at commit time.

Thanks again for the patch, it has been committed, --Rich

commit 2519a97d1083efca79006ba5bd4ddb9f4af65a5e

Author: Wang Sheng-Hui <[email protected]>
Date:   Fri Apr 12 04:26:53 2013 +0000

xfstests: make install support common/ and tests/ dirs

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#4 lore raw
Quoted 10 lines · Rich Johnston
Quoted 9 lines · Wang Sheng-Hui

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the
$(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names,
and no Makefile.

Quoted 8 lines
Quoted 2 lines

Regards,
Sheng-Hui

Thanks addressing comments and for v2 of this patch.

I still had issues with Makefile which I corrected at commit time.

Thanks again for the patch, it has been committed,

Rich, it's great that you are picking this stuff up quickly, but as I asked recently, please don't commit patches while there is still an active review conversation going on....

Cheers,

Dave.

Signature · 7 lines
Dave Chinner
[email protected]

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
#5 lore raw
Quoted 20 lines · Dave Chinner
Quoted 10 lines · Rich Johnston
Quoted 9 lines · Wang Sheng-Hui

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the
$(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names,
and no Makefile.

Quoted 8 lines
Quoted 2 lines

Regards,
Sheng-Hui

Thanks addressing comments and for v2 of this patch.

I still had issues with Makefile which I corrected at commit time.

Thanks again for the patch, it has been committed,

Quoted 8 lines

Rich, it's great that you are picking this stuff up quickly, but as I asked recently, please don't commit patches while there is still an active review conversation going on....

Cheers,

Dave.

Dave,
I was a little quick on the draw, I will wait till all parties have concluded discussions.

--Rich

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#6 lore raw
In reply to Dave Chinner
Quoted 20 lines · Dave Chinner
Quoted 10 lines · Rich Johnston
Quoted 9 lines · Wang Sheng-Hui

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the
$(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names,
and no Makefile.

Quoted 8 lines
Quoted 2 lines

Regards,
Sheng-Hui

Thanks addressing comments and for v2 of this patch.

I still had issues with Makefile which I corrected at commit time.

Thanks again for the patch, it has been committed,

Quoted 8 lines

Rich, it's great that you are picking this stuff up quickly, but as I asked recently, please don't commit patches while there is still an active review conversation going on....

Cheers,

Dave.

Dave,
I was a little quick on the draw, I will wait till all parties have concluded discussions.

--Rich

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#7 lore raw
In reply to Wang Sheng-Hui
Quoted 11 lines · Wang Sheng-Hui
Quoted 10 lines · Dave Chinner

tests/Makefile line 8

Quoted 6 lines · Wang Sheng-Hui
tests/Makefile new file +6 -0
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+TESTS_SUBDIRS = $(shell find . -maxdepth 1 -type d | sed -n -e 's/\.\///gp')

This is much neater:

Quoted 7 lines
Quoted 1 line

TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/*/)))

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the $(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names, and no Makefile.

I think you misunderstand. The wildcard above only returns directories:

$ pwd
 0  ~/src/xfstests-dev/tests
$ cat ~/tmp/Makefile 
foo=$(sort $(dir $(wildcard  $(PWD)/*/)))

default:

        @echo $(foo)
$ make -f ~/tmp/Makefile 
/home/dave/src/xfstests-dev/tests/btrfs/ /home/dave/src/xfstests-dev/tests/ext4/ /home/dave/src/xfstests-dev/tests/generic/ /home/dave/src/xfstests-dev/tests/shared/ /home/dave/src/xfstests-dev/tests/udf/ /home/dave/src/xfstests-dev/tests/xfs/
$

Cheers,

Dave.

Signature · 7 lines
Dave Chinner
[email protected]

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
#8 lore raw
Quoted 28 lines · Dave Chinner
Quoted 11 lines · Wang Sheng-Hui
Quoted 10 lines · Dave Chinner

tests/Makefile line 8

Quoted 6 lines · Wang Sheng-Hui
tests/Makefile new file +6 -0
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+TESTS_SUBDIRS = $(shell find . -maxdepth 1 -type d | sed -n -e 's/\.\///gp')

This is much neater:

Quoted 7 lines
Quoted 1 line

TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/*/)))

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the $(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names, and no Makefile.

I think you misunderstand. The wildcard above only returns directories:

$ pwd
  0  ~/src/xfstests-dev/tests
$ cat ~/tmp/Makefile
foo=$(sort $(dir $(wildcard  $(PWD)/*/)))
Quoted 6 lines

default:

         @echo $(foo)
$ make -f ~/tmp/Makefile
/home/dave/src/xfstests-dev/tests/btrfs/ /home/dave/src/xfstests-dev/tests/ext4/ /home/dave/src/xfstests-dev/tests/generic/ /home/dave/src/xfstests-dev/tests/shared/ /home/dave/src/xfstests-dev/tests/udf/ /home/dave/src/xfstests-dev/tests/xfs/
$

Dave,

The output on my box is different with yours.

# pwd
/root/workspace/xfstests/tests
# cat /tmp/Makefile
foo=$(sort $(dir $(wildcard  $(PWD)/*/)))
foo:
	@echo $(foo)
# make -f /tmp/Makefile foo
/root/workspace/xfstests/tests/ /root/workspace/xfstests/tests/btrfs/ /root/workspace/xfstests/tests/ext4/ /root/workspace/xfstests/tests/generic/ /root/workspace/xfstests/tests/shared/ /root/workspace/xfstests/tests/udf/ /root/workspace/xfstests/tests/xfs/

It always output the tests/ dir itself. If I used this for xfstests 'make install', it will fall into endless loop, for it will rerun Makefile under /tests.

Quoted 4 lines

Cheers,

Dave.

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs

#9 lore raw
Quoted 49 lines · Wang Sheng-Hui
Quoted 28 lines · Dave Chinner
Quoted 11 lines · Wang Sheng-Hui
Quoted 10 lines · Dave Chinner

tests/Makefile line 8

Quoted 6 lines · Wang Sheng-Hui
tests/Makefile new file +6 -0
+#
+
+TOPDIR = ..
+include $(TOPDIR)/include/builddefs
+
+TESTS_SUBDIRS = $(shell find . -maxdepth 1 -type d | sed -n -e 's/\.\///gp')

This is much neater:

Quoted 7 lines
Quoted 1 line

TESTS_SUBDIRS = $(sort $(dir $(wildcard $(PWD)/*/)))

Hi Dave,

I introduces Makefile under tests/, which would return to TESTS_SUBDIRS with the $(dir function. By running find in $(shell, TEST_SUBDIRS will only get the dir names, and no Makefile.

I think you misunderstand. The wildcard above only returns directories:

$ pwd
  0  ~/src/xfstests-dev/tests
$ cat ~/tmp/Makefile
foo=$(sort $(dir $(wildcard  $(PWD)/*/)))
Quoted 6 lines

default:

         @echo $(foo)
$ make -f ~/tmp/Makefile
/home/dave/src/xfstests-dev/tests/btrfs/ /home/dave/src/xfstests-dev/tests/ext4/ /home/dave/src/xfstests-dev/tests/generic/ /home/dave/src/xfstests-dev/tests/shared/ /home/dave/src/xfstests-dev/tests/udf/ /home/dave/src/xfstests-dev/tests/xfs/
$

Dave,

The output on my box is different with yours.

# pwd
/root/workspace/xfstests/tests
# cat /tmp/Makefile
foo=$(sort $(dir $(wildcard  $(PWD)/*/)))
foo:
     @echo $(foo)
# make -f /tmp/Makefile foo
/root/workspace/xfstests/tests/ /root/workspace/xfstests/tests/btrfs/ /root/workspace/xfstests/tests/ext4/ /root/workspace/xfstests/tests/generic/ /root/workspace/xfstests/tests/shared/ /root/workspace/xfstests/tests/udf/ /root/workspace/xfstests/tests/xfs/
Quoted 9 lines

It always output the tests/ dir itself. If I used this for xfstests 'make install', it will fall into endless loop, for it will rerun Makefile under /tests.

Quoted 4 lines

Cheers,

Dave.

Seems it's the $(PWD) introduces the loop.
When make install under xfstests, $(PWD) will refer to the path to xfstests instead of xfstests/tests, even if is defined in xfstests/tests/Makefile.

Will send out the v3 patch later.

Regards,
Sheng-Hui

_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs