* Reduce duplicate code and use a single printing API for all sorts of printing requirements
113 lines
1.7 KiB
Text
113 lines
1.7 KiB
Text
NAME=avga # add global variable
|
|
FILE==
|
|
CMDS=<<EOF
|
|
avga foo 0x100 int
|
|
avg
|
|
avga bar 0x1000 char
|
|
avg
|
|
EOF
|
|
EXPECT=<<EOF
|
|
global int foo @ 0x100
|
|
global int foo @ 0x100
|
|
global char bar @ 0x1000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=avgj # output in json mode
|
|
FILE==
|
|
CMDS=<<EOF
|
|
avga foo 0x100 int
|
|
avga bar 0x1000 char
|
|
avgj
|
|
EOF
|
|
EXPECT=<<EOF
|
|
[{"name":"foo","type":"int","addr":"0x100"},{"name":"bar","type":"char","addr":"0x1000"}]
|
|
EOF
|
|
RUN
|
|
|
|
NAME=avgd # delete global variable
|
|
FILE==
|
|
CMDS=<<EOF
|
|
avga foo 0x100 int
|
|
avga bar 0x1000 char
|
|
avg
|
|
avgd 0x100
|
|
avg
|
|
avga foofoo 0x100 int
|
|
avg
|
|
avgd 0x102
|
|
avg
|
|
EOF
|
|
EXPECT=<<EOF
|
|
global int foo @ 0x100
|
|
global char bar @ 0x1000
|
|
global char bar @ 0x1000
|
|
global char bar @ 0x1000
|
|
global int foofoo @ 0x100
|
|
global char bar @ 0x1000
|
|
EOF
|
|
RUN
|
|
|
|
NAME=avgn # rename global variable
|
|
FILE==
|
|
CMDS=<<EOF
|
|
avga foo 0x100 int
|
|
avg
|
|
avgn foo bar
|
|
avg
|
|
EOF
|
|
EXPECT=<<EOF
|
|
global int foo @ 0x100
|
|
global int bar @ 0x100
|
|
EOF
|
|
RUN
|
|
|
|
NAME=avgt # retype global variable
|
|
FILE==
|
|
CMDS=<<EOF
|
|
avga foo 0x100 int
|
|
avg
|
|
avgt foo char
|
|
avg
|
|
avgt foo "struct a { int a; char b; };"
|
|
avg
|
|
avgt foo "struct { int a; char b; void (*c)(int a, char b); };"
|
|
avg
|
|
avgt foo "union { int a; char b; };"
|
|
avg
|
|
avgt foo "enum { A=0,B,C,D };"
|
|
avg
|
|
avgt foo "enum foo { A=0,B,C,D };"
|
|
avg
|
|
avgt foo "void (*a)(int a, char b);"
|
|
avg
|
|
avgt foo "char *"
|
|
avg
|
|
avgt foo "char [50]"
|
|
avg
|
|
EOF
|
|
EXPECT=<<EOF
|
|
global int foo @ 0x100
|
|
global char foo @ 0x100
|
|
global struct a foo @ 0x100
|
|
global struct anonymous struct 0 foo @ 0x100
|
|
global union anonymous union 0 foo @ 0x100
|
|
global enum anonymous enum 0 foo @ 0x100
|
|
global enum foo foo @ 0x100
|
|
global void foo @ 0x100
|
|
global char * foo @ 0x100
|
|
global char [50] foo @ 0x100
|
|
EOF
|
|
RUN
|
|
|
|
NAME=avg <non-existing-var>
|
|
FILE==
|
|
CMDS=<<EOF
|
|
avg foo
|
|
EOF
|
|
EXPECT=<<EOF
|
|
EOF
|
|
EXPECT_ERR=<<EOF
|
|
ERROR: Global variable 'foo' does not exist!
|
|
EOF
|
|
RUN
|