Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposal: testing: allow regexps to specify example output #18831

Closed
posener opened this issue Jan 28, 2017 · 9 comments

Comments

Projects
None yet
7 participants
@posener
Copy link

commented Jan 28, 2017

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

go version go1.7.4 linux/amd64

What operating system and processor architecture are you using (go env)?

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/eyal/go:/home/eyal/home/go"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build162642716=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"

What did you do?

Wrote a testable example.

What did you expect to see?

A possibility to define Output lines with a regular expression.

What did you see instead?

Only plan text is supported.

@mvdan

This comment has been minimized.

Copy link
Member

commented Jan 28, 2017

Why do you need this, exactly? Is the plaintext output too big or non-deterministic?

The point of output lines is readability and simplicity, and I think regexes would just add complexity.

@posener

This comment has been minimized.

Copy link
Author

commented Jan 28, 2017

I have a program that part of the output there is a time duration, that i would like to give an example for.
I think that making a regular expression optional won't harm anything in the simplicity of the example tests.
In the current example system I can't test this program.

@ALTree

This comment has been minimized.

Copy link
Member

commented Jan 28, 2017

Note that you'll also need to introduce an alternative prefix (not Output:) or you'll break existing tests for people that for example wrote Output: \d expecting a literal match with "\d".

@minux

This comment has been minimized.

Copy link
Member

commented Jan 29, 2017

@posener

This comment has been minimized.

Copy link
Author

commented Jan 29, 2017

I saw in the code that there is unsorted option for the output, you use it by prefixing the output: unsorted Output:. (it is not documented)
We could do something similar, so it won't break non-regex output.

@rsc

This comment has been minimized.

Copy link
Contributor

commented Jan 30, 2017

I think we'd prefer not to further complicate output tests. Doing something like replacing the time with "TIMESTAMP" in the output would be better. Or just don't print it in the first place.

@rsc rsc changed the title proposal: [testable example] write expected output using regular expressions proposal: testing: allow regexps to specify example output Jan 30, 2017

@rsc rsc added the Proposal label Jan 30, 2017

@rsc rsc added this to the Proposal milestone Jan 30, 2017

@bradfitz

This comment has been minimized.

Copy link
Member

commented Jan 30, 2017

I also don't want to do anything here. The whole point of examples to be simple.

Once you need a way to normalize the output, you've already failed at being simple.

@rsc

This comment has been minimized.

Copy link
Contributor

commented Jan 30, 2017

Declining for @golang/proposal-review

@rsc rsc closed this Jan 30, 2017

@gopherbot

This comment has been minimized.

Copy link

commented Jan 31, 2017

CL https://golang.org/cl/36050 mentions this issue.

@golang golang locked and limited conversation to collaborators Jan 31, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.