| #!/bin/bash | 
 | # Copyright 2020 The Fuchsia Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 |  | 
 | # Automated tests for https://fuchsia.googlesource.com/fargo/ | 
 | # | 
 | # Usage: fargo-test | 
 | # | 
 | #   Returns: Error status if the build isn't properly configured for | 
 | #   fargo testing or if the test fails. | 
 |  | 
 | bail() | 
 | { | 
 | 	echo "$1" 1>&2 | 
 | 	exit 1 | 
 | } | 
 |  | 
 | # pull in the standard fx shell variables | 
 | source "$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"/../../tools/devshell/lib/vars.sh || exit $? | 
 |  | 
 | # use the fx script from this tree, don't rely on PATH | 
 | FX="$FUCHSIA_DIR/scripts/fx" | 
 |  | 
 | # use the prebuilt fargo | 
 | FARGO="$PREBUILT_3P_DIR/fargo/$HOST_PLATFORM/fargo" | 
 | if [[ ! -f "$FARGO" ]] | 
 | then | 
 |     bail "Error: can't find prebuilt fargo at $FARGO" | 
 | fi | 
 |  | 
 | # make sure the build is configured with a Carnelian sample | 
 | "$FX" list-packages "spinning-square-rs"  >/dev/null 2>&1 || bail "Error: Could not find \ | 
 | the spinning square example in the package list. Please make sure you have '--with //src/lib/ui/\ | 
 | carnelian:examples' in your 'fx set'" | 
 |  | 
 | # Use gen-cargo to create a link in the current directory to the current directory | 
 | "$FX" gen-cargo //src/lib/ui/carnelian || bail "Error: could not use fx gen-cargo" | 
 |  | 
 | # Set the current directory to Carnelian | 
 | cd "$FUCHSIA_DIR/src/lib/ui/carnelian" || bail "Error: could not set the current directory to carnelian" | 
 |  | 
 | # Run fargo check, which is quick and if it works there's a good chance the rest of fargo will work | 
 | "$FARGO" check --example spinning_square || bail "Error: fargo check failed" |