github.com/khulnasoft/codebase@v0.0.0-20231214144635-a707781cbb24/diff_test.go (about) 1 package codebase 2 3 import ( 4 "context" 5 "os" 6 "os/exec" 7 "strings" 8 "sync" 9 "testing" 10 ) 11 12 func TestDiffString(t *testing.T) { 13 difftext := `diff --git a/golint.old.go b/golint.new.go 14 index 34cacb9..a727dd3 100644 15 --- a/golint.old.go 16 +++ b/golint.new.go 17 @@ -2,6 +2,12 @@ package test 18 19 var V int 20 21 +var NewError1 int 22 + 23 // invalid func comment 24 func F() { 25 } 26 + 27 +// invalid func comment2 28 +func F2() { 29 +} 30 ` 31 d := NewDiffString(difftext, 1) 32 b, err := d.Diff(context.Background()) 33 if err != nil { 34 t.Error(err) 35 } 36 got := string(b) 37 if got != difftext { 38 t.Errorf("got:\n%v\nwant:\n%v", got, difftext) 39 } 40 } 41 42 func TestDiffCmd(t *testing.T) { 43 wantb, err := os.ReadFile("./diff/testdata/golint.diff") 44 if err != nil { 45 t.Fatal(err) 46 } 47 want := strings.SplitN(string(wantb), "\n", 5)[4] // strip extended header 48 cmd := exec.Command("git", "diff", "--no-index", "./diff/testdata/golint.old.go", "./diff/testdata/golint.new.go") 49 d := NewDiffCmd(cmd, 1) 50 // ensure it supports multiple use 51 var wg sync.WaitGroup 52 for i := 0; i < 3; i++ { 53 wg.Add(1) 54 go func() { 55 defer wg.Done() 56 b, err := d.Diff(context.Background()) 57 if err != nil { 58 t.Error(string(b), err) 59 } 60 got := strings.SplitN(string(b), "\n", 5)[4] 61 if got != want { 62 t.Errorf("got:\n%v\nwant:\n%v", got, want) 63 } 64 }() 65 } 66 wg.Wait() 67 }