Fix utPLSQL context structures that are ignored or handled unexpectedly when the suite is built.

Noncompliant Code Example

CREATE PACKAGE test_pkg AS
  -- %suite
  -- %context(First context)
  -- %name(shared)
  -- %endcontext
  -- %context(Second context)
  -- %name(shared)              -- Noncompliant
  -- %endcontext
END test_pkg;

Context names must be valid and unique among sibling contexts. A missing %endcontext, a name outside a context, or a duplicate name can make utPLSQL ignore the annotation or use an automatic context name instead. The PL/SQL can still compile successfully. utPLSQL uses the first %name before a nested context; later names are ignored. An empty %name uses an automatic name.

Compliant Solution

CREATE PACKAGE test_pkg AS
  -- %suite
  -- %context(First context)
  -- %name(first_context)
  -- %endcontext
  -- %context(Second context)
  -- %name(second_context)
  -- %endcontext
END test_pkg;