#!/bin/bash # -*- shell-script -*- proc test_columnized { proc do_one { typeset cols="$1" shift typeset last_line="$1" shift typeset -a columnized typeset -a list eval "list=($1)" if (($# == 3)) { columnize $2 $3 } else { columnize $2 } typeset size=$(#columnized[@]) # typeset -i i # for ((i=0; i<${#columnized[@]}; i++)) ; do # print " ${columnized[i]}" # done assertEquals $cols $size assertEquals $last_line $(columnized[$size-1]) } do_one 1 '' '' do_one 1 'a,2,c' 'a 2 c' 10 ',' do_one 4 'for 8 ' \ ' 1 two three for 5 six 7 8' 12 do_one 3 '3 six' \ ' 1 two 3 for 5 six 7 8' 12 } if test '/src/external-vcs/sourceforge/bashdb' = '' { echo "Something is wrong abs_top_srcdir is not set." exit 1 } global abs_top_srcdir := '/src/external-vcs/sourceforge/bashdb' # Make sure $abs_top_srcrdir has a trailing slash global abs_top_srcdir := "$(abs_top_srcdir%%/)/" source ${abs_top_srcdir}test/unit/helper.sh source $abs_top_srcdir/lib/columnize.sh set -- # reset $# so shunit2 doesn't get confused. [[ $0 == ${BASH_SOURCE} ]] && source ${shunit_file} (CommandList children: [ (FuncDef name: test_columnized body: (BraceGroup children: [ (FuncDef name: do_one body: (BraceGroup children: [ (C {(typeset)} {(Lit_VarLike "cols=") (DQ ($ VSub_Number "$1"))}) (C {(shift)}) (C {(typeset)} {(Lit_VarLike "last_line=") (DQ ($ VSub_Number "$1"))}) (C {(shift)}) (C {(typeset)} {(-a)} {(columnized)}) (C {(typeset)} {(-a)} {(list)}) (C {(eval)} {(DQ ("list=(") ($ VSub_Number "$1") (")"))}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Pound "$#")}) right: (ArithWord w:{(Lit_Digits 3)}) ) ) terminator: ) ] action: [ (C {(columnize)} {(DQ ($ VSub_Number "$2"))} {(DQ ($ VSub_Number "$3"))}) ] spids: [-1 78] ) ] else_action: [(C {(columnize)} {(DQ ($ VSub_Number "$2"))})] spids: [92 102] ) (C {(typeset)} {(Lit_VarLike "size=") (BracedVarSub token: prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [108 114] ) } ) (C {(assertEquals)} {(DQ ($ VSub_Name "$cols"))} {(DQ ($ VSub_Name "$size"))}) (C {(assertEquals)} {(DQ ($ VSub_Name "$last_line"))} { (DQ (BracedVarSub token: bracket_op: (ArrayIndex expr: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name "$size")}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [147 154] ) ) } ) ] spids: [17] ) spids: [13 16] ) (C {(do_one)} {(1)} {(SQ <"">)} {(SQ )}) (C {(do_one)} {(1)} {(SQ <"a,2,c">)} {(SQ <"a 2 c">)} {(10)} {(SQ <",">)}) (C {(do_one)} {(4)} {(SQ <"for 8 ">)} {(SQ <" 1 two three\n"> <" for 5 six\n"> <" 7 8">)} {(12)} ) (C {(do_one)} {(3)} {(SQ <"3 six">)} {(SQ <" 1 two 3\n"> <" for 5 six\n"> <" 7 8">)} {(12)} ) ] spids: [10] ) spids: [6 9] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(SQ )} {(Lit_Other "=")} {(SQ )} {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(echo)} {(DQ ("Something is wrong abs_top_srcdir is not set."))}) (C {(exit)} {(1)}) ] spids: [-1 251] ) ] spids: [-1 265] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:abs_top_srcdir) op: Equal rhs: {(/src/external-vcs/sourceforge/bashdb)} spids: [267] ) ] spids: [267] ) (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: [274 278] ) (/) } spids: [273] ) ] spids: [273] ) (C {(.)} {(${ VSub_Name abs_top_srcdir) (test/unit/helper.sh)}) (C {(.)} {($ VSub_Name "$abs_top_srcdir") (/lib/columnize.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 ) ] )