mirror of
https://github.com/docker/docs.git
synced 2026-11-05 00:14:17 +03:00
Error unit tests for bad cli input, include trustpinning merge
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
This commit is contained in:
@@ -98,6 +98,55 @@ func TestRemoteServerCommandLineFlagOverridesConfig(t *testing.T) {
|
||||
require.Equal(t, "http://overridden", getRemoteTrustServer(config))
|
||||
}
|
||||
|
||||
// invalid commands for `notary addhash`
|
||||
func TestInvalidAddHashCommands(t *testing.T) {
|
||||
tempDir := tempDirWithConfig(t, `{"remote_server": {"url": "https://myserver"}}`)
|
||||
defer os.RemoveAll(tempDir)
|
||||
configFile := filepath.Join(tempDir, "config.json")
|
||||
|
||||
b := new(bytes.Buffer)
|
||||
cmd := NewNotaryCommand()
|
||||
cmd.SetOutput(b)
|
||||
|
||||
// No hashes given
|
||||
cmd.SetArgs(append([]string{"-c", configFile, "-d", tempDir}, "addhash", "gun", "test", "10"))
|
||||
err := cmd.Execute()
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "Must specify a GUN, target, byte size of target data, and at least one hash")
|
||||
|
||||
// Invalid byte size given
|
||||
cmd = NewNotaryCommand()
|
||||
cmd.SetArgs(append([]string{"-c", configFile, "-d", tempDir}, "addhash", "gun", "test", "sizeNotAnInt", "--sha256", "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))
|
||||
err = cmd.Execute()
|
||||
require.Error(t, err)
|
||||
|
||||
// Invalid sha256 size given
|
||||
cmd = NewNotaryCommand()
|
||||
cmd.SetArgs(append([]string{"-c", configFile, "-d", tempDir}, "addhash", "gun", "test", "1", "--sha256", "a"))
|
||||
err = cmd.Execute()
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "invalid sha256 hex contents provided")
|
||||
|
||||
// Invalid sha256 hex given
|
||||
cmd = NewNotaryCommand()
|
||||
cmd.SetArgs(append([]string{"-c", configFile, "-d", tempDir}, "addhash", "gun", "test", "1", "--sha256", "***aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa***"))
|
||||
err = cmd.Execute()
|
||||
require.Error(t, err)
|
||||
|
||||
// Invalid sha512 size given
|
||||
cmd = NewNotaryCommand()
|
||||
cmd.SetArgs(append([]string{"-c", configFile, "-d", tempDir}, "addhash", "gun", "test", "1", "--sha512", "a"))
|
||||
err = cmd.Execute()
|
||||
require.Error(t, err)
|
||||
require.Contains(t, err.Error(), "invalid sha512 hex contents provided")
|
||||
|
||||
// Invalid sha512 hex given
|
||||
cmd = NewNotaryCommand()
|
||||
cmd.SetArgs(append([]string{"-c", configFile, "-d", tempDir}, "addhash", "gun", "test", "1", "--sha512", "***aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa******aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa***"))
|
||||
err = cmd.Execute()
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
||||
var exampleValidCommands = []string{
|
||||
"init repo",
|
||||
"list repo",
|
||||
|
||||
@@ -139,10 +139,15 @@ func (t *tufCommander) tufAddByHash(cmd *cobra.Command, args []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
trustPin, err := getTrustPinning(config)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// no online operations are performed by add so the transport argument
|
||||
// should be nil
|
||||
nRepo, err := notaryclient.NewNotaryRepository(
|
||||
config.GetString("trust_dir"), gun, getRemoteTrustServer(config), nil, t.retriever)
|
||||
config.GetString("trust_dir"), gun, getRemoteTrustServer(config), nil, t.retriever, trustPin)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user