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