📄 test-framework.awk
字号:
# Process the gcc.sum file for a run through gcc.test-framework.# Print result lines that show potential problems. Report the number# of passing tests.### Copyright (c) 2004, 2005 Free Software Foundation, Inc.## This file is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## For a copy of the GNU General Public License, write the the# Free Software Foundation, Inc., 59 Temple Place - Suite 330,# Boston, MA 02111-1307, USA.function pass(msg) { passes++; # printf("pass %s\n", $0); }function fail(msg) { fails++; printf("fail %s\n", $0); }function ignore(msg) { # printf("ignore %s\n", $0); }BEGIN { skip = 1; passes = 0; fails = 0; }/Running.*test-frame/ { skip = 0; next }/gcc Summary/ { skip = 1; next } { if (skip) next }/^$/ { next }# The post tests are always expected to pass./^PASS.*-2.c/ { ignore(); next }# dg-xfail-if applies to the compile step; these should be XPASS for the# compile step on dox tests, which are run tests./^XPASS.*dox.*xiff.*-1.c.*(test for excess errors)/ { ignore(); next }# xfail for scan-assembler-not tests doesn't apply to the compile step./^PASS.*sa.*-1.c.*(test for excess errors)/ { ignore(); next }# The other dox tests pass the compile step; ignore that message./^PASS.*dox.*(test for excess errors)/ { ignore(); next }# Ignore lines that begin with comma./^,/ { ignore(); next }# For tests of dg-output, ignore successful compilation./^PASS.*dg-output.*(test for excess error)/ { ignore(); next }# For tests of dg-output, ignore successful execution./^PASS.*dg-output.*execution test/ { ignore(); next }/^PASS/ { if (match ($0, "exp-P")) { pass(); next } }/^FAIL/ { if (match ($0, "exp-F")) { pass(); next } }/^XPASS/ { if (match ($0, "exp-XP")) { pass(); next } }/^XFAIL/ { if (match ($0, "exp-XF")) { pass(); next } }/^UNSUPPORTED/ { if (match ($0, "exp-U")) { pass(); next } } { fail() }END { printf("\n\t\t=== Test Framework Summary ===\n\n"); printf("# of expected passes\t\t%d\n", passes); if (fails != 0) printf("# of unexpected failures\t%d\n", fails); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -