github.com/benhoyt/goawk@v1.8.1/testdata/T.re (about)

     1  echo T.re: tests of regular expression code
     2  
     3  awk '
     4  BEGIN {
     5  	FS = "\t"
     6  	awk = "../a.out"
     7  }
     8  NF == 0 {
     9  	next
    10  }
    11  $1 != "" {	# new test
    12  	re = $1
    13  }
    14  $2 != "" {	# either ~ or !~
    15  	op = $2
    16  	if (op == "~")
    17  		neg = "!"
    18  	else if (op == "!~")
    19  		neg = ""
    20  }
    21  $3 != "" {	# new test string
    22  	str = $3
    23  }
    24  $3 == "\"\"" {	# explicit empty line
    25  	$3 = ""
    26  }
    27  NF > 2 {	# generate a test
    28  	input = $3
    29  	test = sprintf("./echo '"'"'%s'"'"' | %s '"'"'%s/%s/ {print \"%d fails %s %s %s\"}'"'"'",
    30  		input, awk, neg, re, NR, re, op, input)
    31  	# printf(" %3d   %s %s %s:\n", NR, re, op, input)
    32  	# print "test is |" test "|"
    33  	system(test)
    34  	# system("bprint -c ../a.out")
    35  	nt++
    36  }
    37  END { print "	" nt, "tests" }
    38  ' <<\!!!!
    39  	~	a
    40  		aa
    41  		aaa
    42  		""
    43  a	~	a
    44  		ba
    45  		bab
    46  	!~	""
    47  		x
    48  		xxxxx
    49  =	~	=
    50  		b=
    51  		b=b
    52  	!~	""
    53  		x
    54  		xxxxx
    55  .	~	x
    56  		xxx
    57  	!~	""			
    58  .a	~	xa
    59  		xxa
    60  		xax
    61  	!~	a
    62  		ax
    63  		""
    64  $	~	x
    65  		""
    66  .$	~	x
    67  		xx
    68  	!~	""
    69  a$	~	a
    70  		ba
    71  		bbba
    72  	!~	ab
    73  		x
    74  		""
    75  ^	~	x
    76  		""
    77  		^
    78  ^a$	~	a
    79  	!~	xa
    80  		ax
    81  		xax
    82  		""
    83  ^a.$	~	ax
    84  		aa
    85  	!~	xa
    86  		aaa
    87  		axy
    88  		""
    89  ^$	~	""
    90  	!~	x
    91  		^
    92  ^.a	~	xa
    93  		xaa
    94  	!~	a
    95  		""
    96  ^.*a	~	a
    97  		xa
    98  		xxxxxxa
    99  	!~	""
   100  ^.+a	~	xa
   101  		xxxxxxa
   102  	!~	""
   103  		a
   104  		ax
   105  a*	~	""
   106  		a
   107  		aaaa
   108  		xa
   109  		xxxx
   110  aa*	~	a
   111  		aaa
   112  		xa
   113  	!~	xxxx
   114  		""
   115  \$	~	x$
   116  		$
   117  		$x
   118  		x$x
   119  	!~	""
   120  		x
   121  \.	~	.
   122  	!~	x
   123  		""
   124  xr+y	~	xry
   125  		xrry
   126  		xrrrrrry
   127  	!~	ry
   128  		xy
   129  		xr
   130  xr?y	~	xy
   131  		xry
   132  	!~	xrry
   133  a?b?c?	~	""
   134  		x
   135  ^a?b?x	~	x
   136  		ax
   137  		bx
   138  		abx
   139  		xa
   140  	!~	""
   141  		ab
   142  		aba			
   143  [0-9]	~	1
   144  		567
   145  		x0y
   146  	!~	abc
   147  		""
   148  [^0-9]	!~	1
   149  		567
   150  		""
   151  	~	abc
   152  		x0y
   153  [0-25-69]	~	0
   154  		1
   155  		2
   156  		5
   157  		6
   158  		9
   159  	!~	3
   160  		4
   161  		7
   162  		8
   163  [[:lower:]]	~	a
   164  		b
   165  		z
   166  	!~	A
   167  		Z
   168  		1
   169  		:
   170  		[
   171  		]
   172  [[:upper:]]	~	A
   173  		B
   174  		Z
   175  	!~	a
   176  		z
   177  		1
   178  		:
   179  		[
   180  		]
   181  [[:digit:]]	~	0
   182  		1
   183  		9
   184  	!~	d
   185  		:
   186  		[
   187  		]
   188  x[0-9]+y	~	x0y
   189  		x23y
   190  		x12345y
   191  	!~	0y
   192  		xy
   193  x[0-9]?y	~	xy
   194  		x1y
   195  	!~	x23y
   196  x[[]y	~	x[y
   197  	!~	xy
   198  		x[[]y
   199  		x]y
   200  x[[-]y	~	x[y
   201  		x-y
   202  	!~	xy
   203  		x[[]y
   204  		x]y
   205  x[[-a]y	~	x[y
   206  		xay
   207  		x]y
   208  	!~	xy
   209  		x[[]y
   210  		x-y
   211  x[]-a]y	~	x]y
   212  		xay
   213  	!~	xy
   214  		x[y
   215  		x-y
   216  x[]]y	~	x]y
   217  	!~	xy
   218  		x[]]y
   219  		x[y
   220  x[^[]y	~	xay
   221  	!~	x[y
   222  x[-]y	~	x-y
   223  	!~	xy
   224  		x+y
   225  x[^-]y	~	x+y
   226  	!~	x-y
   227  		xy
   228  x[][]y	~	x[y
   229  		x]y
   230  	!~	xy
   231  		x][y
   232  		x[]y
   233  x[z-a]y	~	xy
   234  	!~	x
   235  		y
   236  		xay
   237  		xzy
   238  		x-y
   239  [0\-9]	~	0
   240  		-
   241  		9
   242  	!~	1
   243  		""
   244  [-1]	~	-
   245  		1
   246  	!~	0
   247  [0-]	~	0
   248  		-
   249  	!~	1
   250  [^-0]	~	x
   251  		^
   252  	!~	-
   253  		0
   254  		""
   255  [^0-]	~	x
   256  		^
   257  	!~	-
   258  		0
   259  		""
   260  x|y	~	x
   261  		y
   262  		xy
   263  	!~	a
   264  		""
   265  ^abc|xyz$	~	abc
   266  		abcd
   267  		axyz
   268  		xyz
   269  	!~	xabc
   270  		xyza
   271  ^(abc|xyz)$	~	abc
   272  		xyz
   273  	!~	abcxyz
   274  		abcx
   275  		cxyz
   276  ^x\|y$	~	x|y
   277  	!~	xy
   278  ^x\\y$	~	x\y
   279  	!~	xy
   280  		x\\y
   281  		xay
   282  \141\142	~	ab
   283  		xab
   284  		abx
   285  	!~	a
   286  		b
   287  		ax
   288  		axb
   289  x\056y	~	x.y
   290  	!~	x.
   291  		.x
   292  		xxx
   293  		xby  because \056 is not the metacharacter .
   294  		xcy  ditto
   295  [\60-\62\65-6\71]	~	0
   296  		1
   297  		2
   298  		5
   299  		6
   300  		9
   301  	!~	3
   302  		4
   303  		7
   304  		8
   305  [\60-2\65-6\71]	~	0
   306  		1
   307  		2
   308  		5
   309  		6
   310  		9
   311  	!~	3
   312  		4
   313  		7
   314  		8
   315  [\x30-\x32\x35-6\71]	~	0
   316  		1
   317  		2
   318  		5
   319  		6
   320  		9
   321  	!~	3
   322  		4
   323  		7
   324  		8
   325  [\x30-2\x35-6\x39]	~	0
   326  		1
   327  		2
   328  		5
   329  		6
   330  		9
   331  	!~	3
   332  		4
   333  		7
   334  		8
   335  \f	!~	x
   336  \b	!~	x
   337  \r	!~	x
   338  \n	!~	x
   339  !!!!