summaryrefslogtreecommitdiff
path: root/tests/hal-link-unlink/hallink.py
blob: b3831e583aad0c0dca04a11db78d93b339a2101c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/python

import subprocess
import hal

def cmd(arg):
    subprocess.call(arg, shell=True)

h = hal.component("linktest")
h.newpin("in", hal.HAL_FLOAT, hal.HAL_IN)
h.newpin("inout", hal.HAL_FLOAT, hal.HAL_IO)
h.ready()

# set pin values before linking
h['in'] = 42
h['inout'] = 43
assert h['in'] == 42
assert h['inout'] == 43

# make sure halcmd setp works as expected
cmd("halcmd setp linktest.in    4712")
cmd("halcmd setp linktest.inout 4713")
assert h['in'] == 4712
assert h['inout'] == 4713

# create virgin signals
cmd("halcmd newsig insig float")
cmd("halcmd newsig inoutsig float")

# link to them
cmd("halcmd net insig    linktest.in")
cmd("halcmd net inoutsig linktest.inout")

# verify the link did not destroy the pin values
assert h['in'] == 4712
assert h['inout'] == 4713

# now change the pin values
h['in'] = 815
h['inout'] = 816

# unlink the pins
cmd("halcmd unlinkp linktest.in")
cmd("halcmd unlinkp linktest.inout")

# verify the unlink did not destroy the pin values
# but are as inherited from the signal:
assert h['in'] == 815
assert h['inout'] == 816

# the signals should be unlinked
#cmd("halcmd show")