Commits (42)
......@@ -3,8 +3,10 @@ stages:
- package
- deploy
before_script:
- apk add bash git
default:
image: alpine
before_script:
- apk add bash git
# format-check verifies that our tests follow guide lines, are well named and
# formatted.
......
// @author TTF T023
// @purpose 1:5.4.1.1, Ensure formal parameters accept nested types.
// @verdict pass accept
module Sem_05040101_nested_types_001 {
type component GeneralComp {}
function f(in record of integer n) {
setverdict(pass);
}
testcase TC_Sem_05040101_nested_types_001() runs on GeneralComp {
f({1, 2, 3, 4});
}
control {
execute(TC_Sem_05040101_nested_types_001());
}
}
// @author TTF T023
// @purpose 1:5.4.1.2, Ensure formal parameters accept nested types.
// @verdict pass accept
module Sem_05040102_nested_types_001 {
type component GeneralComp {}
function f(template record of integer n) {
setverdict(pass);
}
testcase TC_Sem_05040102_nested_types_001() runs on GeneralComp {
f({1, ?, 3});
}
control {
execute(TC_Sem_05040102_nested_types_001());
}
}
// @author TTF T023
// @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) {}
}
// @author TTF T023
// @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...) {}
}
// @author TTF T023
// @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...) {}
}
// @author TTF T023
// @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());
}
}
// @author TTF T023
// @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());
}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure template definitions support variadic formal parameters.
// @verdict pass accept
module Sem_050403_variadic_parameters_001 {
type record of integer RoI;
template Roi aRoi(in integer numbers...) := {}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure function definitions support variadic formal parameters.
// @verdict pass accept
module Sem_050403_variadic_parameters_002 {
function f(in integer i...) {}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure altstep definitions support variadic formal parameters.
// @verdict pass accept
module Sem_050403_variadic_parameters_003 {
altstep as1(in integer items...) {}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure testcase definitions support variadic formal parameters.
// @verdict pass accept, testverdict:pass
module Sem_050403_variadic_parameters_004 {
type component GeneralComp {}
testcase TC_Sem_050403_variadic_parameters_004(in verdicttype verdicts...) runs on GeneralComp {
setverdict(pass);
}
control {
execute(TC_Sem_050403_variadic_parameters_004());
}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure variadic formal parameters may have default values.
// @verdict pass accept
module Sem_050403_variadic_parameters_005 {
function f(in integer i... := {1, 2, 3}) {}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure variadic parameters are visible as record of types inside the defintion.
// @verdict pass accept
module Sem_050403_variadic_parameters_006 {
type record of integer RoI;
type record of integer RoA[3];
type record of C RoC;
type component C {}
function f1(integer args...) { var RoI r := args }
function f2(integer args[3]...) { var RoA r := args }
function f3(C args[3]...) { var RoC r := args }
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure omitted variadic parameter results in an empty record of.
// @verdict pass accept, ttcn3verdict:pass
module Sem_050403_variadic_parameters_007 {
type component GeneralComp {}
testcase TC_Sem_050403_variadic_parameters_007() runs on GeneralComp {
if (len() == 0) {
setverdict(pass);
} else {
setverdict(fail, "len() != 0");
}
}
function len(in integer args...) return integer { return lengthof(args) }
control {
execute(TC_Sem_050403_variadic_parameters_007());
}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure unused variadic parameter results in an empty record of.
// @verdict pass accept, ttcn3verdict:pass
module Sem_050403_variadic_parameters_008 {
type component GeneralComp {}
testcase TC_Sem_050403_variadic_parameters_008() runs on GeneralComp {
if (len(-) == 0) {
setverdict(pass);
} else {
setverdict(fail, "len() != 0");
}
}
function len(in integer args...) return integer { return lengthof(args) }
control {
execute(TC_Sem_050403_variadic_parameters_008());
}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure actual variadic parameter results in an equivalent record of in their declaration order.
// @verdict pass accept, ttcn3verdict:pass
module Sem_050403_variadic_parameters_009 {
type record of integer Roi;
type component GeneralComp {}
function f(in integer args...) returns RoI {
return args
}
testcase TC_Sem_050403_variadic_parameters_009() runs on GeneralComp {
if (f() == {}) {
setverdict(pass);
} else {
setverdict(fail, "f() != {}");
}
if (f(1) == {1}) {
setverdict(pass);
} else {
setverdict(fail, "f(1) != {1}");
}
if (f(1, 2, 3) == {1, 2, 3}) {
setverdict(pass);
} else {
setverdict(fail, "f(1,2,3) != {1,2,3}");
}
}
control {
execute(TC_Sem_050403_variadic_parameters_009());
}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure an actual record of parameter with ... is passed directly to the formal variadic parameter.
// @verdict pass accept, ttcn3verdict:pass
module Sem_050403_variadic_parameters_010 {
type record of integer RoI;
type component GeneralComp {}
function len(in integer args...) return integer {
return lengthof(args);
}
testcase TC_Sem_050403_variadic_parameters_010() runs on GeneralComp {
if (len({}...) == 0) {
setverdict(pass);
} else {
setverdict(fail, "len({}...) != 0");
}
if (len({1, 2, 3}...) == 3) {
setverdict(pass);
} else {
setverdict(fail, "len({1,2,3}...) != 3");
}
var RoI r := {1, 2, 3};
if (len(r...) == 3) {
setverdict(pass);
} else {
setverdict(fail, "len(r...) != 3");
}
}
control {
execute(TC_Sem_050403_variadic_parameters_010());
}
}
// @author TTF T023
// @purpose 1:5.4.3, Ensure an actual record of parameter in assignment notation is passed directly to the formal variadic parameter.
// @verdict pass accept, ttcn3verdict:pass
module Sem_050403_variadic_parameters_011 {
type component GeneralComp {}
testcase TC_Sem_050403_variadic_parameters_011() runs on GeneralComp {
if (len(args := {1, 2, 3}) == 3)) {
setverdict(pass);
} else {
setverdict(fail, "len(args := {1, 2, 3}) != 3");
}
}
function len(in integer args...) return integer {
return lengthof(args);
}
control {
execute(TC_Sem_050403_variadic_parameters_011());
}
}
// @author TTF T023
// @purpose 1:6.2.1.4, Ensure the unqualified type name acts as the field name.
// @verdict pass reject
module NegSem_06020104_embedding_fields_001 {
type record of integer RoI;
type union U {
record of integer RoI;
}
// Reject nested or anonymous types.
type record R {
Roi[-]
U.Roi
}
}