use the INSTR environment variable instead of PREFIX
This commit is contained in:
50
test/test.py
50
test/test.py
@ -40,53 +40,53 @@ def get_piped_output(proc):
|
||||
|
||||
return stdqueue, errqueue
|
||||
|
||||
def getState(prefix, name):
|
||||
result = run(['caget', f'{prefix}:{name}:STATUS'], stdout=PIPE)
|
||||
def getState(instr, name):
|
||||
result = run(['caget', f'{instr}{name}:STATUS'], stdout=PIPE)
|
||||
state = result.stdout.decode('ascii').rstrip().split()[1]
|
||||
print(f'Currently in state {state}')
|
||||
return state
|
||||
|
||||
def getCount(prefix, name, ch):
|
||||
result = run(['caget', f'{prefix}:{name}:M{ch}'], stdout=PIPE)
|
||||
def getCount(instr, name, ch):
|
||||
result = run(['caget', f'{instr}{name}:M{ch}'], stdout=PIPE)
|
||||
count = int(result.stdout.decode('ascii').rstrip().split()[1])
|
||||
print(f'M{ch} == {count}')
|
||||
return count
|
||||
|
||||
def presetTime(prefix, name, time):
|
||||
def presetTime(instr, name, time):
|
||||
print(f'Starting count for {time} seconds')
|
||||
run(['caput', f'{prefix}:{name}:PRESET-TIME', f'{time}'])
|
||||
run(['caput', f'{instr}{name}:PRESET-TIME', f'{time}'])
|
||||
|
||||
def presetCount(prefix, name, count):
|
||||
def presetCount(instr, name, count):
|
||||
print(f'Starting count until channel 1 reaches {count}')
|
||||
run(['caput', f'{prefix}:{name}:PRESET-COUNT', f'{count}'])
|
||||
run(['caput', f'{instr}{name}:PRESET-COUNT', f'{count}'])
|
||||
|
||||
def testCanCount(prefix, name):
|
||||
def testCanCount(instr, name):
|
||||
# Check in Idle State
|
||||
assert getState(prefix, name) == 'Idle', 'Not in valid state'
|
||||
assert getState(instr, name) == 'Idle', 'Not in valid state'
|
||||
|
||||
# Start Time Based Count and Check that Status Changes
|
||||
assert getCount(prefix, name, 1) == 0, "Erroneous nonzero starting count value"
|
||||
presetTime(prefix, name, 5)
|
||||
assert getCount(instr, name, 1) == 0, "Erroneous nonzero starting count value"
|
||||
presetTime(instr, name, 5)
|
||||
time.sleep(1)
|
||||
assert getState(prefix, name) == 'Counting', 'Didn\'t start counting'
|
||||
assert getState(instr, name) == 'Counting', 'Didn\'t start counting'
|
||||
time.sleep(5)
|
||||
assert getState(prefix, name) == 'Idle', 'Didn\'t finish counting'
|
||||
assert getCount(prefix, name, 1) > 0, 'No events were counted'
|
||||
assert getState(instr, name) == 'Idle', 'Didn\'t finish counting'
|
||||
assert getCount(instr, name, 1) > 0, 'No events were counted'
|
||||
|
||||
# Start Monitor Based Count and Check that Status Changes
|
||||
presetAmount = 100
|
||||
presetCount(prefix, name, presetAmount)
|
||||
presetCount(instr, name, presetAmount)
|
||||
time.sleep(1)
|
||||
assert getState(prefix, name) == 'Counting', 'Didn\'t start counting'
|
||||
assert getCount(prefix, name, 1) < presetAmount
|
||||
while getState(prefix, name) != 'Idle':
|
||||
assert getState(instr, name) == 'Counting', 'Didn\'t start counting'
|
||||
assert getCount(instr, name, 1) < presetAmount
|
||||
while getState(instr, name) != 'Idle':
|
||||
time.sleep(1)
|
||||
assert getCount(prefix, name, 1) == presetAmount, 'Counted events not equal to preset'
|
||||
assert getCount(prefix, name, 2) > 0
|
||||
assert getCount(instr, name, 1) == presetAmount, 'Counted events not equal to preset'
|
||||
assert getCount(instr, name, 2) > 0
|
||||
|
||||
def test(prefix, name):
|
||||
def test(instr, name):
|
||||
|
||||
# TODO pass prefix and name to script
|
||||
# TODO pass instr and name to script
|
||||
proc = Popen([f'{os.environ["PARENT_PATH"]}/ioc.sh'], stdout=PIPE, stderr=PIPE, shell=False)
|
||||
|
||||
try:
|
||||
@ -104,7 +104,7 @@ def test(prefix, name):
|
||||
print("IOC Initialisation Complete")
|
||||
print("Starting Tests")
|
||||
|
||||
testCanCount(prefix, name)
|
||||
testCanCount(instr, name)
|
||||
|
||||
print("Success")
|
||||
proc.kill()
|
||||
@ -123,7 +123,7 @@ if __name__ == '__main__':
|
||||
print("Starting Test")
|
||||
|
||||
# Test V2
|
||||
if test('SQ:TEST', 'CB_TEST'):
|
||||
if test('SQ:TEST:', 'CB_TEST'):
|
||||
exit(0)
|
||||
else:
|
||||
exit(1)
|
||||
|
Reference in New Issue
Block a user