# file      : tests/remote.testscript
# license   : MIT; see accompanying LICENSE file

# Tests for commands that accept pkg repository location must be able to run
# regardless whether the repository is local or remote. They also must be able
# to create the repository used for testing at the specified path, so being
# published to build2.org it can be used for the remote testing. Note that
# prior to publishing repositories tests must be performed with the
# config.test.output=keep variable override, so their working directories (that
# contain repositories produced) are not cleaned up.
#

# Output directory path that testscripts must use to prepare repositories
# required by tests they contain.
#
# Note that the local path is carefully crafted so that we end up with the
# same repository names in both (local and remote) cases. This is necessary
# for the authentication to work properly in both cases.
#
out = $canonicalize([dir_path] $~/pkg/1/build2.org/)

# Variables rep_root and rep refer to the root and the command-specific
# repositories respectively. Note that the variables type is dir_path for
# local repositories (rather than string for the remote ones), that allows to
# portably obtain sub-repositories locations representations.
#
rep_root = ($remote ? [string] "https://build2.org/bpkg/1" : $out)

out += [dir_path] $cmd
rep  = ($remote ? [string] "$rep_root/$cmd" : $out)

+if! $remote
  mkdir -p $out
end