NAME=pfd test [2]B (pe_characteristics)var0
FILE==
CMDS=<<EOF
e asm.arch=x86
td "enum pe_characteristics {IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE=0x40, IMAGE_DLLCHARACTERISTICS_NX_COMPAT=0x100, IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE=0x8000};"
wx 40810000
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|{offset|0x0}|{type|B}|{name|<var0>var0}|{value|0x00008140 : IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE \| IMAGE_DLLCHARACTERISTICS_NX_COMPAT \| IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}"];
}
EOF
RUN

NAME=pfd test E (elf_type)var0
FILE==
CMDS=<<EOF
e asm.arch=x86
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|{offset|0x0}|{type|E}|{name|<var0>var0}|{value|0x0000ffff ; ET_HIPROC}"];
}
EOF
RUN

NAME=pfd test i var0
FILE==
CMDS=<<EOF
e asm.arch=x86
wv4 0x100
pfn test "d4 var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{offset|0x0}|{type|i}|{name|<var0>var0}|{value|256}"];
}
EOF
RUN

NAME=pfd test w var0
FILE==
CMDS=<<EOF
e asm.arch=x86
wv2 0x1234
pfn test "x2 var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{offset|0x0}|{type|w}|{name|<var0>var0}|{value|0x1234}"];
}
EOF
RUN

NAME=pfd test x var0
FILE==
CMDS=<<EOF
e asm.arch=x86
wv4 0x12345678
pfn test "x4 var0"
pfd test
EOF
EXPECT=<<EOF
digraph g { graph [ rank=same; rankdir=LR; ];
root [ rank=1; shape=record
label="test|{offset|0x0}|{type|x}|{name|<var0>var0}|{value|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|{offset|0x0}|{type|z}|{name|<var0>var0}|{value|\"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|{offset|0x0|0x8}|{type|z|z}|{name|<var0>var0|<var1>var1}|{value|\"string1\"|\"string2\"}"];
}
EOF
RUN
