| #!/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" |