Skip to content

Commit 1429090

Browse files
committed
Tmain: add a case for testing broken --_paramdef-<LANG> option
Signed-off-by: Masatake YAMATO <[email protected]>
1 parent e08dfaf commit 1429090

File tree

4 files changed

+163
-2
lines changed

4 files changed

+163
-2
lines changed

Tmain/broken-paramdef.d/run.sh

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Copyright: 2018 Masatake YAMATO
2+
# License: GPL-2
3+
4+
CTAGS="$1 --quiet --options=NONE"
5+
6+
title()
7+
{
8+
echo
9+
echo "$@"
10+
11+
{
12+
echo
13+
echo "$@"
14+
} 1>&2
15+
}
16+
17+
{
18+
title '# echo unknown lang'
19+
${CTAGS} --_paramdef-NOSUCHLANG
20+
${CTAGS} --_paramdef-NOSUCHLANG=param,desc
21+
22+
title '# no option value'
23+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY
24+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=
25+
26+
title '# wrong char in a field name'
27+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=:
28+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=:abc
29+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=:abc,
30+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=:abc,description
31+
32+
title '# empty parameter name'
33+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=,
34+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=,abc
35+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=,abc,
36+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=,abc,description
37+
38+
title '# empty description'
39+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=abc
40+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=abc,
41+
42+
title '# no input file'
43+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY=abc,desc
44+
45+
title '# inject a flag separator'
46+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,desc{foo}' --list-params=IMAGINARY
47+
48+
title '# inject a broken flag separator(1)'
49+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,desc{foo' --list-params=IMAGINARY
50+
51+
title '# inject a broken flag separator(2)'
52+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,desc{' --list-params=IMAGINARY
53+
54+
title '# use a { in description (1)'
55+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,desc\{' --list-params=IMAGINARY
56+
57+
title '# use a { in description (2)'
58+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,desc\{}' --list-params=IMAGINARY
59+
60+
title '# use a \ in description'
61+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,desc\\backslash' --list-params=IMAGINARY
62+
63+
title '# description started from {'
64+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,{' --list-params=IMAGINARY
65+
66+
title '# description started from \{'
67+
${CTAGS} --langdef=IMAGINARY --_paramdef-IMAGINARY='param,\{' --list-params=IMAGINARY
68+
69+
} > /tmp/ctags-tmain-$$.stdout 2>/tmp/ctags-tmain-$$.stderr
70+
71+
sed -e 's/\.exe//g' < /tmp/ctags-tmain-$$.stdout
72+
rm /tmp/ctags-tmain-$$.stdout
73+
74+
sed -e 's/\.exe//g' < /tmp/ctags-tmain-$$.stderr 1>&2
75+
rm /tmp/ctags-tmain-$$.stderr
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
2+
# echo unknown lang
3+
ctags: Unknown language "NOSUCHLANG" in "_paramdef-NOSUCHLANG" option
4+
ctags: Unknown language "NOSUCHLANG" in "_paramdef-NOSUCHLANG" option
5+
6+
# no option value
7+
ctags: no parameter definition specified in "--_paramdef-IMAGINARY" option
8+
ctags: no parameter definition specified in "--_paramdef-IMAGINARY" option
9+
10+
# wrong char in a field name
11+
ctags: no parameter description specified in "--_paramdef-IMAGINARY" option
12+
ctags: no parameter description specified in "--_paramdef-IMAGINARY" option
13+
ctags: unacceptable char as part of parameter name in "--_paramdef-IMAGINARY" option: ':'
14+
ctags: unacceptable char as part of parameter name in "--_paramdef-IMAGINARY" option: ':'
15+
16+
# empty parameter name
17+
ctags: the parameter name in "--_paramdef-IMAGINARY" option is empty
18+
ctags: the parameter name in "--_paramdef-IMAGINARY" option is empty
19+
ctags: the parameter name in "--_paramdef-IMAGINARY" option is empty
20+
ctags: the parameter name in "--_paramdef-IMAGINARY" option is empty
21+
22+
# empty description
23+
ctags: no parameter description specified in "--_paramdef-IMAGINARY" option
24+
ctags: parameter description in "--_paramdef-IMAGINARY" option is empty
25+
26+
# no input file
27+
ctags: No files specified. Try "ctags --help".
28+
29+
# inject a flag separator
30+
31+
# inject a broken flag separator(1)
32+
ctags: Warning: long flags specifier opened with `{' is not closed `}': "{foo"
33+
34+
# inject a broken flag separator(2)
35+
ctags: Warning: long flags specifier opened with `{' is not closed `}': "{"
36+
37+
# use a { in description (1)
38+
39+
# use a { in description (2)
40+
41+
# use a \ in description
42+
43+
# description started from {
44+
ctags: parameter description in "--_paramdef-IMAGINARY" option is empty
45+
46+
# description started from \{
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
# echo unknown lang
3+
4+
# no option value
5+
6+
# wrong char in a field name
7+
8+
# empty parameter name
9+
10+
# empty description
11+
12+
# no input file
13+
14+
# inject a flag separator
15+
#NAME DESCRIPTION
16+
param desc
17+
18+
# inject a broken flag separator(1)
19+
#NAME DESCRIPTION
20+
param desc
21+
22+
# inject a broken flag separator(2)
23+
#NAME DESCRIPTION
24+
param desc
25+
26+
# use a { in description (1)
27+
#NAME DESCRIPTION
28+
param desc{
29+
30+
# use a { in description (2)
31+
#NAME DESCRIPTION
32+
param desc{}
33+
34+
# use a \ in description
35+
#NAME DESCRIPTION
36+
param desc\backslash
37+
38+
# description started from {
39+
40+
# description started from \{
41+
#NAME DESCRIPTION
42+
param {

main/parse.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3567,10 +3567,8 @@ static bool processLangDefineParam (const langType language,
35673567
pdef->name = eStrndup (parameter, name_end - parameter);
35683568
pdef->desc = desc;
35693569

3570-
#if 0
35713570
if (flags)
35723571
flagsEval (flags, NULL, 0, pdef);
3573-
#endif
35743572

35753573
parser = LanguageTable + language;
35763574
defineParam (parser->paramControlBlock, pdef, freePdef);

0 commit comments

Comments
 (0)