<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/49989d9406b44f05859d67aa76f8b487ddc13d35">https://github.com/macports/macports-base/commit/49989d9406b44f05859d67aa76f8b487ddc13d35</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 49989d9406b44f05859d67aa76f8b487ddc13d35
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Sun Oct 1 21:19:15 2017 +0200
<span style='display:block; white-space:pre;color:#404040;'> test: New test to check for setuid permission bit
</span>---
tests/test.tcl.in | 1 +
tests/test/setuid/DESCRIPTION | 4 ++++
tests/test/setuid/Portfile | 31 +++++++++++++++++++++++++++++++
tests/test/setuid/files/test.sh | 8 ++++++++
tests/test/setuid/test.tcl | 20 ++++++++++++++++++++
5 files changed, 64 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tests/test.tcl.in b/tests/test.tcl.in
</span><span style='display:block; white-space:pre;color:#808080;'>index bcf4173..fd67659 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tests/test.tcl.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tests/test.tcl.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,6 +7,7 @@ set test_suite {
</span> dependencies-d
dependencies-e
envvariables
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ setuid
</span> site-tags
statefile-unknown-version
statefile-version1
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tests/test/setuid/DESCRIPTION b/tests/test/setuid/DESCRIPTION
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..a9370e6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tests/test/setuid/DESCRIPTION
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This test checks for successfully setting setuid bits in the port build phase.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+This was initially broken on macOS 10.13 High Sierra.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://trac.macports.org/ticket/54963
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/tests/test/setuid/Portfile b/tests/test/setuid/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..bbb1fd0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tests/test/setuid/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name setuid
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://www.macports.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Test for the setuid bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description ${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file mkdir ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${filespath}/test.sh ${worksrcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.cmd ${worksrcpath}/test.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ touch ${destroot}${prefix}/lib/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # test is actually running build target
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/tests/test/setuid/files/test.sh b/tests/test/setuid/files/test.sh
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..66cc35d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tests/test/setuid/files/test.sh
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+touch foo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+chmod u+s,a+x foo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+stat -f "perms: %p" foo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+exec test $(stat -f %p foo) == 104755
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/tests/test/setuid/test.tcl b/tests/test/setuid/test.tcl
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..b2981ad
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tests/test/setuid/test.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+package require tcltest 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+namespace import tcltest::*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+source [file dirname $argv0]/../library.tcl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set path [file dirname [file normalize $argv0]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+initial_setup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+test setuid {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Regression test for setuid permission bit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -body {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global output_file path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set str "perms: *"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set line [get_line $path/$output_file $str]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} -result "perms: 104755"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cleanup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cleanupTests
</span></pre><pre style='margin:0'>
</pre>