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