From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Aleksei Gusev Newsgroups: gmane.emacs.devel Subject: [PATCH] (compilation-error-regexp-alist-alist): added regexps for ruby backtraces, ruby's Test::Unit output, cucumber output. Date: Thu, 8 Jul 2010 23:16:16 +0300 Message-ID: <871vbdptnn.fsf@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1278623723 11661 80.91.229.12 (8 Jul 2010 21:15:23 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Thu, 8 Jul 2010 21:15:23 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Jul 08 23:15:22 2010 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OWyRE-0004H5-OA for ged-emacs-devel@m.gmane.org; Thu, 08 Jul 2010 23:15:21 +0200 Original-Received: from localhost ([127.0.0.1]:59403 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OWyRD-0007CF-Mz for ged-emacs-devel@m.gmane.org; Thu, 08 Jul 2010 17:15:19 -0400 Original-Received: from [140.186.70.92] (port=49770 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OWyR4-00079u-HG for emacs-devel@gnu.org; Thu, 08 Jul 2010 17:15:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OWyR3-0002L5-5Q for emacs-devel@gnu.org; Thu, 08 Jul 2010 17:15:10 -0400 Original-Received: from lo.gmane.org ([80.91.229.12]:44746) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OWyR2-0002Kl-Pc for emacs-devel@gnu.org; Thu, 08 Jul 2010 17:15:09 -0400 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1OWyQx-0003zv-NG for emacs-devel@gnu.org; Thu, 08 Jul 2010 23:15:03 +0200 Original-Received: from 178.120.84.57 ([178.120.84.57]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 08 Jul 2010 23:15:03 +0200 Original-Received: from aleksei.gusev by 178.120.84.57 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 08 Jul 2010 23:15:03 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 189 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: 178.120.84.57 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:k6p/AQQfr9K7VkNMx9i31IVsiVI= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:126922 Archived-At: Signed-off-by: Aleksei Gusev --- etc/compilation.txt | 102 +++++++++++++++++++++++++++++++++++++++++++-- lisp/progmodes/compile.el | 13 +++++- 2 files changed, 110 insertions(+), 5 deletions(-) diff --git a/etc/compilation.txt b/etc/compilation.txt index d6a236d..2041b7f 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -93,6 +93,55 @@ symbol: comma "foo.adb", line 2(11): warning: file name does not match ... "src/swapping.c", line 30.34: 1506-342 (W) "/*" detected in comment. +* Cucumber + +symbol: cucumber + +Feature: This is an example for backtrace. + + Scenario: undefined step # features/cucumber.feature:3 + Given this is undefined # features/cucumber.feature:4 + + Scenario: assertion false (Test::Unit) # features/cucumber.feature:6 + Given this will generate 'assert false' # features/step_definitions/default_steps.rb:1 + is not true. (Test::Unit::AssertionFailedError) + /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:48:in `assert_block' + /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:500:in `_wrap_assertion' + /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:46:in `assert_block' + /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:63:in `assert' + /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:495:in `_wrap_assertion' + /home/gusev/.rvm/rubies/ruby-1.8.7-p249/lib/ruby/1.8/test/unit/assertions.rb:61:in `assert' + ./features/step_definitions/default_steps.rb:2:in `/^this will generate 'assert false'$/' + features/cucumber.feature:7:in `Given this will generate 'assert false'' + + Scenario: assertion false (RSpec) # features/cucumber.feature:9 + Given this will generate 'should be_true' # features/step_definitions/default_steps.rb:5 + expected true to be false (Spec::Expectations::ExpectationNotMetError) + ./features/step_definitions/default_steps.rb:6:in `/^this will generate 'should be_true'$/' + features/cucumber.feature:10:in `Given this will generate 'should be_true'' + + Scenario: backtrace in step definition # features/cucumber.feature:12 + Given this will generate backtrace # features/step_definitions/default_steps.rb:9 + (RuntimeError) + ./features/step_definitions/default_steps.rb:10:in `/^this will generate backtrace$/' + features/cucumber.feature:13:in `Given this will generate backtrace' + + Scenario: deeep backtrace in step definition # features/cucumber.feature:15 + Given this will generate deep backtrace # features/step_definitions/default_steps.rb:13 + (RuntimeError) + ./features/step_definitions/default_steps.rb:18:in `deep' + ./features/step_definitions/default_steps.rb:14:in `/^this will generate deep backtrace$/' + features/cucumber.feature:16:in `Given this will generate deep backtrace' + +Failing Scenarios: +cucumber features/cucumber.feature:6 # Scenario: assertion false (Test::Unit) +cucumber features/cucumber.feature:9 # Scenario: assertion false (RSpec) +cucumber features/cucumber.feature:12 # Scenario: backtrace in step definition +cucumber features/cucumber.feature:15 # Scenario: deeep backtrace in step definition + +5 scenarios (4 failed, 1 undefined) +5 steps (4 failed, 1 undefined) +0m0.007s * EDG C/C++ @@ -318,6 +367,51 @@ symbol: php Parse error: parse error, unexpected $ in main.php on line 59 Fatal error: Call to undefined function: mysql_pconnect() in db.inc on line 66 +* Ruby + +symbol: ruby + +plain-exception.rb:7:in `fun': unhandled exception + from plain-exception.rb:3:in `proxy' + from plain-exception.rb:12 + +* Ruby (Test::Unit) + +symbol: ruby-Test::Unit + +Loaded suite examples/test-unit +Started +FFFE +Finished in 0.023173 seconds. + + 1) Failure: +test_a_deep_assert(BacktracesTest) + [examples/test-unit.rb:28:in `here_is_a_deep_assert' + examples/test-unit.rb:19:in `test_a_deep_assert']: + is not true. + + 2) Failure: +test_assert(BacktracesTest) [examples/test-unit.rb:5]: + is not true. + + 3) Failure: +test_assert_raise(BacktracesTest) [examples/test-unit.rb:9]: +Exception raised: +Class: +Message: <""> +---Backtrace--- +examples/test-unit.rb:10:in `test_assert_raise' +examples/test-unit.rb:9:in `test_assert_raise' +--------------- + + 4) Error: +test_backtrace(BacktracesTest): +NoMethodError: undefined method `not_exists' for nil:NilClass + examples/test-unit.rb:24:in `some_function_call_from_nil' + examples/test-unit.rb:15:in `test_backtrace' + +4 tests, 3 assertions, 3 failures, 1 errors + * RXP symbol: rxp @@ -375,11 +469,11 @@ bloofle defined( /users/wolfgang/foo.c(4) ), but never used * GCOV (test coverage program) -symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line +symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line -: 0:Source:foo.c -: 0:Object:foo.bb - -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c + -: 1:/* $ gcc -fprofile-arcs -ftest-coverage foo.c -: 2: $ ./a.out -: 3: $ gcov foo.c -: 4: LANG=C gcov foo.c @@ -393,10 +487,10 @@ symbol: gcov-file gcov-bb-file gcov-never-called-line gcov-called-line 1: 12: r = 1; #####: 13: else if (argc == 2) #####: 14: r = 2; - -: 15: else + -: 15: else #####: 16: r = 0; 1: 17: return r; - -: 18:} + -: 18:} * Podchecker error messages, per Pod::Checker diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 7000b4b..e9cf5d4 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -196,6 +196,10 @@ of[ \t]+\"?\\([a-zA-Z]?:?[^\":\n]+\\)\"?:" 3 2 nil (1)) "^\"\\([^,\" \n\t]+\\)\", line \\([0-9]+\\)\ \\(?:[(. pos]+\\([0-9]+\\))?\\)?[:.,; (-]\\( warning:\\|[-0-9 ]*(W)\\)?" 1 2 3 (4)) + (cucumber + "\\(?:^cucumber\\(?: -p [^[:space:]]+\\)?\\|#\\)\ +\\(?: \\)\\([^\(].*\\):\\([1-9][0-9]*\\)" 1 2) + (edg-1 "^\\([^ \n]+\\)(\\([0-9]+\\)): \\(?:error\\|warnin\\(g\\)\\|remar\\(k\\)\\)" 1 2 nil (3 . 4)) @@ -325,6 +329,13 @@ during global destruction\\.$\\)" 1 2) "\\(?:Parse\\|Fatal\\) error: \\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil nil) + (ruby + "^[\t ]*\\(?:from \\)?\ +\\([^\(\n][^[:space:]\n]*\\):\\([1-9][0-9]*\\)\\(:in `.*'\\)?.*$" 1 2) + + (ruby-Test::Unit + "[\t ]*\\[\\([^\(].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:" 1 2) + (rxp "^\\(?:Error\\|Warnin\\(g\\)\\):.*\n.* line \\([0-9]+\\) char\ \\([0-9]+\\) of file://\\(.+\\)" @@ -2083,7 +2094,7 @@ and overlay is highlighted between MK and END-MK." pre-existing (let ((display-buffer-reuse-frames t) (pop-up-windows t)) - ;; Pop up a window. + ;; Pop up a window. (display-buffer (marker-buffer msg))))) (highlight-regexp (with-current-buffer (marker-buffer msg) ;; also do this while we change buffer -- 1.7.0.4 -- WBR, Aleksei Gusev