aboutsummaryrefslogtreecommitdiff
path: root/tests/remote-git.test
blob: 5214b350daad7ddab5db7edc504baa2f9d98df10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# file      : tests/remote-git.test
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license   : MIT; see accompanying LICENSE file

# Tests for commands that accept git 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.
#

# Check that git version is the minimum supported one (2.11.0) or above.
#
+git --version | set git_version_out

+echo "$git_version_out" | sed -n -e 's/git version (\d+\.\d+\.\d+).*/\1/p' | \
 set git_version

+if ("$git_version" == "")
  exit "unable to obtain git version from '$git_version_out'"
end

+echo "$git_version" | sed -e 's/(\d+).*/\1/'      | set git_version_major
+echo "$git_version" | sed -e 's/\d+\.(\d+).*/\1/' | set git_version_minor

git_supported = ($git_version_major >  2 || \
		 $git_version_major == 2 && $git_version_minor >= 11)

# Output directory path that testscripts must use to prepare repositories
# required by tests they contains.
#
out_git = $canonicalize([dir_path] $~/git/$cmd)

# If $remote is true then remote repository locations must be used for tests.
#
remote = $config.bpkg.test.remote

+if ($remote != true)
  rep_git_local = ($cxx.target.class != 'windows' \
                   ? "file://$out_git" \
                   : "file:/$regex.replace($out_git, '\\', '/')")

  mkdir -p $out_git
else
  rep_git_https_dumb        = "https://build2.org/bpkg/git/$cmd"
  rep_git_https_smart       = "https://git.build2.org/testing/bpkg/advonly/$cmd"
  rep_git_https_smart_unadv = "https://git.build2.org/testing/bpkg/unadv/$cmd"
  rep_git_git               = "git://git.build2.org/testing/bpkg/unadv/$cmd"
end