[108790] branches/gsoc13-tests/src/port1.0/tests/portactivate.test
cal at macports.org
cal at macports.org
Thu Aug 1 16:12:19 PDT 2013
Revision: 108790
https://trac.macports.org/changeset/108790
Author: cal at macports.org
Date: 2013-08-01 16:12:19 -0700 (Thu, 01 Aug 2013)
Log Message:
-----------
portactivate.test:
- provide a (commented) way to enable debug and verbose output
- in activate_start test:
- set prefix to a value that always exists and isn't writable for non-root
even when MacPorts isn't installed in /opt/local
- add $euid and $egid which are required for privilege escalation
- fail when privilege escalation fails
Modified Paths:
--------------
branches/gsoc13-tests/src/port1.0/tests/portactivate.test
Modified: branches/gsoc13-tests/src/port1.0/tests/portactivate.test
===================================================================
--- branches/gsoc13-tests/src/port1.0/tests/portactivate.test 2013-08-01 22:38:49 UTC (rev 108789)
+++ branches/gsoc13-tests/src/port1.0/tests/portactivate.test 2013-08-01 23:12:19 UTC (rev 108790)
@@ -6,8 +6,12 @@
package require macports 1.0
package provide portinstall 1.0
-mportinit
+array set ui_options {}
+#set ui_options(ports_debug) yes
+#set ui_options(ports_verbose) yes
+mportinit ui_options
+
source ../portactivate.tcl
source ../portdeactivate.tcl
source ../portinstall.tcl
@@ -101,14 +105,26 @@
} -body {
if {[getuid] != 0} {return "FAIL: not root, skipping test"}
- set prefix /opt/local
+ # file writable $prefix is used to determine whether privilege escalation
+ # is needed, so set prefix to a directory unwritable for this user
+ set prefix /usr/bin
+
+ # elevateToRoot uses $euid and $egid as the IDs to set
+ set euid 0
+ set egid 0
+
+ # drop privileges; the code won't attempt to elevate privileges without
+ # that
seteuid 333
- if {[catch {portactivate::activate_start args}] != 1} {
- return "FAIL: couldn't elevate privileges"
+ if {[catch {portactivate::activate_start args}] != 0} {
+ return "FAIL: couldn't elevate privileges"
}
+
+ # when uid == 0 and euid == 0, the code will not attempt to elevate
+ # privileges
seteuid 0
if {[catch {portactivate::activate_start args}] != 0} {
- return "FAIL: couldn't elevate privileges"
+ return "FAIL: couldn't elevate privileges"
}
return "Activate_start successful."
} -result "Activate_start successful."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130801/bc30cfe3/attachment-0001.html>
More information about the macports-changes
mailing list