give up on refactoring TestFileUpload

The reason that t.Parallel broke the tests was because the parent test
must finish before the parallel subtests can start. So, we'd be closing
the httptest server and removing the tmpfile before any of the parallel
subtests even began.

We could refactor this to make the subtests parallel, but they're only
two, and the parent is already parallel, so it's not worth the effort.
See the added comment.
This commit is contained in:
Daniel Martí 2019-04-01 17:26:11 +01:00
parent 41e913e571
commit 7c8529b914

View File

@ -984,12 +984,13 @@ func TestFileUpload(t *testing.T) {
{SetUploadFiles(`input[name="upload"]`, []string{tmpfile.Name()}, NodeVisible)}, {SetUploadFiles(`input[name="upload"]`, []string{tmpfile.Name()}, NodeVisible)},
} }
// Don't run these tests in parallel. The only way to do so would be to
// fire a separate httptest server and tmpfile for each. There's no way
// to share these resources easily among parallel subtests, as the
// parent must finish for the children to run, made impossible by the
// defers above.
for i, test := range tests { for i, test := range tests {
t.Run(fmt.Sprintf("test %d", i), func(t *testing.T) { t.Run(fmt.Sprintf("test %d", i), func(t *testing.T) {
// TODO: refactor the test so the subtests can run in
// parallel
//t.Parallel()
ctx, cancel := testAllocate(t, "") ctx, cancel := testAllocate(t, "")
defer cancel() defer cancel()