summaryrefslogtreecommitdiff
path: root/regress
diff options
context:
space:
mode:
authorrillig <rillig@pkgsrc.org>2019-09-19 23:53:36 +0000
committerrillig <rillig@pkgsrc.org>2019-09-19 23:53:36 +0000
commit1a5062301a6734c6d795adbd24709a1474c3dc3a (patch)
tree1f5949284de28c50a0193b3a1526c4f0011367f6 /regress
parent2053c1191ae80d027593d5c6705d07643d76d503 (diff)
downloadpkgsrc-1a5062301a6734c6d795adbd24709a1474c3dc3a.tar.gz
regress/check-perms: add test for broken CHECK_PERMS_AUTOFIX
The variable CHECK_PERMS_AUTOFIX has been existing since 2006 but is not used in any package. This may be because it is not helpful in any way. When a package sets this variables to yes, the permission errors are not silently fixed, but the build still fails instead. This behavior is not useful in any way and thus needs to be fixed. See https://mail-index.netbsd.org/tech-pkg/2019/08/thread1.html#021828
Diffstat (limited to 'regress')
-rw-r--r--regress/Makefile3
-rw-r--r--regress/check-perms/DESCR1
-rw-r--r--regress/check-perms/Makefile25
-rw-r--r--regress/check-perms/PLIST2
-rwxr-xr-xregress/check-perms/spec58
5 files changed, 88 insertions, 1 deletions
diff --git a/regress/Makefile b/regress/Makefile
index de57f179924..3648d116058 100644
--- a/regress/Makefile
+++ b/regress/Makefile
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.24 2019/07/17 18:34:16 rillig Exp $
+# $NetBSD: Makefile,v 1.25 2019/09/19 23:53:36 rillig Exp $
#
# See https://www.netbsd.org/docs/pkgsrc/regression.html for more
# information about these tests.
@@ -11,6 +11,7 @@ SUBDIR+= bootstrap-install-sh
SUBDIR+= buildlink-libtool
SUBDIR+= buildlink-transform
SUBDIR+= buildlink-unwrap
+SUBDIR+= check-perms
SUBDIR+= check-portability
SUBDIR+= compiler
SUBDIR+= env-vars
diff --git a/regress/check-perms/DESCR b/regress/check-perms/DESCR
new file mode 100644
index 00000000000..fd32bcfadc7
--- /dev/null
+++ b/regress/check-perms/DESCR
@@ -0,0 +1 @@
+Regression test for mk/check/check-perms.mk.
diff --git a/regress/check-perms/Makefile b/regress/check-perms/Makefile
new file mode 100644
index 00000000000..41cac42f157
--- /dev/null
+++ b/regress/check-perms/Makefile
@@ -0,0 +1,25 @@
+# $NetBSD: Makefile,v 1.1 2019/09/19 23:53:36 rillig Exp $
+
+DISTNAME= check-perms-1.0
+CATEGORIES= regress
+MASTER_SITES= # none
+DISTFILES= # none
+
+MAINTAINER= pkgsrc-users@NetBSD.org
+COMMENT= Ensures that wrong file permissions are fixed
+LICENSE= 2-clause-bsd
+
+NO_CHECKSUM= yes
+WRKSRC= ${WRKDIR}
+BUILD_DIRS= # none
+AUTO_MKDIRS= yes
+
+USE_TOOLS+= pax
+
+do-extract:
+ cd ${WRKSRC} && > demo-file && chmod 777 demo-file
+
+do-install:
+ cd ${WRKSRC} && pax -wr -pp demo-file ${DESTDIR}${PREFIX}/share/regress-check-perms/
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/regress/check-perms/PLIST b/regress/check-perms/PLIST
new file mode 100644
index 00000000000..1696f77e6f2
--- /dev/null
+++ b/regress/check-perms/PLIST
@@ -0,0 +1,2 @@
+@comment $NetBSD: PLIST,v 1.1 2019/09/19 23:53:36 rillig Exp $
+share/regress-check-perms/demo-file
diff --git a/regress/check-perms/spec b/regress/check-perms/spec
new file mode 100755
index 00000000000..ae7deb88d4b
--- /dev/null
+++ b/regress/check-perms/spec
@@ -0,0 +1,58 @@
+#! /bin/sh
+# $NetBSD: spec,v 1.1 2019/09/19 23:53:36 rillig Exp $
+set -eu
+
+do_cleanup() {
+ $TEST_MAKE deinstall clean
+}
+
+do_make() {
+ echo "Running test case $*"
+
+ #$TEST_MAKE "$@" show-all-check-perms
+
+ $TEST_MAKE "$@" deinstall clean install 1>"$TEST_OUTFILE" 2>&1 \
+ && TEST_EXITSTATUS=0 || TEST_EXITSTATUS=$?
+}
+
+test_no_developer_no_autofix() {
+ do_make PKG_DEVELOPER=no CHECK_PERMS_AUTOFIX=no
+
+ exit_status 0
+}
+
+test_no_developer_autofix() {
+ do_make PKG_DEVELOPER=no CHECK_PERMS_AUTOFIX=yes
+
+ # FIXME: The permissions must be fixed even though PKG_DEVELOPER=no.
+ exit_status 0
+ output_prohibit "^error: .*: world-writable file"
+}
+
+test_developer_no_autofix() {
+ do_make PKG_DEVELOPER=yes CHECK_PERMS_AUTOFIX=no
+
+ exit_status 1
+ output_require "^warning: .*/demo-file: too small to be a valid executable file"
+ output_require "^warning: .*/demo-file: group-writable file"
+ output_require "^error: .*/demo-file: world-writable file"
+}
+
+test_developer_autofix() {
+ do_make PKG_DEVELOPER=yes CHECK_PERMS_AUTOFIX=yes
+
+ # FIXME: Since all permission problems have been fixed, the exit status must be 0.
+ # This needs to be fixed in checkperms upstream.
+ exit_status 1
+ output_require "^warning: .*/demo-file: too small to be a valid executable file"
+ output_require "^warning: .*/demo-file: group-writable file"
+ output_require "^error: .*/demo-file: world-writable file"
+ output_require "^note: .*/demo-file: fixed permissions from 0777 to 0644"
+}
+
+do_test() {
+ test_no_developer_no_autofix
+ test_no_developer_autofix
+ test_developer_no_autofix
+ test_developer_autofix
+}