提交 08a63553 编写于 作者: P Peter Maydell

Merge remote-tracking branch 'remotes/rth/tags/pull-decode-20180222' into staging

Add decodetree.py

# gpg: Signature made Thu 22 Feb 2018 23:44:43 GMT
# gpg:                using RSA key 64DF38E8AF7E215F
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>"
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A  05C0 64DF 38E8 AF7E 215F

* remotes/rth/tags/pull-decode-20180222:
  scripts: Add decodetree.py
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
此差异已折叠。
......@@ -932,6 +932,13 @@ $(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
@diff -q $(SRC_PATH)/tests/qapi-schema/doc-good.texi $<
.PHONY: check-decodetree
check-decodetree:
$(call quiet-command, \
cd $(SRC_PATH)/tests/decode && \
./check.sh "$(PYTHON)" "$(SRC_PATH)/scripts/decodetree.py", \
TEST, decodetree.py)
# Consolidated targets
.PHONY: check-qapi-schema check-qtest check-unit check check-clean
......@@ -940,7 +947,7 @@ check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
check-unit: $(patsubst %,check-%, $(check-unit-y))
check-speed: $(patsubst %,check-%, $(check-speed-y))
check-block: $(patsubst %,check-%, $(check-block-y))
check: check-qapi-schema check-unit check-qtest
check: check-qapi-schema check-unit check-qtest check-decodetree
check-clean:
$(MAKE) -C tests/tcg clean
rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
......
#!/bin/sh
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
PYTHON=$1
DECODETREE=$2
E=0
# All of these tests should produce errors
for i in err_*.decode; do
if $PYTHON $DECODETREE $i > /dev/null 2> /dev/null; then
# Pass, aka failed to fail.
echo FAIL: $i 1>&2
E=1
fi
done
exit $E
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose duplicate member names
&args a a
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose invalid member names
&args a b c d0 0e
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose invalid field syntax
%field asdf
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose invalid field width.
%field 0:33
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose invalid field position.
%field 31:2
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose duplicate field name.
%field 0:1
%field 0:1
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose duplicate function specifier.
%field 0:1 !function=a !function=a
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose uninitialized member in pattern.
&args a b
insn 00000000 00000000 00000000 b:8 &args
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose member initialized twice in pattern.
&args a b
insn 00000000 00000000 a:8 b:8 &args a=1
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose member initialized twice in pattern + format.
&args a
@format ........ ........ a:16 &args
insn 00000000 00000000 a:16 @format
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose uninitialized member in pattern + format.
&args a b
@format ........ ........ a:16 &args
insn 00000000 00000000 ........ ........ @format
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose field overlapping fixedbits.
%field 0:1
insn 00000000 00000000 00000000 00000000 %field
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose field overlapping fixedbits w/format.
@format ........ ........ ........ ....... fld:1
insn 00000000 00000000 00000000 00000000 @format
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose field overlapping unspecified bits.
%field 0:1
insn 00000000 00000000 00000000 -------- %field
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose fixed bits overlapping unspecified bits.
@format ........ ........ ........ .......-
insn 00000000 00000000 00000000 00000000 @format
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose overlapping sub-fields.
%field 3:5 0:5
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose overlapping fixed bits w/format.
@format ........ ........ ........ .......1
insn 00000000 00000000 00000000 00000000 @format
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose overlapping patterns.
insn1 00000000 00000000 00000000 00000000
insn2 00000000 00000000 00000000 00000000
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose not specified bit (. vs -).
insn 00000000 00000000 00000000 0000000.
# This work is licensed under the terms of the GNU LGPL, version 2 or later.
# See the COPYING.LIB file in the top-level directory.
# Diagnose not specified bit (. vs -) w/format.
@format ........ a:8 ........ b:7 .
insn 00000000 ........ 00000000 ........ @format
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册