pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/regress/bootstrap-install-sh Regression test for the b...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/9b7b7d62f23f
branches:  trunk
changeset: 493515:9b7b7d62f23f
user:      jlam <jlam%pkgsrc.org@localhost>
date:      Sun May 08 09:51:26 2005 +0000

description:
Regression test for the bootstrap install-sh script which is a BSD install
replacement.

diffstat:

 regress/bootstrap-install-sh/Makefile         |  137 ++++++++++++
 regress/bootstrap-install-sh/files/install-sh |  284 ++++++++++++++++++++++++++
 regress/bootstrap-install-sh/spec             |    9 +
 3 files changed, 430 insertions(+), 0 deletions(-)

diffs (truncated from 442 to 300 lines):

diff -r c906af8fc955 -r 9b7b7d62f23f regress/bootstrap-install-sh/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/regress/bootstrap-install-sh/Makefile     Sun May 08 09:51:26 2005 +0000
@@ -0,0 +1,137 @@
+# $NetBSD: Makefile,v 1.1.1.1 2005/05/08 09:51:26 jlam Exp $
+
+DISTNAME=      bootstrap-install-sh-0.0
+CATEGORIES=    regress
+WRKSRC=                ${WRKDIR}
+MASTER_SITES=  # empty
+DISTFILES=     # empty
+
+MAINTAINER=    jlam%NetBSD.org@localhost
+COMMENT=       Test functionality of bootstrap install-sh
+
+EXTRACT_ONLY=  # empty
+NO_CONFIGURE=  yes
+NO_INSTALL=    yes
+NO_PACKAGE=    yes
+
+INSTALL_SH=    ${WRKSRC}/install-sh
+
+regress: extract
+post-extract:
+       ${CP} ${FILESDIR}/install-sh ${INSTALL_SH}
+       ${CHMOD} +x ${INSTALL_SH}
+
+# create one directory using -d
+regress: test-d1
+test-d1:
+       ${INSTALL_SH} -d ${WRKSRC}/d1_dir
+       ${TEST} -d ${WRKSRC}/d1_dir || exit 1
+
+# create two directories using -d
+regress: test-d2
+test-d2:
+       ${INSTALL_SH} -d ${WRKSRC}/d2_dir1 ${WRKSRC}/d2_dir2
+       ( ${TEST} -d ${WRKSRC}/d2_dir1 && \
+         ${TEST} -d ${WRKSRC}/d2_dir2 ) || exit 1
+
+# create three directories using -d
+regress: test-d3
+test-d3:
+       ${INSTALL_SH} -d ${WRKSRC}/d3_dir1 ${WRKSRC}/d3_dir2 ${WRKSRC}/d3_dir3
+       ( ${TEST} -d ${WRKSRC}/d3_dir1 && \
+         ${TEST} -d ${WRKSRC}/d3_dir2 && \
+         ${TEST} -d ${WRKSRC}/d3_dir3 ) || exit 1
+
+# copy one existing file to nonexistent file
+regress: test-c1
+test-c1:
+       ${ECHO} "Test data" > ${WRKSRC}/c1_file1
+       ${INSTALL_SH} -c ${WRKSRC}/c1_file1 ${WRKSRC}/c1_file2
+       ${CMP} ${WRKSRC}/c1_file1 ${WRKSRC}/c1_file2 || exit 1
+
+# copy one existing file into existing directory
+regress: test-c2
+test-c2:
+       ${ECHO} "Test data" > ${WRKSRC}/c2_file
+       ${MKDIR} ${WRKSRC}/c2_dir
+       ${INSTALL_SH} -c ${WRKSRC}/c2_file ${WRKSRC}/c2_dir
+       ${CMP} -s ${WRKSRC}/c2_file ${WRKSRC}/c2_dir/c2_file || exit 1
+
+# copy two existing files into existing directory
+regress: test-c3
+test-c3:
+       ${ECHO} "Test data 1" > ${WRKSRC}/c3_file1
+       ${ECHO} "Test data 2" > ${WRKSRC}/c3_file2
+       ${MKDIR} ${WRKSRC}/c3_dir
+       ${INSTALL_SH} -c ${WRKSRC}/c3_file1 ${WRKSRC}/c3_file2 ${WRKSRC}/c3_dir
+       ( ${CMP} -s ${WRKSRC}/c3_file1 ${WRKSRC}/c3_dir/c3_file1 && \
+         ${CMP} -s ${WRKSRC}/c3_file2 ${WRKSRC}/c3_dir/c3_file2 ) || exit 1
+
+# copy three existing files into existing directory
+regress: test-c4
+test-c4:
+       ${ECHO} "Test data 1" > ${WRKSRC}/c4_file1
+       ${ECHO} "Test data 2" > ${WRKSRC}/c4_file2
+       ${ECHO} "Test data 3" > ${WRKSRC}/c4_file3
+       ${MKDIR} ${WRKSRC}/c4_dir
+       ${INSTALL_SH} -c ${WRKSRC}/c4_file1 ${WRKSRC}/c4_file2 \
+               ${WRKSRC}/c4_file3 ${WRKSRC}/c4_dir
+       ( ${CMP} -s ${WRKSRC}/c4_file1 ${WRKSRC}/c4_dir/c4_file1 && \
+         ${CMP} -s ${WRKSRC}/c4_file2 ${WRKSRC}/c4_dir/c4_file2 && \
+         ${CMP} -s ${WRKSRC}/c4_file3 ${WRKSRC}/c4_dir/c4_file3 ) || exit 1
+
+MODES= 0 1 2 3 4 5 6 7
+MODE_0=        ---
+MODE_1=        --x
+MODE_2=        -w-
+MODE_3=        -wx
+MODE_4=        r--
+MODE_5=        r-x
+MODE_6=        rw-
+MODE_7=        rwx
+
+# test mode permissions on installing file to nonexisting file
+regress: test-m1
+test-m1:
+.for _u_ in ${MODES}
+.  for _g_ in ${MODES}
+.    for _o_ in ${MODES}
+       ${ECHO} "Test data" > ${WRKSRC}/m${_u_}${_g_}${_o_}_file1
+       ${INSTALL_SH} -m ${_u_}${_g_}${_o_} ${WRKSRC}/m${_u_}${_g_}${_o_}_file1 ${WRKSRC}/m${_u_}${_g_}${_o_}_file2
+       ${LS} -l ${WRKSRC}/m${_u_}${_g_}${_o_}_file2 |                  \
+       while read a b; do                                              \
+               case "$$a" in                                           \
+               -${MODE_${_u_}}${MODE_${_g_}}${MODE_${_o_}})            \
+                       exit 0 ;;                                       \
+               *)      exit 1 ;;                                       \
+               esac;                                                   \
+       done
+.    endfor
+.  endfor
+.endfor
+
+# test mode permissions on creating directory
+regress: test-m2
+test-m2:
+.for _u_ in ${MODES}
+.  for _g_ in ${MODES}
+.    for _o_ in ${MODES}
+       ${INSTALL_SH} -m 357 -d ${WRKSRC}/m357_dir
+       ${INSTALL_SH} -m ${_u_}${_g_}${_o_} -d ${WRKSRC}/m${_u_}${_g_}${_o_}_dir
+       ${LS} -l ${WRKSRC}/m${_u_}${_g_}${_o_}_file2 |                  \
+       while read a b; do                                              \
+               case "$$a" in                                           \
+               -${MODE_${_u_}}${MODE_${_g_}}${MODE_${_o_}})            \
+                       exit 0 ;;                                       \
+               *)      exit 1 ;;                                       \
+               esac;                                                   \
+       done
+.    endfor
+.  endfor
+.endfor
+
+pre-clean:
+       ${TEST} "`${ECHO} ${WRKSRC}/*`" = "${WRKSRC}/*" ||              \
+               ${CHMOD} -R u+rwx ${WRKSRC}/*
+
+.include "../../mk/bsd.pkg.mk"
diff -r c906af8fc955 -r 9b7b7d62f23f regress/bootstrap-install-sh/files/install-sh
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/regress/bootstrap-install-sh/files/install-sh     Sun May 08 09:51:26 2005 +0000
@@ -0,0 +1,284 @@
+#!/bin/sh
+#
+# $NetBSD: install-sh,v 1.1.1.1 2005/05/08 09:51:26 jlam Exp $
+# This script now also installs multiple files, but might choke on installing
+# multiple files with spaces in the file names.
+#
+# install - install a program, script, or datafile
+# This comes from X11R5 (mit/util/scripts/install.sh).
+#
+# Copyright 1991 by the Massachusetts Institute of Technology
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of M.I.T. not be used in advertising or
+# publicity pertaining to distribution of the software without specific,
+# written prior permission.  M.I.T. makes no representations about the
+# suitability of this software for any purpose.  It is provided "as is"
+# without express or implied warranty.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+stripflags=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+msrc=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+       -c) instcmd="$cpprog"
+           shift
+           continue;;
+
+       -d) dir_arg=true
+           shift
+           continue;;
+
+       -m) chmodcmd="$chmodprog $2"
+           shift
+           shift
+           continue;;
+
+       -o) chowncmd="$chownprog $2"
+           shift
+           shift
+           continue;;
+
+       -g) chgrpcmd="$chgrpprog $2"
+           shift
+           shift
+           continue;;
+
+       -s) stripcmd="$stripprog"
+           shift
+           continue;;
+
+       -S) stripcmd="$stripprog"
+           stripflags="-S $2 $stripflags"
+           shift
+           shift
+           continue;;
+
+       -t=*) transformarg=`echo "$1" | sed 's/-t=//'`
+           shift
+           continue;;
+
+       -b=*) transformbasename=`echo "$1" | sed 's/-b=//'`
+           shift
+           continue;;
+
+       *)  if [ x"$msrc" = x ]
+           then
+               msrc="$dst"
+           else
+               msrc="$msrc $dst"
+           fi
+           src="$dst"
+           dst="$1"
+           shift
+           continue;;
+    esac
+done
+
+if [ x"$dir_arg" = x ]
+then
+       dstisfile=""
+       if [ ! -d "$dst" ]
+       then
+               if [ x"$msrc" = x"$src" ]
+               then
+                       dstisfile=true
+               else
+                       echo "install: destination is not a directory"
+                       exit 1
+               fi
+       fi
+else
+       msrc="$msrc $dst"
+fi
+
+if [ x"$msrc" = x ]
+then
+       echo "install: no destination specified"
+       exit 1
+fi      
+
+for srcarg in $msrc; do
+
+if [ x"$dir_arg" != x ]; then
+
+       dstarg="$srcarg"
+else
+       dstarg="$dst"
+
+# Waiting for this to be detected by the "$instcmd $srcarg $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+       if [ -f "$srcarg" ]
+       then
+               doinst="$instcmd"
+       elif [ -d "$srcarg" ]



Home | Main Index | Thread Index | Old Index