#!/bin/bash # -*- shell-script -*- proc test_parse_list_args { # Set up necessary vars global _Dbg_frame_last_filename := ''testing'' typeset -i _Dbg_frame_last_lineno typeset -i _Dbg_set_listsize global _Dbg_set_listsize := '12' typeset -i _Dbg_frame_last_lineno global _Dbg_frame_last_lineno := '3' # Return vars typeset filename typeset end_line # Some error conditions _Dbg_parse_list_args assertEquals 1 $Status _Dbg_parse_list_args "foo" assertEquals 1 $Status # Try a simple parse _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename assertEquals $_Dbg_frame_last_filename $filename assertEquals 1 $_Dbg_listline assertEquals 12 $end_line # Try with a line number _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename 15 assertEquals $_Dbg_frame_last_filename $filename assertEquals 9 $_Dbg_listline assertEquals $(9+_Dbg_set_listsize-1) $end_line # Try with a line number and count _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename 20 3 assertEquals $_Dbg_frame_last_filename $filename assertEquals 19 $_Dbg_listline assertEquals $(19+3-1) $end_line # Try with start and end line number _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename 10+20 35 assertEquals $_Dbg_frame_last_filename $filename assertEquals 30 $_Dbg_listline assertEquals 35 $end_line # Try with . and end line number _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename '.' assertEquals 1 $_Dbg_listline assertEquals 12 $end_line # Try with line numbers from the end _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename -5 assertEquals 90 $_Dbg_listline _Dbg_parse_list_args 0 100 $_Dbg_frame_last_filename 5 -5 assertEquals 96 $end_line # Try with centered line numbers _Dbg_parse_list_args 1 100 $_Dbg_frame_last_filename 10 assertEquals $(10-6) $_Dbg_listline } global abs_top_srcdir := '/src/external-vcs/sourceforge/bashdb' # Make sure $abs_top_srcdir has a trailing slash global abs_top_srcdir := "$(abs_top_srcdir%%/)/" source ${abs_top_srcdir}test/unit/helper.sh source $abs_top_srcdir/lib/list.sh set -- # reset $# so shunit2 doesn't get confused. [[ $0 == ${BASH_SOURCE} ]] && source ${shunit_file} (CommandList children: [ (FuncDef name: test_parse_list_args body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_frame_last_filename) op: Equal rhs: {(SQ )} spids: [18] ) ] spids: [18] ) (C {(typeset)} {(-i)} {(_Dbg_frame_last_lineno)}) (C {(typeset)} {(-i)} {(_Dbg_set_listsize)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_set_listsize) op: Equal rhs: {(12)} spids: [38] ) ] spids: [38] ) (C {(typeset)} {(-i)} {(_Dbg_frame_last_lineno)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_frame_last_lineno) op: Equal rhs: {(3)} spids: [49] ) ] spids: [49] ) (C {(typeset)} {(filename)}) (C {(typeset)} {(end_line)}) (C {(_Dbg_parse_list_args)}) (C {(assertEquals)} {(1)} {($ VSub_QMark "$?")}) (C {(_Dbg_parse_list_args)} {(DQ (foo))}) (C {(assertEquals)} {(1)} {($ VSub_QMark "$?")}) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))}) (C {(assertEquals)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(DQ ($ VSub_Name "$filename"))} ) (C {(assertEquals)} {(1)} {(DQ ($ VSub_Name "$_Dbg_listline"))}) (C {(assertEquals)} {(12)} {(DQ ($ VSub_Name "$end_line"))}) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(15)} ) (C {(assertEquals)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(DQ ($ VSub_Name "$filename"))} ) (C {(assertEquals)} {(9)} {(DQ ($ VSub_Name "$_Dbg_listline"))}) (C {(assertEquals)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{(Lit_Digits 9)}) right: (ArithVarRef name:_Dbg_set_listsize) ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [186 193] ) } {(DQ ($ VSub_Name "$end_line"))} ) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(20)} {(3)} ) (C {(assertEquals)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(DQ ($ VSub_Name "$filename"))} ) (C {(assertEquals)} {(19)} {(DQ ($ VSub_Name "$_Dbg_listline"))}) (C {(assertEquals)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{(Lit_Digits 19)}) right: (ArithWord w:{(Lit_Digits 3)}) ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [242 249] ) } {(DQ ($ VSub_Name "$end_line"))} ) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(10) (Lit_Other "+") (20)} {(35)} ) (C {(assertEquals)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(DQ ($ VSub_Name "$filename"))} ) (C {(assertEquals)} {(30)} {(DQ ($ VSub_Name "$_Dbg_listline"))}) (C {(assertEquals)} {(35)} {(DQ ($ VSub_Name "$end_line"))}) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(SQ <.>)} ) (C {(assertEquals)} {(1)} {(DQ ($ VSub_Name "$_Dbg_listline"))}) (C {(assertEquals)} {(12)} {(DQ ($ VSub_Name "$end_line"))}) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(-5)} ) (C {(assertEquals)} {(90)} {(DQ ($ VSub_Name "$_Dbg_listline"))}) (C {(_Dbg_parse_list_args)} {(0)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(5)} {(-5)} ) (C {(assertEquals)} {(96)} {(DQ ($ VSub_Name "$end_line"))}) (C {(_Dbg_parse_list_args)} {(1)} {(100)} {(DQ ($ VSub_Name "$_Dbg_frame_last_filename"))} {(10)} ) (C {(assertEquals)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{(Lit_Digits 10)}) right: (ArithWord w:{(Lit_Digits 6)}) ) spids: [421 426] ) } {(DQ ($ VSub_Name "$_Dbg_listline"))} ) ] spids: [11] ) spids: [7 10] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:abs_top_srcdir) op: Equal rhs: {(/src/external-vcs/sourceforge/bashdb)} spids: [435] ) ] spids: [435] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:abs_top_srcdir) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(Lit_Slash /)}) spids: [442 446] ) (/) } spids: [441] ) ] spids: [441] ) (C {(.)} {(${ VSub_Name abs_top_srcdir) (test/unit/helper.sh)}) (C {(.)} {($ VSub_Name "$abs_top_srcdir") (/lib/list.sh)}) (C {(set)} {(--)}) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$0")} right: {(${ VSub_Name BASH_SOURCE)} ) ) (C {(.)} {(${ VSub_Name shunit_file)}) ] op_id: Op_DAmp ) ] )