/*****************************************************************
 ** @author   STF 451
 ** @version  0.0.1
 ** @purpose  1:21.3.4, Ensure that kill operator stops only non alive test components
 ** @verdict  pass accept, ttcn3verdict:pass
 *****************************************************************/
//Kill only stops non alive test components
module Sem_210304_kill_test_component_003 {

    type component GeneralComp {
	 var integer v_gc:=0;
	 var integer v_res:=0;}
	function f1 ( ) runs on GeneralComp {}

    testcase TC_Sem_210304_kill_test_component_003() runs on GeneralComp system GeneralComp {
        var GeneralComp ptc;
        var GeneralComp ptc2;
		ptc:=GeneralComp.create alive;
		ptc2:=GeneralComp.create alive;

		ptc.start(f1());
		ptc2.start(f1());
        ptc.kill;


		if (match(ptc.alive, false) and match(ptc2.alive, true)) {
        setverdict(pass);
        }
        else
        {
        setverdict(fail);
        }

    }

    control {
        execute(TC_Sem_210304_kill_test_component_003());
    }
}