浏览代码

qapi: Speed up frontend tests

"make check-qapi-schema" takes around 10s user + system time for me.
With -j, it takes a bit over 3s real time.  We have worse tests.  It's
still annoying when you work on the QAPI generator.

Some 1.4s user + system time is consumed by make figuring out what to
do, measured by making a target that does nothing.  There's nothing I
can do about that right now.  But let's see what we can do about the
other 8s.

Almost 7s are spent running test-qapi.py for every test case, the rest
normalizing and diffing test-qapi.py output.  We have 190 test cases.

If I downgrade to python2, it's 4.5s, but python2 is a goner.

Hacking up test-qapi.py to exit(0) without doing anything makes it
only marginally faster.  The problem is Python startup overhead.

Our configure puts -B into $(PYTHON).  Running without -B is faster:
4.4s.

We could improve the Makefile to run test cases only when the test
case or the generator changed.  But I'm after improvement in the case
where the generator changed.

test-qapi.py is designed to be the simplest possible building block
for a shell script to do the complete job (it's actually a Makefile,
not a shell script; no real difference).  Python is just not meant for
that.  It's for bigger blocks.

Move the post-processing and diffing into test-qapi.py, and make it
capable of testing multiple schema files.  Set executable bits while
there.

Running it once per test case now takes slightly longer than 8s.  But
running it once for all of them takes under 0.2s.

Messing with the Makefile to run it only on the tests that need
retesting is clearly not worth the bother.

Expected error output changes because the new normalization strips off
$(SRCDIR)/tests/qapi-schema/ instead of just $(SRCDIR)/.

