Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • T titan.core
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 114
    • Issues 114
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • Eclipse ProjectsEclipse Projects
  • Eclipse Titan
  • titan.core
  • Issues
  • #588
Closed
Open
Issue created Mar 17, 2022 by Botond Baranyi@bbaranyiDeveloper

Implicit omit doesn't work inside optional fields of records/sets

Summary

The "implicit omit" extension for optional fields is not applied inside optional fields that are present (i.e. not unbound or omitted).

Steps and/or TTCN-3 code to reproduce

TTCN module:

module test {

type record EmbeddedRecord {
  charstring originalField,
  charstring newEmbeddedField optional
}

type record Record {
  integer int,
  charstring newTopLevelField optional,
  EmbeddedRecord eRec,
  EmbeddedRecord eRec2 optional
}

modulepar Record mp_record with {optional "implicit omit"}

type component MAIN_CT {}

testcase tc_ImplicitOmit() runs on MAIN_CT {

  action("mp_record is: ", mp_record);

  if(mp_record.newTopLevelField == omit) {
    setverdict(pass, "mp_record.newTopLevelField is omit");
  } else {
    setverdict(fail, "mp_record.newTopLevelField is not omit!");
  }

  if(mp_record.eRec.newEmbeddedField == omit) {
    setverdict(pass, "mp_record.eRec.newEmbeddedField is omit");
  } else {
    setverdict(fail, "mp_record.eRec.newEmbeddedField is not omit!");
  }

  if(mp_record.eRec2.newEmbeddedField == omit) {
    setverdict(pass, "mp_record.eRec2.newEmbeddedField is omit");
  } else {
    setverdict(fail, "mp_record.eRec2.newEmbeddedField is not omit!");
  }
}

control {
  execute(tc_ImplicitOmit());
}

}

Configuration file:

[MODULE_PARAMETERS]
mp_record :=  { int := 1, eRec := { originalField := "originalField" }, eRec2 := { originalField := "originalField2" } }
[EXECUTE]
test

What is the current bug behavior?

Field 'mp_record.eRec2.newEmbeddedField' is left unbound. The other optional fields are correctly set to 'omit'.

What is the expected correct behavior?

Field 'mp_record.eRec2.newEmbeddedField' should be omitted instead of unbound.

Relevant logs and/or screenshots

Possible fixes

Titan version

8.1.0

Platform details (OS type and version)

Ubuntu 20.04

/cc @aknappqwt

Assignee
Assign to
Time tracking

Copyright © Eclipse Foundation, Inc. All Rights Reserved.     Privacy Policy | Terms of Use | Copyright Agent