tests/test-revset.t
changeset 25343 7fbef7932af9
parent 25309 b333ca94403d
child 25344 ceaf04bb14ff
equal deleted inserted replaced
25342:5dde117269b6 25343:7fbef7932af9
   130   (or
   130   (or
   131     ('symbol', '0')
   131     ('symbol', '0')
   132     ('symbol', '1')
   132     ('symbol', '1')
   133     ('symbol', '2'))
   133     ('symbol', '2'))
   134   * set:
   134   * set:
   135   <addset
   135   <baseset [0, 1, 2]>
   136     <baseset [0]>,
       
   137     <addset
       
   138       <baseset [1]>,
       
   139       <baseset [2]>>>
       
   140   0
   136   0
   141   1
   137   1
   142   2
   138   2
   143 
   139 
   144 names that should work without quoting
   140 names that should work without quoting
   270         ('symbol', '2')
   266         ('symbol', '2')
   271         ('symbol', '3'))))
   267         ('symbol', '3'))))
   272   * set:
   268   * set:
   273   <addset
   269   <addset
   274     <baseset [1]>,
   270     <baseset [1]>,
   275     <addset
   271     <baseset [2, 3]>>
   276       <baseset [2]>,
       
   277       <baseset [3]>>>
       
   278   1
   272   1
   279   2
   273   2
   280   3
   274   3
   281   $ log '1.0' # tag
   275   $ log '1.0' # tag
   282   6
   276   6
   906   1
   900   1
   907   2
   901   2
   908   3
   902   3
   909   4
   903   4
   910   5
   904   5
       
   905 
       
   906 test optimization of trivial `or` operation
       
   907 
       
   908   $ try --optimize '0|(1)|"2"|-2|tip|null'
       
   909   (or
       
   910     ('symbol', '0')
       
   911     (group
       
   912       ('symbol', '1'))
       
   913     ('string', '2')
       
   914     (negate
       
   915       ('symbol', '2'))
       
   916     ('symbol', 'tip')
       
   917     ('symbol', 'null'))
       
   918   * optimized:
       
   919   (func
       
   920     ('symbol', '_list')
       
   921     ('string', '0\x001\x002\x00-2\x00tip\x00null'))
       
   922   * set:
       
   923   <baseset [0, 1, 2, 8, 9, -1]>
       
   924   0
       
   925   1
       
   926   2
       
   927   8
       
   928   9
       
   929   -1
       
   930 
       
   931   $ try --optimize '0|1|2:3'
       
   932   (or
       
   933     ('symbol', '0')
       
   934     ('symbol', '1')
       
   935     (range
       
   936       ('symbol', '2')
       
   937       ('symbol', '3')))
       
   938   * optimized:
       
   939   (or
       
   940     (func
       
   941       ('symbol', '_list')
       
   942       ('string', '0\x001'))
       
   943     (range
       
   944       ('symbol', '2')
       
   945       ('symbol', '3')))
       
   946   * set:
       
   947   <addset
       
   948     <baseset [0, 1]>,
       
   949     <spanset+ 2:3>>
       
   950   0
       
   951   1
       
   952   2
       
   953   3
       
   954 
       
   955   $ try --optimize '0:1|2|3:4|5|6'
       
   956   (or
       
   957     (range
       
   958       ('symbol', '0')
       
   959       ('symbol', '1'))
       
   960     ('symbol', '2')
       
   961     (range
       
   962       ('symbol', '3')
       
   963       ('symbol', '4'))
       
   964     ('symbol', '5')
       
   965     ('symbol', '6'))
       
   966   * optimized:
       
   967   (or
       
   968     (range
       
   969       ('symbol', '0')
       
   970       ('symbol', '1'))
       
   971     ('symbol', '2')
       
   972     (range
       
   973       ('symbol', '3')
       
   974       ('symbol', '4'))
       
   975     (func
       
   976       ('symbol', '_list')
       
   977       ('string', '5\x006')))
       
   978   * set:
       
   979   <addset
       
   980     <addset
       
   981       <spanset+ 0:1>,
       
   982       <baseset [2]>>,
       
   983     <addset
       
   984       <spanset+ 3:4>,
       
   985       <baseset [5, 6]>>>
       
   986   0
       
   987   1
       
   988   2
       
   989   3
       
   990   4
       
   991   5
       
   992   6
       
   993 
       
   994 test that `_list` should be narrowed by provided `subset`
       
   995 
       
   996   $ log '0:2 and (null|1|2|3)'
       
   997   1
       
   998   2
       
   999 
       
  1000 test that `_list` should remove duplicates
       
  1001 
       
  1002   $ log '0|1|2|1|2|-1|tip'
       
  1003   0
       
  1004   1
       
  1005   2
       
  1006   9
       
  1007 
       
  1008 test unknown revision in `_list`
       
  1009 
       
  1010   $ log '0|unknown'
       
  1011   abort: unknown revision 'unknown'!
       
  1012   [255]
   911 
  1013 
   912 test that chained `or` operations make balanced addsets
  1014 test that chained `or` operations make balanced addsets
   913 
  1015 
   914   $ try '0:1|1:2|2:3|3:4|4:5'
  1016   $ try '0:1|1:2|2:3|3:4|4:5'
   915   (or
  1017   (or
  1365       ('symbol', '1')
  1467       ('symbol', '1')
  1366       ('symbol', '2')))
  1468       ('symbol', '2')))
  1367   * set:
  1469   * set:
  1368   <addset
  1470   <addset
  1369     <baseset [3]>,
  1471     <baseset [3]>,
  1370     <addset
  1472     <baseset [1, 2]>>
  1371       <baseset [1]>,
       
  1372       <baseset [2]>>>
       
  1373   3
  1473   3
  1374   1
  1474   1
  1375   2
  1475   2
  1376 
  1476 
  1377 test nesting and variable passing
  1477 test nesting and variable passing