go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/grpc/cmd/svcdec/main_test.go (about) 1 // Copyright 2016 The LUCI Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package main 16 17 import ( 18 "context" 19 "io/ioutil" 20 "os" 21 "path/filepath" 22 "testing" 23 24 . "github.com/smartystreets/goconvey/convey" 25 ) 26 27 var ( 28 inputDir = filepath.Join("..", "..", "internal", "svctool", "testdata") 29 goldenFile = "testdata/s1server_dec.golden" 30 ) 31 32 func TestMain(t *testing.T) { 33 t.Parallel() 34 35 Convey("svcdec", t, func() { 36 tmpDir, err := ioutil.TempDir("", "") 37 So(err, ShouldBeNil) 38 defer os.RemoveAll(tmpDir) 39 40 run := func(args ...string) error { 41 t := tool() 42 t.ParseArgs(args) 43 return t.Run(context.Background(), generate) 44 } 45 46 Convey("Works", func() { 47 output := filepath.Join(tmpDir, "s1server_dec.go") 48 err := run( 49 "-output", output, 50 "-type", "S1Server,S2Server", 51 inputDir, 52 ) 53 So(err, ShouldBeNil) 54 55 want, err := os.ReadFile(goldenFile) 56 So(err, ShouldBeNil) 57 58 got, err := os.ReadFile(output) 59 So(err, ShouldBeNil) 60 61 So(string(got), ShouldEqual, string(want)) 62 }) 63 }) 64 }