/****************************************************************************** * Copyright (c) 2000-2016 Ericsson Telecom AB * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Adrien Kirjak – initial implementation * ** @version 0.0.1 ** @purpose 1:21.1.1, violation of strong typing rules for local ports in map operations ** @verdict pass reject ***************************************************/ // The following requirements are tested: // If the type of the component referenced in a connection operation is known (either // when the component reference is a variable or value returned from a function or the // type is defined in the runs on, mtc or system clause of the calling function), the // referenced port declaration shall be present in this component type. module NegSem_210101_connect_and_map_operations_011 { type port P message { inout integer; } with {extension "internal"} type component GeneralComp { port P p; } type component GeneralCompEx extends GeneralComp { port P p2; } function f_map() runs on GeneralComp system GeneralComp { map(system:p, self:p2); // although the actual instance of self contains the p2 port, // it cannot be referenced as the "runs on" clause contains the GeneralComp type and // not GeneralCompEx } testcase TC_NegSem_210101_connect_and_map_operations_011() runs on GeneralCompEx system GeneralComp { f_map(); setverdict(pass); } control{ execute(TC_NegSem_210101_connect_and_map_operations_011()); } }