Commit 029a4bd5 authored by Matthias Simon's avatar Matthias Simon
Browse files

Add tests for automatic type for references

parent bddc406e
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure automatic type for templates.
// @verdict  pass reject
module NegSem_0605_references_001 {

type component GeneralComp {}

template integer t_int := ?;

testcase TC_NegSem_0605_references_001() runs on GeneralComp {
	var v := t_int; // error: v must be declared as template explicitly.
}

control {
    execute(TC_NegSem_0605_references_001());
}

}
+24 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure automatic type for variables.
// @verdict  pass accept, ttcn3verdict:pass
module Sem_0605_references_001 {

type component GeneralComp {}

type integer int;

function verifyType(inout int i) {
	setverdict(pass);
}

testcase TC_Sem_0605_references_001() runs on GeneralComp {
	var int i := 1;
	var v := i;
	verifyType(v);
}

control {
    execute(TC_Sem_0605_references_001());
}

}
+22 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure automatic type for arrays.
// @verdict  pass accept, ttcn3verdict:pass
module Sem_0605_references_002 {

type component GeneralComp {}

function verifyType(inout integer a[3]) {
	setverdict(pass);
}

testcase TC_Sem_0605_references_002() runs on GeneralComp {
	var integer a[3];
	var v := a;
	verifyType(v);
}

control {
    execute(TC_Sem_0605_references_002());
}

}
+26 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure automatic type for lazy variables.
// @verdict  pass accept, ttcn3verdict:pass
module Sem_0605_references_003 {

type component GeneralComp {}

function verifyType(inout universal charstring uc) {
	setverdict(pass);
}

testcase TC_Sem_0605_references_003() runs on GeneralComp {
	var @lazy v1 := "üniversal charstrüng";
	{
		var charstring v2 := "charstring";
		v1 := v2;
	}
	var v3 := v1;
	verifyType(v3);
}

control {
    execute(TC_Sem_0605_references_003());
}

}
+24 −0
Original line number Diff line number Diff line
// @author   TTF23
// @purpose  1:6.5, Ensure automatic type for module parameter references.
// @verdict  pass accept, ttcn3verdict:pass
module Sem_0605_references_004 {

type component GeneralComp {}

modulepar integer mp := 2;

testcase TC_Sem_0605_references_004() runs on GeneralComp {
	var i := mp;
	i := i + 1;
	if (i == 3) {
		setverdict(pass);
	} else {
		setverdict(fail);
	}
}

control {
    execute(TC_Sem_0605_references_004());
}

}
Loading