未验证 提交 ff22a832 编写于 作者: J Josh van Leeuwen 提交者: GitHub

Integration testing: Fix daprd/secret/http quote escaping (#6653)

Signed-off-by: Njoshvanl <me@joshvanl.dev>
Co-authored-by: NArtur Souza <asouza.pro@gmail.com>
上级 7ac39014
......@@ -68,12 +68,13 @@ func (c *componentName) Setup(t *testing.T) []framework.Option {
var secretFile string
fz.Fuzz(&c.secretStoreNames[i])
for len(secretFile) == 0 || strings.Contains(secretFile, "/") ||
strings.HasPrefix(secretFile, "..") || takenNames[secretFile] {
strings.HasPrefix(secretFile, "..") || secretFile == "." ||
takenNames[secretFile] {
secretFile = ""
fuzz.New().Fuzz(&secretFile)
}
takenNames[secretFile] = true
secretFile = filepath.Join(t.TempDir(), secretFile)
require.NoError(t, os.WriteFile(secretFile, []byte("{}"), 0o600))
files[i] = fmt.Sprintf(`
......
......@@ -88,7 +88,8 @@ func (f *fuzzsecret) Setup(t *testing.T) []framework.Option {
var secretFileName string
for len(secretFileName) == 0 || strings.Contains(secretFileName, "/") ||
strings.HasPrefix(secretFileName, "..") {
strings.HasPrefix(secretFileName, "..") || secretFileName == "." {
secretFileName = ""
fuzz.New().Fuzz(&secretFileName)
}
secretFileName = filepath.Join(t.TempDir(), secretFileName)
......@@ -101,7 +102,7 @@ func (f *fuzzsecret) Setup(t *testing.T) []framework.Option {
require.NoError(t, je.Encode(f.values))
require.NoError(t, file.Close())
f.daprd = procdaprd.New(t, procdaprd.WithResourceFiles(fmt.Sprintf(`
f.daprd = procdaprd.New(t, procdaprd.WithResourceFiles((fmt.Sprintf(`
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
......@@ -112,8 +113,8 @@ spec:
metadata:
- name: secretsFile
value: '%s'
`, f.secretStoreName, secretFileName)))
`, f.secretStoreName, strings.ReplaceAll(secretFileName, "'", "''"),
))))
return []framework.Option{
framework.WithProcesses(f.daprd),
}
......@@ -128,9 +129,6 @@ func (f *fuzzsecret) Run(t *testing.T, ctx context.Context) {
t.Run(key+":"+value, func(t *testing.T) {
t.Parallel()
getURL := fmt.Sprintf("http://localhost:%d/v1.0/secrets/%s/%s", f.daprd.HTTPPort(), url.QueryEscape(f.secretStoreName), url.QueryEscape(key))
// t.Log("URL", getURL)
// t.Log("Secret store name", f.secretStoreName, printRunes(f.secretStoreName))
// t.Log("Key", key, printRunes(key))
req, err := http.NewRequestWithContext(ctx, http.MethodGet, getURL, nil)
require.NoError(t, err)
resp, err := http.DefaultClient.Do(req)
......@@ -145,13 +143,3 @@ func (f *fuzzsecret) Run(t *testing.T, ctx context.Context) {
// TODO: Bulk APIs, nesting, multi-valued
}
/*
func printRunes(str string) []string {
result := make([]string, 0, len(str))
for _, r := range str {
result = append(result, strconv.Itoa(int(r)))
}
return result
}
*/
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册