about summary refs log tree commit
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2020-04-20 07:05:30 +0000
committerEric Wong <e@yhbt.net>2020-04-20 20:20:35 +0000
commit9f8184b0c8bd6bdb1f5f6c3845472c69863c1cf7 (patch)
tree8ab7849f19e6085795363d116cef5ba3954abce2
parent6e07def560b211d9a1a3221862e72b7aeb4a31b3 (diff)
downloadpublic-inbox-9f8184b0c8bd6bdb1f5f6c3845472c69863c1cf7.tar.gz
`make test' is annoyingly slow, and `make check-run' works
wonders for improving the edit && test cycle.
-rwxr-xr-xDocumentation/txt2pre5
-rw-r--r--HACKING18
-rw-r--r--INSTALL2
3 files changed, 22 insertions, 3 deletions
diff --git a/Documentation/txt2pre b/Documentation/txt2pre
index c3a7657e..cf58bad8 100755
--- a/Documentation/txt2pre
+++ b/Documentation/txt2pre
@@ -39,9 +39,9 @@ for (qw[copydatabase(1) xapian-compact(1)]) {
         $xurls{$_} = ".$n.1.html"
 }
 
-for (qw[flock(2) setrlimit(2) vfork(2)]) {
+for (qw[make(1) flock(2) setrlimit(2) vfork(2) tmpfs(5)]) {
         my ($n, $s) = (/([\w\-]+)\((\d)\)/);
-        $xurls{$_} = "http://www.man7.org/linux/man-pages/man2/$n.$s.html";
+        $xurls{$_} = "http://www.man7.org/linux/man-pages/man$s/$n.$s.html";
 }
 
 for (qw[git(1)
@@ -82,6 +82,7 @@ $xurls{'git-filter-repo(1)'} = 'https://github.com/newren/git-filter-repo'.
                         './blob/master/Documentation/git-filter-repo.txt';
 $xurls{'ssoma(1)'} = 'https://ssoma.public-inbox.org/ssoma.txt';
 $xurls{'cgitrc(5)'} = 'https://git.zx2c4.com/cgit/tree/cgitrc.5.txt';
+$xurls{'prove(1)'} = 'https://perldoc.perl.org/prove.html';
 
 my $str = do { local $/; <STDIN> };
 my ($title) = ($str =~ /\A([^\n]+)/);
diff --git a/HACKING b/HACKING
index cceb686f..74a3096f 100644
--- a/HACKING
+++ b/HACKING
@@ -59,6 +59,24 @@ directory for design decisions made during development.
 See Documentation/technical/ in the source tree for more details
 on specific topics, in particular data_structures.txt
 
+Faster tests
+------------
+
+The `make test' target provided by MakeMaker does not run in
+parallel.  Our `make check' target supports parallel runs, and
+it also creates a `.prove' file to optimize `make check-run'.
+
+The prove(1) command (distributed with Perl) may also be used
+for finer-grained testing: prove -bvw t/foo.t
+
+If using a make(1) (e.g. GNU make) with `include' support, the
+`config.mak' Makefile snippet can be used to set environment
+variables such as PERL_INLINE_DIRECTORY and TMPDIR.
+
+With PERL_INLINE_DIRECTORY set to enable Inline::C support and
+TMPDIR pointed to a tmpfs(5) mount, `make check-run' takes 6-10s
+(load-dependent) on a busy workstation built in 2010.
+
 Perl notes
 ----------
 
diff --git a/INSTALL b/INSTALL
index 3984df71..2dd7dcff 100644
--- a/INSTALL
+++ b/INSTALL
@@ -191,7 +191,7 @@ install the system (into /usr/local) with:
 
         perl Makefile.PL
         make
-        make test
+        make test    # see HACKING for faster tests for hackers
         make install # root permissions may be needed
 
 When installing Search::Xapian, make sure the underlying Xapian