aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2023-09-20 18:06:16 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2023-09-20 19:48:35 +0300
commit89c3a2dfdf75fb536870e17531e6f8161fa05686 (patch)
tree8c9bb0a722c51b627e717361c2ce3f4dca556cbe
parente3154f3b02a61eb51f84c0911396687cb62b333e (diff)
Use bsdtar instead of tar in tests on Windows to sidestep msys-related issues
-rw-r--r--tests/pkg-build.testscript19
-rw-r--r--tests/remote-git.testscript4
-rw-r--r--tests/rep-info.testscript4
3 files changed, 16 insertions, 11 deletions
diff --git a/tests/pkg-build.testscript b/tests/pkg-build.testscript
index bd37c12..be5a9f8 100644
--- a/tests/pkg-build.testscript
+++ b/tests/pkg-build.testscript
@@ -490,7 +490,7 @@ end
config_cxx = [cmdline] config.cxx=$quote($recall($cxx.path) $cxx.config.mode, true)
-tar = [cmdline] tar (!$posix ? --force-local : )
+tar = [cmdline] ($posix ? tar : bsdtar)
cfg_create += 2>!
cfg_link += 2>!
@@ -1887,10 +1887,7 @@ test.arguments += --sys-no-query
: Test build scenarios described in
: https://github.com/conan-io/conan/issues/9547.
:
- : Note: using tar on Windows is a bit hairy (needs --force-local, etc), so
- : we do not run this test on Windows.
- :
- if ($posix && !$remote)
+ if (!$remote)
{
+mkdir 1/
@@ -1900,10 +1897,10 @@ test.arguments += --sys-no-query
#
r = 1/t9-1
+cp -r $rep/t9 $r && \
- tar xzf $r/libbar-1.0.0.tar.gz -C $r && \
+ $tar xzf $r/libbar-1.0.0.tar.gz -C $r && \
mv $r/libbar-1.0.0 $r/libbar-2.0.0 && \
sed -i -e 's/(version:).+/\1 2.0.0/' $r/libbar-2.0.0/manifest && \
- tar cfz $r/libbar-2.0.0.tar.gz -C $r libbar-2.0.0 &$r/libbar-2.0.0.tar.gz && \
+ $tar cfz $r/libbar-2.0.0.tar.gz -C $r libbar-2.0.0 &$r/libbar-2.0.0.tar.gz && \
rm -r $r/libbar-2.0.0 && \
$rep_create $r &$r/packages.manifest
@@ -1912,10 +1909,10 @@ test.arguments += --sys-no-query
#
r = 1/t9-2
+cp -r 1/t9-1 $r && \
- tar xzf $r/libbaz-1.0.0.tar.gz -C $r && \
+ $tar xzf $r/libbaz-1.0.0.tar.gz -C $r && \
mv $r/libbaz-1.0.0 $r/libbaz-2.0.0 && \
sed -i -e 's/(version:).+/\1 2.0.0/' -e 's/(depends: libbar).+/\1 ^2.0.0/' $r/libbaz-2.0.0/manifest && \
- tar cfz $r/libbaz-2.0.0.tar.gz -C $r libbaz-2.0.0 &$r/libbaz-2.0.0.tar.gz && \
+ $tar cfz $r/libbaz-2.0.0.tar.gz -C $r libbaz-2.0.0 &$r/libbaz-2.0.0.tar.gz && \
rm -r $r/libbaz-2.0.0 && \
$rep_create $r &$r/packages.manifest
@@ -1924,10 +1921,10 @@ test.arguments += --sys-no-query
#
r = 1/t9-3
+cp -r 1/t9-2 $r && \
- tar xzf $r/libbox-1.0.0.tar.gz -C $r && \
+ $tar xzf $r/libbox-1.0.0.tar.gz -C $r && \
mv $r/libbox-1.0.0 $r/libbox-1.1.0 && \
sed -i -e 's/(version:).+/\1 1.1.0/' $r/libbox-1.1.0/manifest && \
- tar cfz $r/libbox-1.1.0.tar.gz -C $r libbox-1.1.0 &$r/libbox-1.1.0.tar.gz && \
+ $tar cfz $r/libbox-1.1.0.tar.gz -C $r libbox-1.1.0 &$r/libbox-1.1.0.tar.gz && \
rm -r $r/libbox-1.1.0 && \
$rep_create $r &$r/packages.manifest
diff --git a/tests/remote-git.testscript b/tests/remote-git.testscript
index b4ed398..377277d 100644
--- a/tests/remote-git.testscript
+++ b/tests/remote-git.testscript
@@ -72,6 +72,10 @@ end
# will use the same options as we do for unpacking of package archives (see
# pkg-unpack.cxx).
#
+# Note that on Windows we still use tar rather than bsdtar here, since the
+# later fails for dangling symlinks and we have such symlinks in the
+# repository archives which are used for testing.
+#
git_extract = [cmdline] \
($cxx.target.class != 'windows' \
? tar -C $out_git -xf \
diff --git a/tests/rep-info.testscript b/tests/rep-info.testscript
index c5f2d3a..2c02c8f 100644
--- a/tests/rep-info.testscript
+++ b/tests/rep-info.testscript
@@ -132,6 +132,10 @@ $* --name $rep/testing >"pkg:build2.org/rep-info/testing ($rep/testing)"
: dir
:
{
+ # Note that on Windows we still use tar rather than bsdtar here, since
+ # the later fails for dangling symlinks and we have such symlinks in
+ # this repository archive.
+ #
tar ($posix ? : --force-local) -xf $src/git/libbar.tar &state0/***;
$* --type dir "state0/libbar.git" >>~%EOO%d;