unpack-objects: fix --strict handling
[gitweb.git] / t / README
index fce19e7fff2d4fc692e9e30656f91607d094e37e..73ed11bfe24edf56879d90a43c8df0813332fb08 100644 (file)
--- a/t/README
+++ b/t/README
@@ -18,11 +18,11 @@ The easiest way to run tests is to say "make".  This runs all
 the tests.
 
     *** t0000-basic.sh ***
-    *   ok 1: .git/objects should be empty after git-init-db in an empty repo.
+    *   ok 1: .git/objects should be empty after git-init in an empty repo.
     *   ok 2: .git/objects should have 256 subdirectories.
-    *   ok 3: git-update-cache without --add should fail adding.
+    *   ok 3: git-update-index without --add should fail adding.
     ...
-    *   ok 23: no diff after checkout and git-update-cache --refresh.
+    *   ok 23: no diff after checkout and git-update-index --refresh.
     * passed all 23 test(s)
     *** t0100-environment-names.sh ***
     *   ok 1: using old names should issue warnings.
@@ -32,8 +32,8 @@ the tests.
 Or you can run each test individually from command line, like
 this:
 
-    $ sh ./t0500-ls-files.sh
-    *   ok 1: git-update-cache --add to add various paths.
+    $ sh ./t3001-ls-files-killed.sh
+    *   ok 1: git-update-index --add to add various paths.
     *   ok 2: git-ls-files -k to show killed files.
     *   ok 3: validate git-ls-files -k output.
     * passed all 3 test(s)
@@ -55,6 +55,42 @@ You can pass --verbose (or -v), --debug (or -d), and --immediate
        failed test.
 
 
+Naming Tests
+------------
+
+The test files are named as:
+
+       tNNNN-commandname-details.sh
+
+where N is a decimal digit.
+
+First digit tells the family:
+
+       0 - the absolute basics and global stuff
+       1 - the basic commands concerning database
+       2 - the basic commands concerning the working tree
+       3 - the other basic commands (e.g. ls-files)
+       4 - the diff commands
+       5 - the pull and exporting commands
+       6 - the revision tree commands (even e.g. merge-base)
+       7 - the porcelainish commands concerning the working tree
+       8 - the porcelainish commands concerning forensics
+       9 - the git tools
+
+Second digit tells the particular command we are testing.
+
+Third digit (optionally) tells the particular switch or group of switches
+we are testing.
+
+If you create files under t/ directory (i.e. here) that is not
+the top-level test script, never name the file to match the above
+pattern.  The Makefile here considers all such files as the
+top-level test script and tries to run all of them.  A care is
+especially needed if you are creating a common test library
+file, similar to test-lib.sh, because such a library file may
+not be suitable for standalone execution.
+
+
 Writing Tests
 -------------
 
@@ -67,11 +103,12 @@ assignment to variable 'test_description', like this:
        # Copyright (c) 2005 Junio C Hamano
        #
 
-       test_description=xxx test (option --frotz)
+       test_description='xxx test (option --frotz)
 
        This test registers the following structure in the cache
        and tries to run git-ls-files with option --frotz.'
 
+
 Source 'test-lib.sh'
 --------------------
 
@@ -123,14 +160,12 @@ library for your script to use.
 
  - test_expect_failure <message> <script>
 
-   This is the opposite of test_expect_success.  If <script>
-   yields success, test is considered a failure.
-
-   Example:
-
-       test_expect_failure \
-           'git-update-cache without --add should fail adding.' \
-           'git-update-cache should-be-empty'
+   This is NOT the opposite of test_expect_success, but is used
+   to mark a test that demonstrates a known breakage.  Unlike
+   the usual test_expect_success tests, which say "ok" on
+   success and "FAIL" on failure, this will say "FIXED" on
+   success and "still broken" on failure.  Failures from these
+   tests won't cause -i (immediate) to stop.
 
  - test_debug <script>