comparing parallel test runs
Aldy Hernandez
aldyh@redhat.com
Wed May 17 10:23:00 GMT 2017
Hi folks.
I've been having troubles comparing the results of different test runs
for quite some time, and have finally decided to whine about it.
Perhaps someone can point out to whatever I may be doing wrong.
I generally do "make check -k -j60" on two different trees and compare
the results with:
cd /dir/current-build-tree
/gcc-sources/contrib/compare_tests /dir/previous-build-tree .
However, this gives false positives virtually every time:
New tests that FAIL:
g++.dg/tree-prof/pr79259.C execution, -g
gcc.dg/tree-prof/ic-misattribution-1.c execution, -g
gcc.dg/tree-prof/merge_block.c execution, -g
gcc.dg/tree-prof/section-attr-1.c execution, -g
gcc.dg/tree-prof/section-attr-3.c execution, -g
...
...
New tests that PASS:
g++.dg/tree-prof/partition1.C compilation, -g
g++.dg/tree-prof/partition2.C compilation, -g
g++.dg/tree-prof/partition3.C compilation, -g
g++.dg/tree-prof/pr79259.C compilation, -g
...
...
Old tests that passed, that have disappeared: (Eeek!)
g++.dg/tree-prof/indir-call-prof-2.C compilation, -g
g++.dg/tree-prof/morefunc.C compilation, -g
g++.dg/tree-prof/pr63581.C compilation, -g
gcc.dg/tree-prof/20050826-2.c compilation, -g
gcc.dg/tree-prof/bb-reorg.c compilation, -g
...
...
etc
etc
etc
More often than not the tests that get mentioned are in the
gcc.dg/tree-prof directory, but I've seen failures in gcc.dg/tree-ssa,
gcc.dg/vect and others.
When I run these tests manually (make check-gcc
RUNTESTFLAGS=tree-ssa.exp=whatever.c), they succeed.
Running with smaller -jNN usually yields less false positives, but
rarely do I get a clean run.
This has been happening for as long as I can remember (which may just be
12 months ;-)).
Has anyone seen this behavior? Is it my test box? Are there known
problems with parallel checks?
FWIW, I'm running on an x86-64 Fedora 25 running a 4.9.6-200.fc25.x86_64
kernel. The machine has 56 cores, and has dejagnu 1.6 installed.
Thanks.
Aldy
p.s. Attached is the full output from contrib/compare_tests.
-------------- next part --------------
# Comparing directories
## Dir1=/home/cygnus/aldyh/bld/pristine/: 8 sum files
## Dir2=.: 8 sum files
# Comparing 8 common sum files
## /bin/sh /home/cygnus/aldyh/src/gcc/contrib/compare_tests /tmp/gxx-sum1.39318 /tmp/gxx-sum2.39318
New tests that FAIL:
g++.dg/tree-prof/pr79259.C execution, -g
gcc.dg/tree-prof/ic-misattribution-1.c execution, -g
gcc.dg/tree-prof/merge_block.c execution, -g
gcc.dg/tree-prof/section-attr-1.c execution, -g
gcc.dg/tree-prof/section-attr-3.c execution, -g
gcc.dg/tree-prof/tracer-1.c execution, -g
gcc.dg/tree-prof/val-prof-8.c execution, -g
New tests that PASS:
g++.dg/tree-prof/partition1.C compilation, -g
g++.dg/tree-prof/partition2.C compilation, -g
g++.dg/tree-prof/partition3.C compilation, -g
g++.dg/tree-prof/pr79259.C compilation, -g
gcc.dg/tree-prof/comp-goto-1.c compilation, -g
gcc.dg/tree-prof/ic-misattribution-1.c compilation, -g
gcc.dg/tree-prof/merge_block.c compilation, -g
gcc.dg/tree-prof/pr47187.c compilation, -g
gcc.dg/tree-prof/pr52150.c compilation, -g
gcc.dg/tree-prof/section-attr-1.c compilation, -g
gcc.dg/tree-prof/stringop-1.c compilation, -g
gcc.dg/tree-prof/tracer-1.c compilation, -g
gcc.dg/tree-prof/tracer-1.c scan-tree-dump-times tracer "c =" 2
gcc.dg/tree-prof/update-cunroll-2.c compilation, -g
gcc.dg/tree-prof/val-prof-8.c compilation, -g
gcc.dg/tree-prof/wcoverage-mismatch.c compilation, -g
gcc.dg/tree-ssa/20030807-6.c scan-tree-dump-times vrp1 "ABS_EXPR " 0
gcc.dg/tree-ssa/pr18589-6.c scan-tree-dump-times optimized " \\* " 4
Old tests that passed, that have disappeared: (Eeek!)
g++.dg/tree-prof/indir-call-prof-2.C compilation, -g
g++.dg/tree-prof/morefunc.C compilation, -g
g++.dg/tree-prof/pr63581.C compilation, -g
gcc.dg/tree-prof/20050826-2.c compilation, -g
gcc.dg/tree-prof/bb-reorg.c compilation, -g
gcc.dg/tree-prof/cold_partition_label.c compilation, -g
gcc.dg/tree-prof/ic-misattribution-1a.c compilation, -g
gcc.dg/tree-prof/inliner-1.c compilation, -g
gcc.dg/tree-prof/peel-1.c compilation, -g
gcc.dg/tree-prof/pr49299-1.c compilation, -g
gcc.dg/tree-prof/pr49299-2.c compilation, -g
gcc.dg/tree-prof/pr52027.c compilation, -g
gcc.dg/tree-prof/pr79587.c compilation, -g
gcc.dg/tree-prof/prof-robust-1.c compilation, -g
gcc.dg/tree-prof/section-attr-2.c compilation, -g
gcc.dg/tree-prof/stringop-2.c compilation, -g
gcc.dg/tree-prof/time-profiler-1.c compilation, -g
gcc.dg/tree-prof/time-profiler-3.c compilation, -g
gcc.dg/tree-prof/unroll-1.c compilation, -g
gcc.dg/tree-prof/val-prof-6.c compilation, -g
gcc.dg/tree-prof/val-prof-7.c compilation, -g
gcc.dg/tree-prof/val-prof-9.c compilation, -g
gcc.dg/tree-ssa/20030530-2.c scan-tree-dump-times dom2 "\\+" 1
gcc.dg/tree-ssa/20030530-2.c scan-tree-dump-times dom2 "first_gp_reg_save" 1
gcc.dg/tree-ssa/20030730-1.c scan-tree-dump-times dom2 "if " 0
gfortran.dg/vect/vect-1.f90 -O scan-tree-dump-times vect "vectorized 3 loops" 1
Old tests that failed, that have disappeared: (Eeek!)
g++.dg/tree-prof/inline_mismatch_args.C execution, -g
g++.dg/tree-prof/pr63581.C execution, -g
gcc.dg/tree-prof/bb-reorg.c execution, -g
gcc.dg/tree-prof/cold_partition_label.c execution, -g
gcc.dg/tree-prof/peel-1.c execution, -g
gcc.dg/tree-prof/pr34999.c execution, -g
gcc.dg/tree-prof/pr49299-1.c execution, -g
gcc.dg/tree-prof/pr50907.c execution, -g
gcc.dg/tree-prof/pr52027.c execution, -g
gcc.dg/tree-prof/pr79587.c execution, -g
gcc.dg/tree-prof/time-profiler-1.c execution, -g
gcc.dg/tree-prof/time-profiler-3.c execution, -g
gcc.dg/tree-prof/val-prof-6.c execution, -g
gcc.dg/tree-prof/val-prof-7.c execution, -g
gcc.dg/tree-prof/val-profiler-threads-1.c execution, -g
## Differences found:
# 1 differences in 8 common sum files found
More information about the Gcc
mailing list