The .exit files go away, because there is no exit status to test
anymore.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20191018074345.24034-5-armbru@redhat.com>
Markus Armbruster 5 年之前
父节点
当前提交
f01338cce6
共有 100 个文件被更改,包括 96 次插入152 次删除
  1. 5 11
      tests/Makefile.include
  2. 2 2
      tests/qapi-schema/allow-preconfig-test.err
  3. 0 1
      tests/qapi-schema/allow-preconfig-test.exit
  4. 2 2
      tests/qapi-schema/alternate-any.err
  5. 0 1
      tests/qapi-schema/alternate-any.exit
  6. 2 2
      tests/qapi-schema/alternate-array.err
  7. 0 1
      tests/qapi-schema/alternate-array.exit
  8. 2 2
      tests/qapi-schema/alternate-base.err
  9. 0 1
      tests/qapi-schema/alternate-base.exit
  10. 2 2
      tests/qapi-schema/alternate-branch-if-invalid.err
  11. 0 1
      tests/qapi-schema/alternate-branch-if-invalid.exit
  12. 2 2
      tests/qapi-schema/alternate-clash.err
  13. 0 1
      tests/qapi-schema/alternate-clash.exit
  14. 2 2
      tests/qapi-schema/alternate-conflict-bool-string.err
  15. 0 1
      tests/qapi-schema/alternate-conflict-bool-string.exit
  16. 2 2
      tests/qapi-schema/alternate-conflict-dict.err
  17. 0 1
      tests/qapi-schema/alternate-conflict-dict.exit
  18. 2 2
      tests/qapi-schema/alternate-conflict-enum-bool.err
  19. 0 1
      tests/qapi-schema/alternate-conflict-enum-bool.exit
  20. 2 2
      tests/qapi-schema/alternate-conflict-enum-int.err
  21. 0 1
      tests/qapi-schema/alternate-conflict-enum-int.exit
  22. 2 2
      tests/qapi-schema/alternate-conflict-num-string.err
  23. 0 1
      tests/qapi-schema/alternate-conflict-num-string.exit
  24. 2 2
      tests/qapi-schema/alternate-conflict-string.err
  25. 0 1
      tests/qapi-schema/alternate-conflict-string.exit
  26. 2 2
      tests/qapi-schema/alternate-empty.err
  27. 0 1
      tests/qapi-schema/alternate-empty.exit
  28. 2 2
      tests/qapi-schema/alternate-invalid-dict.err
  29. 0 1
      tests/qapi-schema/alternate-invalid-dict.exit
  30. 2 2
      tests/qapi-schema/alternate-nested.err
  31. 0 1
      tests/qapi-schema/alternate-nested.exit
  32. 2 2
      tests/qapi-schema/alternate-unknown.err
  33. 0 1
      tests/qapi-schema/alternate-unknown.exit
  34. 2 2
      tests/qapi-schema/args-alternate.err
  35. 0 1
      tests/qapi-schema/args-alternate.exit
  36. 2 2
      tests/qapi-schema/args-any.err
  37. 0 1
      tests/qapi-schema/args-any.exit
  38. 2 2
      tests/qapi-schema/args-array-empty.err
  39. 0 1
      tests/qapi-schema/args-array-empty.exit
  40. 2 2
      tests/qapi-schema/args-array-unknown.err
  41. 0 1
      tests/qapi-schema/args-array-unknown.exit
  42. 2 2
      tests/qapi-schema/args-bad-boxed.err
  43. 0 1
      tests/qapi-schema/args-bad-boxed.exit
  44. 2 2
      tests/qapi-schema/args-boxed-anon.err
  45. 0 1
      tests/qapi-schema/args-boxed-anon.exit
  46. 2 2
      tests/qapi-schema/args-boxed-string.err
  47. 0 1
      tests/qapi-schema/args-boxed-string.exit
  48. 2 2
      tests/qapi-schema/args-int.err
  49. 0 1
      tests/qapi-schema/args-int.exit
  50. 2 2
      tests/qapi-schema/args-invalid.err
  51. 0 1
      tests/qapi-schema/args-invalid.exit
  52. 2 2
      tests/qapi-schema/args-member-array-bad.err
  53. 0 1
      tests/qapi-schema/args-member-array-bad.exit
  54. 2 2
      tests/qapi-schema/args-member-case.err
  55. 0 1
      tests/qapi-schema/args-member-case.exit
  56. 2 2
      tests/qapi-schema/args-member-unknown.err
  57. 0 1
      tests/qapi-schema/args-member-unknown.exit
  58. 2 2
      tests/qapi-schema/args-name-clash.err
  59. 0 1
      tests/qapi-schema/args-name-clash.exit
  60. 2 2
      tests/qapi-schema/args-union.err
  61. 0 1
      tests/qapi-schema/args-union.exit
  62. 2 2
      tests/qapi-schema/args-unknown.err
  63. 0 1
      tests/qapi-schema/args-unknown.exit
  64. 2 2
      tests/qapi-schema/bad-base.err
  65. 0 1
      tests/qapi-schema/bad-base.exit
  66. 2 2
      tests/qapi-schema/bad-data.err
  67. 0 1
      tests/qapi-schema/bad-data.exit
  68. 2 2
      tests/qapi-schema/bad-ident.err
  69. 0 1
      tests/qapi-schema/bad-ident.exit
  70. 2 2
      tests/qapi-schema/bad-if-empty-list.err
  71. 0 1
      tests/qapi-schema/bad-if-empty-list.exit
  72. 2 2
      tests/qapi-schema/bad-if-empty.err
  73. 0 1
      tests/qapi-schema/bad-if-empty.exit
  74. 2 2
      tests/qapi-schema/bad-if-list.err
  75. 0 1
      tests/qapi-schema/bad-if-list.exit
  76. 2 2
      tests/qapi-schema/bad-if.err
  77. 0 1
      tests/qapi-schema/bad-if.exit
  78. 1 1
      tests/qapi-schema/bad-type-bool.err
  79. 0 1
      tests/qapi-schema/bad-type-bool.exit
  80. 1 1
      tests/qapi-schema/bad-type-dict.err
  81. 0 1
      tests/qapi-schema/bad-type-dict.exit
  82. 1 1
      tests/qapi-schema/bad-type-int.err
  83. 0 1
      tests/qapi-schema/bad-type-int.exit
  84. 2 2
      tests/qapi-schema/base-cycle-direct.err
  85. 0 1
      tests/qapi-schema/base-cycle-direct.exit
  86. 2 2
      tests/qapi-schema/base-cycle-indirect.err
  87. 0 1
      tests/qapi-schema/base-cycle-indirect.exit
  88. 2 2
      tests/qapi-schema/command-int.err
  89. 0 1
      tests/qapi-schema/command-int.exit
  90. 0 1
      tests/qapi-schema/comments.exit
  91. 1 1
      tests/qapi-schema/doc-bad-alternate-member.err
  92. 0 1
      tests/qapi-schema/doc-bad-alternate-member.exit
  93. 1 1
      tests/qapi-schema/doc-bad-command-arg.err
  94. 0 1
      tests/qapi-schema/doc-bad-command-arg.exit
  95. 0 1
      tests/qapi-schema/doc-bad-section.exit
  96. 2 2
      tests/qapi-schema/doc-bad-symbol.err
  97. 0 1
      tests/qapi-schema/doc-bad-symbol.exit
  98. 1 1
      tests/qapi-schema/doc-bad-union-member.err
  99. 0 1
      tests/qapi-schema/doc-bad-union-member.exit
  100. 1 1
      tests/qapi-schema/doc-before-include.err

