From: Stephen Leake <stephen_leake@stephe-leake.org>
To: phillip.lord@russet.org.uk (Phillip Lord)
Cc: johnw@gnu.org, Michael Albinus <michael.albinus@gmx.de>,
emacs-devel@gnu.org
Subject: Re: Locations of Tests
Date: Thu, 05 Nov 2015 07:41:42 -0600 [thread overview]
Message-ID: <864mh0y355.fsf@stephe-leake.org> (raw)
In-Reply-To: <87ziytqww6.fsf@russet.org.uk> (Phillip Lord's message of "Wed, 04 Nov 2015 21:26:17 +0000")
phillip.lord@russet.org.uk (Phillip Lord) writes:
> John Wiegley <jwiegley@gmail.com> writes:
>
>
> #+TITLE: The Location of Emacs-Lisp Tests
This looks good in general; a couple minor comments below.
> * Introduction
>
> In this document, we describe the relationship between Emacs-Lisp files and
> their associated automated test files.
>
>
> * In Emacs
>
> The Emacs repository contains a very large number of Emacs-Lisp files, many of
> which pre-date both formal package support for Emacs and automated unit
> testing. The test layout is, therefore, somewhat different than for ELPA
> packages.
>
> All paths are relative to the Emacs root directory.
>
> ** Source
>
> Lisp files are stored in the ~lisp~ directory or its sub-directories.
> Sub-directories are in many cases themed after packages (~gnus~, ~org~,
> ~calc~), related functionality (~net~, ~emacs-lisp~, ~progmodes~) or status
> (~obsolete~).
>
> C source is stored in the ~src~ directory, which is flat.
>
> ** Test Files
>
> Automated tests should be stored in the ~test/automated~ directory. Tests
> should reflect the directory structure of the source tree; so tests for files
> in the ~emacs-lisp~ source directory should reside in the
> ~test/automated/emacs-lisp~ directory.
>
> Tests should normally reside in a file with an ~-test~ added to the name of
> the tested source file; hence ~ert.el~ is tested in ~ert-test.el~, or
> ~pcase.el~ is tested in ~pcase-test.el~.
>
> Where features of the C source are tested using Emacs-Lisp test files, these
> should reside in ~/test/automated/c~ and be named after the C file.
Since we are trying to mimic the source layout, perhaps it would be
better to have:
tests/automated/src ;; tests of files in the src dir
tests/automated/lisp ;; tests of file in the lisp dir
tests/automated/lisp/prog-modes ;; etc
> ** Resource Files
>
> Resource files for tests (containing test data) should reside in a directory
> named after the feature with a ~-resources~ suffix. Hence, tests files for
> ~flymake.el~ should reside in a directory called ~flymake-resources~.
>
> No guidance is given for the organisation of resource files inside the
> ~-resource~ directory; files can be organised at the author's discretion.
>
>
> * In ELPA
>
> All paths are given relative to the package root.
>
> ** Source Files
>
> ELPA lisp files should be stored at top-level within the package.
>
> ** Test Files
>
> Test files should normally reside in the ~test~ directory, and be named after
> the file being tested.
With the -test suffix; it helps to be very clear,
> ** Resources Files
>
> Resource files for tests should reside in the ~dev-resources~ directory. No
> guidance is given for the organisation of resource files inside the
> ~dev-resource~ directory; files can be organised at the author's discretion.
--
-- Stephe
next prev parent reply other threads:[~2015-11-05 13:41 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-04 17:36 Locations of Tests Phillip Lord
2015-11-04 17:53 ` John Wiegley
2015-11-04 18:14 ` Artur Malabarba
2015-11-04 18:21 ` John Wiegley
2015-11-25 9:23 ` Phillip Lord
2015-11-25 9:43 ` Artur Malabarba
2015-11-25 14:17 ` Phillip Lord
2015-11-04 19:15 ` Steinar Bang
2015-11-04 19:23 ` David Kastrup
2015-11-04 21:33 ` Phillip Lord
2015-11-04 19:07 ` Michael Albinus
2015-11-04 19:15 ` John Wiegley
2015-11-04 21:26 ` Phillip Lord
2015-11-05 13:41 ` Stephen Leake [this message]
2015-11-05 13:59 ` Artur Malabarba
2015-11-05 15:02 ` Nicolas Petton
2015-11-05 15:08 ` Artur Malabarba
2015-11-06 9:56 ` Phillip Lord
2015-11-05 15:27 ` Juanma Barranquero
2015-11-06 9:55 ` Phillip Lord
2015-11-06 10:02 ` Makefile-help (was Re: Locations of Tests) Phillip Lord
2015-11-07 6:48 ` Stephen Leake
2015-11-07 10:55 ` Location of tests (again) (was Re: Makefile-help) Phillip Lord
2015-11-07 11:06 ` Juanma Barranquero
2015-11-07 11:22 ` Phillip Lord
2015-11-07 11:36 ` Juanma Barranquero
2015-11-07 17:46 ` Phillip Lord
2015-11-07 11:45 ` Eli Zaretskii
2015-11-07 18:09 ` Stephen Leake
2015-11-10 20:34 ` Przemysław Wojnowski
2015-11-10 20:45 ` Phillip Lord
2015-11-10 21:41 ` Przemysław Wojnowski
2015-11-10 22:27 ` John Wiegley
2015-11-11 0:28 ` bikeshedding (was Re: Location of tests (again) (was Re: Makefile-help)) Stephen Leake
2015-11-11 10:31 ` Location of tests (again) (was Re: Makefile-help) Phillip Lord
2015-11-11 17:02 ` UI tests Richard Stallman
2015-11-11 17:25 ` John Wiegley
2015-11-12 14:09 ` Phillip Lord
2015-11-12 14:37 ` Alan Mackenzie
2015-11-12 16:33 ` Eli Zaretskii
2015-11-13 21:58 ` Richard Stallman
2015-11-15 12:14 ` Przemysław Wojnowski
2015-11-16 19:32 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=864mh0y355.fsf@stephe-leake.org \
--to=stephen_leake@stephe-leake.org \
--cc=emacs-devel@gnu.org \
--cc=johnw@gnu.org \
--cc=michael.albinus@gmx.de \
--cc=phillip.lord@russet.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).