#!/bin/bash # Copyright 2016 The Bazel Authors. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http:#www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. set -eu # This allows RUNFILES to be declared outside the script it you want. # RUNFILES for test is the directory of the script. global RUNFILES := $(RUNFILES:-$($(cd $(dirname ${BASH_SOURCE[0]})); pwd)) source "$(RUNFILES)/examples/shell/lib.sh" proc test_output { global OUTPUT := $[showfile] global EXPECTED_OUTPUT := $[cat "$(RUNFILES)/examples/shell/data/test_file.txt] if test $(OUTPUT) != $(EXPECTED_OUTPUT) { # This would be a failure case. exit 1 } } test_output (CommandList children: [ (C {(set)} {(-eu)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RUNFILES) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (C { (CommandSubPart command_list: (CommandList children: [ (C {(cd)} { (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (BracedVarSub token: bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 0)} ) ) spids: [66 71] ) } ) ] ) left_token: spids: [63 72] ) } ) ] ) left_token: spids: [60 73] ) } ) terminator: ) (C {(pwd)}) ] ) left_token: spids: [59 77] ) } ) spids: [56 78] ) } spids: [55] ) ] spids: [55] ) (C {(source)} {(DQ (${ VSub_Name RUNFILES) (/examples/shell/lib.sh))}) (FuncDef name: test_output body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OUTPUT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(showfile)})]) left_token: spids: [99 101] ) } spids: [98] ) ] spids: [98] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:EXPECTED_OUTPUT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(cat)} {(DQ (${ VSub_Name RUNFILES) (/examples/shell/data/test_file.txt))} ) ] ) left_token: spids: [105 114] ) } spids: [104] ) ] spids: [104] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ (${ VSub_Name OUTPUT))} {(KW_Bang "!") (Lit_Other "=")} {(DQ (${ VSub_Name EXPECTED_OUTPUT))} {(Lit_Other "]")} ) terminator: ) ] action: [(C {(exit)} {(1)})] spids: [-1 140] ) ] spids: [-1 152] ) ] spids: [95] ) spids: [91 94] ) (C {(test_output)}) ] )