Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: vpython/spec/spec_test.go

Issue 2905943002: [vpython] Incorporate interpreter path/hash. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « vpython/spec/spec.go ('k') | vpython/venv/config.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The LUCI Authors. All rights reserved. 1 // Copyright 2017 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package spec 5 package spec
6 6
7 import ( 7 import (
8 "testing" 8 "testing"
9 9
10 "github.com/luci/luci-go/vpython/api/vpython" 10 "github.com/luci/luci-go/vpython/api/vpython"
11 11
12 . "github.com/luci/luci-go/common/testing/assertions" 12 . "github.com/luci/luci-go/common/testing/assertions"
13 . "github.com/smartystreets/goconvey/convey" 13 . "github.com/smartystreets/goconvey/convey"
14 ) 14 )
15 15
16 func TestNormalizeAndHash(t *testing.T) { 16 func TestNormalizeAndHash(t *testing.T) {
17 t.Parallel() 17 t.Parallel()
18 18
19 pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"} 19 pkgFoo := &vpython.Spec_Package{Name: "foo", Version: "1"}
20 pkgBar := &vpython.Spec_Package{Name: "bar", Version: "2"} 20 pkgBar := &vpython.Spec_Package{Name: "bar", Version: "2"}
21 pkgBaz := &vpython.Spec_Package{Name: "baz", Version: "3"} 21 pkgBaz := &vpython.Spec_Package{Name: "baz", Version: "3"}
22 22
23 Convey(`Test manifest generation`, t, func() { 23 Convey(`Test manifest generation`, t, func() {
24 var spec vpython.Spec 24 var spec vpython.Spec
25 var rt vpython.Runtime
25 26
26 Convey(`Will normalize an empty spec`, func() { 27 Convey(`Will normalize an empty spec`, func() {
27 So(Normalize(&spec, pkgFoo), ShouldBeNil) 28 So(Normalize(&spec, pkgFoo), ShouldBeNil)
28 So(spec, ShouldResemble, vpython.Spec{ 29 So(spec, ShouldResemble, vpython.Spec{
29 Virtualenv: pkgFoo, 30 Virtualenv: pkgFoo,
30 }) 31 })
31 }) 32 })
32 33
33 Convey(`Will normalize to sorted order.`, func() { 34 Convey(`Will normalize to sorted order.`, func() {
34 spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgBar, pkg Baz} 35 spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgBar, pkg Baz}
35 So(Normalize(&spec, nil), ShouldBeNil) 36 So(Normalize(&spec, nil), ShouldBeNil)
36 So(spec, ShouldResemble, vpython.Spec{ 37 So(spec, ShouldResemble, vpython.Spec{
37 Wheel: []*vpython.Spec_Package{pkgBar, pkgBaz, p kgFoo}, 38 Wheel: []*vpython.Spec_Package{pkgBar, pkgBaz, p kgFoo},
38 }) 39 })
39 40
40 » » » So(Hash(&spec, ""), ShouldEqual, "b4221081c43e8319ceb71a 2e9d3bd83701b726a0976380feac4d04825226f935") 41 » » » So(Hash(&spec, &rt, ""), ShouldEqual, "7e80b8643051ce0d8 2bf44fb180687e988791cfd7f3da39861370f0a56fc80f8")
41 » » » So(Hash(&spec, "extra"), ShouldEqual, "01a8d5f5a6f7b2cd9 1ce6f2b5fefb931828e28b90d0fb07a271597eaa4f6c547") 42 » » » So(Hash(&spec, &rt, "extra"), ShouldEqual, "140a02bb88b0 11d4aceafb9533266288fd4b441c3bdb70494419b3ef76457f34")
42 }) 43 })
43 44
44 Convey(`Will fail to normalize if there are duplicate wheels.`, func() { 45 Convey(`Will fail to normalize if there are duplicate wheels.`, func() {
45 spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgFoo, pkg Bar, pkgBaz} 46 spec.Wheel = []*vpython.Spec_Package{pkgFoo, pkgFoo, pkg Bar, pkgBaz}
46 So(Normalize(&spec, nil), ShouldErrLike, "duplicate spec entries") 47 So(Normalize(&spec, nil), ShouldErrLike, "duplicate spec entries")
47 48
48 // Even if the versions differ. 49 // Even if the versions differ.
49 fooClone := *pkgFoo 50 fooClone := *pkgFoo
50 fooClone.Version = "other" 51 fooClone.Version = "other"
51 spec.Wheel = []*vpython.Spec_Package{pkgFoo, &fooClone, pkgBar, pkgBaz} 52 spec.Wheel = []*vpython.Spec_Package{pkgFoo, &fooClone, pkgBar, pkgBaz}
52 So(Normalize(&spec, nil), ShouldErrLike, "duplicate spec entries") 53 So(Normalize(&spec, nil), ShouldErrLike, "duplicate spec entries")
53 }) 54 })
54 }) 55 })
55 } 56 }
OLDNEW
« no previous file with comments | « vpython/spec/spec.go ('k') | vpython/venv/config.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698