test-utils/run-tcl-tests.tcl
changeset 0 2b3e5ec03512
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-utils/run-tcl-tests.tcl	Thu Apr 21 14:57:45 2011 +0100
@@ -0,0 +1,164 @@
+#!/usr/bin/tclsh
+
+#
+#    Copyright 2005-2006 Intel Corporation
+# 
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+# 
+#        http://www.apache.org/licenses/LICENSE-2.0
+# 
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+
+
+
+# usage: test-utils/run-tcl-tests.tcl <test group> <run-dtn.tcl options?>
+if {[llength $argv] < 1} {
+    puts "test-utils/run-tcl-tests.tcl <test group> options..."
+    puts ""
+    puts "Required:"
+    puts "    <test group> Test group to run"
+    puts ""
+    exit
+}
+
+# the basic test group
+set tests(basic) {
+    "alwayson-links.tcl"	""
+    "api-poll.tcl"		""
+    "bundle-status-reports.tcl"	""
+    "custody-transfer.tcl"      ""
+    "discovery.tcl"             ""
+    "dtlsr.tcl"			""
+    "dtlsr-areas.tcl"		""
+    "dtnsendrecv.tcl"           ""
+    "dtn-cp.tcl"		""
+    "dtn-ping.tcl"		""
+    "dtn-tunnel.tcl"		""
+    "dtnsendrecv.tcl"           ""
+    "dtnsim.tcl"		"-c two-node.conf"
+    "dtnsim.tcl"		"-c bandwidth-test.conf"
+    "dtnsim.tcl"		"-c storage-limit-test.conf"
+    "dtnsim.tcl"		"-c conn-test.conf"
+    "dtnsim.tcl"		"-c dtlsr.conf"
+    "extension-block.tcl"       ""
+    "flood-router.tcl"		""
+    "inflight-expiration.tcl"	""
+    "inflight-interrupt.tcl"	""
+    "is-singleton.tcl"		""
+    "ipc-version-test.tcl"	""
+    "loopback-link.tcl"		""
+    "multipath-forwarding.tcl"	""
+    "multiple-registrations.tcl" ""
+    "ondemand-links.tcl"	""
+    "prophet.tcl"               ""
+    "no-duplicate-send.tcl"	""
+    "reactive-fragmentation.tcl" ""
+    "reroute-from-down-link.tcl" ""
+    "sequence-id.tcl"		""
+    "send-one-bundle.tcl"	"-cl tcp"
+    "send-one-bundle.tcl"	"-cl tcp -length 0"
+    "send-one-bundle.tcl"	"-cl tcp -length 5 -segment_length 1"
+    "send-one-bundle.tcl"	"-cl tcp -test_read_limit 1"
+    "send-one-bundle.tcl"	"-cl udp -length 0"
+    "send-one-bundle.tcl"	"-cl udp"
+    "storage.tcl"		""
+    "storage.tcl"		"-storage_type filesysdb"
+    "tcp-bogus-link.tcl"	""
+    "unknown-scheme.tcl"	""
+    "version-mismatch.tcl"	""
+}
+
+
+# BlueZ utils test group
+set tests(bluez) {
+    "bluez-rfcomm.tcl"   ""
+    "bluez-sdp.tcl"    ""
+    "bluez-inq.tcl"    ""
+    "bluez-links.tcl"    ""
+}
+
+# the stress test group
+set tests(stress) {
+    "bidirectional.tcl"         ""
+    "many-bundles.tcl"		""
+    "many-bundles.tcl"		"-storage_type berkeleydb-no-txn"
+    "many-bundles.tcl"		"-storage_type filesysdb"
+    "dtn-perf.tcl"		""
+    "dtn-perf.tcl"		"-payload_len 50B"
+    "dtn-perf.tcl"		"-payload_len 5MB  -file_payload"
+    "dtn-perf.tcl"		"-payload_len 50MB -file_payload"
+    "dtn-perf.tcl"		"-storage_type filesysdb"
+    "dtn-perf.tcl"		"-payload_len 50B -storage_type filesysdb"
+    "dtn-perf.tcl"		"-payload_len 5MB  -file_payload -storage_type filesysdb"
+    "dtn-perf.tcl"		"-payload_len 50MB -file_payload -storage_type filesysdb"
+}
+
+# LTP CL utils test group
+set tests(ltp) {
+    "dtn-ping.tcl"		"-cl ltp"
+    "dtn-ping.tcl"              "-n 1 -cl ltp -s ltp.sched"
+    "send-one-bundle.tcl"       "-cl ltp -length 0"
+    "send-one-bundle.tcl"       "-cl ltp -length 10"
+    "send-one-bundle.tcl"       "-cl ltp -length 100"
+    "send-one-bundle.tcl"       "-cl ltp -length 1000"
+    "dtn-perf.tcl"              "-cl ltp -payload_len 1024B -perftime 30 -storage_type filesysdb"
+    "dtn-perf.tcl"              "-cl ltp -payload_len 10240B -perftime 30 -storage_type filesysdb"
+    "dtn-perf.tcl"              "-cl ltp -payload_len 1MB -perftime 30 -storage_type filesysdb"
+    "custody-transfer.tcl"      "-cl ltp"
+}
+
+
+set tests(other) {
+    "api-leak-test.tcl"		""
+}
+
+
+# check test group
+set group [lindex $argv 0]
+set common_options [lrange $argv 1 end]
+
+if {![info exists tests($group)]} {
+    puts "Error: test group \"$group\" not defined"
+    exit -1
+}
+
+# print a "Table of Contents" first before running the tests
+puts "***"
+puts "*** The following tests will be run:"
+puts "***"
+foreach {test testopts} $tests($group) {
+    puts "***   $test $testopts"
+}
+puts "***\n"
+
+# run the tests
+foreach {test testopts} $tests($group) {
+    puts "***"
+    puts "*** Running Test: $test $testopts"
+    puts "***"
+
+    if {$testopts != ""} {
+	set options "$common_options --opts \"$testopts\""
+    } else {
+	set options $common_options
+    }
+    
+    if [catch {
+	eval exec [file dirname $argv0]/run-dtn.tcl test/$test -d $options \
+		< /dev/null >&@ stdout
+    } err ] {
+	puts "unexpected error: $err"
+    }
+
+    # give the last test an extra couple seconds to quit
+   after 500
+}
+
+