How to use Gt method of got Package

Best Got code snippet using got.Gt

hook_test.go

Source:hook_test.go Github

copy

Full Screen

1// Copyright 2014 The Go Authors. All rights reserved.2// Use of this source code is governed by a BSD-style3// license that can be found in the LICENSE file.4package main5import (6 "bytes"7 "fmt"8 "io/ioutil"9 "os"10 "path/filepath"11 "strings"12 "testing"13)14const lenChangeId = len("\n\nChange-Id: I") + 2*2015func TestHookCommitMsg(t *testing.T) {16 gt := newGitTest(t)17 defer gt.done()18 // Check that hook adds Change-Id.19 write(t, gt.client+"/msg.txt", "Test message.\n")20 testMain(t, "hook-invoke", "commit-msg", gt.client+"/msg.txt")21 data := read(t, gt.client+"/msg.txt")22 if !bytes.Contains(data, []byte("\n\nChange-Id: ")) {23 t.Fatalf("after hook-invoke commit-msg, missing Change-Id:\n%s", data)24 }25 // Check that hook is no-op when Change-Id is already present.26 testMain(t, "hook-invoke", "commit-msg", gt.client+"/msg.txt")27 data1 := read(t, gt.client+"/msg.txt")28 if !bytes.Equal(data, data1) {29 t.Fatalf("second hook-invoke commit-msg changed Change-Id:\nbefore:\n%s\n\nafter:\n%s", data, data1)30 }31 // Check that hook rejects multiple Change-Ids.32 write(t, gt.client+"/msgdouble.txt", string(data)+string(data))33 testMainDied(t, "hook-invoke", "commit-msg", gt.client+"/msgdouble.txt")34 const multiple = "git-codereview: multiple Change-Id lines\n"35 if got := testStderr.String(); got != multiple {36 t.Fatalf("unexpected output:\ngot: %q\nwant: %q", got, multiple)37 }38 // Check that hook fails when message is empty.39 write(t, gt.client+"/empty.txt", "\n\n# just a file with\n# comments\n")40 testMainDied(t, "hook-invoke", "commit-msg", gt.client+"/empty.txt")41 const empty = "git-codereview: empty commit message\n"42 if got := testStderr.String(); got != empty {43 t.Fatalf("unexpected output:\ngot: %q\nwant: %q", got, empty)44 }45 // Check that hook inserts a blank line after the first line as needed.46 rewrites := []struct {47 in string48 want string49 }{50 {in: "all: gofmt", want: "all: gofmt"},51 {in: "all: gofmt\n", want: "all: gofmt\n"},52 {in: "all: gofmt\nahhh", want: "all: gofmt\n\nahhh"},53 {in: "all: gofmt\n\nahhh", want: "all: gofmt\n\nahhh"},54 {in: "all: gofmt\n\n\nahhh", want: "all: gofmt\n\n\nahhh"},55 }56 for _, tt := range rewrites {57 write(t, gt.client+"/in.txt", tt.in)58 testMain(t, "hook-invoke", "commit-msg", gt.client+"/in.txt")59 write(t, gt.client+"/want.txt", tt.want)60 testMain(t, "hook-invoke", "commit-msg", gt.client+"/want.txt")61 got, err := ioutil.ReadFile(gt.client + "/in.txt")62 if err != nil {63 t.Fatal(err)64 }65 want, err := ioutil.ReadFile(gt.client + "/want.txt")66 if err != nil {67 t.Fatal(err)68 }69 // pull off the Change-Id that got appended70 got = got[:len(got)-lenChangeId]71 want = want[:len(want)-lenChangeId]72 if !bytes.Equal(got, want) {73 t.Fatalf("failed to rewrite:\n%s\n\ngot:\n\n%s\n\nwant:\n\n%s\n", tt.in, got, want)74 }75 }76}77func TestHookCommitMsgIssueRepoRewrite(t *testing.T) {78 gt := newGitTest(t)79 defer gt.done()80 msgs := []string{81 // If there's no config, don't rewrite issue references.82 "math/big: catch all the rats\n\nFixes #99999, at least for now\n",83 // Fix the fix-message, even without config84 "math/big: catch all the rats\n\nFixes issue #99999, at least for now\n",85 "math/big: catch all the rats\n\nFixes issue 99999, at least for now\n",86 // Don't forget to write back if Change-Id already exists87 "math/big: catch all the rats\n\nFixes issue #99999, at least for now\n\nChange-Id: Ie77358867e38cf976a0688b6e2f80525dae3891e\n",88 }89 for _, msg := range msgs {90 write(t, gt.client+"/msg.txt", msg)91 testMain(t, "hook-invoke", "commit-msg", gt.client+"/msg.txt")92 got := read(t, gt.client+"/msg.txt")93 got = got[:len(got)-lenChangeId]94 const want = "math/big: catch all the rats\n\nFixes #99999, at least for now\n"95 if string(got) != want {96 t.Errorf("issue rewrite failed: got\n\n%s\nwant\n\n%s\nlen %d and %d", got, want, len(got), len(want))97 }98 }99 // Add issuerepo config.100 write(t, gt.client+"/codereview.cfg", "issuerepo: golang/go")101 trun(t, gt.client, "git", "add", "codereview.cfg")102 trun(t, gt.client, "git", "commit", "-m", "add issuerepo codereview config")103 // Look in master rather than origin/master for the config104 savedConfigRef := configRef105 configRef = "master:codereview.cfg"106 cachedConfig = nil107 // Check for the rewrite108 msgs = []string{109 "math/big: catch all the rats\n\nFixes #99999, at least for now\n",110 "math/big: catch all the rats\n\nFixes issue #99999, at least for now\n",111 "math/big: catch all the rats\n\nFixes issue 99999, at least for now\n",112 "math/big: catch all the rats\n\nFixes issue golang/go#99999, at least for now\n",113 "math/big: catch all the rats\n\nFixes issue #99999, at least for now\n\nChange-Id: Ie77358867e38cf976a0688b6e2f80525dae3891e\n",114 }115 for _, msg := range msgs {116 write(t, gt.client+"/msg.txt", msg)117 testMain(t, "hook-invoke", "commit-msg", gt.client+"/msg.txt")118 got := read(t, gt.client+"/msg.txt")119 got = got[:len(got)-lenChangeId]120 const want = "math/big: catch all the rats\n\nFixes golang/go#99999, at least for now\n"121 if string(got) != want {122 t.Errorf("issue rewrite failed: got\n\n%s\nwant\n\n%s", got, want)123 }124 }125 // Reset config state126 configRef = savedConfigRef127 cachedConfig = nil128}129func TestHookCommitMsgBranchPrefix(t *testing.T) {130 gt := newGitTest(t)131 defer gt.done()132 checkPrefix := func(prefix string) {133 write(t, gt.client+"/msg.txt", "Test message.\n")134 testMain(t, "hook-invoke", "commit-msg", gt.client+"/msg.txt")135 data, err := ioutil.ReadFile(gt.client + "/msg.txt")136 if err != nil {137 t.Fatal(err)138 }139 if !bytes.HasPrefix(data, []byte(prefix)) {140 t.Errorf("after hook-invoke commit-msg on %s, want prefix %q:\n%s", CurrentBranch().Name, prefix, data)141 }142 if i := strings.Index(prefix, "]"); i >= 0 {143 prefix := prefix[:i+1]144 for _, magic := range []string{"fixup!", "squash!"} {145 write(t, gt.client+"/msg.txt", magic+" Test message.\n")146 testMain(t, "hook-invoke", "commit-msg", gt.client+"/msg.txt")147 data, err := ioutil.ReadFile(gt.client + "/msg.txt")148 if err != nil {149 t.Fatal(err)150 }151 if bytes.HasPrefix(data, []byte(prefix)) {152 t.Errorf("after hook-invoke commit-msg on %s with %s, found incorrect prefix %q:\n%s", CurrentBranch().Name, magic, prefix, data)153 }154 }155 }156 }157 // Create server branch and switch to server branch on client.158 // Test that commit hook adds prefix.159 trun(t, gt.server, "git", "checkout", "-b", "dev.cc")160 trun(t, gt.client, "git", "fetch", "-q")161 testMain(t, "change", "dev.cc")162 checkPrefix("[dev.cc] Test message.\n")163 // Work branch with server branch as upstream.164 testMain(t, "change", "ccwork")165 checkPrefix("[dev.cc] Test message.\n")166 // Master has no prefix.167 testMain(t, "change", "master")168 checkPrefix("Test message.\n")169 // Work branch from master has no prefix.170 testMain(t, "change", "work")171 checkPrefix("Test message.\n")172}173func TestHookPreCommit(t *testing.T) {174 gt := newGitTest(t)175 defer gt.done()176 // Write out a non-Go file.177 testMain(t, "change", "mybranch")178 write(t, gt.client+"/msg.txt", "A test message.")179 trun(t, gt.client, "git", "add", "msg.txt")180 testMain(t, "hook-invoke", "pre-commit") // should be no-op181 if err := os.MkdirAll(gt.client+"/test/bench", 0755); err != nil {182 t.Fatal(err)183 }184 write(t, gt.client+"/bad.go", badGo)185 write(t, gt.client+"/good.go", goodGo)186 write(t, gt.client+"/test/bad.go", badGo)187 write(t, gt.client+"/test/good.go", goodGo)188 write(t, gt.client+"/test/bench/bad.go", badGo)189 write(t, gt.client+"/test/bench/good.go", goodGo)190 trun(t, gt.client, "git", "add", ".")191 testMainDied(t, "hook-invoke", "pre-commit")192 testPrintedStderr(t, "gofmt needs to format these files (run 'git gofmt'):",193 "bad.go", "!good.go", fromSlash("!test/bad"), fromSlash("test/bench/bad.go"))194 write(t, gt.client+"/broken.go", brokenGo)195 trun(t, gt.client, "git", "add", "broken.go")196 testMainDied(t, "hook-invoke", "pre-commit")197 testPrintedStderr(t, "gofmt needs to format these files (run 'git gofmt'):",198 "bad.go", "!good.go", fromSlash("!test/bad"), fromSlash("test/bench/bad.go"),199 "gofmt reported errors:", "broken.go")200}201func TestHookChangeGofmt(t *testing.T) {202 // During git change, we run the gofmt check before invoking commit,203 // so we should not see the line about 'git commit' failing.204 // That is, the failure should come from git change, not from205 // the commit hook.206 gt := newGitTest(t)207 defer gt.done()208 gt.work(t)209 // Write out a non-Go file.210 write(t, gt.client+"/bad.go", badGo)211 trun(t, gt.client, "git", "add", ".")212 t.Logf("invoking commit hook explicitly")213 testMainDied(t, "hook-invoke", "pre-commit")214 testPrintedStderr(t, "gofmt needs to format these files (run 'git gofmt'):", "bad.go")215 t.Logf("change without hook installed")216 testCommitMsg = "foo: msg"217 testMainDied(t, "change")218 testPrintedStderr(t, "gofmt needs to format these files (run 'git gofmt'):", "bad.go", "!running: git")219 t.Logf("change with hook installed")220 restore := testInstallHook(t, gt)221 defer restore()222 testCommitMsg = "foo: msg"223 testMainDied(t, "change")224 testPrintedStderr(t, "gofmt needs to format these files (run 'git gofmt'):", "bad.go", "!running: git")225}226func TestHookPreCommitDetachedHead(t *testing.T) {227 // If we're in detached head mode, something special is going on,228 // like git rebase. We disable the gofmt-checking precommit hook,229 // since we expect it would just get in the way at that point.230 // (It also used to crash.)231 gt := newGitTest(t)232 defer gt.done()233 gt.work(t)234 write(t, gt.client+"/bad.go", badGo)235 trun(t, gt.client, "git", "add", ".")236 trun(t, gt.client, "git", "checkout", "HEAD^0")237 testMain(t, "hook-invoke", "pre-commit")238 testNoStdout(t)239 testNoStderr(t)240}241func TestHookPreCommitEnv(t *testing.T) {242 // If $GIT_GOFMT_HOOK == "off", gofmt hook should not complain.243 gt := newGitTest(t)244 defer gt.done()245 gt.work(t)246 write(t, gt.client+"/bad.go", badGo)247 trun(t, gt.client, "git", "add", ".")248 os.Setenv("GIT_GOFMT_HOOK", "off")249 defer os.Unsetenv("GIT_GOFMT_HOOK")250 testMain(t, "hook-invoke", "pre-commit")251 testNoStdout(t)252 testPrintedStderr(t, "git-gofmt-hook disabled by $GIT_GOFMT_HOOK=off")253}254func TestHookPreCommitUnstaged(t *testing.T) {255 gt := newGitTest(t)256 defer gt.done()257 gt.work(t)258 write(t, gt.client+"/bad.go", badGo)259 write(t, gt.client+"/good.go", goodGo)260 // The pre-commit hook is being asked about files in the index.261 // Make sure it is not looking at files in the working tree (current directory) instead.262 // There are three possible kinds of file: good, bad (misformatted), and broken (syntax error).263 // There are also three possible places files live: the most recent commit, the index,264 // and the working tree. We write a sequence of files that cover all possible265 // combination of kinds of file in the various places. For example,266 // good-bad-broken.go is a good file in the most recent commit,267 // a bad file in the index, and a broken file in the working tree.268 // After creating these files, we check that the gofmt hook reports269 // about the index only.270 const N = 3271 name := []string{"good", "bad", "broken"}272 content := []string{goodGo, badGo, brokenGo}273 var wantErr []string274 var allFiles []string275 writeFiles := func(n int) {276 allFiles = nil277 wantErr = nil278 for i := 0; i < N*N*N; i++ {279 // determine n'th digit of 3-digit base-N value i280 j := i281 for k := 0; k < (3 - 1 - n); k++ {282 j /= N283 }284 file := fmt.Sprintf("%s-%s-%s.go", name[i/N/N], name[(i/N)%N], name[i%N])285 allFiles = append(allFiles, file)286 write(t, gt.client+"/"+file, content[j%N])287 switch {288 case strings.Contains(file, "-bad-"):289 wantErr = append(wantErr, "\t"+file+"\n")290 case strings.Contains(file, "-broken-"):291 wantErr = append(wantErr, "\t"+file+":")292 default:293 wantErr = append(wantErr, "!"+file)294 }295 }296 }297 // committed files298 writeFiles(0)299 trun(t, gt.client, "git", "add", ".")300 trun(t, gt.client, "git", "commit", "-m", "msg")301 // staged files302 writeFiles(1)303 trun(t, gt.client, "git", "add", ".")304 // unstaged files305 writeFiles(2)306 wantErr = append(wantErr, "gofmt reported errors", "gofmt needs to format these files")307 testMainDied(t, "hook-invoke", "pre-commit")308 testPrintedStderr(t, wantErr...)309}310func TestHooks(t *testing.T) {311 gt := newGitTest(t)312 defer gt.done()313 gt.removeStubHooks()314 testMain(t, "hooks") // install hooks315 data, err := ioutil.ReadFile(gt.client + "/.git/hooks/commit-msg")316 if err != nil {317 t.Fatalf("hooks did not write commit-msg hook: %v", err)318 }319 if string(data) != "#!/bin/sh\nexec git-codereview hook-invoke commit-msg \"$@\"\n" {320 t.Fatalf("invalid commit-msg hook:\n%s", string(data))321 }322}323func TestHooksOverwriteOldCommitMsg(t *testing.T) {324 gt := newGitTest(t)325 defer gt.done()326 write(t, gt.client+"/.git/hooks/commit-msg", oldCommitMsgHook)327 testMain(t, "hooks") // install hooks328 data, err := ioutil.ReadFile(gt.client + "/.git/hooks/commit-msg")329 if err != nil {330 t.Fatalf("hooks did not write commit-msg hook: %v", err)331 }332 if string(data) == oldCommitMsgHook {333 t.Fatalf("hooks left old commit-msg hook in place")334 }335 if string(data) != "#!/bin/sh\nexec git-codereview hook-invoke commit-msg \"$@\"\n" {336 t.Fatalf("invalid commit-msg hook:\n%s", string(data))337 }338}339func testInstallHook(t *testing.T, gt *gitTest) (restore func()) {340 trun(t, gt.pwd, "go", "build", "-o", gt.client+"/git-codereview")341 path := os.Getenv("PATH")342 os.Setenv("PATH", gt.client+string(filepath.ListSeparator)+path)343 gt.removeStubHooks()344 testMain(t, "hooks") // install hooks345 return func() {346 os.Setenv("PATH", path)347 }348}349func TestHookCommitMsgFromGit(t *testing.T) {350 gt := newGitTest(t)351 defer gt.done()352 restore := testInstallHook(t, gt)353 defer restore()354 testMain(t, "change", "mybranch")355 write(t, gt.client+"/file", "more data")356 trun(t, gt.client, "git", "add", "file")357 trun(t, gt.client, "git", "commit", "-m", "mymsg")358 log := trun(t, gt.client, "git", "log", "-n", "1")359 if !strings.Contains(log, "mymsg") {360 t.Fatalf("did not find mymsg in git log output:\n%s", log)361 }362 // The 4 spaces are because git indents the commit message proper.363 if !strings.Contains(log, "\n \n Change-Id:") {364 t.Fatalf("did not find Change-Id in git log output:\n%s", log)365 }366}...

