diff --git a/git-refspec/tests/fixtures/generated-archives/make_baseline.tar.xz b/git-refspec/tests/fixtures/generated-archives/make_baseline.tar.xz new file mode 100644 index 0000000000..c8c9489050 --- /dev/null +++ b/git-refspec/tests/fixtures/generated-archives/make_baseline.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a85fe0b4d9fb179baab26ea008ddbb48a657d4e92561c42a213269468481a66 +size 9308 diff --git a/git-refspec/tests/fixtures/make_baseline.sh b/git-refspec/tests/fixtures/make_baseline.sh new file mode 100644 index 0000000000..cb9fcfc3bc --- /dev/null +++ b/git-refspec/tests/fixtures/make_baseline.sh @@ -0,0 +1,91 @@ +#!/bin/bash +set -eu -o pipefail + +git init; + +function baseline() { + local kind=$1 + local refspec=$2 + + cat <.git/config +[remote "test"] + url = . + $kind = "$refspec" +EOF + + git ls-remote "test" && status=0 || status=$? + { + echo "$kind" "$refspec" + echo "$status" + } >> baseline.git +} + + +# invalid + +baseline push '' +baseline push '::' +baseline fetch '::' + +baseline push 'refs/heads/*:refs/remotes/frotz' +baseline push 'refs/heads:refs/remotes/frotz/*' + +baseline fetch 'refs/heads/*:refs/remotes/frotz' +baseline fetch 'refs/heads:refs/remotes/frotz/*' +baseline fetch 'refs/heads/main::refs/remotes/frotz/xyzzy' +baseline fetch 'refs/heads/maste :refs/remotes/frotz/xyzzy' +baseline fetch 'main~1:refs/remotes/frotz/backup' +baseline fetch 'HEAD~4:refs/remotes/frotz/new' +baseline push 'refs/heads/ nitfol' +baseline fetch 'refs/heads/ nitfol' +baseline push 'HEAD:' +baseline push 'refs/heads/ nitfol:' +baseline fetch 'refs/heads/ nitfol:' +baseline push ':refs/remotes/frotz/delete me' +baseline fetch ':refs/remotes/frotz/HEAD to me' +baseline fetch 'refs/heads/*/*/for-linus:refs/remotes/mine/*' +baseline push 'refs/heads/*/*/for-linus:refs/remotes/mine/*' + +baseline fetch 'refs/heads/*g*/for-linus:refs/remotes/mine/*' +baseline push 'refs/heads/*g*/for-linus:refs/remotes/mine/*' +bad=$(printf '\011tab') +baseline fetch "refs/heads/${bad}" + +# valid +baseline push '+:' +baseline push ':' + +baseline fetch '' +baseline fetch ':' +baseline push 'refs/heads/main:refs/remotes/frotz/xyzzy' +baseline push 'refs/heads/*:refs/remotes/frotz/*' + + +baseline fetch 'refs/heads/*:refs/remotes/frotz/*' +baseline fetch 'refs/heads/main:refs/remotes/frotz/xyzzy' + +baseline push 'main~1:refs/remotes/frotz/backup' +baseline push 'HEAD~4:refs/remotes/frotz/new' + +baseline push 'HEAD' +baseline fetch 'HEAD' +baseline push '@' +baseline fetch '@' + +baseline fetch 'HEAD:' + +baseline push ':refs/remotes/frotz/deleteme' +baseline fetch ':refs/remotes/frotz/HEAD-to-me' + +baseline fetch 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' +baseline push 'refs/heads/*/for-linus:refs/remotes/mine/*-blah' + +baseline fetch 'refs/heads*/for-linus:refs/remotes/mine/*' +baseline push 'refs/heads*/for-linus:refs/remotes/mine/*' + + +baseline fetch 'refs/heads/*/for-linus:refs/remotes/mine/*' +baseline push 'refs/heads/*/for-linus:refs/remotes/mine/*' + +good=$(printf '\303\204') +baseline fetch "refs/heads/${good}" diff --git a/git-refspec/tests/parse/mod.rs b/git-refspec/tests/parse/mod.rs new file mode 100644 index 0000000000..a388d8284c --- /dev/null +++ b/git-refspec/tests/parse/mod.rs @@ -0,0 +1,7 @@ +use git_testtools::scripted_fixture_repo_read_only; + +#[test] +#[ignore] +fn baseline() { + let _dir = scripted_fixture_repo_read_only("make_baseline.sh").unwrap(); +} diff --git a/git-refspec/tests/refspec.rs b/git-refspec/tests/refspec.rs index 8b13789179..06f1a3c69d 100644 --- a/git-refspec/tests/refspec.rs +++ b/git-refspec/tests/refspec.rs @@ -1 +1 @@ - +mod parse;