From: Ian Jackson Date: Sat, 19 Oct 2019 22:03:40 +0000 (+0100) Subject: build system: stest: Fix out-of-tree builds X-Git-Tag: v0.5.0~75 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=0f8347d34ed1cc76a44a376b5fd92c9517da9287 build system: stest: Fix out-of-tree builds Signed-off-by: Ian Jackson --- diff --git a/stest/Makefile.in b/stest/Makefile.in index f985059..4064636 100644 --- a/stest/Makefile.in +++ b/stest/Makefile.in @@ -1,9 +1,15 @@ +VPATH:=@srcdir@ +srcdir:=@srcdir@ +topdir:=@top_srcdir@ +topbuilddir:=$(shell cd .. && pwd) + CC:=@CC@ +# commmon.make TARGETS=udp-preload.so check -TESTSCRIPTS ?= $(shell echo t-*[0-9a-z]) +TESTSCRIPTS ?= $(shell echo $(srcdir)/t-*[0-9a-z]) TESTNAMES := $(patsubst t-%,%,$(notdir $(TESTSCRIPTS))) all: $(TARGETS) @@ -33,9 +39,11 @@ check: check-real: $(foreach t,$(TESTNAMES),d-$t/ok) -d-%/ok: t-% udp-preload.so common.tcl ../secnet ../test-example/sites.conf +d-%/ok: $(srcdir)/t-% udp-preload.so $(srcdir)/common.tcl \ + ../secnet ../test-example/sites.conf @rm -rf d-$*; mkdir d-$* - @cd .. && stest/$< >stest/d-$*/log 2>&1 + export STEST_BUILDDIR=$(topbuilddir); \ + cd $(topdir) && stest/t-$* >$(topbuilddir)/stest/d-$*/log 2>&1 @printf "$* " @touch $@ diff --git a/stest/common.tcl b/stest/common.tcl index ca50331..12203aa 100644 --- a/stest/common.tcl +++ b/stest/common.tcl @@ -25,6 +25,7 @@ set extra(outside) {} proc mkconf {which} { global tmp + global builddir global netlink global ports global extra @@ -73,7 +74,7 @@ exec cat } append cfg "; local-name \"test-example/$which/$which\"; - local-key rsa-private(\"test-example/$which.key\"); + local-key rsa-private(\"$builddir/test-example/$which.key\"); " append cfg $extra($which) append cfg { @@ -90,7 +91,7 @@ exec cat transform eax-serpent { }, serpent256-cbc { }; } - set f [open test-example/sites.conf r] + set f [open $builddir/test-example/sites.conf r] set sites [read $f] close $f append cfg $sites @@ -101,14 +102,15 @@ exec cat } proc spawn-secnet {which} { - global netlinkfh global tmp + global builddir + global netlinkfh upvar #0 pids($which) pid set cf $tmp/$which.conf set ch [open $cf w] puts $ch [mkconf $which] close $ch - set argl [list strace -o$tmp/$which.strace ./secnet -dvnc $cf] + set argl [list $builddir/secnet -dvnc $cf] set pid [fork] if {!$pid} { execl [lindex $argl 0] [lrange $argl 1 end] @@ -168,6 +170,11 @@ if {![catch { }]} {} elseif {[regsub {^stest/t-} $argv0 {stest/d-} tmp]} { file mkdir $tmp } +if {![catch { + set builddir $env(STEST_BUILDDIR) +}]} {} else { + set builddir . +} set socktmp $tmp/s exec mkdir -p -m700 $socktmp @@ -182,7 +189,7 @@ proc prefix_preload {lib} { } set env(UDP_PRELOAD_DIR) $socktmp -prefix_preload stest/udp-preload.so +prefix_preload $builddir/stest/udp-preload.so proc udp-proxy {} { global socktmp udpsock