1# Copyright: 2018 Masatake YAMATO 2# License: GPL-2 3 4CTAGS="$1 --quiet --options=NONE --langdef=IMAGINARY --kinddef-IMAGINARY=v,variable,variables" 5 6export MSYS2_ARG_CONV_EXCL=--_roledef-IMAGINARY 7 8title() 9{ 10 echo 11 echo "$@" 12 13 { 14 echo 15 echo "$@" 16 } 1>&2 17} 18 19{ 20title '# echo unknown lang' 21${CTAGS} --_roledef-NOSUCHLANG 22${CTAGS} --_roledef-NOSUCHLANG.k=role,roles 23${CTAGS} --_roledef-NOSUCHLANG.'{kind}'=role,roles 24 25title '# no kind spec' 26${CTAGS} --_roledef-IMAGINARY 27${CTAGS} --_roledef-IMAGINARY= 28${CTAGS} --_roledef-IMAGINARY=role 29${CTAGS} --_roledef-IMAGINARY=role,roles 30 31title '# echo unknown kind letter' 32${CTAGS} --_roledef-IMAGINARY.x= --_force-quit 33${CTAGS} --_roledef-IMAGINARY.x=role --_force-quit 34${CTAGS} --_roledef-IMAGINARY.x=role, --_force-quit 35${CTAGS} --_roledef-IMAGINARY.x=role,roles --_force-quit 36 37title '# echo unknown kind name' 38${CTAGS} --_roledef-IMAGINARY.'{abc}'= --_force-quit 39${CTAGS} --_roledef-IMAGINARY.'{abc}'=role --_force-quit 40${CTAGS} --_roledef-IMAGINARY.'{abc}'=role, --_force-quit 41${CTAGS} --_roledef-IMAGINARY.'{abc}'=role,roles --_force-quit 42 43title '# wrong char in a kind letter' 44${CTAGS} --_roledef-IMAGINARY.'/'= 45${CTAGS} --_roledef-IMAGINARY.'%'= 46${CTAGS} --_roledef-IMAGINARY.'^'=role 47${CTAGS} --_roledef-IMAGINARY.'#'=role,roles 48${CTAGS} --_roledef-IMAGINARY.'F'=role,roles 49${CTAGS} --_roledef-IMAGINARY.'{'=role,roles 50${CTAGS} --_roledef-IMAGINARY.'{v'=role,roles 51 52title '# wrong kind name' 53${CTAGS} --_roledef-IMAGINARY.'{file}'=role,roles 54${CTAGS} --_roledef-IMAGINARY.'{}'=role,roles 55${CTAGS} --_roledef-IMAGINARY.'{#}'=role,roles 56 57title '# empty role name' 58${CTAGS} --_roledef-IMAGINARY.v= 59${CTAGS} --_roledef-IMAGINARY.v=, 60${CTAGS} --_roledef-IMAGINARY.v=,desc 61${CTAGS} --_roledef-IMAGINARY.'{variable}'= 62${CTAGS} --_roledef-IMAGINARY.'{variable}'=, 63${CTAGS} --_roledef-IMAGINARY.'{variable}'=,desc 64 65title '# wrong char in role name' 66${CTAGS} --_roledef-IMAGINARY.v=+role+, 67${CTAGS} --_roledef-IMAGINARY.'{variable}'=+role+, 68 69title '# empty description' 70${CTAGS} --_roledef-IMAGINARY.v=role 71${CTAGS} --_roledef-IMAGINARY.v=role, 72${CTAGS} --_roledef-IMAGINARY.'{variable}'=role 73${CTAGS} --_roledef-IMAGINARY.'{variable}'=role, 74 75title '# role is acceptable but no input file' 76${CTAGS} --_roledef-IMAGINARY.v=role,roles 77${CTAGS} --_roledef-IMAGINARY.'{variable}'=role,roles 78 79title '# listing with --list-roles' 80${CTAGS} --_roledef-IMAGINARY.v=role,roles --list-roles=IMAGINARY 81${CTAGS} --_roledef-IMAGINARY.'{variable}'=role,roles \ 82 --_roledef-IMAGINARY.v=foos,foods \ 83 --list-roles=IMAGINARY 84 85title '# listing with --list-kinds-full' 86${CTAGS} --_roledef-IMAGINARY.v=role,roles --list-kinds-full=IMAGINARY 87${CTAGS} --_roledef-IMAGINARY.'{variable}'=role,roles \ 88 --_roledef-IMAGINARY.v=foos,foods \ 89 --list-kinds-full=IMAGINARY 90 91title '# inject a flag separator' 92${CTAGS} --_roledef-IMAGINARY.v='role,roles{foo}' --list-roles=IMAGINARY 93${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,roles{foo}' --list-roles=IMAGINARY 94 95title '# inject a broken flag separator(1)' 96${CTAGS} --_roledef-IMAGINARY.v='role,roles{foo' --list-roles=IMAGINARY 97${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,roles{foo' --list-roles=IMAGINARY 98 99title '# inject a broken flag separator(2)' 100${CTAGS} --_roledef-IMAGINARY.v='role,roles{' --list-roles=IMAGINARY 101${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,roles{' --list-roles=IMAGINARY 102 103title '# use a { in description (1)' 104${CTAGS} --_roledef-IMAGINARY.v='role,roles\{' --list-roles=IMAGINARY 105${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,roles\{' --list-roles=IMAGINARY 106 107title '# use a { in description (2)' 108${CTAGS} --_roledef-IMAGINARY.v='role,roles\{}' --list-roles=IMAGINARY 109${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,roles\{}' --list-roles=IMAGINARY 110 111title '# use a \ in description' 112${CTAGS} --_roledef-IMAGINARY.v='role,roles\\backslash' --list-roles=IMAGINARY 113${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,roles\\backslash' --list-roles=IMAGINARY 114 115title '# description started from {' 116${CTAGS} --_roledef-IMAGINARY.v='role,{' --list-roles=IMAGINARY 117${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,{' --list-roles=IMAGINARY 118 119title '# description started from \{' 120${CTAGS} --_roledef-IMAGINARY.v='role,\{' --list-roles=IMAGINARY 121${CTAGS} --_roledef-IMAGINARY.'{variable}'='role,\{' --list-roles=IMAGINARY 122 123title '# too many roles' 124opts= 125for i in $(seq 0 64); do 126 opts="$opts --_roledef-IMAGINARY.v=r$i,desc$i " 127done 128${CTAGS} $opts 129 130} > /tmp/ctags-tmain-$$.stdout 2>/tmp/ctags-tmain-$$.stderr 131 132sed -e 's/\.exe//g' < /tmp/ctags-tmain-$$.stdout 133rm /tmp/ctags-tmain-$$.stdout 134 135sed -e 's/\.exe//g' < /tmp/ctags-tmain-$$.stderr 1>&2 136rm /tmp/ctags-tmain-$$.stderr 137