aboutsummaryrefslogtreecommitdiff
path: root/tests/pkg-status.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pkg-status.test')
-rw-r--r--tests/pkg-status.test51
1 files changed, 47 insertions, 4 deletions
diff --git a/tests/pkg-status.test b/tests/pkg-status.test
index 3c00e97..3e27294 100644
--- a/tests/pkg-status.test
+++ b/tests/pkg-status.test
@@ -2,7 +2,7 @@
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
-.include common.test config.test remote.test
+.include common.test config.test remote.test remote-git.test
# Source repository:
#
@@ -10,17 +10,25 @@
# |-- extra -> stable (prerequisite)
# | |-- libbar-1.1.0+1.tar.gz
# | `-- repositories
+# |
# |-- stable
# | |-- libbar-1.0.0.tar.gz
# | |-- libfoo-1.0.0.tar.gz
# | `-- repositories
+# |
# |-- testing -> stable (complement), extra (prerequisite)
# | |-- libbar-1.0.0+1.tar.gz
# | |-- libbar-1.1.0.tar.gz
# | `-- repositories
-# `-- unstable -> testing (complement)
-# |-- libbar-2.0.0.tar.gz
-# `-- repositories
+# |
+# |-- unstable -> testing (complement)
+# | |-- libbar-2.0.0.tar.gz
+# | `-- repositories
+# |
+# `-- git
+# |-- libbar.git -> style-basic.git (prerequisite)
+# |-- style-basic.git
+# `-- style.git
# Prepare repositories used by tests if running in the local mode.
#
@@ -31,6 +39,12 @@
cp -r $src/stable $out/stable && $c $out/stable &$out/stable/packages
cp -r $src/testing $out/testing && $c $out/testing &$out/testing/packages
cp -r $src/unstable $out/unstable && $c $out/unstable &$out/unstable/packages
+
+ # Create git repositories.
+ #
+ $git_extract $src/git/style.tar
+ $git_extract $src/git/libbar.tar
+ $git_extract $src/git/style-basic.tar &$out_git/state0/***
end
pkg_fetch += 2>!
@@ -158,3 +172,32 @@ rep_fetch += -d cfg --auth all --trust-yes 2>!
$* -d ../fetched2 libbar >'fetched 2.0.0; available sys:?'
}
}
+
+: git-repos
+:
+if ($git_supported != true)
+{
+ # Skip git repository tests.
+ #
+}
+else
+{
+ rep = "$rep_git/state0"
+ rep_add += -d cfg 2>!
+ test.cleanups += &cfg/.bpkg/repositories/*/***
+
+ : complement-cycle
+ :
+ : Make sure that we properly handle the root<->style repository dependency
+ : cycle while searching for the style-basic package, that is an available
+ : package but not from the user-added repository (or its complement), and so
+ : is not visible for the status command. Note that the root repository is the
+ : default complement for git repositories (see rep_fetch() implementation for
+ : the reasoning).
+ :
+ $clone_root_cfg;
+ $rep_add "$rep/libbar.git#master" && $rep_add "$rep/style.git#master";
+ $rep_fetch;
+
+ $* style-basic >'unknown'
+}