⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 template

📁 binary ultilities binary ultilities binary ultilities
💻
字号:
## This is sort of a prototype test case, which parses the listing output# from the assembler.  Later, more prototypes should be added for cases# where objdump gets run over the .o file, and anything else like that...## When you write a test case that uses the listing output, just copy this# file (trimming down the overly-verbose comments a little), and# adjust it to do what you need.## Remember that any ".exp" file found in the tree will be processed by# dejagnu.## FIRST SAMPLE TEST CASE#proc do_foo {} {# This string is used below when printing out a success or failure message.# If more than one test is run by a given .exp file, it'd be nice to include# the name of the input file.    set testname "foo.s: multi-register tweaking and frobnication"# I use this as a flag to record whether the test case passed.  If this# flag is still clear when EOF is reached, this test fails.  If there are# two or more patterns, and I need to see all of them, I'll create N variables# and check if the sum is N.    set x 0# Call gas_start with two arguments: The input file name (which it'll search# for in $srcdir/$subdir, that is, the source directory where the .exp file# is), and a (possibly empty) string of options to pass to the assembler.    gas_start "foo.s" "-al"# Now I just iterate over all the output lines, looking for what I want# to see.  Since each pattern explicitly will not span line breaks, there's# also a pattern for lines that don't match anything else.   (Is it safe to# use ".*" for patterns not crossing line breaks? I don't think "$" does the# right thing for that, in any case.  I should check into whether the extra# pattern is even needed.# Apparently CRLF is received when using ptys for subprocesses; hence the# \r\n for matching line number 3.# Note that if you use "{ ... }" for the expect clause, you can't have# comments inside it.# This test case is kinda bogus in that seeing either a word of all zeros# at address zero or a C-style comment on line three that says "Looking for# C comments" (with very specific punctuation and whitespace) will cause# it to pass this test.  Usually     while 1 {	expect {	    -re "^ +\[0-9\]+ 0000 00000000\[^\n\]*\n"		{ set x 1 }	    -re "^ +3\[ \t\]+/. Looking for C comments. ./\r\n"	{ set x 1 }	    -re "\[^\n\]*\n"				{ }	    timeout				{ perror "timeout\n"; break }	    eof					{ break }	}    }# This was intended to do any cleanup necessary.  It kinda looks like it isn't# needed, but just in case, please keep it in for now.    gas_finish# Did we find what we were looking for?  If not, flunk it.    if $x then { pass $testname } else { fail $testname }}# Now actually run the test.  It can be conditionalized if the test is# not appropriate for all targets.  The proc "istarget" checks a generalized# form of the target name, so that (e.g.) "m68332-unknown-aout" would match# here.  So far, I think only the CPU name is actually ever altered.if [istarget m68k-*] then {    do_foo}## SECOND SAMPLE TEST CASE## This is a tiny bit like the C compiler torture tests, in that it'll run# the assembler with the power set of the list of options supplied.## The first argument is the test file name; the second is arguments that# are always to be provided; the third is a space-separated list of options# which are optional (ending in ">" if output should be ignored, like "-a>");# the fourth is the name of the test.  So far, only binary options are handled# this way; N-way options (like CPU type for m68k) aren't handled yet.## The variable $stdoptlist usually has a reasonable set of optional options# for this target.# No, PIC isn't supported yet.  This is only an example.gas_test "quux.s" "-K" $stdoptlist "use of quuxes in PIC mode"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -