diff --git a/tests/.gitignore b/tests/.gitignore
index 93e886c..8baea0a 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -10,6 +10,10 @@
 *.lo
 *.la
 *.libs
+*.bak
+*.log
+*.sum
+*.xml
 .arch-inventory
 .arch-ids
 aspathtest
@@ -27,3 +31,4 @@
 testprivs
 testsig
 teststream
+site.exp
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7bc880b..14f7bef 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,3 +1,14 @@
+AUTOMAKE_OPTIONS    = dejagnu
+export DEJAGNU
+
+SUBDIRS =
+
+EXTRA_DIST = \
+	config/unix.exp \
+	global-conf.exp
+
+DEJATOOL =
+
 INCLUDES = @INCLUDES@ -I.. -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/lib
 DEFS = @DEFS@ $(LOCAL_OPTS) -DSYSCONFDIR=\"$(sysconfdir)/\"
 
diff --git a/tests/config/unix.exp b/tests/config/unix.exp
new file mode 100644
index 0000000..25ea97f
--- /dev/null
+++ b/tests/config/unix.exp
@@ -0,0 +1,104 @@
+
+# every test should always be run and always return some status.
+# so, if we lose sync with a multi-test program, aborted will be used
+# to flag the remainder of the tests as untested.
+#set aborted 0
+
+# only match with color codes since "failed" / "OK" might otherwise
+# be part of the output...
+#set color 1
+
+set config_h [open "../config.h" "r"]
+set config_h_text [read $config_h]
+close $config_h
+set i [string first "#define HAVE_IPV6" $config_h_text]
+if { $i >= 0 } {
+	set have_ipv6 1
+} else {
+	set have_ipv6 0
+}
+send_user "IPv6 enabled: $have_ipv6\n"
+set xfail 0
+
+proc onetest { test_name note start } {
+	global aborted
+	global testprefix
+	global verbose
+	global color
+	global xfail
+
+	if { $aborted > 0 } {
+		untested "$testprefix$test_name"
+		return
+	}
+
+	if { $verbose > 0 } {
+		send_user "$testprefix$test_name$note\n"
+	}
+	expect {
+		"$start"	{ }
+
+		eof	{ unresolved "$testprefix$test_name"; set aborted 1; }
+		timeout	{ unresolved "$testprefix$test_name"; set aborted 1; }
+	}
+
+	if { $aborted > 0 } {
+		send_user "sync failed: $testprefix$test_name$note -- $testprefix aborted!\n"
+		return
+	}
+
+	if { $color } {
+		set pat "(32mOK|31mfailed)"
+	} else {
+		set pat "(OK|failed)"
+	}
+	expect {
+		# need this because otherwise expect will skip over a "failed" and
+		# grab the next "OK" (or the other way around)
+		-re "$pat"  {
+			if { "$expect_out(0,string)" == "32mOK" || "$expect_out(0,string)" == "OK" } {
+				pass "$testprefix$test_name"
+			} else {
+				if { $xfail } {
+					xfail "$testprefix$test_name"
+				} else {
+					fail "$testprefix$test_name"
+				}
+			}
+			return
+		}
+
+		eof	{ unresolved "$testprefix$test_name"; set aborted 1; }
+		timeout	{ unresolved "$testprefix$test_name"; set aborted 1; }
+	}
+
+	if { $aborted > 0 } {
+		send_user "failed: $testprefix$test_name$note -- $testprefix aborted!\n"
+		return
+	}
+}
+
+proc headerline { line } {
+	global aborted
+	if { $aborted > 0 } { return; }
+	expect {
+		$line	{ return; }
+		eof	{ send_user "numbering mismatch!\n"; set aborted 1; }
+		timeout	{ send_user "numbering mismatch!\n"; set aborted 1; }
+	}
+}
+
+proc simpletest { start } {
+	onetest "$start" "" "$start"
+}
+
+proc simpletest_nov6 { start } {
+	global have_ipv6
+	global xfail
+
+	set xfail [expr 1-$have_ipv6]
+	onetest "$start" "" "$start"
+	set xfail 0
+}
+
+
diff --git a/tests/global-conf.exp b/tests/global-conf.exp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/global-conf.exp
