草庐IT

CRTDBG_FILE_STDOUT

全部标签

testing - 如何在单元测试中测试函数的输出 (stdout/stderr)

我有一个简单的函数要测试:func(t*Thing)print(min_verbosityint,messagestring){ift.verbosity>=minv{fmt.Print(message)}}但是我怎样才能测试函数实际发送到标准输出的内容呢?Test::Output在Perl中做我想做的事。我知道我可以编写自己的所有样板文件以在Go中执行相同的操作(如here所述):orig=os.Stdoutr,w,_=os.Pipe()thing.print("Somemessage")varbufbytes.Bufferio.Copy(&buf,r)w.Close()os.Std

file - 如何在golang中将大文件传输到http客户端

我有一个处理函数,如下所示:funcDownloadFileHandler(whttp.ResponseWriter,r*http.Request){SetResponseHeaders(w,r)ifr.Method=="OPTIONS"{return}varerrerrorvarresponseCodeint=http.StatusBadRequestvars:=mux.Vars(r)file:=vars["file"]varnint64=0varreaderio.ReaderFilename:="images/"+filef,err:=os.Open(Filename)iferr!

file - 使用 buffo.read 读取文件时 Golang 动态调整 slice 大小

我有一个问题,我需要使用bufio.read逐行读取一个tsv文件,我需要记录我读取的每一行有多少字节。问题是,我似乎不能只初始化一个空slice并将其传递给bufio.read并期望该slice包含文件的整行。file,_:=os.Open("file.tsv")reader:=bufio.NewReader(file)b:=make([]byte,10)for{bytesRead,err:=reader.Read(b)fmt.Println(bytesRead,b)iferr!=nil{break}}因此,对于此示例,由于我将slice指定为10个字节,因此即使行大于10个字节,读

file - 使用 Golang 进行读取的 mmap 系统调用

我不是Go不安全包专家-我也不是经验丰富的C程序员。我正在尝试使用mmap系统调用读取一个大于1G的大文件。我使用mmap和munmap而不是读取、写入I/O的原因有很多。那不是重点-我可以在测试中写入文件,当我从文件中读取时,我可以确定字节长度匹配,但我无法读取该字符串文件的内容:(有人可以建议阅读吗?我需要做的更进一步,这是我为示例测试编写的一些代码:filename:="/tmp/dd_file.db"f,err:=os.OpenFile(filename,os.O_RDWR,0666)deferf.Close()iferr!=nil{fmt.Printf("erroropeni

go - 如何从 multipart.File 获取 md5

在Go中,获取*multipart.File的md5的正确方法是什么?这是我返回错误md5的代码://GetFileMd5countfile'smd5//returnmd5stringfuncGetFileMd5(filemultipart.File)(md5Strstring){h:=md5.New()if_,err:=file.Seek(0,0);err!=nil{log.Error("Getfilemd5error:%v",err)}if_,err:=io.Copy(h,file);err!=nil{log.Error("Getfilemd5error:%v",err)}md5S

go - 带有两个外键的中间模型 : file structure?

目标是创建一个中间模型(user_product),它有两个外键:user和product。我们能否通过外部文件(以某种方式)中的用户和产品结构来实现这一点,或者我们必须将它们与UserProduct放在同一个文件中,就像在文档中一样?此时,将它们放在外部并在UserProduct中导入它们,当然会抛出导入循环错误。结构:app/models/product.gouser.gouser_product.go问题是,如果我使用import"github.com/somehow/somehow/models"在user_product中导入product.go,显然它还导入了user_pr

file - 加载所需文件,相对路径与绝对路径

我们有一个人们可以在他们的机器上编译的程序。它有一个HTTP接口(interface),但也可以通过命令行调用。为了给HTTP客户端提供一些好看的错误页面,我们想提供错误页面。我们正在使用一个非常简单的解决方案和go的html/template包。因此,为了让程序找到模板,我们目前这样做:funcinit(){prefStr:="path/to/http/tmpl"pathPrefix,err:=filepath.Abs(prefStr)iferr!=nil{log.Warn("Templatepath%sisnotavailable!",prefStr)}pathPrefix+"/e

linux - 最小起订量 : running "moq": exec: "moq": executable file not found in $PATH

在尝试moq框架的示例时,当我输入“gogenerate”时出现以下异常:example.go:5:running"moq":exec:"moq":executablefilenotfoundin$PATH我该怎么办?我正在使用Kubuntu16.04PS:我试过了exportPATH=$PATH:/home/[...]/go/src/github.com/matryer/moq没有成功 最佳答案 @sprabhakaran得到了正确的答案。我只需要将go二进制文件夹添加到PATH全局变量:exportPATH=$PATH:/hom

Go Stdin Stdout 通信

我想执行一个go文件,我将在yaml配置文件中指定它,并以字节为单位向它发送一个Struct。我怎么能这样做?我认为我可以为此使用Stdin和Stdout但是想不通Yaml配置:subscribers:temp:topics:-pi/+/tempaction:./temp/tempBinary这是我的代码:client.Subscribe(NewTopic(a),func(c*Client,msgMessage){cmd:=exec.Command(v.Action)//Iactuallywanttosend[msg]toitsoitcanbeusedtherecmd.Stdin=by

file - Go http重用似乎在上传文件中不起作用

当我使用我的go(1.8)http库执行正常的GET/POST方法时,它工作正常,如果我尝试使用http库将文件上传到服务器,客户端将创建大量套接字。在我的测试中,文件被切割成碎片上传到5个goroutines,客户端保持250个套接字。我已经添加了deferresp.Body.Close(),这里是关键代码:const(MaxIdleConnsint=40MaxIdleConnsPerHostint=40)transport:=&http.Transport{MaxIdleConns:MaxIdleConns,MaxIdleConnsPerHost:MaxIdleConnsPerHo