diff -r 000000000000 -r 2b3e5ec03512 test-utils/run-tcl-tests.tcl --- /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 +if {[llength $argv] < 1} { + puts "test-utils/run-tcl-tests.tcl options..." + puts "" + puts "Required:" + puts " 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 +} + +