[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / regress / bootstrap-install-sh

File: [cvs.NetBSD.org] / pkgsrc / regress / bootstrap-install-sh / Makefile (download)

Revision 1.6, Thu Apr 9 00:47:11 2009 UTC (13 years, 9 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2009Q4-base, pkgsrc-2009Q4, pkgsrc-2009Q3-base, pkgsrc-2009Q3, pkgsrc-2009Q2-base, pkgsrc-2009Q2
Changes since 1.5: +1 -4 lines

Remove redundant EXTRACT_ONLY and NO_CHECKSUM declarations.
Retire NO_PACAKGE as there is no technical reason for it.

# $NetBSD: Makefile,v 1.6 2009/04/09 00:47:11 joerg Exp $

DISTNAME=	bootstrap-install-sh-0.0
CATEGORIES=	regress
WRKSRC=		${WRKDIR}
MASTER_SITES=	# empty
DISTFILES=	# empty

MAINTAINER=	jlam@pkgsrc.org
COMMENT=	Test functionality of sysutils/install-sh

NO_BUILD=	yes
NO_INSTALL=	yes

INSTALL_SH?=	${WRKSRC}/install-sh

post-extract:
	${CP} ${PKGSRCDIR}/sysutils/install-sh/files/install-sh.in ${WRKSRC}

do-configure:
	${SED}	-e "s|@DEFAULT_INSTALL_MODE@|"${PKGDIRMODE}"|g"		\
		${WRKSRC}/install-sh.in > ${WRKSRC}/install-sh
	${CHMOD} +x ${WRKSRC}/install-sh

regress: configure

# 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

# create one directory with several nonexistent intermediate directories
regress: test-d4
test-d4:
	${INSTALL_SH} -d -m 700 ${WRKSRC}/d4_comp1/d4_comp2/d4_comp3/d4_final
	${TEST} -d ${WRKSRC}/d4_comp1/d4_comp2/d4_comp3/d4_final || exit 1
	${FIND} ${WRKSRC}/d4_comp1 -type d -exec ${LS} -ld {} \; |	\
	while read a b; do						\
		case "$$b" in						\
		*/d4_final)						\
			case "$$a" in					\
			d${MODE_7}${MODE_0}${MODE_0})			\
					exit 0 ;;			\
			*)		exit 1 ;;			\
			esac;						\
			;;						\
		*)							\
			case "$$a" in					\
			${MODE_DIR})	exit 0 ;;			\
			*)		exit 1 ;;			\
			esac;						\
			;;						\
		esac;							\
	done

# 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

# copy one existing file to existing file with backup
regress: test-c5
test-c5:
	${ECHO} "Test data 1" > ${WRKSRC}/c5_file1
	${ECHO} "Test data 2" > ${WRKSRC}/c5_file2
	${CP} ${WRKSRC}/c5_file2 ${WRKSRC}/c5_file2.backup
	${INSTALL_SH} -b -c ${WRKSRC}/c5_file1 ${WRKSRC}/c5_file2
	( ${CMP} ${WRKSRC}/c5_file1 ${WRKSRC}/c5_file2 && \
	  ${TEST} -f ${WRKSRC}/c5_file2.old && \
	  ${CMP} ${WRKSRC}/c5_file2.old ${WRKSRC}/c5_file2.backup ) || exit 1

# copy one existing file to existing file with backup and custom suffix
regress: test-c6
test-c6:
	${ECHO} "Test data 1" > ${WRKSRC}/c6_file1
	${ECHO} "Test data 2" > ${WRKSRC}/c6_file2
	${CP} ${WRKSRC}/c6_file2 ${WRKSRC}/c6_file2.backup
	${INSTALL_SH} -B .OLD -c ${WRKSRC}/c6_file1 ${WRKSRC}/c6_file2
	( ${CMP} ${WRKSRC}/c6_file1 ${WRKSRC}/c6_file2 && \
	  ${TEST} -f ${WRKSRC}/c6_file2.OLD && \
	  ${CMP} ${WRKSRC}/c6_file2.OLD ${WRKSRC}/c6_file2.backup ) || exit 1

# copy one existing file to existing file with numbered backup
regress: test-c7
test-c7:
	${ECHO} "Test data 1" > ${WRKSRC}/c7_file1
	${ECHO} "Test data 2" > ${WRKSRC}/c7_file2
	${ECHO} "Test data 3" > ${WRKSRC}/c7_file2.backup.0
	${ECHO} "Test data 4" > ${WRKSRC}/c7_file2.backup.1
	${ECHO} "Test data 5" > ${WRKSRC}/c7_file2.backup.2
	${CP} ${WRKSRC}/c7_file2 ${WRKSRC}/c7_file2.backup
	${INSTALL_SH} -B .backup.%i -c ${WRKSRC}/c7_file1 ${WRKSRC}/c7_file2
	( ${CMP} ${WRKSRC}/c7_file1 ${WRKSRC}/c7_file2 && \
	  ${TEST} -f ${WRKSRC}/c7_file2.backup.3 && \
	  ${CMP} ${WRKSRC}/c7_file2.backup.3 ${WRKSRC}/c7_file2.backup ) || \
	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

# Convert ${PKGDIRMODE} into the appropriate "ls" output.
MODE_DIR=	d${MODE_${PKGDIRMODE:C/(.)(.)(.)/\1/}}${MODE_${PKGDIRMODE:C/(.)(.)(.)/\2/}}${MODE_${PKGDIRMODE:C/(.)(.)(.)/\3/}}

# 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"