From 3b6177218609a4740cd6ff68697a0856ab4620b6 Mon Sep 17 00:00:00 2001 From: Mingun Date: Wed, 17 Apr 2024 21:28:32 +0500 Subject: [PATCH] formats_err: add test for leaking enums Tests for https://github.com/kaitai-io/kaitai_struct/issues/534 Adds new failing test in compliler: [info] - imports_enum_leaking *** FAILED *** [info] [] [info] did not equal [info] [imports/enum_two.ksy: /seq/0/enum: [info] error: unable to find enum 'enum_one::one', searching from enum_two [info] ] (SimpleMatchers.scala:34) --- formats_err/imports/enum_one.ksy | 10 ++++++++++ formats_err/imports/enum_two.ksy | 11 +++++++++++ formats_err/imports_enum_leaking.ksy | 15 +++++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 formats_err/imports/enum_one.ksy create mode 100644 formats_err/imports/enum_two.ksy create mode 100644 formats_err/imports_enum_leaking.ksy diff --git a/formats_err/imports/enum_one.ksy b/formats_err/imports/enum_one.ksy new file mode 100644 index 000000000..0a3229638 --- /dev/null +++ b/formats_err/imports/enum_one.ksy @@ -0,0 +1,10 @@ +# This is a file that is imported in imports_enum_leaking.ksy +meta: + id: enum_one +seq: + - id: something + type: u1 + enum: one +enums: + one: + 0: zero diff --git a/formats_err/imports/enum_two.ksy b/formats_err/imports/enum_two.ksy new file mode 100644 index 000000000..0b6a7f167 --- /dev/null +++ b/formats_err/imports/enum_two.ksy @@ -0,0 +1,11 @@ +# This is a file that is imported in imports_enum_leaking.ksy +meta: + id: enum_two + # Note: missing import of `enum_one` +seq: + - id: one + type: u1 + enum: enum_one::one # Note: `enum_one` is not imported in this spec, so this should cause a compile error +enums: + two: + 0: zero diff --git a/formats_err/imports_enum_leaking.ksy b/formats_err/imports_enum_leaking.ksy new file mode 100644 index 000000000..a99b583ec --- /dev/null +++ b/formats_err/imports_enum_leaking.ksy @@ -0,0 +1,15 @@ +# imports/enum_two.ksy: /seq/0/enum: +# error: unable to find enum 'enum_one::one', searching from enum_two +# +meta: + id: imports_enum_leaking + imports: + - imports/enum_one + - imports/enum_two +seq: + - id: another_one + type: u1 + enum: enum_one::one + - id: another_two + type: u1 + enum: enum_two::two