* Re: [Cocci] [PATCH 12/13] tests: Add test case for assigned enumerator
@ 2020-03-09 12:53 Markus Elfring
0 siblings, 0 replies; 2+ messages in thread
From: Markus Elfring @ 2020-03-09 12:53 UTC (permalink / raw)
To: Jaskaran Singh, cocci; +Cc: linux-kernel-mentees
> minused assigned enumerators, plussed assigned enumerators
Does this description contain typos?
Regards,
Markus
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Cocci] [PATCH 00/13] cocci: Align the C AST and SmPL AST for enum
@ 2020-03-08 8:43 Jaskaran Singh
2020-03-08 8:43 ` [Cocci] [PATCH 12/13] tests: Add test case for assigned enumerator Jaskaran Singh
0 siblings, 1 reply; 2+ messages in thread
From: Jaskaran Singh @ 2020-03-08 8:43 UTC (permalink / raw)
To: cocci; +Cc: linux-kernel-mentees
The C AST and SmPL AST differs with respect to the enum type.
For an enumerator, the C AST is as follows:
Enum -> list of (name, (info, expression))
For the same, the SmPL AST is as follows:
EnumDef -> list of expression
While the SmPL parser does make sure that enumerators are
parsed as per C rules, the OCaml types for an enumerator themselves
mismatch, due to their organization. This causes bugs/mismatches for
cases where enums are in disjunctions.
This patch series makes the enumerator type of the SmPL AST
closer to that of the C AST. Various places in the codebase that
handle an enum are also changed to match the new type, and
collateral evolutions caused by changed in the SmPL visitors are
handled as well.
Changes are also made to Cocci_vs_c to correctly match two
enumerators, and in Pretty_print_cocci and Unparse_cocci to
correctly print an enumerator.
[PATCH 01/13] parsing_cocci: Align C AST and SmPL AST for enum
[PATCH 02/13] ocaml: coccilib: Reflect changes in SmPL AST for
[PATCH 03/13] parsing_cocci: parser: Parse enumerators correctly
[PATCH 04/13] parsing_cocci: Add EnumDeclTag and EnumDeclDotsTag to
[PATCH 05/13] ocaml: coccilib: Reflect EnumDeclTag and
[PATCH 06/13] parsing_cocci: visitor_ast0: Add visitor functions for
[PATCH 07/13] parsing_cocci: Reflect visitor_ast0 changes in
[PATCH 08/13] parsing_cocci: Add visitor functions for enum_decl in
[PATCH 09/13] cocci: Reflect changes in SmPL visitor_ast in codebase
[PATCH 10/13] engine: cocci_vs_c: Match enumerators properly as per
[PATCH 11/13] cocci: pretty print EnumDef as per enum_decl type
[PATCH 12/13] tests: Add test case for assigned enumerator
[PATCH 13/13] tools: spgen: Reflect visitor changes
cocci.ml | 4 -
engine/asttoctl2.ml | 21 +++++---
engine/asttomember.ml | 17 ++++---
engine/cocci_vs_c.ml | 46 ++++++++-----------
engine/transformation_c.ml | 4 -
ocaml/coccilib.mli | 22 ++++++++-
parsing_c/unparse_cocci.ml | 27 ++++++++++-
parsing_c/unparse_hrule.ml | 4 -
parsing_cocci/arity.ml | 25 ++++++++++
parsing_cocci/ast0_cocci.ml | 15 +++++-
parsing_cocci/ast0_cocci.mli | 14 +++++
parsing_cocci/ast0toast.ml | 30 +++++++++++-
parsing_cocci/ast0toast.mli | 4 +
parsing_cocci/ast_cocci.ml | 13 +++++
parsing_cocci/ast_cocci.mli | 12 ++++-
parsing_cocci/check_meta.ml | 17 +++++--
parsing_cocci/cleanup_rules.ml | 5 +-
parsing_cocci/commas_on_lists.ml | 10 ++--
parsing_cocci/compute_lines.ml | 25 ++++++++++
parsing_cocci/context_neg.ml | 47 +++++++++++++++++--
parsing_cocci/disjdistr.ml | 29 +++++++++---
parsing_cocci/free_vars.ml | 27 +++++------
parsing_cocci/function_prototypes.ml | 7 +-
parsing_cocci/get_constants2.ml | 7 +-
parsing_cocci/index.ml | 7 ++
parsing_cocci/index.mli | 2
parsing_cocci/insert_plus.ml | 39 +++++++++++++---
parsing_cocci/iso_compile.ml | 4 -
parsing_cocci/iso_pattern.ml | 80 ++++++++++++++++++++++++++++------
parsing_cocci/parse_aux.ml | 5 ++
parsing_cocci/parse_aux.mli | 9 +++
parsing_cocci/parse_cocci.ml | 4 -
parsing_cocci/parser_cocci_menhir.mly | 13 ++---
parsing_cocci/pretty_print_cocci.ml | 18 +++++++
parsing_cocci/re_constraints.ml | 10 ++--
parsing_cocci/safe_for_multi_decls.ml | 11 ++--
parsing_cocci/single_statement.ml | 5 +-
parsing_cocci/stmtlist.ml | 4 -
parsing_cocci/unify_ast.ml | 29 ++++++++++--
parsing_cocci/unitary_ast0.ml | 5 +-
parsing_cocci/unparse_ast0.ml | 22 ++++++++-
parsing_cocci/visitor_ast.ml | 72 +++++++++++++++++++++++++++---
parsing_cocci/visitor_ast.mli | 8 +++
parsing_cocci/visitor_ast0.ml | 72 ++++++++++++++++++++++++++++--
parsing_cocci/visitor_ast0.mli | 4 +
parsing_cocci/visitor_ast0_types.ml | 14 +++++
parsing_cocci/visitor_ast0_types.mli | 12 +++++
popl/popltoctl.ml | 2
popl09/popltoctl.ml | 5 +-
tests/enum_assign.c | 6 ++
tests/enum_assign.cocci | 11 ++++
tests/enum_assign.res | 7 ++
tools/spgen/source/detect_patch.ml | 6 +-
tools/spgen/source/meta_variable.ml | 6 +-
tools/spgen/source/rule_body.ml | 6 +-
55 files changed, 748 insertions(+), 182 deletions(-)
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Cocci] [PATCH 12/13] tests: Add test case for assigned enumerator
2020-03-08 8:43 [Cocci] [PATCH 00/13] cocci: Align the C AST and SmPL AST for enum Jaskaran Singh
@ 2020-03-08 8:43 ` Jaskaran Singh
0 siblings, 0 replies; 2+ messages in thread
From: Jaskaran Singh @ 2020-03-08 8:43 UTC (permalink / raw)
To: cocci; +Cc: linux-kernel-mentees
Add a test case to verify correct pretty printing of
enumerators that are assigned. The test case should cover
minused assigned enumerators, plussed assigned enumerators
and correct matching of an enum with an assigned enumerator.
Signed-off-by: Jaskaran Singh <jaskaransingh7654321@gmail.com>
---
tests/enum_assign.c | 6 ++++++
tests/enum_assign.cocci | 11 +++++++++++
tests/enum_assign.res | 7 +++++++
3 files changed, 24 insertions(+)
create mode 100644 tests/enum_assign.c
create mode 100644 tests/enum_assign.cocci
create mode 100644 tests/enum_assign.res
diff --git a/tests/enum_assign.c b/tests/enum_assign.c
new file mode 100644
index 00000000..9c2d16df
--- /dev/null
+++ b/tests/enum_assign.c
@@ -0,0 +1,6 @@
+enum h {
+ a = 0,
+ c,
+ x,
+ b
+};
diff --git a/tests/enum_assign.cocci b/tests/enum_assign.cocci
new file mode 100644
index 00000000..a1a59ef8
--- /dev/null
+++ b/tests/enum_assign.cocci
@@ -0,0 +1,11 @@
+@@
+@@
+
+enum h {
+ ...,
+- a = 0,
++ q = 0,
+ ...,
+ b,
++ z
+};
diff --git a/tests/enum_assign.res b/tests/enum_assign.res
new file mode 100644
index 00000000..3b204aa0
--- /dev/null
+++ b/tests/enum_assign.res
@@ -0,0 +1,7 @@
+enum h {
+ q = 0,
+ c,
+ x,
+ b,
+ z
+};
--
2.21.1
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-03-09 12:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 12:53 [Cocci] [PATCH 12/13] tests: Add test case for assigned enumerator Markus Elfring
-- strict thread matches above, loose matches on Subject: below --
2020-03-08 8:43 [Cocci] [PATCH 00/13] cocci: Align the C AST and SmPL AST for enum Jaskaran Singh
2020-03-08 8:43 ` [Cocci] [PATCH 12/13] tests: Add test case for assigned enumerator Jaskaran Singh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).