tests: Fix trace test to run in source (and skip if root)

This also means we no longer need to reinplace the macports user's
username into the test file, so there's no longer a need to generate it
using configure.
This commit is contained in:
Clemens Lang
2026-04-12 01:03:08 +02:00
committed by Clemens Lang
parent 2076649ac7
commit dc9b17c26a
6 changed files with 16 additions and 68 deletions
-1
View File
@@ -42,7 +42,6 @@ src/**/*.dSYM
tests/test.tcl
tests/test-tclsh
tests/test/library.tcl
tests/test/trace/test.tcl
vendor/vendor-destroot/
vendor/tclsh
Vendored
+1 -2
View File
@@ -10241,7 +10241,7 @@ printf '%s\n' "yes" >&6; }
# Output
ac_config_files="$ac_config_files Doxyfile Makefile Mk/macports.autoconf.mk doc/Makefile doc/base.mtree doc/macosx.mtree doc/macports.conf doc/prefix.mtree doc/pubkeys.conf portmgr/dmg/postflight setupenv.bash src/Makefile src/compat/Makefile src/cregistry/Makefile src/darwintracelib1.0/Makefile src/darwintracelib1.0/tests/Makefile src/machista1.0/Makefile src/macports1.0/Makefile src/macports1.0/macports_autoconf.tcl src/macports1.0/macports_test_autoconf.tcl src/mpcommon1.0/Makefile src/package1.0/Makefile src/package1.0/package_test_autoconf.tcl src/pextlib1.0/Makefile src/port/Makefile src/port/port-tclsh.c src/port1.0/Makefile src/port1.0/port_autoconf.tcl src/port1.0/port_test_autoconf.tcl src/portlist1.0/Makefile src/programs/Makefile src/registry2.0/Makefile src/registry2.0/registry_autoconf.tcl tests/Makefile tests/test.tcl tests/test/library.tcl tests/test/trace/test.tcl vendor/Makefile vendor/critcl/lib/critcl/Config vendor/signify-osx/autoconf.mk"
ac_config_files="$ac_config_files Doxyfile Makefile Mk/macports.autoconf.mk doc/Makefile doc/base.mtree doc/macosx.mtree doc/macports.conf doc/prefix.mtree doc/pubkeys.conf portmgr/dmg/postflight setupenv.bash src/Makefile src/compat/Makefile src/cregistry/Makefile src/darwintracelib1.0/Makefile src/darwintracelib1.0/tests/Makefile src/machista1.0/Makefile src/macports1.0/Makefile src/macports1.0/macports_autoconf.tcl src/macports1.0/macports_test_autoconf.tcl src/mpcommon1.0/Makefile src/package1.0/Makefile src/package1.0/package_test_autoconf.tcl src/pextlib1.0/Makefile src/port/Makefile src/port/port-tclsh.c src/port1.0/Makefile src/port1.0/port_autoconf.tcl src/port1.0/port_test_autoconf.tcl src/portlist1.0/Makefile src/programs/Makefile src/registry2.0/Makefile src/registry2.0/registry_autoconf.tcl tests/Makefile tests/test.tcl tests/test/library.tcl vendor/Makefile vendor/critcl/lib/critcl/Config vendor/signify-osx/autoconf.mk"
ac_config_files="$ac_config_files vendor/tclsh"
@@ -10939,7 +10939,6 @@ do
"tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
"tests/test.tcl") CONFIG_FILES="$CONFIG_FILES tests/test.tcl" ;;
"tests/test/library.tcl") CONFIG_FILES="$CONFIG_FILES tests/test/library.tcl" ;;
"tests/test/trace/test.tcl") CONFIG_FILES="$CONFIG_FILES tests/test/trace/test.tcl" ;;
"vendor/Makefile") CONFIG_FILES="$CONFIG_FILES vendor/Makefile" ;;
"vendor/critcl/lib/critcl/Config") CONFIG_FILES="$CONFIG_FILES vendor/critcl/lib/critcl/Config" ;;
"vendor/signify-osx/autoconf.mk") CONFIG_FILES="$CONFIG_FILES vendor/signify-osx/autoconf.mk" ;;
-1
View File
@@ -613,7 +613,6 @@ AC_CONFIG_FILES([
tests/Makefile
tests/test.tcl
tests/test/library.tcl
tests/test/trace/test.tcl
vendor/Makefile
vendor/critcl/lib/critcl/Config
vendor/signify-osx/autoconf.mk
-1
View File
@@ -19,4 +19,3 @@ distclean:: clean
rm -f test.tcl
rm -f test-tclsh
rm -f test/library.tcl
rm -f test/trace/test.tcl
-35
View File
@@ -1,35 +0,0 @@
include ../../../Mk/macports.autoconf.mk
.PHONY: test
PWD=$(shell dirname `pwd`)
$(bindir)/port:
@echo "Please install MacPorts before running this test"
@exit 1
test:
@PORTSRC=$(PORTSRC) $(bindir)/port clean > /dev/null
@mkdir -p ../tracetesttmp
@-[ "`id -u`" == "0" ] && chown $(RUNUSR) ../tracetesttmp
@([ "`id -u`" == "0" ] && sudo -u $(RUNUSR) touch ../tracetesttmp/delete-trace) || touch ../tracetesttmp/delete-trace
@([ "`id -u`" == "0" ] && sudo -u $(RUNUSR) touch ../tracetesttmp/rename-trace) || touch ../tracetesttmp/rename-trace
@([ "`id -u`" == "0" ] && sudo -u $(RUNUSR) mkdir -p ../tracetesttmp/rmdir-trace) || mkdir -p ../tracetesttmp/rmdir-trace
@rm -f /tmp/hello-trace
@ln -sf /usr/share/man/man1/awk.1 /tmp/link-trace2
@-[ "`id -u`" == "0" ] && chown -h $(RUNUSR) /tmp/link-trace2
@PORTSRC=$(PORTSRC) $(TEST_TCLSH) $(top_srcdir)/port/port.tcl -vt test > output 2>&1 || (cat output; exit 1)
@rm -f /tmp/link-trace2
@rm -f /tmp/hello-trace
@rm -rf ../tracetesttmp
@diff -u master output 2>&1 | tee difference
@if [ -s difference ]; then \
exit 1; \
else \
rm -f difference output; \
fi
clean::
@PORTSRC=$(PORTSRC) $(bindir)/port clean >/dev/null
@rm -f output output.sed difference
@rm -rf ../tracetesttmp
@@ -1,10 +1,9 @@
package require tcltest 2
namespace import tcltest::*
# need pextlib to drop privs
package require Pextlib 1.0
namespace import tcltest::*
source [file dirname $argv0]/../library.tcl
makeFile "" $output_file
@@ -12,14 +11,12 @@ makeDirectory $work_dir
set path [file dirname [file normalize $argv0]]
load_variables $path
set_dir
port_index
proc test_trace {} {
global path output_file
set user "@RUNUSR@"
set_dir
port_index
port_clean $path
file delete -force /tmp/hello-trace
@@ -27,26 +24,12 @@ proc test_trace {} {
file link -symbolic /tmp/link-trace2 /usr/share/man/man1/awk.1
makeDirectory ../tracetesttmp
if {[getuid] == 0} {
file attributes ../tracetesttmp -owner $user
exec -ignorestderr chown -h $user /tmp/link-trace2
}
if {[getuid] == 0} {
seteuid [name_to_uid $user]
}
exec -ignorestderr touch ../tracetesttmp/delete-trace
exec -ignorestderr touch ../tracetesttmp/rename-trace
exec -ignorestderr mkdir ../tracetesttmp/rmdir-trace
if {[getuid] == 0} {
seteuid 0
}
exec -ignorestderr file mkdir ../tracetesttmp/rmdir-trace
port_trace $path
file delete -force /tmp/link-trace2
file delete -force /tmp/hello-trace
set err "error*"
set line [get_line $path/$output_file $err]
set unsupported [get_line $path/$output_file "*tracelib not supported on this platform*"]
@@ -57,14 +40,18 @@ proc test_trace {} {
}
}
set trace_constraints [list tracemode_support]
testConstraint notRoot [expr {[getuid] != 0}]
test trace {
Regression test for trace.
} -constraints $trace_constraints \
-body {
test_trace
} -result "No errors found."
test trace {Regression test for trace.} \
-constraints [list tracemode_support notRoot] \
-body {
test_trace
} \
-cleanup {
file delete -force /tmp/link-trace2
file delete -force /tmp/hello-trace
} \
-result "No errors found."
cleanup