Home | History | Annotate | Line # | Download | only in unit-tests
varmisc.mk revision 1.7
      1  1.7  sjg # $Id: varmisc.mk,v 1.7 2017/01/30 02:46:20 sjg Exp $
      2  1.1  apb #
      3  1.1  apb # Miscellaneous variable tests.
      4  1.1  apb 
      5  1.6  sjg all: unmatched_var_paren D_true U_true D_false U_false Q_lhs Q_rhs NQ_none \
      6  1.7  sjg 	strftime cmpv
      7  1.1  apb 
      8  1.1  apb unmatched_var_paren:
      9  1.2  sjg 	@echo ${foo::=foo-text}
     10  1.3  sjg 
     11  1.4  sjg True = ${echo true >&2:L:sh}TRUE
     12  1.4  sjg False= ${echo false >&2:L:sh}FALSE
     13  1.3  sjg 
     14  1.3  sjg VSET= is set
     15  1.3  sjg .undef UNDEF
     16  1.3  sjg 
     17  1.3  sjg U_false:
     18  1.3  sjg 	@echo :U skipped when var set
     19  1.3  sjg 	@echo ${VSET:U${False}}
     20  1.3  sjg 
     21  1.3  sjg D_false:
     22  1.3  sjg 	@echo :D skipped if var undef
     23  1.3  sjg 	@echo ${UNDEF:D${False}}
     24  1.3  sjg 
     25  1.3  sjg U_true:
     26  1.3  sjg 	@echo :U expanded when var undef
     27  1.3  sjg 	@echo ${UNDEF:U${True}}
     28  1.3  sjg 
     29  1.3  sjg D_true:
     30  1.3  sjg 	@echo :D expanded when var set
     31  1.3  sjg 	@echo ${VSET:D${True}}
     32  1.3  sjg 
     33  1.3  sjg Q_lhs:
     34  1.3  sjg 	@echo :? only lhs when value true
     35  1.3  sjg 	@echo ${1:L:?${True}:${False}}
     36  1.3  sjg 
     37  1.3  sjg Q_rhs:
     38  1.3  sjg 	@echo :? only rhs when value false
     39  1.3  sjg 	@echo ${0:L:?${True}:${False}}
     40  1.5  sjg 
     41  1.5  sjg NQ_none:
     42  1.5  sjg 	@echo do not evaluate or expand :? if discarding
     43  1.5  sjg 	@echo ${VSET:U${1:L:?${True}:${False}}}
     44  1.6  sjg 
     45  1.6  sjg April1= 1459494000
     46  1.6  sjg 
     47  1.6  sjg # slightly contorted syntax to use utc via variable
     48  1.6  sjg strftime:
     49  1.6  sjg 	@echo ${year=%Y month=%m day=%d:L:gmtime=1459494000}
     50  1.6  sjg 	@echo date=${%Y%m%d:L:${gmtime=${April1}:L}}
     51  1.6  sjg 
     52  1.7  sjg # big jumps to handle 3 digits per step
     53  1.7  sjg M_cmpv.units = 1 100 10000 1000000
     54  1.7  sjg # this will produce the same result as the .for loop below
     55  1.7  sjg M_cmpv = S,., ,g:_:range:@i@+ $${_:[-$$i]} \* $${M_cmpv.units:[$$i]}@:S,^,expr 0 ,1:sh
     56  1.7  sjg 
     57  1.7  sjg Version = 1.2.3
     58  1.7  sjg 
     59  1.7  sjg cmpv:
     60  1.7  sjg 	@echo Version=${Version} == ${Version:${M_cmpv}}
     61  1.7  sjg 	@echo Literal=3.4.5 == ${3.4.5:L:${M_cmpv}}
     62