URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [or1ksim/] [testsuite/] [lib/] [or1ksim.exp] - Rev 90
Go to most recent revision | Compare with Previous | Blame | View Log
# Or1ksim expect test functiosn for use with DejaGNU under automake# Copyright (C) 2010 Embecosm Limited# Contributor Jeremy Bennett <jeremy.bennett@embecosm.com># This file is part of OpenRISC 1000 Architectural Simulator.# This program is free software; you can redistribute it and/or modify it# under the terms of the GNU General Public License as published by the Free# Software Foundation; either version 3 of the License, or (at your option)# any later version.# This program is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for# more details.# You should have received a copy of the GNU General Public License along# with this program. If not, see <http:#www.gnu.org/licenses/>. */# -----------------------------------------------------------------------------# This code is commented throughout for use with Doxygen.# -----------------------------------------------------------------------------# -----------------------------------------------------------------------------#! Run a program on Or1ksim with the supplied config_file##! @param[in] testname The name of the test#! @param[in] match_list A list of expected responses#! @param[in] config_file The or1ksim config file to use# !@param[in] progname The program image to use on Or1ksim# -----------------------------------------------------------------------------proc run_or1ksim { testname match_list config_file progname } {global error_spawn_idglobal spawn_idglobal verboseglobal env# Construct the filenameif {0 == [string length $config_file]} {set config_full_file "$env(srcdir)/or1ksim.tests/default.cfg";} else {set config_full_file "$env(srcdir)/or1ksim.tests/$config_file";}set prog_full_name "./test-code-or1k/$progname"set command_line "../sim -f $config_full_file $prog_full_name"if { $verbose > 1 } {send_user "starting $command_line\n"}# Run the program.eval "spawn $command_line"# Try each matchstr in turn, counting the lines for error reportingset match_line 0;foreach matchstr $match_list {set match_line [expr {$match_line + 1}];# send_user "matching |$matchstr|\n";expect {-re "Warning" {fail "$testname: warning: $expect_out(buffer)";return}-re "ERROR" {fail "$testname: error: $expect_out(buffer)";return}$matchstr {# String to match. Silently accept}eof {fail "$testname: hit EOF seeking match line $match_line";return}timeout {perror "Timeout";fail "$testname: timeout";return}}}# If we get here we've passedpass $testname;}# Timeout 3 seconds is plenty as defaultset timeout 3
Go to most recent revision | Compare with Previous | Blame | View Log
