--- /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
+}
+
+