Home | History | Annotate | Line # | Download | only in unit-tests
      1  1.20  rillig # $NetBSD: varmod-order.mk,v 1.20 2025/06/28 22:39:29 rillig Exp $
      2   1.1  rillig #
      3   1.6  rillig # Tests for the :O variable modifier and its variants, which either sort the
      4   1.6  rillig # words of the value or shuffle them.
      5   1.1  rillig 
      6   1.7  rillig WORDS=		one two three four five six seven eight nine ten
      7   1.7  rillig NUMBERS=	8 5 4 9 1 7 6 10 3 2	# in English alphabetical order
      8   1.3  rillig 
      9   1.7  rillig .if ${WORDS:O} != "eight five four nine one seven six ten three two"
     10   1.7  rillig .  error ${WORDS:O}
     11   1.3  rillig .endif
     12   1.1  rillig 
     13  1.19  rillig # expect+1: Unknown modifier ":OX"
     14   1.7  rillig _:=	${WORDS:OX}
     15   1.4  rillig 
     16  1.19  rillig # expect+1: Unknown modifier ":OxXX"
     17   1.7  rillig _:=	${WORDS:OxXX}
     18   1.4  rillig 
     19  1.20  rillig # expect+1: Unclosed expression, expecting "}" for modifier "O"
     20   1.7  rillig _:=	${WORDS:O
     21  1.20  rillig # expect+1: Unclosed expression, expecting "}" for modifier "On"
     22   1.6  rillig _:=	${NUMBERS:On
     23  1.20  rillig # expect+1: Unclosed expression, expecting "}" for modifier "Onr"
     24   1.6  rillig _:=	${NUMBERS:Onr
     25   1.6  rillig 
     26   1.6  rillig # Shuffling numerically doesn't make sense, so don't allow 'x' and 'n' to be
     27   1.6  rillig # combined.
     28   1.6  rillig #
     29  1.19  rillig # expect+1: Unknown modifier ":Oxn"
     30   1.6  rillig .if ${NUMBERS:Oxn}
     31   1.6  rillig .  error
     32   1.6  rillig .else
     33   1.6  rillig .  error
     34   1.6  rillig .endif
     35   1.6  rillig 
     36   1.6  rillig # Extra characters after ':On' are detected and diagnosed.
     37   1.6  rillig #
     38  1.19  rillig # expect+1: Unknown modifier ":On_typo"
     39   1.6  rillig .if ${NUMBERS:On_typo}
     40   1.6  rillig .  error
     41   1.6  rillig .else
     42   1.6  rillig .  error
     43   1.6  rillig .endif
     44   1.6  rillig 
     45   1.6  rillig # Extra characters after ':Onr' are detected and diagnosed.
     46   1.6  rillig #
     47  1.19  rillig # expect+1: Unknown modifier ":Onr_typo"
     48   1.6  rillig .if ${NUMBERS:Onr_typo}
     49   1.6  rillig .  error
     50   1.6  rillig .else
     51   1.6  rillig .  error
     52   1.6  rillig .endif
     53   1.6  rillig 
     54   1.6  rillig # Extra characters after ':Orn' are detected and diagnosed.
     55   1.6  rillig #
     56  1.19  rillig # expect+1: Unknown modifier ":Orn_typo"
     57   1.6  rillig .if ${NUMBERS:Orn_typo}
     58   1.6  rillig .  error
     59   1.6  rillig .else
     60   1.6  rillig .  error
     61   1.6  rillig .endif
     62   1.6  rillig 
     63   1.6  rillig # Repeating the 'n' is not supported.  In the typical use cases, the sorting
     64   1.6  rillig # criteria are fixed, not computed, therefore allowing this redundancy does
     65   1.6  rillig # not make sense.
     66   1.6  rillig #
     67  1.19  rillig # expect+1: Unknown modifier ":Onn"
     68   1.6  rillig .if ${NUMBERS:Onn}
     69   1.6  rillig .  error
     70   1.6  rillig .else
     71   1.6  rillig .  error
     72   1.6  rillig .endif
     73   1.6  rillig 
     74   1.6  rillig # Repeating the 'r' is not supported as well, for the same reasons as above.
     75   1.6  rillig #
     76  1.19  rillig # expect+1: Unknown modifier ":Onrr"
     77   1.6  rillig .if ${NUMBERS:Onrr}
     78   1.6  rillig .  error
     79   1.6  rillig .else
     80   1.6  rillig .  error
     81   1.6  rillig .endif
     82   1.6  rillig 
     83   1.6  rillig # Repeating the 'r' is not supported as well, for the same reasons as above.
     84   1.6  rillig #
     85  1.19  rillig # expect+1: Unknown modifier ":Orrn"
     86   1.6  rillig .if ${NUMBERS:Orrn}
     87   1.6  rillig .  error
     88   1.6  rillig .else
     89   1.6  rillig .  error
     90   1.6  rillig .endif
     91   1.6  rillig 
     92   1.9  rillig 
     93  1.10  rillig # If a modifier that starts with ':O' is not one of the known sort or shuffle
     94  1.19  rillig # forms, fall back to the SysV modifier.
     95  1.10  rillig SWITCH=	On
     96  1.10  rillig .if ${SWITCH:On=Off} != "Off"
     97   1.9  rillig .  error
     98   1.9  rillig .endif
     99   1.9  rillig 
    100   1.1  rillig all:
    101