Comments (4)
A possible solution is to intercept at caller side.
Or we can recognize the caller, if that is not directly from main module, we skip trapping.
from xgo.
func getCacheFilePath() (string, error) { dir, err := os.UserCacheDir() if err != nil { return "", err } cacheDir := filepath.Join(dir, "go-size-analyzer") err = os.MkdirAll(cacheDir, 0755) if err != nil { return "", err } file := filepath.Join(cacheDir, fmt.Sprintf("webui-v%s.html", gsa.StaticVersion)) return file, nil }
As for the above code, when os.UserCacheDir
, os.MkdirAll
and filepath.Join
is called, only these directly from main module will be trapped. Or even only allowed when xgo test
is being used.
Seems this strategy is fine enough to satisfy possible use cases while prevents performance or security issues.
This will be available in the next version in 3 days.(v1.0.36, 2024-05-19)
from xgo.
Should fail with message prompting that stdlib mocking only available in test mode when attempting patching in normal code.
from xgo.
It seems that these packages cannot be mocked by nature:
syscall, reflect, sync, sync/atomic, testing, unsafe
from xgo.
Related Issues (20)
- 基于代码生成来 proxy go test 到 xgo HOT 15
- test-explorer: allow custom test args in test.config.json
- Failed to setup mock HOT 11
- Proposal: add `--debug` flag to automatically debug test from command line, without relying on IDE buttons
- IDE Integration: fake go script to integrate with IDEs without plugin modification HOT 1
- fix cross compile: correct the behavior when GOOS & GOARCH are set to enable cross compile
- test-explorer: read test.config.json when opened from sub directory
- shadow: allow bypassing via XGO_SHADOW_BYPASS=true
- test-explorer: add `mock_rules` for test.config.json, and `--mock-rules` option for xgo
- test-explorer: fix windows test path
- Goland Xgo shadow HOT 4
- Error while mocking json.Marshall HOT 2
- Allow --mock-rule to specify for condition `Closure:true`
- test-explorer: auto update xgo if test.config.json says 'xgo.auto_update: true' HOT 1
- text-explorer: show subtest even when running single test HOT 1
- trace: MarshalJSONAny fails to marshal func type when stdlib trap skipped
- 同一份cover.out文件,xgo没有显示覆盖率 HOT 7
- 是否有办法在Patch replacer里去做assert HOT 2
- Integrate xgo's mock & tracing abilities into online web services HOT 6
- test-explorer: test binary complains flags not defined HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xgo.