Commit graph

7 commits

Author SHA1 Message Date
João Távora
aec08e609e Keep and report "foreign" diangnostics in flymake-cc Flymake backend
This includes diagnostics for .h files that sprang up when checking a
c file.  Those diagnostics are reported to the Flymake infrastructure
which does not (yet) do anything with them.

This includes a change to the test fixtures, too.

* lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): Rework

* test/lisp/progmodes/flymake-resources/another-problematic-file.c:
  New file.

* test/lisp/progmodes/flymake-resources/some-problems.h:
  Add a function declaration..
2021-09-14 12:22:15 +01:00
Glenn Morris
498b6cb0bf Ensure flymake tests use gcc rather than $CC
* test/lisp/progmodes/flymake-resources/Makefile: Force use of gcc.
This seems to be what the tests expect.  (Bug#33735)
2018-12-15 15:08:28 -08:00
João Távora
58bb3462ee Add tests for Flymake backends for Ruby and Perl
* test/lisp/progmodes/flymake-tests.el (perl-backend)
(ruby-backend): New tests.
(warning-predicate-rx-perl, warning-predicate-function-perl):
Delete tests.

* test/lisp/progmodes/flymake-resources/test.pl: Include an
error the test file.

* test/lisp/progmodes/flymake-resources/test.rb: file.
2017-11-05 12:55:43 +00:00
João Távora
8118f0f95f Fix three Flymake bugs when checking C header files
The first of these problems is longstanding: if an error-less B.h is
included from error-ridden A.h, flymake's legacy parser will panic
(and disable itself) since it sees a non-zero exit for a clean file.
To fix this, recommend returning 'true' in the documentation for the
check-syntax target.

Another problem was introduced by the parser rewrite.  For error
patterns spanning more than one line, point may be left in the middle
of a line and thus render other patterns useless.  Those patterns were
written for the old line-by-line parser.  To make them useful again,
move to the beginning of line in those situations.

The third problem was also longstanding and happened on newer GCC's:
The "In file included from" prefix confused
flymake-proc-get-real-file-name.  Fix this.

Also updated flymake--diag-region to fallback to highlighting a full
line less often.

Add automatic tests to check this.

* lisp/progmodes/flymake-proc.el
(flymake-proc--diagnostics-for-pattern): Fix bug when patterns
accidentally spans more than one line.  Don't create
diagnostics without error messages.
(flymake-proc-real-file-name-considering-includes): New
helper.
(flymake-proc-allowed-file-name-masks): Use it.

* lisp/progmodes/flymake.el (flymake-diag-region): Make COL
argument explicitly optional.  Only fall back to full line in extreme
cases.

* test/lisp/progmodes/flymake-tests.el
(included-c-header-files): New test.
(different-diagnostic-types): Update.

* test/lisp/progmodes/flymake-resources/Makefile
(check-syntax): Always return success (0) error code.
(CC_OPTS): Add -Wextra

* test/lisp/progmodes/flymake-resources/errors-and-warnings.c
(main): Rewrite comments.

* test/lisp/progmodes/flymake-resources/errors-and-warnings.c:
Include some dummy header files.

* test/lisp/progmodes/flymake-resources/no-problems.h: New file.

* test/lisp/progmodes/flymake-resources/some-problems.h: New file.

* doc/misc/flymake.texi (Example---Configuring a tool called
via make): Recommend adding "|| true" to the check-syntax target.
2017-10-03 14:18:55 +01:00
João Távora
0d26e45ab4 Add a new Flymake test for multiple errors and warnings
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--call-with-fixture): Save excursion.
(errors-and-warnings): New test.

* test/lisp/progmodes/flymake-resources/errors-and-warnings.c:
New test fixture.
2017-10-03 13:52:24 +01:00
Phillip Lord
a546a37fcd Restore delete Makefiles and fix .gitignore.
* .gitignore: Update Makefiles to changed locations
 * test/lisp/progmodes/flymake-resources/Makefile,
   test/manual/etags/Makefile,
   test/manual/etags/make-src/Makefile,
   test/manual/indent/Makefile: Restored and moved to new location.
2015-11-24 21:48:58 +00:00
Phillip Lord
94bb3d7a80 Test infrastructure: updates after directory move
* (test/Makefile.in): Support directories several levels deep.
 * (test/data/flymake): Rename to test/lisp/progmodes/flymake-resources.
 * (test/lisp/progmodes/flymake-tests.el): Support renamed resource directory.
2015-11-24 17:10:12 +00:00