Full Screen

Full Screen

Gt

Using AI Code Generation

copy

Full Screen

1import (2func Gt(a int, b int) bool {3 if a > b {4 }5}6func main() {7 fmt.Println(Gt(10, 5))8 fmt.Println(Gt(5, 10))9 fmt.Println(Gt(10, 10))10 z01.PrintRune('0')11}

Full Screen

Full Screen

Gt

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 a := got.Got{"Arya", "Stark"}4 b := got.Got{"Jon", "Snow"}5 c := got.Got{"Daenerys", "Targaryen"}6 d := got.Got{"Tyrion", "Lannister"}7}

Full Screen

Full Screen

Gt

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 x = got.NewGot(1, 2)4 y = got.NewGot(3, 4)5 z = x.Gt(y)6 fmt.Println(z)7}

Full Screen

Full Screen

Gt

Using AI Code Generation

copy

Full Screen

1import "fmt"2type got struct {3}4func (g got) Gt() {5 fmt.Println("Winter is coming")6}7func main() {8 g := got{king: "Jon Snow"}9 g.Gt()10}

Full Screen

Full Screen

Gt

Using AI Code Generation

copy

Full Screen

1import (2func main() {3 g := got.New()4 fmt.Println(g.Gt(1, 2))5 fmt.Println(g.Gt(2, 1))6 fmt.Println(g.Gt(1, 1))7 fmt.Println(g.Gt(1.1, 2.2))8 fmt.Println(g.Gt(2.2, 1.1))9 fmt.Println(g.Gt(1.1, 1.1))10 fmt.Println(g.Gt("a", "b"))11 fmt.Println(g.Gt("b", "a"))12 fmt.Println(g.Gt("a", "a"))13 fmt.Println(g.Gt("a", 1))14 fmt.Println(g.Gt(1, "a"))15 fmt.Println(g.Gt(1, 1.1))16 fmt.Println(g.Gt(1.1, 1))17 fmt.Println(g.Gt("a", 1.1))18 fmt.Println(g.Gt(1.1, "a"))19}

Full Screen

Full Screen

Gt

Using AI Code Generation

copy

Full Screen

1import "fmt"2import "github.com/gotgo/fw"3import "github.com/gotgo/fw/trace"4import "github.com/gotgo/fw/trace/traceLog"5import "github.com/gotgo/fw/trace/traceConsole"6import "github.com/gotgo/fw/trace/traceNull"7import "github.com/gotgo/fw/trace/traceFile"8import "github.com/gotgo/fw/trace/traceStdout"9import "github.com/gotgo/fw/trace/traceStderr"10import "github.com/gotgo/fw/trace/traceWriter"11import "github.com/gotgo/fw/trace/traceEvent"12import "github.com/gotgo/fw/trace/traceEventFile"13import "github.com/gotgo/fw/trace/traceEventConsole"14import "github.com/gotgo/fw/trace/traceEventWriter"15import "github.com/gotgo/fw/trace/traceEventNull"16import "github.com/gotgo/fw/trace/traceEventStdout"17import "github.com/gotgo/fw/trace/traceEventStderr"18import "github.com/gotgo/fw/trace/traceEventFile"19import "github.com/gotgo/fw/trace/traceEventConsole"20import "github.com/gotgo/fw/trace/traceEventWriter"21import "github.com/gotgo/fw/trace/traceEventNull"22import "github.com/gotgo/fw/trace/traceEventStdout"23import "github.com/gotgo/fw/trace/traceEventStderr"24import "github.com/gotgo/fw/trace/traceEventFile"25import "github.com/gotgo/fw/trace/traceEventConsole"26import "github.com/gotgo/fw/trace/traceEventWriter"27import "github.com/gotgo/fw/trace/traceEventNull"28import "github.com/gotgo/fw/trace/traceEventStdout"29import "github.com/gotgo/fw/trace/traceEventStderr"30import "github.com/gotgo/fw/trace/traceEventFile"31import "github.com/gotgo/fw/trace/traceEventConsole"32import "github.com/gotgo/fw/trace/traceEventWriter"33import "github.com/gotgo/fw/trace/traceEventNull"34import "github.com/gotgo/fw/trace/traceEventStdout"35import "github.com/g

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful