Skip to content

Commit

Permalink
ST6RI-795 Added xpect tests to cover some special cases of redefinitions
Browse files Browse the repository at this point in the history
- Added tests to verify redefinition behavior in diamond shaped
inheritance structures

 - Added test to verify redefinition behavior where the redefining
feature, rather than referencing the tail end of a chain of
redefinitions, references an element along the redefinition chain
  • Loading branch information
TheKorpos committed Oct 11, 2024
1 parent 7e60391 commit d9ecb1f
Show file tree
Hide file tree
Showing 5 changed files with 212 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//*
XPECT_SETUP org.omg.sysml.xpect.tests.validation.valid.SysMLTests
ResourceSet {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
Workspace {
JavaProject {
SrcFolder {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
}
}
END_SETUP
*/
package RedefinitionDiamond {
part A {
part p[*];
}
part A1 :> A {
p1 :>> p;
}
part A2 :> A {
p :>> p; // 1
}

part B :> A1, A2 {
// p2 :>> p1; // 2
// XPECT warnings ---> "Duplicate of inherited member name" at "p"
part p;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//*
XPECT_SETUP org.omg.sysml.xpect.tests.validation.valid.SysMLTests
ResourceSet {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
Workspace {
JavaProject {
SrcFolder {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
}
}
END_SETUP
*/
package RedefinitionDiamond {
part A {
part p[*];
}
part A1 :> A {
p1 :>> p;
}
part A2 :> A {
// p :>> p; // 1
}

part B :> A1, A2 {
// p2 :>> p1; // 2
// XPECT noErrors ---> ""
part p;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//*
XPECT_SETUP org.omg.sysml.xpect.tests.validation.valid.SysMLTests
ResourceSet {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
Workspace {
JavaProject {
SrcFolder {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
}
}
END_SETUP
*/
package RedefinitionDiamond {
part A {
part p[*];
}
part A1 :> A {
p1 :>> p;
}
part A2 :> A {
p :>> p; // 1
}

part B :> A1, A2 {
p2 :>> p1; // 2
// XPECT noErrors ---> ""
part p;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
//*
XPECT_SETUP org.omg.sysml.xpect.tests.validation.valid.SysMLTests
ResourceSet {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
Workspace {
JavaProject {
SrcFolder {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
}
}
}
END_SETUP
*/
package RedefinitionDiamond {
part A {
part p[*];
}
part A1 :> A {
p1 :>> p;
}
part A2 :> A {
// p :>> p; // 1
}

part B :> A1, A2 {
p2 :>> p1; // 2
// XPECT noErrors ---> ""
part p;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
//*
XPECT_SETUP org.omg.sysml.xpect.tests.validation.valid.SysMLTests
ResourceSet {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
File {from ="/library.systems/Ports.sysml"}
}
Workspace {
JavaProject {
SrcFolder {
ThisFile {}
File {from ="/library.kernel/Base.kerml"}
File {from ="/library.kernel/Occurrences.kerml"}
File {from ="/library.kernel/Objects.kerml"}
File {from ="/library.kernel/Performances.kerml"}
File {from ="/library.systems/Items.sysml"}
File {from ="/library.systems/Parts.sysml"}
File {from ="/library.systems/Ports.sysml"}
}
}
}
END_SETUP
*/
package 'Hop-through' {
port p;

part A {
p :>> p;
}

part B :> A {
// XPECT noErrors ---> ""
p :>> 'Hop-through'::p;
}
}

0 comments on commit d9ecb1f

Please sign in to comment.