# file : tests/pkg-checkout.testscript # copyright : Copyright (c) 2014-2018 Code Synthesis Ltd # license : MIT; see accompanying LICENSE file .include common.testscript config.testscript remote-git.testscript # Source repository: # # pkg-checkout # `-- git # |-- libbar.git -> style-basic.git (prerequisite) # `-- style-basic.git # Prepare repositories used by tests if running in the local mode. # +if ($remote != true) # Create git repositories. # $git_extract $src/git/libbar.tar $git_extract $src/git/style-basic0.tar &$out_git/state0/*** $git_extract $src/git/style-basic1.tar &$out_git/state1/*** end : git-rep : if ($git_supported != true) { # Skip git repository tests. # } else { rep = "$rep_git/state0" rep_add += -d cfg 2>! rep_fetch += -d cfg 2>! pkg_configure += -d cfg 2>! pkg_disfigure += -d cfg 2>! pkg_purge += -d cfg 2>! pkg_status += -d cfg test.cleanups += &cfg/.bpkg/repos/*/*** : unconfigured-dependency : $clone_root_cfg; $rep_add "$rep/libbar.git#master"; $rep_fetch; $* libmbar/1.0.0 2>>EOE != 0 error: no configured package satisfies dependency on style-basic >= 1.0.0 EOE : configured-dependency : $clone_root_cfg; $rep_add "$rep/libbar.git#master" && $rep_add "$rep/style-basic.git#master"; $rep_fetch; $pkg_status style-basic | sed -n -e 's/style-basic available \[.+\] ([^ ]+)/\1/p' | set v; $* "style-basic/$v" 2>>"EOE"; distributing style-basic/$v checked out style-basic/$v EOE $pkg_configure style-basic; $* libmbar/1.0.0 2>>EOE; distributing libmbar/1.0.0 checked out libmbar/1.0.0 EOE $pkg_disfigure style-basic; $pkg_purge libmbar; $pkg_purge style-basic : replacement : # @@ Reduce to a single repository when multiple revisions can be specified # in the repository URL fragment. # rep0 = "$rep_git/state0"; rep1 = "$rep_git/state1"; $clone_root_cfg; $rep_add "$rep0/style-basic.git#master"; $rep_add "$rep1/style-basic.git#stable"; $rep_fetch; $pkg_status style-basic | \ sed -n -e 's/style-basic available ([^ ]+) +([^ ]+)/\1 \2/p' | set vs; echo "$vs" | sed -e 's/([^ ]+).+/\1/' | set v0; echo "$vs" | sed -e 's/([^ ]+) +([^ ]+)/\2/' | set v1; $* "style-basic/$v0" 2>!; $pkg_status style-basic >~"/style-basic unpacked $v0/"; $* --replace "style-basic/$v1" 2>!; $pkg_status style-basic >~"/style-basic unpacked $v1 .+/"; $pkg_purge style-basic }