On 3/25/19 10:56 PM, Jianhong.Yin wrote: > recently nfsometer->cthon04 tests always fail on RHEL-8 and Fedora > > before, tests.init is used as both shell script and Makefile > it's hard to dynamic config to compile successfully on both RHEL-7 > and RHEL-8. > > so I think introduce a generater to get right tests.init is better > > Signed-off-by: Jianhong Yin <jiyin@xxxxxxxxxx> Committed... steved. > --- > based on git://git.linux-nfs.org/projects/steved/cthon04.git > test pass on RHEL-8 RHEL-7 RHEL-6 RHEL-5 and RHEL-4 > > .gitignore | 1 + > Makefile | 8 +- > README | 3 + > tests.init => tests.init.orig | 0 > tests.init.sh | 390 ++++++++++++++++++++++++++++++++++ > 5 files changed, 401 insertions(+), 1 deletion(-) > rename tests.init => tests.init.orig (100%) > create mode 100755 tests.init.sh > > diff --git a/.gitignore b/.gitignore > index 0956596..67f57f3 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -1,4 +1,5 @@ > */*.o > +tests.init > basic/test1 > basic/test2 > basic/test3 > diff --git a/Makefile b/Makefile > index 05859bb..9fd76d9 100644 > --- a/Makefile > +++ b/Makefile > @@ -7,12 +7,14 @@ > # 'make dist DESTDIR=path' copies sources to path > # 'make tar DESTDIR=path' runs make dist and then packs the directory > # 'make rpm DESTDIR=path' runs make tar and runs rpmbuild -ta on it > - > > DESTDIR=/no/such/path > COPYFILES=runtests tests.init server domount.c README READWIN.txt Testitems \ > getopt.c tests.h unixdos.h cthon04.spec > > +# generate tests.init file > +$(shell ./tests.init.sh) > + > include tests.init > > all: domount getopt > @@ -73,3 +75,7 @@ rpm: tar > mknewdirs: > -mkdir $(DESTDIR)/basic $(DESTDIR)/general $(DESTDIR)/special \ > $(DESTDIR)/tools $(DESTDIR)/lock > + > +.PHONY: tests.init > +tests.init: > + sh ./tests.init.sh > diff --git a/README b/README > index 28367fa..3e20792 100644 > --- a/README > +++ b/README > @@ -540,6 +540,9 @@ None were found. > See READWIN.txt for information about running the tests under DOS or > Windows. > > +Changes for 2019 include the following: > + > +1. Add tests.init.sh to generate tests.init file. > > Changes for 2004 include the following: > > diff --git a/tests.init b/tests.init.orig > similarity index 100% > rename from tests.init > rename to tests.init.orig > diff --git a/tests.init.sh b/tests.init.sh > new file mode 100755 > index 0000000..a8a856c > --- /dev/null > +++ b/tests.init.sh > @@ -0,0 +1,390 @@ > +#!/bin/sh > + > +OS=${1:-Linux} > +FSTYPE=$${2:-nfs} > +Initfile=tests.init > + > +cat <<\EOF >$Initfile > +# > +# @(#)tests.init 1.26 2003/12/30 Connectathon testsuite > +# > +MNTOPTIONS="rw,hard,intr" > +# Dummy MNTPOINT definition; should get overriden by server script. > +MNTPOINT="/mnt" > + > +SERVER="" > +SERVPATH="/server" > +TEST="-a" > +TESTARG="-t" > + > +EOF > + > +# set MOUNTCMD and UMOUNTCMD > +echo "# set MOUNTCMD and UMOUNTCMD" >>$Initfile > +case $OS in > +SVR3) > +cat <<\EOF >>$Initfile > +# Use this mount command if using: > +# SVR3 > +MOUNTCMD='./domount -f NFS,$MNTOPTIONS $SERVER\:$SERVPATH $MNTPOINT' > +EOF > +;; > +SVR4|Solaris2.x) > +cat <<\EOF >>$Initfile > +# Use this mount command if using: > +# SVR4 > +# Solaris 2.x > +MOUNTCMD='./domount -F nfs -o $MNTOPTIONS $SERVER\:$SERVPATH $MNTPOINT' > +CFSMOUNTCMD='./domount -F cachefs -o $MNTOPTIONS $SERVER\:$SERVPATH $MNTPOINT' > +EOF > +;; > +BSD|SunOS4.x|Tru64UNIX|HPUX|Linux|AIX|MacOSX) > +cat <<\EOF >>$Initfile > +# Use this mount command if using: > +# BSD > +# SunOS 4.X > +# Tru64 UNIX > +# HPUX > +# Linux > +# AIX > +# Mac OS X > +# At least some BSD systems don't recognize "hard" (since that's the > +# default), so you might also want to use this definition of MNTOPTIONS. > +MNTOPTIONS="rw,intr" > +MOUNTCMD='./domount -o $MNTOPTIONS $SERVER\:$SERVPATH $MNTPOINT' > +EOF > +;; > +DG/UX) > +cat <<\EOF >>$Initfile > +# Use this mount command if using: > +# DG/UX > +MOUNTCMD='./domount -t nfs -o $MNTOPTIONS $SERVER\:$SERVPATH $MNTPOINT' > +EOF > +;; > +esac > + > +if test $FSTYPE = cifs; then > + cat <<\EOF >>$Initfile > +# Use this mount command if using: > +# SMB/CIFS > +MOUNTCMD='./domount -t cifs -o $MNTOPTIONS //$SERVER/$SERVPATH $MNTPOINT' > +EOF > +fi > +cat <<\EOF >>$Initfile > +UMOUNTCMD='./domount -u $MNTPOINT' > + > +EOF > + > +# set DASHN and BLC > +echo "# set DASHN and BLC" >>$Initfile > +case $OS in > +SVR3|SVR4|Solaris2.x|HPUX) > +cat <<\EOF >>$Initfile > +# Use the next two lines if using: > +# SVR3 > +# SVR4 > +# Solaris 2.x > +# HPUX > +DASHN= > +BLC=\\c > +EOF > +;; > +BSD|SunOS4.x|Linux|Tru64UNIX|MacOSX) > +cat <<\EOF >>$Initfile > +# Use the next two lines if using: > +# BSD > +# SunOS 4.X > +# Linux > +# Tru64 UNIX > +# Mac OS X > +DASHN=-n > +BLC= > +EOF > +;; > +esac > + > +# set PATH > +echo >>$Initfile > +echo -e "# set PATH" >>$Initfile > +case $OS in > +Solaris2.x) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# Solaris 2.x > +PATH=/opt/SUNWspro/bin:/usr/ccs/bin:/sbin:/bin:/usr/bin:/usr/ucb:/etc:. > + > +# Use this path for: > +# Solaris 2.x with GCC > +#PATH=/opt/gnu/bin:/usr/ccs/bin:/sbin:/bin:/usr/bin:/usr/ucb:/etc:. > + > +EOF > +;; > + > +HPUX) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# HPUX > +PATH=/bin:/usr/bin:/etc:/usr/etc:/usr/local/bin:/usr/contrib/bin:. > + > +EOF > +;; > + > +BSD|SunOS4.x) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# BSD > +# SunOS 4.X > +PATH=/bin:/usr/bin:/usr/ucb:/etc:/usr/etc:. > + > +EOF > +;; > + > +Tru64UNIX|SVR4|Linux) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# Tru64 UNIX > +# SVR4 > +# Linux > +PATH=/bin:/usr/bin:/usr/ucb:/usr/ccs/bin:/sbin:/usr/sbin:. > + > +EOF > +;; > + > +DG/UX) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# DG/UX > +PATH=/bin:/usr/bin:/usr/ucb:/etc:/usr/etc:. > + > +EOF > +;; > + > +IRIX) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# IRIX > +PATH=/bin:/usr/bin:/usr/bsd:/etc:/usr/etc:. > + > +EOF > +;; > + > +AIX) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# AIX > +PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:. > + > +EOF > +;; > + > +MacOSX) > +cat <<\EOF >>$Initfile > +# Use this path for: > +# Mac OS X > +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:. > +EOF > +;; > +esac > + > +#=============================================================================== > + > +cat <<\EOF >>$Initfile > +# ----------------------------------------------- > +# Defines for various variables used in scripts and makefiles. > +# > +# Do not remove the following three lines. They may be overridden by > +# other configuration parameters lower in this file, but these three > +# variables must be defined. > +CC=cc > +CFLAGS= > +LIBS= > +LOCKTESTS=tlock > +EOF > + > +case $OS in > +SVR3) > +cat <<\EOF >>$Initfile > +# Use with SVR3 systems. > +# Add -TR2 to CFLAGS for use on Amdahl UTS systems. > +CFLAGS=-DSVR3 > +LIBS=`echo -lrpc -lsocket` > +EOF > +;; > + > +BSD) > +cat <<\EOF >>$Initfile > +# Use with BSD systems. > +CC=gcc > +CFLAGS=`echo -Duse_directs -DBSD` > +MOUNT=/sbin/mount > +UMOUNT=/sbin/umount > +EOF > +;; > + > +SVR4) > +cat <<\EOF >>$Initfile > +# Use with SVR4 systems. > +CFLAGS=-DSVR4 > +LIBS=`echo -lsocket -lnsl` > +EOF > +;; > + > +SunOS4.x) > +cat <<\EOF >>$Initfile > +# Use with SunOS 4.X systems > +CC=/usr/5bin/cc > +CFLAGS=`echo -DSUNOS4X -DNEED_STRERROR` > +EOF > +;; > + > +Solaris2.x) > +cat <<\EOF >>$Initfile > +# Use with Solaris 2.x systems. Need the 5.0 C compiler (or later) > +# for 64-bit mode. > +#CC=/opt/SUNWspro/bin/cc > +# Use this with GCC > +#CC=/opt/gnu/bin/gcc > +# Use this through Solaris 2.6. For Solaris 2.7 and later, use > +# this for 32-bit mode applications. > +#CFLAGS=`echo -DSVR4 -DMMAP -DSOLARIS2X -DSTDARG` > +# Use this with gcc (32-bit binaries): > +#CFLAGS=`echo -DSVR4 -DMMAP -DSOLARIS2X -DSTDARG -mcpu=ultrasparc` > +# For Solaris 2.7 and later, use this for 64-bit mode applications > +# (Sun compiler). > +#CFLAGS=`echo -DSVR4 -DMMAP -DSOLARIS2X -DSTDARG -xO0 -xarch=v9 -dalign -Xt -L/usr/lib/sparcv9` > +# Use this to make 64-bit binaries with gcc (3.1 or later; untested): > +#CFLAGS=`echo -DSVR4 -DMMAP -DSOLARIS2X -DSTDARG -m64` > +LIBS=`echo -lsocket -lnsl` > +# Use this through Solaris 2.5.1. > +#LOCKTESTS=`echo tlock` > +# Use with 2.6 and later systems, 32-bit mode. > +LOCKTESTS=`echo tlocklfs tlock64` > +# Use with 2.7 and later, 64-bit mode. > +#LOCKTESTS=`echo tlocklfs` > +EOF > +;; > + > +Tru64UNIX) > +cat <<\EOF >>$Initfile > +# Use with Tru64 UNIX systems > +#CFLAGS=`echo -O -DTRU64 -DOSF1 -DMMAP -DSTDARG` > +# use the following instead of the above if using gcc > +#CFLAGS=`echo -O -DTRU64 -DOSF1 -DMMAP -DSTDARG -fwritable-strings` > +# 64-bit binaries with gcc (3.1 or later; untested): > +#CFLAGS=`echo -O -DTRU64 -DOSF1 -DMMAP -DSTDARG -fwritable-strings -m64` > +#MOUNT=/sbin/mount > +#UMOUNT=/sbin/umount > +EOF > +;; > + > +HPUX10B) > +cat <<\EOF >>$Initfile > +# Use with HPUX systems, 10.00 and earlier. > +CFLAGS=-DHPUX > +CC=/bin/cc > +RM=/bin/rm > +MAKE=/bin/make > +EOF > +;; > + > +HPUX10a) > +cat <<\EOF >>$Initfile > +# Use with HPUX 10.01. > +CFLAGS=`echo -Ae -DHPUX` > +CC=/opt/ansic/bin/cc > +RM=/bin/rm > +MAKE=/usr/bin/make > +EOF > +;; > + > +HPUX11-32) > +cat <<\EOF >>$Initfile > +# Use with HPUX 11.0, 32-bit machines. > +CFLAGS=`echo -Ae -DHPUX -D_PSTAT64 -D_LARGEFILE64_SOURCE -DPORTMAP` > +CC=/opt/ansic/bin/cc > +LIBS=`echo -lnsl` > +RM=/bin/rm > +MAKE=/usr/bin/make > +EOF > +;; > + > +HPUX11-64) > +cat <<\EOF >>$Initfile > +# Use with HPUX 11.0, 64-bit machines. > +CFLAGS=`echo -Ae -DHPUX -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE` > +CC=/opt/ansic/bin/cc > +RM=/bin/rm > +MAKE=/usr/bin/make > +EOF > +;; > + > +DG/UX) > +cat <<\EOF >>$Initfile > +# Use with DG/UX systems. > +CFLAGS=-DSVR4 > +LIBS=`echo -lsocket -lnsl` > +EOF > +;; > + > +IRIX) > +cat <<\EOF >>$Initfile > +# Use with IRIX systems. Use HAVE_SOCKLEN_T for IRIX >= 6.5.19. > +CFLAGS=`echo -g -DHAVE_SOCKLEN_T -DSTDARG -DSVR4 -DIRIX -DMMAP` > +EOF > +;; > + > +AIX) > +cat <<\EOF >>$Initfile > +# Use with AIX. > +CC=gcc > +CFLAGS=`echo -DAIX -DSTDARG -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE` > +LOCKTESTS=`echo tlocklfs` > +EOF > +;; > + > +MacOSX) > +cat <<\EOF >>$Initfile > +# Use with Mac OS X > +CFLAGS=`echo -DMACOSX -DNATIVE64 -DLARGE_LOCKS` > +MOUNT=/sbin/mount > +UMOUNT=/sbin/umount > +LOCKTESTS=`echo tlock` > +EOF > +;; > + > +Linux) > +cat <<\EOF >>$Initfile > +MOUNT=/bin/mount > +UMOUNT=/bin/umount > +LOCKTESTS=`echo tlocklfs tlock64` > + > +# Use with Linux if your distro doesn't provide a "cc". > +CC=gcc > + > +# Use with Linux 2.2 / GNU libc 2.0 > +#CFLAGS=`echo -DLINUX -DGLIBC=20 -DMMAP -DSTDARG -fwritable-strings` > +#LIBS=`echo -lnsl` > + > +# Use with Linux 2.4 / GNU libc 2.2 > +#CFLAGS=`echo -DLINUX -DGLIBC=22 -DMMAP -DSTDARG -fwritable-strings` > +#LIBS=`echo -lnsl` > + > +# Use with Linux 2.6 / gcc 4.0 > +CFLAGS=`echo -DLINUX -DHAVE_SOCKLEN_T -DGLIBC=22 -DMMAP -DSTDARG` > +LIBS=`echo -lnsl` > + > +EOF > + > +if [ glibc-2.26 = `{ rpm -qf /etc/ld.so.conf; echo glibc-2.26; } | sort | head -n1` ]; then > + cat <<\EOF >>$Initfile > +# Use with Linux glibc > 2.26 > +CFLAGS=`echo -DLINUX -DHAVE_SOCKLEN_T -DGLIBC=22 -DMMAP -DSTDARG` > +CFLAGS+=`pkg-config --cflags libtirpc` > +LIBS=`pkg-config --libs libtirpc` > +EOF > +fi > + > +;; > +esac > + > + >