+ 5 - 11
tests/Makefile.include

@@ -1102,17 +1102,11 @@ check-tests/check-block.sh: tests/check-block.sh qemu-img$(EXESUF) \
 		$(patsubst %,%/all,$(filter %-softmmu,$(TARGET_DIRS)))
 		$(patsubst %,%/all,$(filter %-softmmu,$(TARGET_DIRS)))
 	@$<
 	@$<
 
 
-.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y))
-$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
+.PHONY: check-tests/qapi-schema/frontend
+check-tests/qapi-schema/frontend: $(addprefix $(SRC_PATH)/, $(check-qapi-schema-y))
 	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
 	$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \
-		PYTHONIOENCODING=utf-8 $(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \
-		$^ >$*.test.out 2>$*.test.err; \
-		echo $$? >$*.test.exit, \
-		"TEST","$*.out")
-	@# Sanitize error messages (make them independent of build directory)
-	@perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -u $(SRC_PATH)/$*.err -
-	@diff -u $(SRC_PATH)/$*.out $*.test.out
-	@diff -u $(SRC_PATH)/$*.exit $*.test.exit
+	  PYTHONIOENCODING=utf-8 $(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py $^, \
+	  TEST, check-qapi-schema)
 
 
 .PHONY: check-tests/qapi-schema/doc-good.texi
 .PHONY: check-tests/qapi-schema/doc-good.texi
 check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
 check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi
@@ -1170,7 +1164,7 @@ check-acceptance: check-venv $(TESTS_RESULTS_DIR)
 # Consolidated targets
 # Consolidated targets
 
 
 .PHONY: check-block check-qapi-schema check-qtest check-unit check check-clean
 .PHONY: check-block check-qapi-schema check-qtest check-unit check check-clean
-check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi
+check-qapi-schema: check-tests/qapi-schema/frontend check-tests/qapi-schema/doc-good.texi
 check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
 check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS))
 check-block: $(patsubst %,check-%, $(check-block-y))
 check-block: $(patsubst %,check-%, $(check-block-y))
 check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree
 check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree

+ 2 - 2
tests/qapi-schema/allow-preconfig-test.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/allow-preconfig-test.json: In command 'allow-preconfig-test':
-tests/qapi-schema/allow-preconfig-test.json:2: flag 'allow-preconfig' may only use true value
+allow-preconfig-test.json: In command 'allow-preconfig-test':
+allow-preconfig-test.json:2: flag 'allow-preconfig' may only use true value

+ 0 - 1
tests/qapi-schema/allow-preconfig-test.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-any.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-any.json: In alternate 'Alt':
-tests/qapi-schema/alternate-any.json:2: branch 'one' cannot use built-in type 'any'
+alternate-any.json: In alternate 'Alt':
+alternate-any.json:2: branch 'one' cannot use built-in type 'any'

+ 0 - 1
tests/qapi-schema/alternate-any.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-array.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-array.json: In alternate 'Alt':
-tests/qapi-schema/alternate-array.json:5: 'data' member 'two' cannot be an array
+alternate-array.json: In alternate 'Alt':
+alternate-array.json:5: 'data' member 'two' cannot be an array

+ 0 - 1
tests/qapi-schema/alternate-array.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-base.err

@@ -1,3 +1,3 @@
-tests/qapi-schema/alternate-base.json: In alternate 'Alt':
-tests/qapi-schema/alternate-base.json:4: alternate has unknown key 'base'
+alternate-base.json: In alternate 'Alt':
+alternate-base.json:4: alternate has unknown key 'base'
 Valid keys are 'alternate', 'data', 'if'.
 Valid keys are 'alternate', 'data', 'if'.

