emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: "Tom Breton (Tehom)" <tehom@panix.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Proposal: Emtest as tester
Date: Tue, 25 May 2010 08:48:35 +0200	[thread overview]
Message-ID: <41A045D3-9A97-4FD8-AF2F-AB2AFE85298E@gmail.com> (raw)
In-Reply-To: <0bbc0d9ab1b84a87a1114077c5d72238.squirrel@mail.panix.com>


On May 24, 2010, at 11:26 PM, Tom Breton (Tehom) wrote:

> At Carsten's request, I am proposing emtest as the tester for
> org-mode.  I would like to hear if there are any objections or
> questions.
>
> ****** About Emtest
>
> Emtest is an emacs-based test framework.  It reads tests, runs them on
> command and presents their results.  Test suites can be run by suite,
> by clause, or by library.
>
> It is extensible and modular.  Nearly everything about it can be
> replaced or extended.
>
> One important feature is its testhelp libraries:
>
> * mocks/filebuf - for making mock files and buffers to run tests in.
> * mocks/dirtree - for making mock directory trees.
> * deep-type-checker - for testing that objects, especially
>   structures, are type-correct right down to their leaves.
> * match - for pattern-matching.  When you want to test return values
>   or similar, but some fields or elements don't have stable values
>   (say, a timestamp or a UUID).
> * tagnames - extremely useful for defining test data and iterating
>   over examples.
> * testpoint - useful for:
>   1. testing functionality that is called deep inside something else,
>      where writing a viable test would mean nearly cloning the
>      something else to get the calling conditions right.
>   2. Testing functionality that uses other functionality that can't
>      be easily controlled by passing arguments.
>   3. Testing that under given circumstances a certain point is
>      reached, not reached, or reached the right number of times.
>
> Also, in less than perfect shape right now:
>
> * mocks/keystuffer - work in progress, for capturing canned user input
> * misc and standard - standard testhelp functions.  Works but
>   undergoing reorganization.
> * types - type specifications, extending what cl provides.  Right
>   now, just a few that I needed.
> * persist - useful for tests of inspected output.  Not working right
>   now due to redesign of an underlying package.
>
> ****** Some questions
>
>  * Where to include it:
>
>    * I'm proposing to put it under org-mode/testing/ So the directory
>      structure would look like:
>
>      * org-mode
>
>       	* lisp
>
>       	* (etc)
>
>       	* testing
>
> 	  * emtest
>
> 	    * Many files
>
> 	  * Some support
> 	  * packages emtest
> 	  * uses.
>
> 	  * org-agenda
>
> 	    * tests.el
>
> 	    * (And other test files)
>
> 	  * org-archive
>
> 	    * tests.el
>
> 	  * org-ascii
>
> 	  * etc (the other org files' directories of test files)
>
>       	* (other existing org directories)
>
>  * Should testing of contrib files be in a separate directory?  It's
>    not clear to me that it needs to be or should be.
>
>  * Loading.
>
>    Of course this shouldn't require much extra work to build and
>    install.  Yet there's a case to be made for not building or
>    installing it by default, "them that don't use it doesn't pay a
>    cost".
>
>    So I'm thinking I should add another target to the makefile to
>    install it, as well as (of course) a test target.

Yes, I agree.

>
>  * How to include it, git-wise.
>
>    What git wants to do with included external projects is to make
>    them submodules.  However, I'm told that's a pain to deal with,
>    moreso from the other end than from mine.  And it does seem like it
>    would be.  Basically git treats a submodule as a single thing, but
>    still "signs" it version-wise with a hex ID, and wants it to be the
>    correct version.  So git insulates you just a little bit, at the
>    cost of having to deal with an additional repository.
>
>    So I'm thinking I'd just include it literally and if that proves
>    hard to maintain then we still have the other option.

I agree with you.

- Carsten

  parent reply	other threads:[~2010-05-25  7:17 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-29 22:24 org-html link building diff Tom Breton (Tehom)
2010-05-01 12:01 ` Carsten Dominik
2010-05-15 12:29 ` Carsten Dominik
2010-05-15 21:37   ` Tom Breton (Tehom)
2010-05-16  5:03     ` Carsten Dominik
2010-05-18  0:59       ` Tom Breton (Tehom)
2010-05-18  4:47         ` Carsten Dominik
2010-05-18 12:26           ` Sebastian Rose
2010-05-16  5:20     ` Carsten Dominik
2010-05-18  1:01       ` Test-file naming conventions - mine and suggested for org Tom Breton (Tehom)
2010-05-21 11:27         ` Carsten Dominik
2010-05-24 21:26           ` Proposal: Emtest as tester Tom Breton (Tehom)
2010-05-24 22:56             ` Dan Davison
2010-05-27 20:02               ` Tom Breton (Tehom)
2010-05-25  6:48             ` Carsten Dominik [this message]
2010-05-25  8:43             ` Martin Pohlack
2010-05-27 20:13               ` Tom Breton (Tehom)
2010-06-07 16:11                 ` Benjamin Andresen

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.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=41A045D3-9A97-4FD8-AF2F-AB2AFE85298E@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=tehom@panix.com \
    /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/org-mode.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).