11579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# Copyright (C) 2010 The Android Open Source Project 21579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# 31579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# Licensed under the Apache License, Version 2.0 (the "License"); 41579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# you may not use this file except in compliance with the License. 51579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# You may obtain a copy of the License at 61579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# 71579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# http://www.apache.org/licenses/LICENSE-2.0 81579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# 91579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# Unless required by applicable law or agreed to in writing, software 101579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# distributed under the License is distributed on an "AS IS" BASIS, 111579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# See the License for the specific language governing permissions and 131579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# limitations under the License. 141579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner# 151579cd933a0e3a1bdd494a312fb5b9e75a03be87David 'Digit' Turner 166506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner# This script is used to check that a given awk executable 176506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner# implements the match() and substr() functions appropriately. 186506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner# 196506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner# These were introduced in nawk/gawk, but the original awk 206506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner# does not have them. 216506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner# 2235f944d26f33fff3e59ab449c991b18260a5fa0bDavid 'Digit' TurnerBEGIN { 236506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner RSTART=0 246506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner RLENGTH=0 256506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner s1="A real world example" 266506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner if (! match(s1,"world")) { 276506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner print "Fail match" 286506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner } else if (RSTART != 8) { 296506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner print "Fail RSTART ="RSTART 306506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner } else if (RLENGTH != 5) { 316506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner print "Fail RLENGTH ="RLENGTH 326506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner } else { 336506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner s2=substr(s1,RSTART,RLENGTH) 346506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner if (s2 != "world") { 356506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner print "Fail substr="s2 366506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner } else { 376506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner print "Pass" 386506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner } 396506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner } 406506b6ab90f788b9f3796760f0f3762c2b74699bDavid 'Digit' Turner} 41