#!/bin/bash # # Copyright 2015 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. # Setting up the environment for Bazel release scripts test. test -z $TEST_SRCDIR && do { echo "TEST_SRCDIR not set!" > !2; exit 1; } # Load the unit-testing framework source "$(TEST_SRCDIR)/io_bazel/src/test/shell/unittest.bash" || \ do { echo "Failed to source unittest.bash" > !2; exit 1; } # Commit at which we cut the master to do the test so we always take the git # repository in a consistent state. : $(MASTER_COMMIT:=7d41d7417fc34f7fa8aac7130a0588b8557e4b57) # Set-up a copy of the git repository in ${MASTER_ROOT}, pointing master # to ${MASTER_COMMIT}. proc setup_git_repository { var origin_git_root = "$(TEST_SRCDIR)/io_bazel" global MASTER_ROOT := "$(TEST_TMPDIR)/git/root" var orig_dir = $(PWD) # Create a new origin with the good starting point mkdir -p $(MASTER_ROOT) cd $(MASTER_ROOT) cp -RL $(origin_git_root)/.git .git rm -f .git/hooks/* # Do not keep custom hooks git reset -q --hard HEAD git checkout -q -B master $(MASTER_COMMIT) cd $(orig_dir) } (CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$TEST_SRCDIR"))} {(Lit_Other "]")}) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ("TEST_SRCDIR not set!"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[70])] ) terminator: ) (Sentence child:(C {(exit)} {(1)}) terminator:) ] spids: [62] ) ] op_id: Op_DAmp ) (AndOr children: [ (C {(source)} {(DQ (${ VSub_Name TEST_SRCDIR) (/io_bazel/src/test/shell/unittest.bash))}) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ("Failed to source unittest.bash"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[106])] ) terminator: ) (Sentence child:(C {(exit)} {(1)}) terminator:) ] spids: [98] ) ] op_id: Op_DPipe ) (C {(Lit_Other ":")} { (BracedVarSub token: suffix_op: (StringUnary op_id: VTest_ColonEquals arg_word: {(7d41d7417fc34f7fa8aac7130a0588b8557e4b57)} ) spids: [126 130] ) } ) (FuncDef name: setup_git_repository body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:origin_git_root) op: Equal rhs: {(${ VSub_Name TEST_SRCDIR) (/io_bazel)} spids: [150] ) ] spids: [148] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MASTER_ROOT) op: Equal rhs: {(${ VSub_Name TEST_TMPDIR) (/git/root)} spids: [157] ) ] spids: [157] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:orig_dir) op: Equal rhs: {(${ VSub_Name PWD)} spids: [166] ) ] spids: [164] ) (C {(mkdir)} {(-p)} {(${ VSub_Name MASTER_ROOT)}) (C {(cd)} {(${ VSub_Name MASTER_ROOT)}) (C {(cp)} {(-RL)} {(${ VSub_Name origin_git_root) (/.git)} {(.git)}) (C {(rm)} {(-f)} {(.git/hooks/) (Lit_Other "*")}) (C {(git)} {(reset)} {(-q)} {(--hard)} {(HEAD)}) (C {(git)} {(checkout)} {(-q)} {(-B)} {(master)} {(${ VSub_Name MASTER_COMMIT)}) (C {(cd)} {(${ VSub_Name orig_dir)}) ] spids: [145] ) spids: [139 144] ) ] )