From 2cf5f72e9e3cbc7fdb5cb0a618db7b4fc2440a68 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 8 Nov 2012 10:25:15 +0100 Subject: [PATCH] tests: more possible error compiler messages for "#error" * tests/synclines.at (AT_SYNCLINES_COMPILE): Adjust for Clang. Verified with GCC 4.0, 4.2 to 4.8, and Clang 2.9, 3.2: none skip. --- tests/synclines.at | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/tests/synclines.at b/tests/synclines.at index 63ae685..751db7c 100644 --- a/tests/synclines.at +++ b/tests/synclines.at @@ -47,7 +47,8 @@ m4_define([AT_SYNCLINES_COMPILE], # => # input.y:4: #error "8" # -# The message may include a caret-error: +# The message may include a caret-error (indented by GCC 4.8, +# not by clang 3.2): # # input.y:1:2: error: #error "1" # #error "1" @@ -63,13 +64,31 @@ m4_define([AT_SYNCLINES_COMPILE], # # distcc[35882] (dcc_connect_by_name) ERROR: failed to look up host "chrisimac": Unknown host # distcc[35882] Warning: failed to distribute input.c to chrisimac/4, running locally instead - +# +# The compiler might end by the number of messages issued (Clang 3.2): +# +# syncline.c:1:2: error: "1" +# #error "1" +# ^ +# 1 error generated. AT_CHECK([[$PERL -p -0777 - stderr <<\EOF + # 1. Remove useless lines. + + # distcc clutter. s/^distcc\[\d+\] .*\n//gm; - s/^([^:]+:\d+)[.:][^:]+:(.+)$/$][1:$][2/gm; - s/^([^:]+:\d+):[^#]*( #error)/$][1:$][2/gm; + # Function context. s/^[^:]*: In function '[^']+':\n//gm; - s/^\ +#error.*\n\ *\^\n//gm; + # Caret error. + s/^ *#error.*\n *\^\n//gm; + # Number of errors. + s/^1 error generated\.\n//gm; + + # 2. Normalize the lines we kept. + + # Remove column. + s/^([^:]+:\d+)[.:][^:]+:(.+)$/$][1:$][2/gm; + # Map all combinations of "error: " and "#error: " to "#error ". + s/^([^:]+:\d+):( |#error|error|:)+/$][1: #error /gm; EOF ]], 0, [stdout]) -- 2.7.4