tests/test-revset.t
changeset 16096 b8be450638f6
parent 16008 02a497a17257
child 16218 81a1a00f5738
equal deleted inserted replaced
16095:3eab42088be4 16096:b8be450638f6
   428 
   428 
   429 aliases:
   429 aliases:
   430 
   430 
   431   $ echo '[revsetalias]' >> .hg/hgrc
   431   $ echo '[revsetalias]' >> .hg/hgrc
   432   $ echo 'm = merge()' >> .hg/hgrc
   432   $ echo 'm = merge()' >> .hg/hgrc
       
   433   $ echo 'sincem = descendants(m)' >> .hg/hgrc
   433   $ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc
   434   $ echo 'd($1) = reverse(sort($1, date))' >> .hg/hgrc
   434   $ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
   435   $ echo 'rs(ARG1, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
   435   $ echo 'rs4(ARG1, ARGA, ARGB, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
   436   $ echo 'rs4(ARG1, ARGA, ARGB, ARG2) = reverse(sort(ARG1, ARG2))' >> .hg/hgrc
   436 
   437 
   437   $ try m
   438   $ try m
   438   ('symbol', 'm')
   439   ('symbol', 'm')
   439   ('func', ('symbol', 'merge'), None)
   440   ('func', ('symbol', 'merge'), None)
   440   6
   441   6
       
   442 
       
   443 test alias recursion
       
   444 
       
   445   $ try sincem
       
   446   ('symbol', 'sincem')
       
   447   ('func', ('symbol', 'descendants'), ('func', ('symbol', 'merge'), None))
       
   448   6
       
   449   7
       
   450 
       
   451 test infinite recursion
       
   452 
       
   453   $ echo 'recurse1 = recurse2' >> .hg/hgrc
       
   454   $ echo 'recurse2 = recurse1' >> .hg/hgrc
       
   455   $ try recurse1
       
   456   ('symbol', 'recurse1')
       
   457   hg: parse error: infinite expansion of revset alias "recurse1" detected
       
   458   [255]
       
   459 
       
   460 test nesting and variable passing
       
   461 
       
   462   $ echo 'nested($1) = nested2($1)' >> .hg/hgrc
       
   463   $ echo 'nested2($1) = nested3($1)' >> .hg/hgrc
       
   464   $ echo 'nested3($1) = max($1)' >> .hg/hgrc
       
   465   $ try 'nested(2:5)'
       
   466   ('func', ('symbol', 'nested'), ('range', ('symbol', '2'), ('symbol', '5')))
       
   467   ('func', ('symbol', 'max'), ('range', ('symbol', '2'), ('symbol', '5')))
       
   468   5
       
   469 
       
   470 test variable isolation, variable placeholders are rewritten as string
       
   471 then parsed and matched again as string. Check they do not leak too
       
   472 far away.
       
   473 
       
   474   $ echo 'injectparamasstring = max("$1")' >> .hg/hgrc
       
   475   $ echo 'callinjection($1) = descendants(injectparamasstring)' >> .hg/hgrc
       
   476   $ try 'callinjection(2:5)'
       
   477   ('func', ('symbol', 'callinjection'), ('range', ('symbol', '2'), ('symbol', '5')))
       
   478   ('func', ('symbol', 'descendants'), ('func', ('symbol', 'max'), ('string', '$1')))
       
   479   abort: unknown revision '$1'!
       
   480   [255]
       
   481 
   441   $ try 'd(2:5)'
   482   $ try 'd(2:5)'
   442   ('func', ('symbol', 'd'), ('range', ('symbol', '2'), ('symbol', '5')))
   483   ('func', ('symbol', 'd'), ('range', ('symbol', '2'), ('symbol', '5')))
   443   ('func', ('symbol', 'reverse'), ('func', ('symbol', 'sort'), ('list', ('range', ('symbol', '2'), ('symbol', '5')), ('symbol', 'date'))))
   484   ('func', ('symbol', 'reverse'), ('func', ('symbol', 'sort'), ('list', ('range', ('symbol', '2'), ('symbol', '5')), ('symbol', 'date'))))
   444   4
   485   4
   445   5
   486   5