#! /bin/sh # -*- Mode: Shell-script -*- # debug.test --- definition reference testing # # Author: Bruce Korb # ## This file is part of AutoGen. ## AutoGen Copyright (C) 1992-2016 by Bruce Korb - all rights reserved ## ## AutoGen 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. ## ## AutoGen 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 . . ./defs # # # # # # # # # # TEMPLATE FILE # # # # # # # # # cat > ${testname}.tpl <<_EOF_ <= AutoGen5 template test => The last of each list:<= FOR list =><= DEBUG slot 64 => LAST -> <= val[$] => list -> <= FOR val ", " =><= DEBUG bucket 128 => val[<=(for-index)=>]=<=val=><= ENDFOR =><= ENDFOR => _EOF_ # # # # # # # # # # DEFINITIONS FILE # # # # # # # # # # Create the files we need in the test environment cat > ${testname}.def <<_EOF_ AutoGen definitions "${testname}." "tpl"; list = { val = L0.first, L0.last; }; List[3] = { val = L3.third.all; }; _EOF_ # # # # # # # # # # ANTICIPATED RESULTS # # # # # # # # # sed '/^$/d' > ${testname}.base1 <<\_EOF_ ===AutoGen starts - NNNN: Guile Library Version X.X.X eval from file agInit.c line XXX: (debug-enable 'backtrace) Definition Load: list[0] (block) from debug.def/2 val[0] (text) from debug.def/2 val[1] (text) from debug.def/2 list[3] (block) from debug.def/3 val[0] (text) from debug.def/3 marker '<=' loaded marker '=>' loaded Starting test template open_output_file 'debug.test' mode wb+ Text (15) in debug.tpl at line 2 The last of each list: FOR ( F) in debug.tpl at line 3 FOR list loop in debug.tpl on line 3 begins: - FOR-each list[0] it#0: Nxt 3, first=yes, last=no DEBUG ( 5) in debug.tpl at line 3 slot 64 -- DEBUG slot 64 -- FOR index 0 Text (15) in debug.tpl at line 3 Unknown (16) in debug.tpl at line 4 remapped to 'Expr' (16) in debug.tpl at line 4 based on val[$] Text (15) in debug.tpl at line 4 FOR ( F) in debug.tpl at line 7 , FOR val loop in debug.tpl on line 7 begins: - FOR-each val[0] it#0: Nxt 1, first=yes, last=no DEBUG ( 5) in debug.tpl at line 7 bucket 128 -- DEBUG bucket 128 -- FOR index 0 Text (15) in debug.tpl at line 7 val[ EXPR ( E) in debug.tpl at line 7 (for-index) eval from file debug.tpl line 7: (for-index) Text (15) in debug.tpl at line 7 ]= Unknown (16) in debug.tpl at line 7 remapped to 'Expr' (16) in debug.tpl at line 7 based on val - FOR-each val[1] it#1: Nxt 2, first=no, last=yes DEBUG ( 5) in debug.tpl at line 7 bucket 128 -- DEBUG bucket 128 -- FOR index 1 Text (15) in debug.tpl at line 7 val[ EXPR ( E) in debug.tpl at line 7 (for-index) eval from file debug.tpl line 7: (for-index) Text (15) in debug.tpl at line 7 ]= EXPR ( E) in debug.tpl at line 7 FOR val repeated 2 times from debug.tpl line 7 - FOR-each list[3] it#1: Nxt 4, first=no, last=yes DEBUG ( 5) in debug.tpl at line 3 slot 64 -- DEBUG slot 64 -- FOR index 3 Text (15) in debug.tpl at line 3 EXPR ( E) in debug.tpl at line 4 Text (15) in debug.tpl at line 4 FOR ( F) in debug.tpl at line 7 , FOR val loop in debug.tpl on line 7 begins: - FOR-each val[0] it#0: Nxt 1, first=yes, last=yes DEBUG ( 5) in debug.tpl at line 7 bucket 128 -- DEBUG bucket 128 -- FOR index 0 Text (15) in debug.tpl at line 7 val[ EXPR ( E) in debug.tpl at line 7 (for-index) eval from file debug.tpl line 7: (for-index) Text (15) in debug.tpl at line 7 ]= EXPR ( E) in debug.tpl at line 7 FOR val repeated 1 times from debug.tpl line 7 FOR list repeated 2 times from debug.tpl line 3 Text (15) in debug.tpl at line 9 out_close 'debug.test' _EOF_ traceout=${testname}-aglog-x1-$$.log if ${VERBOSE} then trace_args='' else trace_args=--trace=everything\ --trace-out=${traceout} fi run_ag x1 ${trace_args} ${testname}.def || failure AutoGen failed ${SED} \ -e 's@from file .*agInit.*@from file agInit.c line XXX:@' \ -e '/ from debug\.def/s/ at .*//' \ -e '/Called ag_scm_for_index/d' \ -e '/^$/d' \ -e '/^===AutoGen starts/s/ [0-9][0-9]*:.*/ NNNN:/' \ -e 's/Guile Library Version .*/Guile Library Version X.X.X/' \ ${traceout} > ${testname}.trace1 pair="${testname}.base1 ${testname}.trace1" cmp -s $pair || \ failure "`diff -c $pair`" ${VERBOSE} || { unset `set | ${SED} -n '/^AUTOGEN[A-Z_]*=/{;s/=.*//;p;}'` traceout=${testname}-aglog-x2-$$.log trace_args=--trace-out=${traceout} run_ag x2 ${trace_args} ${testname}.def || failure AutoGen failed test -f ${traceout} -a -s ${traceout} && \ failure "autogen produced trace output`echo;cat ${traceout}`" } cleanup ## ## Local Variables: ## mode: shell-script ## indent-tabs-mode: nil ## sh-indentation: 2 ## sh-basic-offset: 2 ## End: # end of debug.test