NAME=pfd test [2]B (pe_characteristics)var0
FILE==
BROKEN=1
CMDS=<<EOF
td "enum pe_characteristics {IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE=0x40, IMAGE_DLLCHARACTERISTICS_NX_COMPAT=0x100, IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE=0x8000};"
wx 0x00008140
pfn test "B (pe_characteristics)var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|B|var0|<var0>pe_characteristics.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE, pe_characteristics.IMAGE_DLLCHARACTERISTICS_NX_COMPAT, pe_characteristics.IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}"];
}
EOF
RUN

NAME=pfd test E (elf_type)var0
FILE==
CMDS=<<EOF
td "enum elf_type {ET_HIPROC=0xffff};"
wx 0xffff
pfn test "E (elf_type)var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|E|var0|<var0>elf_type.ET_HIPROC}"];
}
EOF
RUN

NAME=pfd test i var0
FILE==
CMDS=<<EOF
wv4 0x100
pfn test "i var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|i|var0|<var0>0x00000100}"];
}
EOF
RUN

NAME=pfd test w var0
FILE==
CMDS=<<EOF
wv2 0x1234
pfn test "w var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|w|var0|<var0>0x1234}"];
}
EOF
RUN

NAME=pfd test x var0
FILE==
CMDS=<<EOF
wv4 0x12345678
pfn test "x var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|x|var0|<var0>0x12345678}"];
}
EOF
RUN

NAME=pfd test z var0
FILE==
CMDS=<<EOF
w foobar
pfn test "z var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|z|var0|<var0>\"foobar\"}"];
}
EOF
RUN

NAME=pfd test zz var0 var1
FILE==
CMDS=<<EOF
w string1
w string2 @ 0x8
pfn test "zz var0 var1"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{0x0|z|var0|<var0>\"string1\"}|{0x8|z|var1|<var1>\"string2\"}"];
}
EOF
RUN
