pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/regress/infra-unittests
Module Name: pkgsrc
Committed By: rillig
Date: Tue May 19 06:09:53 UTC 2020
Added Files:
pkgsrc/regress/infra-unittests: pkgformat-pkg-metadata.sh
Log Message:
regress/infra-unittests: demonstrate relative paths in +BUILD_VERSION
Pointed out by wiz@.
This occured in math/libixion/Makefile.common until 2020-05-19, and still
occurs in math/xyconvert/Makefile. In all other packages, PKGDIR is
prefixed with ${.CURDIR} and is thus an absolute path.
It should not be necessary to always specify PATCHDIR as an absolute
path, and the code in mk/pkgformat/pkg/metadata.mk seems to be the only
place where relative paths are handled wrong.
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 \
pkgsrc/regress/infra-unittests/pkgformat-pkg-metadata.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/regress/infra-unittests/pkgformat-pkg-metadata.sh
diff -u /dev/null pkgsrc/regress/infra-unittests/pkgformat-pkg-metadata.sh:1.1
--- /dev/null Tue May 19 06:09:53 2020
+++ pkgsrc/regress/infra-unittests/pkgformat-pkg-metadata.sh Tue May 19 06:09:53 2020
@@ -0,0 +1,116 @@
+#! /bin/sh
+# $NetBSD: pkgformat-pkg-metadata.sh,v 1.1 2020/05/19 06:09:53 rillig Exp $
+#
+# Demonstrates how mk/pkgformat/pkg/metadata.mk creates the versioning
+# information in +BUILD_VERSION.
+#
+# As of May 2020, several directories must be prefixed with ${.CURDIR},
+# since otherwise +BUILD_VERSION ends up containing corrupt data.
+#
+
+set -eu
+
+. './test.subr'
+
+test_case_set_up() {
+ create_file 'setup.mk' <<-EOF
+ AWK= awk
+ CAT= cat
+ ECHO= echo
+ GREP= grep
+ MKDIR= mkdir -p
+ RM= rm
+ SED= sed
+ SORT= sort
+ TEST= test
+
+ RUN= @set -e;
+ INIT_SYSTEM= rc.d
+ WRKDIR= $PWD
+ WRKSRC= $PWD
+ PKGSRCDIR= $mocked_pkgsrcdir
+ EOF
+}
+
+
+if test_case_begin 'absolute paths'; then
+
+ wrkdir="$PWD"
+ pkgdir="$mocked_pkgsrcdir/category/package"
+ mkdir -p "$pkgdir"
+ cd "$pkgdir"
+
+ cvsid='$''NetBSD: marker ''$'
+ create_file 'Makefile' <<-EOF
+ # $cvsid
+
+ PKGDIR= \${.CURDIR}
+ FILESDIR= \${.CURDIR}/files
+ PATCHDIR= \${.CURDIR}/patches
+ DISTINFO_FILE= \${.CURDIR}/distinfo
+
+ .include "$wrkdir/setup.mk"
+ .include "$pkgsrcdir/mk/pkgformat/pkg/metadata.mk"
+ EOF
+ create_file_lines 'patches/patch-aa' \
+ "$cvsid"
+ create_file_lines 'files/README' \
+ "$cvsid"
+
+ run_bmake 'Makefile' "$wrkdir/.pkgdb/+BUILD_VERSION" \
+ 1> "$tmpdir/output" 2>&1 \
+ && exitcode=0 || exitcode=$?
+
+ assert_that "$exitcode" --equals '0'
+ assert_that "$tmpdir/output" --file-is-empty
+ assert_that "$wrkdir/.pkgdb/+BUILD_VERSION" --file-is-lines \
+ "category/package/Makefile: $cvsid" \
+ "category/package/files/README: $cvsid" \
+ "category/package/patches/patch-aa: $cvsid"
+
+ test_case_end
+fi
+
+
+if test_case_begin 'relative paths'; then
+
+ # As of May 2020, the +BUILD_VERSION contains corrupt data.
+
+ wrkdir="$PWD"
+ pkgdir="$mocked_pkgsrcdir/category/package"
+ mkdir -p "$pkgdir"
+ cd "$pkgdir"
+
+ cvsid='$''NetBSD: marker ''$'
+ create_file 'Makefile' <<-EOF
+ # $cvsid
+
+ PKGDIR= .
+ FILESDIR= files
+ PATCHDIR= patches
+ DISTINFO_FILE= distinfo
+
+ .include "$wrkdir/setup.mk"
+ .include "$pkgsrcdir/mk/pkgformat/pkg/metadata.mk"
+ EOF
+ create_file_lines 'patches/patch-aa' \
+ "$cvsid"
+ create_file_lines 'files/README' \
+ "$cvsid"
+
+ run_bmake 'Makefile' "$wrkdir/.pkgdb/+BUILD_VERSION" \
+ 1> "$tmpdir/output" 2>&1 \
+ && exitcode=0 || exitcode=$?
+
+ assert_that "$exitcode" --equals '0'
+ assert_that "$tmpdir/output" --file-is-empty
+ # FIXME: All files listed here are supposed to be relative to
+ # the pkgsrc root directory.
+ assert_that "$wrkdir/.pkgdb/+BUILD_VERSION" --file-is-lines \
+ "./Makefile: $cvsid" \
+ "category/package/Makefile: $cvsid" \
+ "files/README: $cvsid" \
+ "patches/patch-aa: $cvsid"
+
+ test_case_end
+fi
Home |
Main Index |
Thread Index |
Old Index