Skip to content

test: use T.TempDir to create temporary test directory#4994

Merged
simlecode merged 1 commit intofilecoin-project:masterfrom
Juneezee:test/t.TempDir
Jun 29, 2022
Merged

test: use T.TempDir to create temporary test directory#4994
simlecode merged 1 commit intofilecoin-project:masterfrom
Juneezee:test/t.TempDir

Conversation

@Juneezee
Copy link
Contributor

Related Issues

Proposed Changes

A testing cleanup.

This pull request replaces ioutil.TempDir with t.TempDir. We can use the T.TempDir function from the testing package to create temporary directory. The directory created by T.TempDir is automatically removed when the test and all its subtests complete.

This saves us at least 2 lines (error check, and cleanup) on every instance, or in some cases adds cleanup that we forgot.

func TestFoo(t *testing.T) {
	// before
	tmpDir, err := ioutil.TempDir("", "")
	assert.NoError(t, err)
	defer os.RemoveAll(tmpDir)

	// now
	tmpDir := t.TempDir()
}

Additional Info

https://pkg.go.dev/testing#T.TempDir

Checklist

Before you mark the PR ready for review, please make sure that:

  • All commits have a clear commit message.
  • The PR title is in the form of of <PR type>: <#issue number> <area>: <change being made>
    • example: fix: #1234 mempool: Introduce a cache for valid signatures
    • PR type: fix, feat, INTERFACE BREAKING CHANGE, CONSENSUS BREAKING, build, chore, ci, docs, misc, perf, refactor, revert, style, test
    • area: venus, venus-messager, venus-miner, venus-gateway, venus-auth, venus-market, venus-sealer, venus-wallet, venus-cluster, api, chain, state, vm, data transfer, mempool, message, block production, multisig, networking, paychan, proving, sealing, wallet
  • This PR has tests for new functionality or change in behaviour
  • If new user-facing features are introduced, clear usage guidelines and / or documentation updates should be included in venus docs or Discussion Tutorials.
  • CI is green

This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ioutil.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <[email protected]>
@simlecode
Copy link
Collaborator

Thanks for the PR!

@simlecode simlecode merged commit 5367fa7 into filecoin-project:master Jun 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants