| #!/bin/bash |
| # Copyright 2021 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. |
| |
| ### Test expected behavior of fx setup-go |
| |
| BT_FILE_DEPS=( |
| "scripts/fx" |
| "tools/devshell/contrib/setup-go" |
| "tools/devshell/go" |
| "tools/devshell/lib/fx-cmd-locator.sh" |
| "tools/devshell/lib/fx-optional-features.sh" |
| "tools/devshell/lib/platform.sh" |
| "tools/devshell/lib/vars.sh" |
| ) |
| |
| declare fx |
| declare go |
| |
| BT_SET_UP() { |
| source "${BT_TEMP_DIR}/tools/devshell/lib/vars.sh" |
| source "${BT_TEMP_DIR}/tools/devshell/tests/lib/fuchsia-mock.sh" |
| fx="$(btf::setup_fx)" |
| |
| mkdir -p "$FUCHSIA_DIR/vendor" |
| mkdir -p "$FUCHSIA_DIR/out" |
| mkdir -p "$FUCHSIA_DIR/third_party/golibs/vendor/golang.org" |
| touch "$FUCHSIA_DIR/third_party/golibs/go.mod" |
| touch "$FUCHSIA_DIR/third_party/golibs/go.sum" |
| |
| go="${PREBUILT_GO_DIR}/bin/go" |
| btf::make_mock "$go" |
| } |
| |
| TEST_go-setup() { |
| BT_ASSERT "$fx" setup-go |
| |
| BT_EXPECT_FILE_EXISTS "$FUCHSIA_DIR/go.mod" |
| BT_EXPECT_FILE_EXISTS "$FUCHSIA_DIR/go.sum" |
| BT_EXPECT_FILE_EXISTS "$FUCHSIA_DIR/vendor/golang.org" |
| |
| # `go mod init` should have been called. This assumes that `out` is the first |
| # of several directories that the script runs `go mod init` in. |
| btf::expect-mock-args "${go}.mock_state.1" mod init go.fuchsia.dev/fuchsia/out |
| } |
| |
| TEST_go-teardown() { |
| files=( |
| go.mod |
| go.sum |
| out/go.mod |
| third_party/go.mod |
| ) |
| for file in "${files[@]}"; do |
| BT_ASSERT touch "$FUCHSIA_DIR/$file" |
| done |
| |
| symlinks=( |
| vendor/golang.org |
| ) |
| for file in "${symlinks[@]}"; do |
| BT_ASSERT ln -s "../third_party/golibs/$file" "$FUCHSIA_DIR/$file" |
| done |
| |
| BT_ASSERT "$fx" setup-go -d |
| |
| files_that_should_be_deleted=( "${files[@]}" "${symlinks[@]}" ) |
| for file in "${files_that_should_be_deleted[@]}"; do |
| BT_EXPECT_FILE_DOES_NOT_EXIST "$FUCHSIA_DIR/$file" |
| done |
| } |
| |
| BT_RUN_TESTS "$@" |