github.com/westcoastroms/westcoastroms-build@v0.0.0-20190928114312-2350e5a73030/build/kati/testcase/readonly_global.sh (about)

     1  #!/bin/bash
     2  #
     3  # Copyright 2016 Google Inc. All rights reserved
     4  #
     5  # Licensed under the Apache License, Version 2.0 (the "License");
     6  # you may not use this file except in compliance with the License.
     7  # You may obtain a copy of the License at
     8  #
     9  #      http:#www.apache.org/licenses/LICENSE-2.0
    10  #
    11  # Unless required by applicable law or agreed to in writing, software
    12  # distributed under the License is distributed on an "AS IS" BASIS,
    13  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  # See the License for the specific language governing permissions and
    15  # limitations under the License.
    16  
    17  set -u
    18  
    19  mk="$@"
    20  
    21  function build() {
    22    cat <<EOF > Makefile
    23  FOO $1 bar
    24  .KATI_READONLY $2 FOO
    25  FOO $3 baz
    26  all:
    27  EOF
    28  
    29    echo "Testcase: $1 $2 $3"
    30    if echo "${mk}" | grep -q "^make"; then
    31      # Make doesn't support .KATI_READONLY
    32      echo "Makefile:3: *** cannot assign to readonly variable: FOO"
    33    else
    34      ${mk} 2>&1 && echo "Clean exit"
    35    fi
    36  }
    37  
    38  build "=" "=" "="
    39  build "=" "+=" "="
    40  build "=" ":=" "="
    41  
    42  build "=" ":=" ":="
    43  build "=" ":=" "+="
    44  
    45  build ":=" ":=" ":="
    46  build ":=" ":=" "+="
    47  build ":=" ":=" "="