+ 0 - 1
tests/qapi-schema/alternate-base.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-branch-if-invalid.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-branch-if-invalid.json: In alternate 'Alt':
-tests/qapi-schema/alternate-branch-if-invalid.json:2: 'if' condition ' ' of 'data' member 'branch' makes no sense
+alternate-branch-if-invalid.json: In alternate 'Alt':
+alternate-branch-if-invalid.json:2: 'if' condition ' ' of 'data' member 'branch' makes no sense

+ 0 - 1
tests/qapi-schema/alternate-branch-if-invalid.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-clash.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-clash.json: In alternate 'Alt1':
-tests/qapi-schema/alternate-clash.json:7: branch 'a_b' collides with branch 'a-b'
+alternate-clash.json: In alternate 'Alt1':
+alternate-clash.json:7: branch 'a_b' collides with branch 'a-b'

+ 0 - 1
tests/qapi-schema/alternate-clash.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-conflict-bool-string.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-conflict-bool-string.json: In alternate 'Alt':
-tests/qapi-schema/alternate-conflict-bool-string.json:2: branch 'two' can't be distinguished from 'one'
+alternate-conflict-bool-string.json: In alternate 'Alt':
+alternate-conflict-bool-string.json:2: branch 'two' can't be distinguished from 'one'

+ 0 - 1
tests/qapi-schema/alternate-conflict-bool-string.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-conflict-dict.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-conflict-dict.json: In alternate 'Alt':
-tests/qapi-schema/alternate-conflict-dict.json:6: branch 'two' can't be distinguished from 'one'
+alternate-conflict-dict.json: In alternate 'Alt':
+alternate-conflict-dict.json:6: branch 'two' can't be distinguished from 'one'

+ 0 - 1
tests/qapi-schema/alternate-conflict-dict.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-conflict-enum-bool.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-conflict-enum-bool.json: In alternate 'Alt':
-tests/qapi-schema/alternate-conflict-enum-bool.json:4: branch 'two' can't be distinguished from 'one'
+alternate-conflict-enum-bool.json: In alternate 'Alt':
+alternate-conflict-enum-bool.json:4: branch 'two' can't be distinguished from 'one'

+ 0 - 1
tests/qapi-schema/alternate-conflict-enum-bool.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-conflict-enum-int.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-conflict-enum-int.json: In alternate 'Alt':
-tests/qapi-schema/alternate-conflict-enum-int.json:4: branch 'two' can't be distinguished from 'one'
+alternate-conflict-enum-int.json: In alternate 'Alt':
+alternate-conflict-enum-int.json:4: branch 'two' can't be distinguished from 'one'

+ 0 - 1
tests/qapi-schema/alternate-conflict-enum-int.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-conflict-num-string.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-conflict-num-string.json: In alternate 'Alt':
-tests/qapi-schema/alternate-conflict-num-string.json:2: branch 'two' can't be distinguished from 'one'
+alternate-conflict-num-string.json: In alternate 'Alt':
+alternate-conflict-num-string.json:2: branch 'two' can't be distinguished from 'one'

+ 0 - 1
tests/qapi-schema/alternate-conflict-num-string.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-conflict-string.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-conflict-string.json: In alternate 'Alt':
-tests/qapi-schema/alternate-conflict-string.json:2: branch 'two' can't be distinguished from 'one'
+alternate-conflict-string.json: In alternate 'Alt':
+alternate-conflict-string.json:2: branch 'two' can't be distinguished from 'one'

+ 0 - 1
tests/qapi-schema/alternate-conflict-string.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-empty.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-empty.json: In alternate 'Alt':
-tests/qapi-schema/alternate-empty.json:2: 'data' must not be empty
+alternate-empty.json: In alternate 'Alt':
+alternate-empty.json:2: 'data' must not be empty

+ 0 - 1
tests/qapi-schema/alternate-empty.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-invalid-dict.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-invalid-dict.json: In alternate 'Alt':
-tests/qapi-schema/alternate-invalid-dict.json:2: 'data' member 'two' misses key 'type'
+alternate-invalid-dict.json: In alternate 'Alt':
+alternate-invalid-dict.json:2: 'data' member 'two' misses key 'type'

+ 0 - 1
tests/qapi-schema/alternate-invalid-dict.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-nested.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-nested.json: In alternate 'Alt2':
-tests/qapi-schema/alternate-nested.json:4: branch 'nested' cannot use alternate type 'Alt1'
+alternate-nested.json: In alternate 'Alt2':
+alternate-nested.json:4: branch 'nested' cannot use alternate type 'Alt1'

