Commit 59aef316 authored by Matthias Simon's avatar Matthias Simon
Browse files

Add tests for field assignment lists

parent 429d1992
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure field assignment lists are anonymous records.
// @verdict  pass reject
module NegSem_0605_field_assignment_lists_001 {

type component GeneralComp {}

function verifyType(inout record { integer x, integer y } r) {
	setverdict(pass);
}

testcase TC_NegSem_0605_field_assignment_lists_001() runs on GeneralComp {
	var v := { x := 1, y := 2 };
	verifyType(v);
}

control {
    execute(TC_NegSem_0605_field_assignment_lists_001());
}

}
+26 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure record fields have the same order as specified.
// @verdict  pass accept, ttcn3verdict:pass
module Sem_0605_field_assignment_lists_001 {

type component GeneralComp {}

type record Point {
	integer x,
	integer y
}

testcase TC_Sem_0605_field_assignment_lists_001() runs on GeneralComp {
	var v := { x := 1, y := 2 }
	if (match(v, Point:{x := 1, y := 2})) {
		setverdict(pass);
	} else {
		setverdict(fail);
	}
}

control {
    execute(TC_Sem_0605_field_assignment_lists_001());
}

}
+26 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure record fields become optional as specified (15.8).
// @verdict  pass accept, ttcn3verdict:pass
module Sem_0605_field_assignment_lists_002 {

type component GeneralComp {}

type record Point {
	integer x,
	integer y optional
}

testcase TC_Sem_0605_field_assignment_lists_002() runs on GeneralComp {
	var v := { x := 1, y := omit }
	if (match(v, { x := 1, y := omit })) {
		setverdict(pass);
	} else {
		setverdict(fail);
	}
}

control {
    execute(TC_Sem_0605_field_assignment_lists_002());
}

}