Commit 63a7566c authored by Matthias Simon's avatar Matthias Simon
Browse files

Add tests for variadic functions

parent 4276ba0c
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
 // @author   TTF23
 // @purpose  1:5.4.3, Ensure variadic formal parameters are at the end of the formal parameter list.
 // @verdict  pass reject
module NegSem_050403_variadic_parameters_001 {

	function f(in integer i..., in integer max) {}

}
+8 −0
Original line number Diff line number Diff line
 // @author   TTF23
 // @purpose  1:5.4.3, Ensure only one variadic formal parameter per formal parameter list is allowed.
 // @verdict  pass reject
module NegSem_050403_variadic_parameters_002 {

function f(in integer a..., in integer b...) {}

}
+9 −0
Original line number Diff line number Diff line
 // @author   TTF23
 // @purpose  1:5.4.3, Ensure variadic parameters are in parameters.
 // @verdict  pass reject
module NegSem_050403_variadic_parameters_003 {

function f1(inout integer x...) {}
function f2(out integer x...) {}

}
+21 −0
Original line number Diff line number Diff line
 // @author   TTF23
 // @purpose  1:5.4.3, Ensure actual variadic parameter results in an equivalent record of in their declaration order.
 // @verdict  pass reject
module NegSem_050403_variadic_parameters_004 {

type record of integer RoI;
type component GeneralComp {}

function f(in integers... args) return RoI {
    return args
}

testcase TC_NegSem_050403_variadic_parameters_004() runs on GeneralComp {
	f(-, -); // Reject: f() has only one variadic parameter to omit.
}

control {
    execute(TC_NegSem_050403_variadic_parameters_004());
}

}
+18 −0
Original line number Diff line number Diff line
 // @author   TTF23
 // @purpose  1:5.4.3, Ensure an actual record of parameter in assignment notation has no additional ellipsis.
 // @verdict  pass reject
module NegSem_050403_variadic_parameters_005 {

type component GeneralComp {}

testcase TC_NegSem_050403_variadic_parameters_005() runs on GeneralComp {
	f(args := {1,2,3}...);
}

function f(in integer args...) {}

control {
    execute(TC_NegSem_050403_variadic_parameters_005());
}

}
Loading