-
Notifications
You must be signed in to change notification settings - Fork 165
Conversation
solution: step1 - add build tags for nondeterministic tests
solution: (debug) add log line to appveyor build script
solution: add 'nondeterministic' build tag
This reverts commit 2fc3b38.
This reverts commit 10e7a02.
solution: add it
solution: refactor utils and test data to adjacent files
solution: trim incoming string in line handler
see: https://ci.appveyor.com/project/splix/go-ethereum/build/1.0.1699 solution: add to schroedinger's list
solution: func-ify it
solution: use new var for line string handling and refactor
rerunning individual failing tests
from within packages
solution: add build tag
and logging confusing solution: make logging consistent and track trials per test
solution: move it out, upwards and hombres
From go 1.10 passing tests are cached by default. So they won't be executed multiple times. The most KISS solution is to rerun all tests (cache is salvation) in a loop. |
Thinking toward explicitness and granularity... we can build that list with a couple of The prefix/suffix + # pseudocode
go test -tags="sputnikvm deterministic" -v ./...
allowedTrials=4
trials=0
while [[ ! go test -tags='sputnikvm !deterministic' -v ./... -run "(.*Schroedinger$)" ]]; do
trials++
if [[ trials > allowedTrails ]];
break;
fi
done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not ideal solution, but will save us hours ;)
@tzdybal Tag, you're it; your merge if LTGY. LGTM Get used to green. 💚 |
5b7b2d7
to
671a3e1
Compare
I have to add my glog rotation tests to the shame-list 👎 |
@tzdybal Do you want to add them before merge, or separately after? |
I created an issue for this and I want to fix them. |
Ah, gotcha -- #564 |
See: #580. So let's merge this PR. |
consider what to do withmoved to https://github.com/etcdevteam/go-schroedinger, and useschroedingers_cat.go
-- move to janus? relocate somewhere else? leave as-is?go get
to install command on CIspossibly rename "schroedinger" things to be something a little more "professional"
...include more nondeterministic tests in
schroedinger-tests.txt
, I know there are a few I misseddecide for or against alternate design, ala:
An alternative design would be to refactor to use
tags for all other
*_test.go
files which ARE expected to pass consistently, and then use a smaller bash script to run whole files at a time in a loop. AFAIK this tagging verbosity is a limitation of go build tags and inclusion/exclusion rules. It will also mean that without http://github.com/ETCDEVTeam/go-schroedinger a lot of tests will need to be run redundantly and will thus take up a lot more time (sinceschroedinger
picks only tests that fail from packages and reruns those individually)or will take a lot of hardcoding probably-nondeterministic tests and still some redundancy, eg.rel #245
importantly related: https://github.com/etcdevteam/go-schroedinger