/***************************************************
 ** @author   STF 451
 ** @version  0.0.1
 ** @purpose  1:6.2.13.2, ensure that list subtyping check for record types is properly handled
 ** @verdict  pass accept, ttcn3verdict:pass
 ***************************************************/
module Sem_06021302_ListSubtyping_003 {

 type component GeneralComp {
 }

 type record MyRecord {
  integer f1 optional,
  charstring f2,
  charstring f3
 }

 type MyRecord MyRecordSub1 (
  { f1 := *, f2 := "user", f3 := pattern "password|Password" },
  { f1 := (1 .. 10), f2 := "User", f3 := ? }
  ); // a valid subtype


testcase TC_Sem_06021302_ListSubtyping_003() runs on GeneralComp {
 var MyRecordSub1 v_record := { f1 := omit, f2 := "user", f3 := "Password" };
 var template MyRecordSub1 m_match := { *, "user", "Password" };

      if ( match(v_record,m_match) ) {
	    setverdict(pass);
      }
      else {
	    setverdict(fail);
	  }

}

control {
    execute(TC_Sem_06021302_ListSubtyping_003());
}

}