+ 0 - 1
tests/qapi-schema/alternate-nested.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/alternate-unknown.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/alternate-unknown.json: In alternate 'Alt':
-tests/qapi-schema/alternate-unknown.json:2: branch 'unknown' uses unknown type 'MissingType'
+alternate-unknown.json: In alternate 'Alt':
+alternate-unknown.json:2: branch 'unknown' uses unknown type 'MissingType'

+ 0 - 1
tests/qapi-schema/alternate-unknown.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-alternate.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-alternate.json: In command 'oops':
-tests/qapi-schema/args-alternate.json:3: command's 'data' cannot take alternate type 'Alt'
+args-alternate.json: In command 'oops':
+args-alternate.json:3: command's 'data' cannot take alternate type 'Alt'

+ 0 - 1
tests/qapi-schema/args-alternate.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-any.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-any.json: In command 'oops':
-tests/qapi-schema/args-any.json:2: command's 'data' cannot take built-in type 'any'
+args-any.json: In command 'oops':
+args-any.json:2: command's 'data' cannot take built-in type 'any'

+ 0 - 1
tests/qapi-schema/args-any.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-array-empty.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-array-empty.json: In command 'oops':
-tests/qapi-schema/args-array-empty.json:2: 'data' member 'empty': array type must contain single type name
+args-array-empty.json: In command 'oops':
+args-array-empty.json:2: 'data' member 'empty': array type must contain single type name

+ 0 - 1
tests/qapi-schema/args-array-empty.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-array-unknown.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-array-unknown.json: In command 'oops':
-tests/qapi-schema/args-array-unknown.json:2: command uses unknown type 'NoSuchType'
+args-array-unknown.json: In command 'oops':
+args-array-unknown.json:2: command uses unknown type 'NoSuchType'

+ 0 - 1
tests/qapi-schema/args-array-unknown.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-bad-boxed.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-bad-boxed.json: In command 'foo':
-tests/qapi-schema/args-bad-boxed.json:2: flag 'boxed' may only use true value
+args-bad-boxed.json: In command 'foo':
+args-bad-boxed.json:2: flag 'boxed' may only use true value

+ 0 - 1
tests/qapi-schema/args-bad-boxed.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-boxed-anon.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-boxed-anon.json: In command 'foo':
-tests/qapi-schema/args-boxed-anon.json:2: 'data' should be a type name
+args-boxed-anon.json: In command 'foo':
+args-boxed-anon.json:2: 'data' should be a type name

+ 0 - 1
tests/qapi-schema/args-boxed-anon.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-boxed-string.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-boxed-string.json: In command 'foo':
-tests/qapi-schema/args-boxed-string.json:2: command's 'data' cannot take built-in type 'str'
+args-boxed-string.json: In command 'foo':
+args-boxed-string.json:2: command's 'data' cannot take built-in type 'str'

+ 0 - 1
tests/qapi-schema/args-boxed-string.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-int.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-int.json: In command 'oops':
-tests/qapi-schema/args-int.json:2: command's 'data' cannot take built-in type 'int'
+args-int.json: In command 'oops':
+args-int.json:2: command's 'data' cannot take built-in type 'int'

+ 0 - 1
tests/qapi-schema/args-int.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-invalid.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-invalid.json: In command 'foo':
-tests/qapi-schema/args-invalid.json:1: 'data' should be an object or type name
+args-invalid.json: In command 'foo':
+args-invalid.json:1: 'data' should be an object or type name

+ 0 - 1
tests/qapi-schema/args-invalid.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-member-array-bad.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-member-array-bad.json: In command 'oops':
-tests/qapi-schema/args-member-array-bad.json:2: 'data' member 'member': array type must contain single type name
+args-member-array-bad.json: In command 'oops':
+args-member-array-bad.json:2: 'data' member 'member': array type must contain single type name

+ 0 - 1
tests/qapi-schema/args-member-array-bad.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-member-case.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-member-case.json: In command 'no-way-this-will-get-whitelisted':
-tests/qapi-schema/args-member-case.json:2: 'data' member 'Arg' uses uppercase in name
+args-member-case.json: In command 'no-way-this-will-get-whitelisted':
+args-member-case.json:2: 'data' member 'Arg' uses uppercase in name

