Commit 8f85e2c4 authored by zeiss's avatar zeiss
Browse files

No commit message

No commit message
parent 277af1fa
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -7,12 +7,24 @@

module NegSem_150601_ReferencingIndividualStringElements_001 {

function f_testFunction() {
type component GeneralComp { }

testcase TC_NegSem_150601_ReferencingIndividualStringElements_001() runs on GeneralComp {
	var template charstring m_char1 := "MYCHAR1";
	var template charstring m_char2;
	
	// illegal acchess. Instead, substr should be used.	
	m_char2 := m_char1[1];
	
	if (m_char2 == "Y") {
		setverdict(fail);
	} else {
		setverdict(pass);
	}
}

control{
    execute(TC_NegSem_150601_ReferencingIndividualStringElements_001());
}

}
 No newline at end of file
+40 −0
Original line number Diff line number Diff line
/*****************************************************************
 ** @author   STF 409
 ** @version  $Rev: 150 $
 ** @purpose  1:15.6.2, Ensure that fields with omit values on the right-hand side of an assignment are rejected.
 ** @verdict  pass reject
 *****************************************************************/

module NegSem_150602_ReferencingRecordAndSetFields_001 {

type component GeneralComp { }

type record MyRecordTwo {
	integer g1,
	MyRecordTwo g2 optional
}

type record MyRecordOne {
	integer f1 optional,
	MyRecordTwo f2 optional
}

testcase TC_NegSem_150602_ReferencingRecordAndSetFields_001() runs on GeneralComp {
	var template MyRecordOne m_R1 := {
		f1 := 5,
		f2 := omit
	}
	
	// shall cause an error as omit is assigned to m_R1.f2
	var template MyRecordOne m_R2 := m_R1.f2.g2;
	// if we get here, something must be wrong
	setverdict(fail);
}

control{
    execute(TC_NegSem_150602_ReferencingRecordAndSetFields_001());
}



}
 No newline at end of file
+41 −0
Original line number Diff line number Diff line
/*****************************************************************
 ** @author   STF 409
 ** @version  $Rev: 150 $
 ** @purpose  1:15.6.2, Ensure that fields with * values on the right-hand side of an assignment are rejected
 ** @verdict  pass reject
 *****************************************************************/

module NegSem_150602_ReferencingRecordAndSetFields_002 {

type component GeneralComp { }

type record MyRecordTwo {
	integer g1,
	MyRecordTwo g2 optional
}

type record MyRecordOne {
	integer f1 optional,
	MyRecordTwo f2 optional
}

testcase TC_NegSem_150602_ReferencingRecordAndSetFields_002() runs on GeneralComp {
	var template MyRecordOne m_R1 := {
		f1 := 5,
		f2 := omit
	}
	
	m_R1.f2 := *;
	
	// shall cause an error as * is assigned to m_R1.f2
	var template MyRecordTwo m_R2 := m_R1.f2.g2;
	// if we get here, something must be wrong
	setverdict(fail);
}

control{
    execute(TC_NegSem_150602_ReferencingRecordAndSetFields_002());
}


}
 No newline at end of file