From c118fd4eccff71d5cecea9eb72436b0c17323e1e Mon Sep 17 00:00:00 2001 From: rubyist Date: Fri, 30 Jan 2015 11:56:12 -0500 Subject: [PATCH] Update version string --- commands/clean_test.go | 4 ++-- commands/smudge_test.go | 17 ++++++++++++++++- pointer/pointer.go | 10 +++++----- pointer/pointer_test.go | 28 ++++++++++++++++++++-------- 4 files changed, 43 insertions(+), 16 deletions(-) diff --git a/commands/clean_test.go b/commands/clean_test.go index 3878789d..d6c56d9d 100644 --- a/commands/clean_test.go +++ b/commands/clean_test.go @@ -19,7 +19,7 @@ func TestClean(t *testing.T) { cmd := repo.Command("clean", "somefile") cmd.Input = bytes.NewBufferString(content) - cmd.Output = `version http://git-media.io/v/2 + cmd.Output = `version http://hawser.github.com/spec/v1 oid sha256:` + oid + ` size 3` @@ -32,7 +32,7 @@ size 3` cmd = repo.Command("clean") cmd.Input = bytes.NewBufferString(content) - cmd.Output = `version http://git-media.io/v/2 + cmd.Output = `version http://hawser.github.com/spec/v1 oid sha256:` + oid + ` size 3` customHook := []byte("echo 'yo'") diff --git a/commands/smudge_test.go b/commands/smudge_test.go index daf361a6..6f4b0ed3 100644 --- a/commands/smudge_test.go +++ b/commands/smudge_test.go @@ -18,7 +18,7 @@ func TestSmudge(t *testing.T) { // simple smudge example cmd := repo.Command("smudge", "somefile") - cmd.Input = bytes.NewBufferString("version http://git-media.io/v/2\noid sha256:SOMEOID\nsize 9\n") + cmd.Input = bytes.NewBufferString("version http://hawser.github.com/spec/v1\noid sha256:SOMEOID\nsize 9\n") cmd.Output = "whatever" cmd.Env = append(cmd.Env, "GIT_MEDIA_PROGRESS="+progressFile) @@ -102,6 +102,21 @@ func TestSmudgeInfo(t *testing.T) { assert.Equal(t, nil, os.MkdirAll(mediaPath, 0755)) assert.Equal(t, nil, ioutil.WriteFile(mediaFile, []byte("whatever\n"), 0755)) }) + + // smudge --info with hawser pointer format, without local file + cmd = repo.Command("smudge", "--info") + cmd.Input = bytes.NewBufferString("version http://hawser.github.com/spec/v1\noid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393\nsize 123\n") + cmd.Output = "123 --" + + // smudge --info with hawser pointer format, with local file + cmd = repo.Command("smudge", "--info") + cmd.Input = bytes.NewBufferString("version http://hawser.github.com/spec/v1\noid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393\nsize 123\n") + cmd.Output = "9 " + mediaFile + + cmd.Before(func() { + assert.Equal(t, nil, os.MkdirAll(mediaPath, 0755)) + assert.Equal(t, nil, ioutil.WriteFile(mediaFile, []byte("whatever\n"), 0755)) + }) } func TestSmudgePassesInvalidData(t *testing.T) { diff --git a/pointer/pointer.go b/pointer/pointer.go index e22e0a36..63bc8955 100644 --- a/pointer/pointer.go +++ b/pointer/pointer.go @@ -15,7 +15,8 @@ import ( var ( MediaWarning = []byte("# git-media\n") alpha = "http://git-media.io/v/1" - latest = "http://git-media.io/v/2" + beta = "http://git-media.io/v/2" + latest = "http://hawser.github.com/spec/v1" oidType = "sha256" alphaHeaderRE = regexp.MustCompile(`\A# (.*git-media|external)`) oidRE = regexp.MustCompile(`\A[0-9a-fA-F]{64}`) @@ -23,7 +24,7 @@ var ( oid sha256:%s size %d ` - matcher = []byte("git-media") + matcherRE = regexp.MustCompile("git-media|hawser") pointerKeys = []string{"version", "oid", "size"} ) @@ -77,11 +78,10 @@ func decodeKV(data []byte) (*Pointer, error) { } v, ok := parsed["version"] - if !ok || v != latest { + if !ok || (v != latest && v != beta) { if len(v) == 0 { v = "--" } - return nil, errors.New("Invalid version: " + v) } @@ -116,7 +116,7 @@ func decodeKV(data []byte) (*Pointer, error) { func decodeKVData(data []byte) (map[string]string, error) { m := make(map[string]string) - if !bytes.Contains(data, matcher) { + if !matcherRE.Match(data) { return m, fmt.Errorf("Not a valid Git Media pointer file.") } diff --git a/pointer/pointer_test.go b/pointer/pointer_test.go index 72917feb..7c828a05 100644 --- a/pointer/pointer_test.go +++ b/pointer/pointer_test.go @@ -15,7 +15,7 @@ func TestEncode(t *testing.T) { assert.Equal(t, nil, err) bufReader := bufio.NewReader(&buf) - assertLine(t, bufReader, "version http://git-media.io/v/2\n") + assertLine(t, bufReader, "version http://hawser.github.com/spec/v1\n") assertLine(t, bufReader, "oid sha256:booya\n") assertLine(t, bufReader, "size 12345\n") @@ -32,6 +32,18 @@ func assertLine(t *testing.T, r *bufio.Reader, expected string) { assert.Equal(t, expected, actual) } +func TestHawserIniDecode(t *testing.T) { + ex := `version http://hawser.github.com/spec/v1 +oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 +size 12345` + + p, err := Decode(bytes.NewBufferString(ex)) + assertEqualWithExample(t, ex, nil, err) + assertEqualWithExample(t, ex, latest, p.Version) + assertEqualWithExample(t, ex, "4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393", p.Oid) + assertEqualWithExample(t, ex, int64(12345), p.Size) +} + func TestIniV2Decode(t *testing.T) { ex := `version http://git-media.io/v/2 oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 @@ -68,12 +80,12 @@ func TestDecodeInvalid(t *testing.T) { "# git-media", // bad oid type - `version http://git-media.io/v/2 + `version http://hawser.github.com/spec/v1 oid shazam:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 size 12345`, // no oid - `version http://git-media.io/v/2 + `version http://hawser.github.com/spec/v1 size 12345`, // bad version @@ -86,16 +98,16 @@ size 12345`, size 12345`, // bad size - `version http://git-media.io/v/2 + `version http://hawser.github.com/spec/v1 oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 size fif`, // no size - `version http://git-media.io/v/2 + `version http://hawser.github.com/spec/v1 oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393`, // bad `key value` format - `version=http://git-media.io/v/2 + `version=http://hawser.github.com/spec/v1 oid=sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 size=fif`, @@ -105,13 +117,13 @@ oid=sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 size=fif`, // extra key - `version http://git-media.io/v/2 + `version http://hawser.github.com/spec/v1 oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393 size 12345 wat wat`, // keys out of order - `version http://git-media.io/v/2 + `version http://hawser.github.com/spec/v1 size 12345 oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1258daaa5e2ca24d17e2393`, }