+ 0 - 1
tests/qapi-schema/args-member-case.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-member-unknown.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-member-unknown.json: In command 'oops':
-tests/qapi-schema/args-member-unknown.json:2: parameter 'member' uses unknown type 'NoSuchType'
+args-member-unknown.json: In command 'oops':
+args-member-unknown.json:2: parameter 'member' uses unknown type 'NoSuchType'

+ 0 - 1
tests/qapi-schema/args-member-unknown.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-name-clash.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-name-clash.json: In command 'oops':
-tests/qapi-schema/args-name-clash.json:4: parameter 'a_b' collides with parameter 'a-b'
+args-name-clash.json: In command 'oops':
+args-name-clash.json:4: parameter 'a_b' collides with parameter 'a-b'

+ 0 - 1
tests/qapi-schema/args-name-clash.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-union.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-union.json: In command 'oops':
-tests/qapi-schema/args-union.json:3: command's 'data' can take union type 'Uni' only with 'boxed': true
+args-union.json: In command 'oops':
+args-union.json:3: command's 'data' can take union type 'Uni' only with 'boxed': true

+ 0 - 1
tests/qapi-schema/args-union.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/args-unknown.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/args-unknown.json: In command 'oops':
-tests/qapi-schema/args-unknown.json:2: command's 'data' uses unknown type 'NoSuchType'
+args-unknown.json: In command 'oops':
+args-unknown.json:2: command's 'data' uses unknown type 'NoSuchType'

+ 0 - 1
tests/qapi-schema/args-unknown.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-base.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-base.json: In struct 'MyType':
-tests/qapi-schema/bad-base.json:3: 'base' requires a struct type, union type 'Union' isn't
+bad-base.json: In struct 'MyType':
+bad-base.json:3: 'base' requires a struct type, union type 'Union' isn't

+ 0 - 1
tests/qapi-schema/bad-base.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-data.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-data.json: In command 'oops':
-tests/qapi-schema/bad-data.json:2: 'data' cannot be an array
+bad-data.json: In command 'oops':
+bad-data.json:2: 'data' cannot be an array

+ 0 - 1
tests/qapi-schema/bad-data.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-ident.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-ident.json: In struct '*oops':
-tests/qapi-schema/bad-ident.json:2: struct has an invalid name
+bad-ident.json: In struct '*oops':
+bad-ident.json:2: struct has an invalid name

+ 0 - 1
tests/qapi-schema/bad-ident.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-if-empty-list.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-if-empty-list.json: In struct 'TestIfStruct':
-tests/qapi-schema/bad-if-empty-list.json:2: 'if' condition [] of struct is useless
+bad-if-empty-list.json: In struct 'TestIfStruct':
+bad-if-empty-list.json:2: 'if' condition [] of struct is useless

+ 0 - 1
tests/qapi-schema/bad-if-empty-list.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-if-empty.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-if-empty.json: In struct 'TestIfStruct':
-tests/qapi-schema/bad-if-empty.json:2: 'if' condition '' of struct makes no sense
+bad-if-empty.json: In struct 'TestIfStruct':
+bad-if-empty.json:2: 'if' condition '' of struct makes no sense

+ 0 - 1
tests/qapi-schema/bad-if-empty.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-if-list.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-if-list.json: In struct 'TestIfStruct':
-tests/qapi-schema/bad-if-list.json:2: 'if' condition ' ' of struct makes no sense
+bad-if-list.json: In struct 'TestIfStruct':
+bad-if-list.json:2: 'if' condition ' ' of struct makes no sense

+ 0 - 1
tests/qapi-schema/bad-if-list.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/bad-if.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/bad-if.json: In struct 'TestIfStruct':
-tests/qapi-schema/bad-if.json:2: 'if' condition of struct must be a string or a list of strings
+bad-if.json: In struct 'TestIfStruct':
+bad-if.json:2: 'if' condition of struct must be a string or a list of strings

+ 0 - 1
tests/qapi-schema/bad-if.exit

@@ -1 +0,0 @@
-1

+ 1 - 1
tests/qapi-schema/bad-type-bool.err

@@ -1 +1 @@
-tests/qapi-schema/bad-type-bool.json:2: 'struct' requires a string name
+bad-type-bool.json:2: 'struct' requires a string name

