xref: /Universal-ctags/Tmain/roledef.d/run.sh (revision 97d2a1217882963dbd8e66b5e60a5ec6ac31c268)
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