30 lines
889 B
Python
30 lines
889 B
Python
# Test that a simple Python automaton can be stopped cleanly
|
|
#
|
|
# Author: Bob Jacobsen, copyright 2017
|
|
# Part of the JMRI distribution
|
|
|
|
import java
|
|
import jmri
|
|
import time
|
|
|
|
# The following line is to set up a programmer for a test without a system connection, not needed usually
|
|
jmri.InstanceManager.setDefault(jmri.AddressedProgrammerManager, jmri.progdebugger.DebugProgrammerManager())
|
|
|
|
# run the script
|
|
execfile("jython/OpsProgExample.py")
|
|
|
|
name = "ops programming sample script"
|
|
|
|
# wait a bit to operate
|
|
time.sleep(1.0) # wait 1 second
|
|
|
|
# tell it to stop
|
|
jmri.jmrit.automat.AutomatSummary.instance().get(name).stop()
|
|
|
|
time.sleep(0.5) # wait 0.5 second
|
|
# confirm that it has stopped
|
|
for t in java.lang.Thread.getAllStackTraces().keySet() :
|
|
if (t.getName() == name) :
|
|
if (t.getState() != java.lang.Thread.State.TERMINATED) : raise AssertionError('thread did not TERMINATE')
|
|
|