+ 0 - 1
tests/qapi-schema/bad-type-bool.exit

@@ -1 +0,0 @@
-1

+ 1 - 1
tests/qapi-schema/bad-type-dict.err

@@ -1 +1 @@
-tests/qapi-schema/bad-type-dict.json:2: 'command' requires a string name
+bad-type-dict.json:2: 'command' requires a string name

+ 0 - 1
tests/qapi-schema/bad-type-dict.exit

@@ -1 +0,0 @@
-1

+ 1 - 1
tests/qapi-schema/bad-type-int.err

@@ -1 +1 @@
-tests/qapi-schema/bad-type-int.json:3:13: stray '123'
+bad-type-int.json:3:13: stray '123'

+ 0 - 1
tests/qapi-schema/bad-type-int.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/base-cycle-direct.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/base-cycle-direct.json: In struct 'Loopy':
-tests/qapi-schema/base-cycle-direct.json:2: object Loopy contains itself
+base-cycle-direct.json: In struct 'Loopy':
+base-cycle-direct.json:2: object Loopy contains itself

+ 0 - 1
tests/qapi-schema/base-cycle-direct.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/base-cycle-indirect.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/base-cycle-indirect.json: In struct 'Base1':
-tests/qapi-schema/base-cycle-indirect.json:2: object Base1 contains itself
+base-cycle-indirect.json: In struct 'Base1':
+base-cycle-indirect.json:2: object Base1 contains itself

+ 0 - 1
tests/qapi-schema/base-cycle-indirect.exit

@@ -1 +0,0 @@
-1

+ 2 - 2
tests/qapi-schema/command-int.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/command-int.json: In command 'int':
-tests/qapi-schema/command-int.json:2: built-in type 'int' is already defined
+command-int.json: In command 'int':
+command-int.json:2: built-in type 'int' is already defined

+ 0 - 1
tests/qapi-schema/command-int.exit

@@ -1 +0,0 @@
-1

+ 0 - 1
tests/qapi-schema/comments.exit

@@ -1 +0,0 @@
-0

+ 1 - 1
tests/qapi-schema/doc-bad-alternate-member.err

@@ -1 +1 @@
-tests/qapi-schema/doc-bad-alternate-member.json:3: the following documented members are not in the declaration: aa, bb
+doc-bad-alternate-member.json:3: the following documented members are not in the declaration: aa, bb

+ 0 - 1
tests/qapi-schema/doc-bad-alternate-member.exit

@@ -1 +0,0 @@
-1

+ 1 - 1
tests/qapi-schema/doc-bad-command-arg.err

@@ -1 +1 @@
-tests/qapi-schema/doc-bad-command-arg.json:3: the following documented members are not in the declaration: b
+doc-bad-command-arg.json:3: the following documented members are not in the declaration: b

+ 0 - 1
tests/qapi-schema/doc-bad-command-arg.exit

@@ -1 +0,0 @@
-1

+ 0 - 1
tests/qapi-schema/doc-bad-section.exit

@@ -1 +0,0 @@
-0

+ 2 - 2
tests/qapi-schema/doc-bad-symbol.err

@@ -1,2 +1,2 @@
-tests/qapi-schema/doc-bad-symbol.json: In command 'foo':
-tests/qapi-schema/doc-bad-symbol.json:6: documentation comment is for 'food'
+doc-bad-symbol.json: In command 'foo':
+doc-bad-symbol.json:6: documentation comment is for 'food'

+ 0 - 1
tests/qapi-schema/doc-bad-symbol.exit

@@ -1 +0,0 @@
-1

+ 1 - 1
tests/qapi-schema/doc-bad-union-member.err

@@ -1 +1 @@
-tests/qapi-schema/doc-bad-union-member.json:3: the following documented members are not in the declaration: a, b
+doc-bad-union-member.json:3: the following documented members are not in the declaration: a, b

+ 0 - 1
tests/qapi-schema/doc-bad-union-member.exit

@@ -1 +0,0 @@
-1

+ 1 - 1
tests/qapi-schema/doc-before-include.err

@@ -1 +1 @@
-tests/qapi-schema/doc-before-include.json:3: documentation for 'foo' is not followed by the definition
+doc-before-include.json:3: documentation for 'foo' is not followed by the definition

部分文件因为文件数量过多而无法显示