+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)
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 $@
proc mkconf {which} {
global tmp
+ global builddir
global netlink
global ports
global extra
}
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 {
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
}
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]
}]} {} 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
}
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