tests/README
changeset 349 b2293093b89e
parent 332 6c869059beb4
child 350 b4e0e20646bb
equal deleted inserted replaced
348:442eb02cf870 349:b2293093b89e
       
     1 A simple testing framework
       
     2 
       
     3 To run the tests, do:
       
     4 
       
     5 cd tests/
       
     6 ./run-tests
       
     7 
       
     8 This finds all scripts in the test directory named test-* and executes
       
     9 them. The scripts can be either shell scripts or Python. Each test is
       
    10 run in a temporary directory that is removed when the test is complete.
       
    11 
       
    12 A test-<x> succeeds if the script returns success and its output
       
    13 matches test-<x>.out. If the new output doesn't match, it is stored in
       
    14 test-<x>.err.
       
    15 
       
    16 There are some tricky points here that you should be aware of when
       
    17 writing tests:
       
    18 
       
    19 - hg commit and hg up -m want user interaction
       
    20 
       
    21   for commit use -t "text"
       
    22   for hg up -m, set HGMERGE to something noninteractive (like true or merge)
       
    23 
       
    24 - changeset hashes will change based on user and date which make
       
    25   things like hg history output change
       
    26 
       
    27   use commit -t "test" -u test -d "0 0"
       
    28 
       
    29 - diff will show the current time
       
    30 
       
    31   use hg diff | sed "s/\(\(---\|+++\).*\)\t.*/\1/" to strip dates
       
    32 
       
    33 - set -x and pipelines don't generate stable output
       
    34 
       
    35   turn off set -x or break pipelines into pieces
       
    36